簡體   English   中英

無法在JNI本機代碼openCv中使用cv :: imwrite保存Mat圖像

[英]unable to save Mat image with cv::imwrite in a JNI native code openCv

我的本機代碼有問題,因為在我的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記錄圖像? 我還能怎么做保存它?

我遇到了同樣的問題,但是我可以通過以下步驟解決:

1.請求權限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

2.手動打開權限開關

3.關閉應用程序並清除任務

4.打開您的項目應用程序,然后重試,它對我有用。

如果它不適合您,請卸載並重新安裝應用程序,然后重復上述步驟

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM