Этот код использовался, но на 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 каждый раз. Путь/имя файла так же, как и должно быть ( "storage/emulated/0/Pictures/barry.png" ) для пользователя # 0, а также каталог "Фотографии".
Что может сделать imwrite return false?
Я мог бы преобразовать коврик в bmp и сохранить его сам (что я делаю в другом месте в приложении, отличном от OpenCV), но так как Highgui.imwrite есть, и этот код работал, когда я писал до 2.4.0 и тестирование на Android 3.x, я бы хотел использовать его, если смогу.
Большое спасибо
Баз