mat opencv 修改roi_OpenCV中如何提取不规则ROI区域
点击上方“计算机视觉life”,选择“星标”
快速获得最新干货
什么是ROI
ROI是英文Region Of Interest的三个首字母缩写,很多时候我们对图像的分析就是对图像特定ROI的分析与理解,对细胞与医疗图像来说,ROI提取正确才可以进行后续的分析、测量、计算密度等,而且这些ROI区域往往不是矩形区域,一般都是不规则的多边形区域,很多OpenCV初学者都不知道如何提取这些不规则的ROI区域。其实OpenCV中有个非常方便的API函数可以快速提取各种非正常的ROI区域。
提取ROI区域
在做这个之前,首先来了解一下什么图像处理中的mask(遮罩),OpenCV中是如此定义Mask的:八位单通道的Mat对象,每个像素点值为零或者非零区域。当Mask对象添加到图像区上时,只有非零的区域是可见,Mask中所有像素值为零与图像重叠的区域就会不可见,也就是说Mask区域的形状与大小直接决定了你看到最终图像的大小与形状。一个具体的示例如下:
可以看出,mask的作用是可以 帮助我们提取各种不规则的区域。OpenCV中完成上述步骤操作只需要简单调用API函数 bitwise_and 即可。
于是另外一个问题也随之而来,我们怎么生成这样mask区域,答案是在OpenCV中有两种方法搞定Mask区域生成。
方法一:
通过手动选择,然后通过多边形填充即可做到,代码实现如下:
import cv2 as cvimport numpy as np
src = cv.imread("D:/images/gc_test.png")cv.imshow("input", src)h, w, c = src.shape
# 手工绘制ROI区域mask = np.zeros((h, w), dtype=np.uint8)x_data = np.array([124, 169, 208, 285, 307, 260, 175])y_data = np.array([205, 124, 135, 173, 216, 311, 309])pts = np.vstack((x_data, y_data)).astype(np.int32).Tcv.fillPoly(mask, [pts], (255), 8, 0)cv.imshow("mask", mask)
# 根据mask,提取ROI区域result = cv.bitwise_and(src, src, mask=mask)cv.imshow("result", result)cv.waitKey(0)
运行效果如下:
方法二:
这个也是OpenCV新手最迷茫的地方,如何通过程序生成mask,其实真的很简单。看代码演示吧!
src = cv.imread("D:/images/gc_test.png")cv.imshow("input", src)
# 生成mask区域hsv = cv.cvtColor(src, cv.COLOR_BGR2HSV)mask = cv.inRange(hsv, (156, 43, 46), (180, 255, 255))cv.imshow("mask", mask)
# 提取ROI区域,根据maskresult = cv.bitwise_and(src, src, mask=mask)cv.imshow("result", result)cv.waitKey(0)
效果如下:
主要是分为三步
提取轮廓ROI
生成Mask区域
提取指定轮廓
特别需要注意的是->其中生成Mask可以根据轮廓、二值化连通组件分析、inRange等处理方法得到。这里基于inRange方式得到mask区域,然后提取。
实际应用演示
最后看两个在实际处理会用到mask实现ROI提取然后重新背景融合之后生成新图像效果:
交流群
欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
长按关注计算机视觉life
推荐阅读
实战 | 相机标定
实战 | 图像矫正技术
实战 | Unity下ARKit与OpenCV的结晶
实战 | 基于SegNet和U-Net的遥感图像语义分割
实战 | 文字定位与切割
实战 | 源码入门之Faster RCNN
实战 | 自己实现扫描全能王
实战 | 用OpenCV轻松生成微信国庆版头像
实战 | OpenCV 实现多张图像拼接
实战 | OpenCV相机标定与畸变校正
实战 | 教你自动查找拍糊的图
实战 | 用 Python 给照片换色
我用MATLAB撸了一个2D LiDAR SLAM
实战 | 哪个瞬间让你突然觉得CV技术真有用?
干货 | 史上最全 OpenCV 活体检测教程
解决方案 | 如何用普通手机准确测量物体体积?
Mask-RCNN模型的实现自定义对象(无人机)检测
scikit-image图像处理入门
还在用肉眼找不同吗?这个技术轻松搞定
OpenCV测量物体的尺寸技能 get~
超详讲解图像拼接/全景图原理和应用 | 附源码
如何在实际中计划和执行一个机器/深度学习项目
8个计算机视觉深度学习中常见的Bug
最新AI干货,我在看
mat opencv 修改roi_OpenCV中如何提取不规则ROI区域相关推荐
- 实战解惑 | OpenCV中如何提取不规则ROI区域
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 什么是ROI ROI是英文Region Of Interest的三 ...
- OpenCV中如何提取不规则ROI区域, 手眼标定hand_eye_calibration
opencv提取ROI区域: 在做这个之前,首先来了解一下什么图像处理中的mask(遮罩),OpenCV中是如此定义Mask的:八位单通道的Mat对象,每个像素点值为零或者非零区域.当Mask对象添加 ...
- mat opencv 修改roi_OpenCV Android:在新Mat中定义并保存ROI(OpenCV Android: Define and save ROI in new Mat)...
OpenCV Android:在新Mat中定义并保存ROI(OpenCV Android: Define and save ROI in new Mat) 我正在尝试将我的图像的一部分切割(裁剪)到另 ...
- OpenCV 提取不规则ROI区域
目录 什么是ROI 提取ROI区域 方法一: 方法二: 实际应用演示 原文出处: https://mp.weixin.qq.com/s/MiHz2zLBif_s1lksQXLBbw 微信公众号:Ope ...
- mat opencv 修改roi_设置图片ROI(OpenCV学习笔记之二)
ROI相关简介 ROI是什么 ROI是region of interest首字母的简写,翻译为感性趣的区域.其实在写本篇之前应该写一篇关于图片是什么的学习笔记,但又感觉里面没多少东西还不能承载一篇学习 ...
- opencv 手选roi区域_【opencv学习笔记六】图像的ROI区域选择与复制
图像的数据量还是比较大的,对整张图片进行处理会影响我们的处理效率,因此常常只对图像中我们需要的部分进行处理,也就是感兴趣区域ROI.今天我们来看一下如何设置图像的感兴趣区域ROI.以及对ROI区域图像 ...
- 【OpenCV】复制、切割出图像ROI区域
对图像设定ROI的函数是: cvSetImageROI(IplImage* src,CvRect rect); src 表示的是源图像, rect 指的是ROI区域. 如果要取消ROI区域,那么使用函 ...
- opencv 手选roi区域_【OpenCV】选择ROI区域
问题描述:在测试目标跟踪算法时,需要选择不同区域作为目标,进行目标跟踪,测试目标跟踪的效果. 解决思路: 1.OpenCV中提供了鼠标交互控制,利用setMouseCallback()给固定的窗口设置 ...
- OpenCV-如何提取出图片ROI区域
根据项目需要,提取视频中的ROI区域进行处理,对于无关区域可以屏蔽掉.主要原理是把原始帧中的ROI定位(如帧差法.背景减除法找出轮廓矩形)后复制到一个黑色背景中,再进行后续预处理. 这里只是以图片为例 ...
最新文章
- java判断request请求是手机还是pc终端
- C语言之计算大数阶乘,如计算100!和1000!等~~~
- MySQL HAVING:指定过滤条件
- 【Python】PAT-1044 火星数字
- Candy Box (easy version)
- Linux的 .bashrc 和.bash_profile和.profile文件
- node设置跨域白名单
- windows python文件拷贝到linux上执行问题
- 一款好看+极简到不行的HTML5音乐播放器-skPlayer
- XMAPP多端口配置
- 华御上网行为管理FAQ
- 微信小程序圣诞帽_完成圣诞快乐Web应用程序界面
- 解决unable to find valid certification path to requested target
- 【计算机导论调研报告】计算机从业人员的职业道德
- 红米5a android 版本,#MIUI#关于红米手机4高配版 Android版本适配的说明【miui9吧】_百度贴吧...
- 创新驱动看广东,上云本领看云宏!全国30多家网媒齐聚云宏参访!
- 不得不说,这是青铜才需要了解的,绝地求生刺激战场段位保护解析
- BlackArch安装(译文)
- mysql 人员查询总结
- 三度进击IPO,诚达药业为何如此执着?