这段代码曾经可以工作,但在 Android 4.2 和 OpenCV 2.4.4 上它失败了,但我不知道为什么。任何人都可以为我阐明它吗?
谢谢你的帮助。
巴兹
public void SaveImage (Mat mat) {
Mat mIntermediateMat = new Mat();
Imgproc.cvtColor(mRgba, mIntermediateMat, Imgproc.COLOR_RGBA2BGR, 3);
File path = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
String filename = "barry.png";
File file = new File(path, filename);
Boolean bool = null;
filename = file.toString();
bool = Highgui.imwrite(filename, mIntermediateMat);
if (bool == true)
Log.d(TAG, "SUCCESS writing image to external storage");
else
Log.d(TAG, "Fail writing image to external storage");
}
bool 每次都返回 false。用户 #0 的文件路径/名称应该是(“storage/emulated/0/Pictures/barry.png”),并且目录 Pictures 在那里。
什么可以使 imwrite 返回 false?
我可以将垫子转换为 bmp 并自己保存(我在非 OpenCV 应用程序的其他地方这样做)但是因为 Highgui.imwrite 在那里,并且当我写入 2.4.0 并在 Android 上测试时,这段代码曾经可以工作3.x,如果可以的话,我想使用它。
非常感谢
巴兹