我想在Android上用OpenCV实现人脸识别功能,即事先有一个我提供的人脸训练库,然后检测出人脸后,识别他和训练库中的哪类人最像。
我已在windows平台实现了该功能,并将训练好的FaceRecognizer通过save的方式存储成了xml。我将xml文件放入了Android手机某目录下,然后想利用JNI的方式在Android app中使用OpenCV载入该数据库,但运行到这一行就会报错:
Fatal Signal 11 (SIGSEGV) at 0x42ff0000 (code=2), thread 8703...
这是我的相关代码:
JNIEXPORT jlong JNICALL Java_org_opencv_samples_facedetect_DetectionBasedTracker_nativeCreateObject
(JNIEnv * jenv, jclass, jstring jFileName, jint faceSize)
{
//解析文件目录
const char* jnamestr = jenv->GetStringUTFChars(jFileName, NULL);
string stdFileName(jnamestr);
FaceRecognizer model = (FaceRecognizer)createEigenFaceRecognizer(100,10000.0);
try
{
model->load(stdFileName);
}
望朋友们出谋划策!十分感谢!