首先我有一个问题: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区域相关推荐

  1. OpenCvSharp手绘ROI区域+模板匹配+霍夫变换检测圆的边界

    最终效果如下: 左侧为检测图片.右侧为模板,右下角textbox为轮毂中心的像素坐标 操作步骤: 1.点击打开图像选择一张比较不错的图片,用于画模板: 2.在picturebox中画取ROI区域生成模 ...

  2. 《OpenCV3编程入门》学习笔记5 Core组件进阶(二) ROI区域图像叠加图像混合

    第5章 Core组件进阶 5.2 ROI区域图像叠加&图像混合 5.2.1 感兴趣区域ROI(region of interest) 1.定义ROI区域两种方法: (1)定义矩形区域Rect: ...

  3. 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析

    [OpenCV入门教程之四] ROI区域图像叠加&初级图像混合 全剖析 浅墨_毛星云 2014-03-10 12:48:05 157425 收藏 19 最后发布:2014-03-10 12:4 ...

  4. opencv python3 找图片色块_Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理...

    前文传送门: 图像属性 图像属性包括行数,列数和通道数,图像数据类型,像素数等. 1. 形状:shape 图像的形状可以通过 shape 关键字进行获取,使用 shape 关键的后,获取的信息包括行数 ...

  5. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  6. 【opencv学习笔记】第五篇:访问图像中像素的三种方式、ROI区域图像叠加和图像混合

    1. 访问图像中像素的三种方式 任何图像处理算法,都是从操作每个像素开始的.在OpenCV中,提供了三种访问每个像素的方法. 方法1:指针访问:C操作符[] 方法2:迭代器iterator 方法3:动 ...

  7. (OpenCV — 7)ROI 区域图像叠加&图像混合

    1 感兴趣区域: ROI 在图像处理领域,我们常常需要设置感兴趣区域 ( ROI. region of interest) ,来专注或者简化工作过程 . 也就是从图像中选择的一个图像区域,这个区域是图 ...

  8. ROI区域图像叠加和初级图像教程

    向浅墨学习! 本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/20911629 作者: ...

  9. mat opencv 修改roi_OpenCV中如何提取不规则ROI区域

    点击上方"计算机视觉life",选择"星标" 快速获得最新干货 什么是ROI ROI是英文Region Of Interest的三个首字母缩写,很多时候我们对图 ...

最新文章

  1. CentOS6.4 添加播放×××
  2. C语言——vs2010的使用 || C语言入门知识
  3. html _ 提取html片段内的纯文本
  4. C++实现欧拉的totient 函数(Euler’s totient function)(附完整源码)
  5. 三个角度来解决无线路由故障
  6. 升级计算机方案,关于计算机升级方案
  7. 关于java设计模式与极品飞车游戏的思考
  8. py thon 多线程(转一篇好文章)
  9. 计算机技术培训承诺书,软件职业技术学院学生干部刻苦学习、文明诚信承诺书...
  10. 跨多个专业的从业者想转行做单片机怎么办
  11. oracle --- to_date('2015','yyyy')
  12. 拓端tecdat|R语言对BRFSS数据探索回归数据分析
  13. 新手入门:手把手从PHP环境到ThinkPHP6框架下载
  14. sqlplus登录\连接命令、sqlplus命令的使用大全
  15. 联想小新锁屏壁纸怎么换_联想_ThinkPad|ThinkCentre|ThinkStation服务与驱动下载_常见问题...
  16. Ubuntu 18.04 ibus安装配置中文拼音输入法
  17. Word文档进行XXE攻击
  18. ABP框架Web API跨域问题的解决方案
  19. C++ 安妮的宠物小屋 练习
  20. vu2响应式原理 代码分析

热门文章

  1. Python编辑器与集成开发环境(IDE)选择
  2. 同在服务器无响应,全部服务器无响应!!!
  3. 机器学习梯度下降法举例
  4. pytorch多标签分类交叉熵loss
  5. 安卓和ios抓包神器
  6. 面向对象编程(OPP)
  7. python3面向对象(1)
  8. virtaulbox视图模式常用切换
  9. 版本控制8(译文) -(完)
  10. 基于python的快速傅里叶变换FFT(二)