この画像を画像処理に使用するために、画像のパスをC++ファイルに渡そうとしていますが、今は処理できません。私のMainActivity Iそのようなパスを取得:NDKプロジェクト用にアンドロイドスタジオの画像の絶対パスを取得
Uri path;
String pathS;
path = Uri.parse("android.resource://com.sfarbac.rtmatching/" + R.drawable.elli);
pathS = path .toString();
を、私はCにそのよう++ファイルこのパスを渡さ:私はそのようにネイティブコードからのパス情報を取得
nativeClass.detectAndMatch(_mRgba.getNativeObjAddr(), _trick.getNativeObjAddr(), pathS);
を:
JNIEXPORT jint JNICALL
Java_com_sfarbac_rtmatching_nativeClass_detectAndMatch
(JNIEnv *env, jclass obj, jlong addrRgba, jlong addrTrick, jstring path){
Mat& camPic = *(Mat*)addrRgba;
Mat& camTric = *(Mat*)addrTrick;
const jsize len = env->GetStringUTFLength(path);
const char* strChars = env->GetStringUTFChars(path, (jboolean *)0);
string Result(strChars, len);
camTric = imread (Result.c_str(), CV_LOAD_IMAGE_GRAYSCALE);
if(! camTric.data)
{
__android_log_print(ANDROID_LOG_ERROR, "TRACKERS", "%s", "Can not load image");
//return -1;
}
//cvtColor(camTric, camPic, CV_RGBA2GRAY);
env->ReleaseStringUTFChars(path, strChars);
return 1;
}
ここに画像を読み込むことができません。 「画像を読み込めません」というエラーが表示されます。 アセットフォルダに画像を置くと、画像がapkファイルに配置されているため、画像が見つからないことがわかります。この問題を乗り越えるにはどうすればいいですか?ありがとう。