mat opencv 修改roi_OpenCV Android:在新Mat中定义并保存ROI(OpenCV Android: Define and save ROI in new Mat)...

本文档介绍了如何在Android环境中使用OpenCV库,特别是关于如何在新Mat对象中定义并保存图像的ROI(感兴趣区域)。开发者在处理图像时遇到问题,试图将图像的一部分裁剪到单独的Mat对象中进行进一步处理。问题在于保存ROI时的实现方式,文中提供了创建新Mat对象来保存ROI的解决方案,并讨论了与位图转换和内存管理相关的注意事项。
摘要由CSDN通过智能技术生成

OpenCV Android:在新Mat中定义并保存ROI(OpenCV Android: Define and save ROI in new Mat)

我正在尝试将我的图像的一部分切割(裁剪)到另一个,因此它可以单独处理。 我找到了轮廓,现在试图在新Mat中保存每个轮廓,但它给出了错误

Mat crop;

Imgproc.findContours(m, contours, new Mat() ,Imgproc.RETR_EXTERNAL , Imgproc.CHAIN_APPROX_SIMPLE);

for(int i=0; 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);

这里是我保存图像的Mat

错误:

I am trying to slice (crop) part of my image to another so it can be worked on separately. I have found contours and now trying to save every contour in new Mat but it is giving error

Mat crop;

Imgproc.findContours(m, contours, new Mat() ,Imgproc.RETR_EXTERNAL , Imgproc.CHAIN_APPROX_SIMPLE);

for(int i=0; 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);

Here m is my Mat where image is saved

Error:

原文:https://stackoverflow.com/questions/29365064

2019-11-23 22:11

满意答案

在这种情况下我总是做的是使用带有rect的构造函数创建一个新的mat:

Mat cropped = new Mat(mOriginal, boudingRect);

编辑:

您的位图也应该具有相同的大小:

bm = Bitm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值