我的本机代码存在问题,因为在我的c ++代码中,我无法保存从JAVA部分收到的图像。
我尝试使用cv::imwrite
,但图片永远不会保存在路径和相应的文件夹中。
我的JNI代码如下:
extern "C"{
JNIEXPORT jintArray JNICALL Java_com_example_testNativeCode_DisplayImage_FindFeatures(JNIEnv* env, jclass obj, jintArray bufImg, jint w, jint h){
jint *cbuf;
cbuf = env->GetIntArrayElements(bufImg, 0);
if(cbuf==NULL){
return 0;
}
cv::Mat mImg(h,w,CV_8UC4, (unsigned char*)cbuf);
cv::imwrite("../SaveImage/img.png", mImg);
}
}
我使用android studio 2.3.3和OpenCv 3.1.0。 我把清单放进去了:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
我想知道是否可以使用cv::imwrite
录制图像?
我怎么办才能保存它?
答案 0 :(得分:0)
我遇到了同样的问题,但是我可以通过以下步骤解决它:
1。请求权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
2。手动打开权限开关
3。关闭应用程序并清除任务
4。打开您的项目应用程序,然后重试,它对我有用。
如果它不适合您,请卸载并重新安装应用程序,然后重复上述步骤