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

2020 年 11 月 8 日 深度学习自然语言处理

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

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





作者:云时之间
来源:知乎
链接: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


推荐阅读:

豆瓣9.4!《深度学习入门》笔记总结,带你从感知机入门深度学习!(连载)
豆瓣9.4!《深度学习入门:基于Python的理论与实现》学习笔记(2)
手磕实现 CNN卷积神经网络!-  《深度学习入门:基于Python的理论与实现》系列之三
长文超详讲解深度学习中你总是掌握不牢的若干知识点 - 《深度学习入门》系列之四

CV学习笔记:入坑必备
CV学习笔记(二):OpenCV基本操作
CV学习笔记(三):色彩空间
CV学习笔记(四):图像的计算



今天因为你的点赞,让我元气满满
登录查看更多
1

相关内容

【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
3D目标检测进展综述
专知会员服务
191+阅读 · 2020年4月24日
【CVPR2020】L2 ^GCN:图卷积网络的分层学习高效训练
专知会员服务
37+阅读 · 2020年3月31日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
81+阅读 · 2020年1月13日
 图像内容自动描述技术综述
专知会员服务
86+阅读 · 2019年11月17日
密歇根大学《20年目标检测综述》
专知会员服务
98+阅读 · 2019年10月13日
最全综述 | 图像目标检测
计算机视觉life
31+阅读 · 2019年6月24日
OpenCV研习社-系统化带学OpenCV4
计算机视觉life
5+阅读 · 2019年6月12日
OpenCV4系统化学习路线图与教程
计算机视觉战队
18+阅读 · 2019年3月29日
OpenCV 4 系统化学习路线图与教程
计算机视觉life
20+阅读 · 2019年3月24日
实战 | 图像矫正技术
计算机视觉life
5+阅读 · 2019年2月28日
从零开始PyTorch项目:YOLO v3目标检测实现
机器之心
14+阅读 · 2018年4月23日
CVPR 2017 | Tiny Faces 小人脸检测算法简介
极市平台
10+阅读 · 2018年2月1日
【干货】卷积神经网络CNN学习笔记
机器学习研究会
15+阅读 · 2017年12月17日
学员笔记||Python数据分析之:numpy入门(一)
七月在线实验室
7+阅读 · 2017年9月28日
Arxiv
0+阅读 · 2021年2月1日
Arxiv
0+阅读 · 2021年1月29日
tf.data: A Machine Learning Data Processing Framework
AdarGCN: Adaptive Aggregation GCN for Few-Shot Learning
Symbolic Priors for RNN-based Semantic Parsing
Arxiv
3+阅读 · 2018年9月20日
Arxiv
4+阅读 · 2017年10月30日
VIP会员
相关VIP内容
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
3D目标检测进展综述
专知会员服务
191+阅读 · 2020年4月24日
【CVPR2020】L2 ^GCN:图卷积网络的分层学习高效训练
专知会员服务
37+阅读 · 2020年3月31日
KGCN:使用TensorFlow进行知识图谱的机器学习
专知会员服务
81+阅读 · 2020年1月13日
 图像内容自动描述技术综述
专知会员服务
86+阅读 · 2019年11月17日
密歇根大学《20年目标检测综述》
专知会员服务
98+阅读 · 2019年10月13日
相关资讯
最全综述 | 图像目标检测
计算机视觉life
31+阅读 · 2019年6月24日
OpenCV研习社-系统化带学OpenCV4
计算机视觉life
5+阅读 · 2019年6月12日
OpenCV4系统化学习路线图与教程
计算机视觉战队
18+阅读 · 2019年3月29日
OpenCV 4 系统化学习路线图与教程
计算机视觉life
20+阅读 · 2019年3月24日
实战 | 图像矫正技术
计算机视觉life
5+阅读 · 2019年2月28日
从零开始PyTorch项目:YOLO v3目标检测实现
机器之心
14+阅读 · 2018年4月23日
CVPR 2017 | Tiny Faces 小人脸检测算法简介
极市平台
10+阅读 · 2018年2月1日
【干货】卷积神经网络CNN学习笔记
机器学习研究会
15+阅读 · 2017年12月17日
学员笔记||Python数据分析之:numpy入门(一)
七月在线实验室
7+阅读 · 2017年9月28日
Top
微信扫码咨询专知VIP会员