【CV学习笔记】ROI与泛洪填充

关注“深度学习冲鸭”,一起学习一起冲鸭!

设为星标,第一时间获取更多干货

作者:云时之间

来源:知乎

链接:https://zhuanlan.zhihu.com/p/104644924

编辑:王萌

在这篇文章里我们将会学习ROI与泛洪填充

  一:ROI

ROI(region of interest),中文翻译过来就是感兴趣区域,在机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域,这一部分区域被我们称之为感兴趣区域。

ROI选定的这个区域一般是我们所关注的重点,圈定该区域后我们可以进行进一步的处理,在一定程度上可以减少工作量。

ROI主要应用在视频监控领域,最常见的为ROI智能视频编码技术,具有ROI功能的摄像机可以让用户选择画面中感兴趣的区域,启用ROI功能后,重要的或者移动的区域将会进行高质量无损编码, 而对那些不移动,不被选择的区域降低其码率和图像质量,进行标准清晰度视频压缩,甚至是不传输这部分区域视频,达到节省网络带宽占用和视频存储空间。

现在我们使用OpenCV来进行实操:

在代码中,我们选择 选择50:180行、100:220列区域作为截取对象,首先先生成灰度图,这里的灰度图是单通道图像,后续将单通道图像转换为三通道RGB灰度图,因为只有三通道的backface才可以赋给三通道的src,有一点需要注意,COLOR_RGB2GRAY是把三通道RGB对象转换为单通道灰度对象!!!

得到结果如下:

可以看到Windows的logo被灰色圈出,这一个logo可以被称之为我们的ROI区域。

  二:泛洪填充

泛洪填充算法(Flood Fill Algorithm),泛洪填充算法又称洪水填充算法,这是在很多图形绘制软件中常用的填充算法,最熟悉不过就是windows paint的油漆桶功能。算法的原理很简单,就是从一个点开始附近像素点,填充成新的颜色,直到封闭区域内的所有像素点都被填充新颜色为止。泛红填充实现最常见有四邻域像素填充法,八邻域像素填充法,基于扫描线的像素填充方法。根据实现又可以分为递归与非递归(基于栈)。

我们可以理解为泛洪填充是一种彩色图像填充。

①:FLOODFILL_FIXED_RANGE – 改变图像,泛洪填充

代码如下:

在代码里,有几个点需要注意

1:我们设置的图片(mask)都是为uin8类型的单通道阵列,另外为何mask中需要+2,因为当从0行0列开始泛洪填充扫描时,mask多出来的2可以保证扫描的边界上的像素都会被处理。

2:floodFill函数 floodFill(image, mask, seedPoint, newVal[, loDiff[, upDiff[, flags]]])

Image: 表示输入/输出1或3通道,8位或浮点图像。

Mask:表示掩码,该掩码是单通道8位图像,比image的高度多2个像素,宽度多2个像素。填充时不能穿过输入掩码中的非零像素。

seedPoint:表示泛洪算法(漫水填充算法)的起始点。

newVal参数表示在重绘区域像素的新值。

loDiff参数表示当前观察像素值与其部件邻域像素值或待加入该组件的种子像素之间的亮度或颜色之负差的最大值。

upDiff参数表示当前观察像素值与其部件邻域像素值或待加入该组件的种子像素之间的亮度或颜色之正差的最大值。

flags参数:操作标志符,包含三部分:

低八位(0~7位):用于控制算法的连通性,可取4(默认)或8。

中间八位(8~15位):用于指定掩码图像的值,但是如果中间八位为0则掩码用1来填充。

高八位(16~32位):可以为0或者如下两种标志符的组合:

LOODFILL_FIXED_RANGE:表示此标志会考虑当前像素与种子像素之间的差,否则就考虑当前像素与相邻像素的差。

FLOODFILL_MASK_ONLY:表示函数不会去填充改变原始图像,而是去填充掩码图像mask,mask指定的位置为零时才填充,不为零不填充。 

在图像中,我们以(30,30)为起点开始计算:

得到结果如下:

在下一篇文章中,我们将继续学习图像的模糊操作与二值化处理,希望大家好好试验,一起加油!

参考文章:

https://www.cnblogs.com/little-monkey/p/7598529.html

!重磅!【深度学习冲鸭技术交流二群】微信交流群已成立

额外赠送福利资源!南京大学《模式识别》PPT,2020最新版《神经网络与深度学习》中文版pdf,李航老师《统计学习方法》(第2版)课件分享,周志华《机器学习》西瓜书手推笔记(V2.8)

获取方式:进入群后点开群公告即可领取下载链接

推荐阅读:

豆瓣9.4!《深度学习入门》笔记总结,带你从感知机入门深度学习!(连载)

豆瓣9.4!《深度学习入门:基于Python的理论与实现》学习笔记(2)

手磕实现 CNN卷积神经网络!-  《深度学习入门:基于Python的理论与实现》系列之三

长文超详讲解深度学习中你总是掌握不牢的若干知识点 - 《深度学习入门》系列之四

CV学习笔记:入坑必备

CV学习笔记(二):OpenCV基本操作

CV学习笔记(三):色彩空间

CV学习笔记(四):图像的计算

今天因为你的点赞,让我元气满满

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值