我在android中使用opencv进行面部地标检测。我正在使用JNI与库进行交互。我已将“lbfmodel.yaml”文件保存在资产中,并尝试加载:
const char* jnamestr2 = jenv->GetStringUTFChars(jModelFileName, NULL);
cv::String stdFileName2(jnamestr2);
LOGD( "jModelFileName path : %s", jnamestr2);
FacemarkLBF::Params params;
params.model_filename = stdFileName2;
params.cascade_face = stdFileName;
Ptr<FacemarkLBF> facemark = FacemarkLBF::create(params);
但我收到了一个错误:
Invalid address 0x9b2d2e08 passed to free: value not allocated
Fatal signal 6 (SIGABRT), code -6 in tid 27673
我已经记录了文件路径,它是:
jModelFileName path : /data/user/0/com.ds.openworld/app_model/lbfmodel.yaml
我不知道是什么问题,因为它在本土正在崩溃。模型文件也很大。这是个问题吗?
请帮忙!