无法在 Android Studio 的 OpenCV 中加载 haarcascade_frontalface_alt.xml
unable to load haarcascade_frontalface_alt.xml in OpenCV in Android Studio
我有以下代码块来加载 haarcascade_frontalface_alt.xml
并检查它。而且我确定 haarcascade_frontalface_alt.xml 文件路径是正确的。你对这个问题有什么想法吗?
public static void FaceDetector (Mat image){
String cascade_name="/home/ismailkaratepe/AndroidStudioProjects/FaceDetectionApp/app/src/main/res/haarcascade_frontalface_alt.xml";
CascadeClassifier faceDetector = new CascadeClassifier(cascade_name);
faceDetector.load(cascade_name);
if (faceDetector.empty()) {
System.out.println("Face cascade failed to load.");
return;
} else {
System.out.println("Face cascade loaded successfully.");
}
...
}
这总是打印 Face cascade failed to load.
怎么了?
根据this:
You can not access an application's home directory, on an unrooted device. This would have been a MAJOR security hole.
您需要查看 android 上的 where to store files,然后从那里阅读您的 xml 文件
Here 有一个示例向您展示了如何从本地应用程序文件夹中读取文件。
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyAppDir");
我有以下代码块来加载 haarcascade_frontalface_alt.xml
并检查它。而且我确定 haarcascade_frontalface_alt.xml 文件路径是正确的。你对这个问题有什么想法吗?
public static void FaceDetector (Mat image){
String cascade_name="/home/ismailkaratepe/AndroidStudioProjects/FaceDetectionApp/app/src/main/res/haarcascade_frontalface_alt.xml";
CascadeClassifier faceDetector = new CascadeClassifier(cascade_name);
faceDetector.load(cascade_name);
if (faceDetector.empty()) {
System.out.println("Face cascade failed to load.");
return;
} else {
System.out.println("Face cascade loaded successfully.");
}
...
}
这总是打印 Face cascade failed to load.
怎么了?
根据this:
You can not access an application's home directory, on an unrooted device. This would have been a MAJOR security hole.
您需要查看 android 上的 where to store files,然后从那里阅读您的 xml 文件
Here 有一个示例向您展示了如何从本地应用程序文件夹中读取文件。
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "MyAppDir");