最近我在使用 JNI 和 C++ 在 Android 上做一些事情
我想用 cv::imwrite() 将结果写入 android 文件系统以检查我是否做对了,但是,没有文件写入其中。我也试过写入文本文件,再次失败。
这是我的部分代码。我做错了什么吗?感谢您的帮助!
JNIEXPORT void JNICALL Java_com_project_NativeLibs_test(JNIEnv *env, jclass clazz
{
LOGV("test CALLED");
std::string file1, file2, outFile;
file1 = "/sdcard/test_data/images/box.pgm";
file2 = "/sdcard/test_data/images/scene.pgm";
outFile = "/sdcard/output_data/JNI_after.png";
cv::Mat objectImg = cv::imread(file1, cv::IMREAD_GRAYSCALE);
cv::Mat sceneImg = cv::imread(file2, cv::IMREAD_GRAYSCALE);
cv::Mat out;
// ... some Mat process get output to Mat out
cv::imwrite(outFile, out);
std::ofstream filetest;
filetest.open("test.txt");
filetest<<"writing from JNI";
filetest.close();
LOGV("Done Finally");
最佳答案
也许你需要添加这个:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
来自: Android: OpenCV: imwrite always returns false and fails to write
关于android - 无法使用 cv::imwrite 在 JNI 中将图像写入 Android 文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24641688/