![](/img/trans.png)
[英]Running python script on android studio using Chaquopy can't open Camera
[英]Running Python scripts in Java class activity in Android Studio with Chaquopy
我正在尝试在 Android 应用程序(Java)中使用一些 python 脚本。 我已经按照他们网站上的说明配置了 Chaquopy。 https://chaquo.com/chaquopy/doc/current/android.html
I have found an example of how to execute python scripts in a kotlin application https://www.ericdecanini.com/2019/10/21/run-python-scripts-in-the-android-front-end-with-chaquopy /但我很难在 Java 中解决这个问题。
如果我理解正确,python 脚本 (.py) 存储在 src/main/python 中,可以从另一个活动调用此脚本并在同一调用活动中显示结果。
kotlin 中的示例:
val python = Python.getInstance()
val pythonFile = python.getModule("helloworldscript")
val helloWorldString = pythonFile.callAttr("helloworld")
hello_textview.text = helloWorldString.toString()
我想执行以下 python 脚本:
import os
import face_recognition
def cmd2():
os.system("face_recognition ./event_faces/ ./event_images/")
face_recognition 中的这个命令行工具允许用户在图像目录上运行面部识别,并将它们与已知人脸目录进行比较。 结果是处理的文件的打印输出,其中任何已知或未知的面都附加到文件名。
我的目标是执行这个 python 脚本并在活动中显示 output(即 textView)有谁知道是否可以在 Android Studio 中使用 face_recognition 与 Chaquopop87846DZ? 它没有列出,所以我有一些疑问https://chaquo.com/pypi-7.0/是否可以制作操作系统。 在 android 应用程序中键入调用?
另外,如果有人知道在不使用 python 的 face_recognition 的情况下对 Java 中的图像目录执行面部识别的方法,请告诉我。 我试图为 java 找到一个类似 face_recognition 的库,但没有成功。 Python 的 face_recognition 库对我来说运行良好,但现在我正试图将我的 python 脚本移植到 Android Studio 项目中,事情变得有点棘手。
到目前为止我的代码:Android Manifest
<application
android:name="com.chaquo.python.android.PyApplication"
应用 Gradle
apply plugin: 'com.android.application'
apply plugin: 'com.chaquo.python'
android {
compileSdkVersion 29
defaultConfig {
python{
staticProxy "bulk.py"
pip{
install "dlib"
install "opencv-python"
install "opencv-contrib-python"
install "face_recognition"
install "pillow"
install "numpy"
install "cv2"
install "os"
}
}
applicationId "com.projectdevelopment.faces"
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
ndk {
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
项目 gradle
buildscript {
repositories {
google()
jcenter()
maven { url "https://chaquo.com/maven" }
}
dependencies {
classpath "com.android.tools.build:gradle:4.0.0"
classpath 'com.google.gms:google-services:4.3.3'
classpath "com.chaquo.python:gradle:8.0.0"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
执行 Python 脚本的活动
python.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//call python script and return output to this activity
}
});
提前感谢您的任何意见。 非常感谢。
我听说很多人在 Android 上成功使用了 face_recognition。 它是纯 Python package,因此可以直接从 PyPI 安装,不需要在Chaquopy 自己的 package 存储库中。
但是,Chaquopy 不附带os.system
可执行文件,因此使用 os.system 运行命令行脚本不太可能工作。 相反,您可以调用face_recognition
Python API,它在自己的网站上有很多示例。
看起来与运行face_recognition
脚本最接近的等效方法是导入face_recognition.face_recognition_cli
并调用main
function,可能在使用命令行设置sys.argv
之后。
打印到标准 output 的任何文本都将 go 到Logcat ,您可以在 Android Studio 中查看。 如果您也想在设备屏幕上看到它,最简单的方法是调整控制台应用程序模板。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.