我目前在Android中保存位图时遇到了困难。我正在研究一种能够检测人眼区域的系统。我有这个代码,可以将ROI保存到opencv中的Mat。
Rect eyearea_right = new Rect( RectOfFace.x + RectOfFace.width / 16 ,
(int) (RectOfFace.y + (RectOfFace.height / 4.5)) ,
(RectOfFace.width - 2 * RectOfFace.width / 16) / 2,
(int) (RectOfFace.height / 3.0)
);
ROI = new Mat(mGray, eyearea_left);
Bitmap bm = Bitmap.createBitmap((int) ROI.size().width, (int) ROI.size().height, Bitmap.Config.ARGB_8888);
但是,我很难将其保存到手机存储中。我需要查看图像或位图,以便让我知道如何处理图像以检测人是否正在闭上他/她的眼睛。另外,有没有办法在屏幕上打印/显示从OpenCV中的Mat派生的位图?谢谢。
这是我在互联网上找到的保存代码
String root = Environment.getExternalStorageDirectory().toString();
File myDir = new File(root + "/saved_images");
Log.i("Bitmap", root);
myDir.mkdirs();
int n = i;
String path = Environment.getExternalStorageDirectory().toString();
OutputStream fOut = null;
File file = new File(path, "/saved_images/" + "image" + i + ".jpg");
fOut = new FileOutputStream(file);
bm.compress(Bitmap.CompressFormat.JPEG, 85, fOut);
fOut.flush();
fOut.close();
MediaStore.Images.Media.insertImage(getContentResolver()
, file.getAbsolutePath(), file.getName(), file.getName());
答案 0 :(得分:0)
您正在创建位图。但它与投资回报率无关。只采取尺寸。不满足。所以它是空的。
答案 1 :(得分:0)
我找到了问题的答案。基本上,您需要使用submat函数才能获得Mat的一部分。 submat是Mat类中可用的函数。