opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制

本文介绍了在OpenCV中如何设置和操作图像的感兴趣区域(ROI),包括通过赋值、构造函数、clone函数和copyTo函数进行图像复制,以及使用Rect和Range选择ROI区域的方法。通过示例代码展示了如何选取和显示ROI子图片,以及替换ROI区域内容。
摘要由CSDN通过智能技术生成

图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI。今天我们来看一下如何设置图像的感兴趣区域ROI。以及对ROI区域图像进行复制与替换。

在开始之前我们还是先来看一下Mat类型的数据存储方式以及对Mat类型变量赋值的方式。Mat类型的图像在内存中包含两部分的内容:矩阵头与图像数据矩阵的指针。矩阵头包含了图像的基本信息(如矩阵尺寸、存储方式、存储地址等),而数据指针则指向图像所有像素值的矩阵。通常复制Mat类型数据有两种方类型,一种是仅复制Mat变量的矩阵头与数据指针,但是不复制图像数据区域。第二种是不仅为复制Mat类型图像的矩阵头与数据指针,同时也把图像数据区域复制过去。这种方式处理的数据量会很大。

我们先来看第一种方式。

Mat A = imread("i.jpg");

Mat B, C;

B = A;

Mat(A);

已有图像A,新建图像B和C。我们分别通过赋值方式和构造函数初始化B和C。此时A、B、C均有各自的矩阵头与指针,并且其指针指向统一个图像数据区域。即可以理解为A、B、C三个指针均指向同一片内存地址。使用这种方法后,对A、B、C中任意一个图像操作后另外两个也会同时变化,因为他们指向同一片图像数据区域。示意图如下:

再来看第二种方式:

Mat A = imread("i.jpg");

Mat B, C;

B = A.clone();

A.copyTo(C);

同样已有图像A,新建图像B和C。我们分别通过clone函数与

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值