当前位置: 首页 > news >正文

OpenCV(十四):ROI区域截取

在OpenCV中,你可以使用Rect对象或cv::Range来截取图像的感兴趣区域(Region of Interest,ROI)。

方法一:使用Rect对象截取图像

Rect_(_Tp _x, _Tp _y, _Tp _width,_Tp _height)

  • Tp:数据类型,C++模板特性,可以用int、double、float等替换。
  • _x:矩形区域左上角第一个像素的x坐标,也就是第一个像素的列数。
  • _y:矩形区域左上角第一个像素的y坐标,也就是第一个像素的行数。
  • _width:矩形的宽,单位为像素,即矩形区域跨越的列数。
  • _height:矩形的高,单位为像素,即矩形区域跨越的行数。

示例:

// 定义ROI矩形区域
int x = 0;
int y = 0;
int width = 1000;
int height = 2000;// 根据ROI定义的区域截取图像
cv::Rect roiRect(x, y, width, height);
cv::Mat roi = image(roiRect);
// 显示截取图像结果
imwrite("/sdcard/DCIM/image.jpg",image);
imwrite("/sdcard/DCIM/roi.jpg",roi);

在这个示例中,我们首先读取一张图像image。然后,我们定义ROI矩形区域,其中x和y表示矩形左上角的坐标,宽度为1000,高度为2000。接下来,我们使用这个矩形对象来从原始图像中截取ROI区域,并将其存储在名为roicv::Mat对象中。最后,我们使用cv::imwrite()函数来获取原始图像和截取的ROI。

       

(原始图像)                                 (截取的ROI)

方法二:使用cv::Range截取图像的行或列范围

cv::Range::Range ( int start

int  end

  • start:区间的起始(包含)
  • end:区间的结束(不包含)

示例:

// 定义截取范围
int startRow = 0;
int endRow = 2000;
int startCol = 0;
int endCol = 2000;// 使用cv::Range截取图像范围
cv::Range rowRange(startRow, endRow);
cv::Range colRange(startCol, endCol);
cv::Mat roi = image(rowRange, colRange);
// 显示截取图像结果
imwrite("/sdcard/DCIM/image.jpg",image);
imwrite("/sdcard/DCIM/roi.jpg",roi);

在这个示例中,我们同样首先读取一张图像Image。然后,我们使用rowRange()colRange()函数来分别截取图像的行范围和列范围。在rowRange()函数中,指定了截取行的起始行号为0,结束行号为2000;而在colRange()函数中,指定了截取列的起始列号为0,结束列号为2000。最后,我们使用cv::imwrite()函数来显示原始图像和截取的ROI。

        

(原始图像)                                 (截取的ROI)

无论你选择使用Rect对象还是cv::Range来截取图像,都能实现相同的效果。根据具体需求,你可以选择适合的方法进行图像截取。

http://www.lryc.cn/news/155631.html

相关文章:

  • Java学习笔记之----I/O(输入/输出)一
  • 介绍GitHub
  • js常用的循环遍历
  • 存量时代的面经
  • Python入门教程 | Python 流程控制语句
  • 力扣:83. 删除排序链表中的重复元素(Python3)
  • iKeyPrime完美解4G信号,可以登录iCloud,有消息通知,支持最新iOS16.6。
  • micro python 编译流程和方法,以及一部分问题解决
  • AI篇-chatgpt基本用法(文心一言也适用)
  • Python小知识 - 使用Python进行数据分析
  • Pytorch.tensor 相关用法
  • 信维通信投资者关系活动:揭示5G创新实践,展望未来发展
  • AOP进阶-通知顺序
  • Sui流动性质押黑客松|本周Workshop预告
  • 数学建模:线性与非线性优化算法
  • 数学建模--粒子群算法(PSO)的Python实现
  • 【C++】STL-函数对象-内建函数对象
  • Redis 教程 - Redis 基本操作
  • FreeRTOS中断与任务之间同步(Error:..\..\FreeRTOS\portable\RVDS\ARM_CM4F\port.c,422 )
  • WebRTC清晰度和流畅度
  • 华为数通方向HCIP-DataCom H12-821题库(单选题:181-200)
  • 海康威视二次开发适配安卓电视盒子
  • NIO原理浅析(二)
  • leetcode每日一练-第53题-最大子数组和
  • 京东云接入【风险识别】接口
  • 在 linux 虚拟机上安装配置 hive
  • 作品集(陆续上传中)
  • 论文解读 | 三维点云深度学习的综述
  • 基于costas环的载波同步系统matlab性能仿真
  • 解码自我注意的魔力:深入了解其直觉和机制