OpenCV Android:在新 Mat 中定义和保存 ROI
OpenCV Android: Define and save ROI in new Mat
我正在尝试将我的图像的一部分切片(裁剪)成另一个,以便可以单独处理。我找到了轮廓,现在试图在新垫子中保存每个轮廓,但它给出了错误
Mat crop;
Imgproc.findContours(m, contours, new Mat() ,Imgproc.RETR_EXTERNAL , Imgproc.CHAIN_APPROX_SIMPLE);
for(int i=0; i <contours.size();i++)
{
Rect rect = Imgproc.boundingRect(contours.get(i));
crop = m.submat(rect);
}
Utils.matToBitmap(crop, bm);
ImageView iv = (ImageView) findViewById(R.id.imageView1);
iv.setImageBitmap(bm);
这里m是我保存图片的Mat
错误:
在这种情况下,我经常做的是使用带有 rect 的构造函数创建一个新垫子:
Mat cropped = new Mat(mOriginal, boudingRect);
编辑:
您的位图也应具有相同的大小:
bm = Bitmap.createBitmap(crop.size().width,crop.size().height, Bitmap.Config.ARGB_8888);
我正在尝试将我的图像的一部分切片(裁剪)成另一个,以便可以单独处理。我找到了轮廓,现在试图在新垫子中保存每个轮廓,但它给出了错误
Mat crop;
Imgproc.findContours(m, contours, new Mat() ,Imgproc.RETR_EXTERNAL , Imgproc.CHAIN_APPROX_SIMPLE);
for(int i=0; i <contours.size();i++)
{
Rect rect = Imgproc.boundingRect(contours.get(i));
crop = m.submat(rect);
}
Utils.matToBitmap(crop, bm);
ImageView iv = (ImageView) findViewById(R.id.imageView1);
iv.setImageBitmap(bm);
这里m是我保存图片的Mat
错误:
在这种情况下,我经常做的是使用带有 rect 的构造函数创建一个新垫子:
Mat cropped = new Mat(mOriginal, boudingRect);
编辑:
您的位图也应具有相同的大小:
bm = Bitmap.createBitmap(crop.size().width,crop.size().height, Bitmap.Config.ARGB_8888);