このコードは以前は機能していましたが、Android4.2とOpenCV2.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、できれば使いたいです。
どうもありがとう
バズ