OpenCvSharp用掩膜来实现圆形的ROI区域
首先我有一个问题:opencv有没有一个类似于Rect的这么一个圆的框架,就像下面这段代码能直接从原图上裁剪下来一个圆形的ROI(ROI图片是一个圆),而不是像本文介绍的这样用掩膜遮掉不感兴趣区域(ROI图片大小和原图一样)?有知道的大牛评论分享一下,欢迎讨论
Rect tmp_Rect = new Rect(Math.Min(X0, X1), Math.Min(Y0, Y1), Math.Abs(X0 - X1), Math.Abs(Y0 - Y1));
roiImg = new Mat(srcImg, tmp_Rect);
好了,那么言归正传:(完整代码我就不贴出了,步骤很简单,很清晰)
步骤:读图 ⋙ 画ROI/霍夫变换识别圆 ⋙ 创建一个掩膜并将圆按原位置画在掩膜上 ⋙ 对掩膜水漫填充 ⋙ 生成原图与掩膜结合的图片
①你可以利用霍夫变换识别图中的圆形区域CircleSegment[] cs = Cv2.HoughCircles(roiClone, HoughMethods.Gradient, 1, 80, 70, 100, 100, 200);
或者你利用Cv2.Circle(……)手动画一个圆形区域,将圆形的中点Point seed记录下来(这个点水漫填充时会用到,即水漫填充算法的起始点)
②接着就是创建掩膜,所谓的掩膜说白了:就是创建一个和原图大小一致的这么一个空容器Mat mask = Mat.Zeros(OrgMatClone.Size(), MatType.CV_8U);
③然后,再利用水漫填充将感兴趣区域填充起来 Cv2.FloodFill(mask, seed, new Scalar(255));
④最后,srcImg.CopyTo(resMat, mask); 注:srcImg是原图片,resMat是原图与掩膜结合之后的结果图
“其他形状的ROI也是同样的道理,思路也是这样的思路就是第一步不同”
画任意形状的ROI你可以参考这篇博客☚我是超级链接哦
最后:效果图如下
当然,还没结束
我们可以利用Cv2.FindContours(……)来这样处理:
你有没有发现这个算子的第三个参数是啥,所以就可以这样:
就得到这样的效果:(左:原图 、右上:处理后的圆形ROI、右下:原矩形ROI)
OpenCvSharp用掩膜来实现圆形的ROI区域相关推荐
- OpenCvSharp手绘ROI区域+模板匹配+霍夫变换检测圆的边界
最终效果如下: 左侧为检测图片.右侧为模板,右下角textbox为轮毂中心的像素坐标 操作步骤: 1.点击打开图像选择一张比较不错的图片,用于画模板: 2.在picturebox中画取ROI区域生成模 ...
- 《OpenCV3编程入门》学习笔记5 Core组件进阶(二) ROI区域图像叠加图像混合
第5章 Core组件进阶 5.2 ROI区域图像叠加&图像混合 5.2.1 感兴趣区域ROI(region of interest) 1.定义ROI区域两种方法: (1)定义矩形区域Rect: ...
- 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析
[OpenCV入门教程之四] ROI区域图像叠加&初级图像混合 全剖析 浅墨_毛星云 2014-03-10 12:48:05 157425 收藏 19 最后发布:2014-03-10 12:4 ...
- opencv python3 找图片色块_Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理...
前文传送门: 图像属性 图像属性包括行数,列数和通道数,图像数据类型,像素数等. 1. 形状:shape 图像的形状可以通过 shape 关键字进行获取,使用 shape 关键的后,获取的信息包括行数 ...
- [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- 【opencv学习笔记】第五篇:访问图像中像素的三种方式、ROI区域图像叠加和图像混合
1. 访问图像中像素的三种方式 任何图像处理算法,都是从操作每个像素开始的.在OpenCV中,提供了三种访问每个像素的方法. 方法1:指针访问:C操作符[] 方法2:迭代器iterator 方法3:动 ...
- (OpenCV — 7)ROI 区域图像叠加&图像混合
1 感兴趣区域: ROI 在图像处理领域,我们常常需要设置感兴趣区域 ( ROI. region of interest) ,来专注或者简化工作过程 . 也就是从图像中选择的一个图像区域,这个区域是图 ...
- ROI区域图像叠加和初级图像教程
向浅墨学习! 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/20911629 作者: ...
- mat opencv 修改roi_OpenCV中如何提取不规则ROI区域
点击上方"计算机视觉life",选择"星标" 快速获得最新干货 什么是ROI ROI是英文Region Of Interest的三个首字母缩写,很多时候我们对图 ...
最新文章
- CentOS6.4 添加播放×××
- C语言——vs2010的使用 || C语言入门知识
- html _ 提取html片段内的纯文本
- C++实现欧拉的totient 函数(Euler’s totient function)(附完整源码)
- 三个角度来解决无线路由故障
- 升级计算机方案,关于计算机升级方案
- 关于java设计模式与极品飞车游戏的思考
- py thon 多线程(转一篇好文章)
- 计算机技术培训承诺书,软件职业技术学院学生干部刻苦学习、文明诚信承诺书...
- 跨多个专业的从业者想转行做单片机怎么办
- oracle --- to_date('2015','yyyy')
- 拓端tecdat|R语言对BRFSS数据探索回归数据分析
- 新手入门:手把手从PHP环境到ThinkPHP6框架下载
- sqlplus登录\连接命令、sqlplus命令的使用大全
- 联想小新锁屏壁纸怎么换_联想_ThinkPad|ThinkCentre|ThinkStation服务与驱动下载_常见问题...
- Ubuntu 18.04 ibus安装配置中文拼音输入法
- Word文档进行XXE攻击
- ABP框架Web API跨域问题的解决方案
- C++ 安妮的宠物小屋 练习
- vu2响应式原理 代码分析