0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CV学习中的ROI与泛洪填充

深度学习自然语言处理 来源:深度学习自然语言处理 作者:云时之间 2020-11-05 09:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一: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

责任编辑:xj

原文标题:【CV学习笔记】ROI与泛洪填充

文章出处:【微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 图像处理
    +关注

    关注

    28

    文章

    1340

    浏览量

    59177
  • 机器视觉
    +关注

    关注

    163

    文章

    4729

    浏览量

    125009
  • CV
    CV
    +关注

    关注

    0

    文章

    54

    浏览量

    17473

原文标题:【CV学习笔记】ROI与泛洪填充

文章出处:【微信号:zenRRan,微信公众号:深度学习自然语言处理】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    汉思新材料:底部填充胶工艺需要什么设备

    在底部填充胶工艺,设备的选择直接影响填充效果、生产效率和产品可靠性。以下是关键设备及其作用,涵盖从基板处理到固化检测的全流程:汉思新材料:底部填充胶工艺
    的头像 发表于 08-15 15:17 1165次阅读
    汉思新材料:底部<b class='flag-5'>填充</b>胶工艺<b class='flag-5'>中</b>需要什么设备

    找正方形的代码我把roi删除过后能识别到正方形,加上roi后就识别不出来,为什么?

    找正方形的代码我把roi删除过后能识别到正方形,加上roi后就识别不出来,更改roi为更大更稳定的范围也识别不到,麻烦解答一下,谢谢
    发表于 08-14 06:23

    【GM-3568JHF开发板免费体验】OpenCV 视频目标跟踪 ( CamShift)

    的实现 在 OpenCV ,CamShift 算法通过 cv2.CamShift() 函数实现。 # -*- coding: utf-8 -*- import cv2 imp
    发表于 08-09 13:19

    【Sipeed MaixCAM Pro开发板试用体验】+ 03 + 视觉寻线

    = cv2.morphologyEx(binary1, cv2.MORPH_DILATE, kernel3, iterations=1) #在图像上画出固定的5个ROI区域,便于观察
    发表于 07-24 20:21

    明晚开播 |数据智能系列讲座第7期:面向高化能力的视觉感知系统空间建模与微调学习

    鹭岛论坛数据智能系列讲座第7期「面向高化能力的视觉感知系统空间建模与微调学习」明晚8点精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目面向高化能力的视觉感知系统空间建模与微调学习
    的头像 发表于 06-24 08:01 834次阅读
    明晚开播 |数据智能系列讲座第7期:面向高<b class='flag-5'>泛</b>化能力的视觉感知系统空间建模与微调<b class='flag-5'>学习</b>

    半导体器件CV测量技术解析

    一代材料和器件的研究和开发CV测量的重要性越来越高。因此,必须要了解CV测量的基础。今天就聊一聊CV测量的基础和测量的小技巧。一、CV
    的头像 发表于 06-01 10:02 1187次阅读
    半导体器件<b class='flag-5'>CV</b>测量技术解析

    直播预约 |数据智能系列讲座第7期:面向高化能力的视觉感知系统空间建模与微调学习

    鹭岛论坛数据智能系列讲座第7期「面向高化能力的视觉感知系统空间建模与微调学习」6月25日(周三)20:00精彩开播期待与您云相聚,共襄学术盛宴!|直播信息报告题目面向高化能力的视觉感知系统空间
    的头像 发表于 05-29 10:04 467次阅读
    直播预约 |数据智能系列讲座第7期:面向高<b class='flag-5'>泛</b>化能力的视觉感知系统空间建模与微调<b class='flag-5'>学习</b>

    沟槽填充技术介绍

    (void),沟槽的填充工艺技术也不断发展。从图中可见,集成电路芯片的制造过程包含很多种填充技术上的挑战,包括浅沟槽隔离、接触孔和沟槽。根据填充材料的不同,
    的头像 发表于 05-21 17:50 965次阅读
    沟槽<b class='flag-5'>填充</b>技术介绍

    基于LockAI视觉识别模块:C++使用图像的统计信息

    和最大值:帮助识别图像的极端像素值及其位置。 2.API文档 2.1 头文件 #include <opencv2/opencv.hpp> 2.2 提取兴趣区域(ROIcv
    发表于 05-08 10:31

    芯片底部填充填充不饱满或渗透困难原因分析及解决方案

    芯片底部填充胶(Underfill)在封装工艺若出现填充不饱满或渗透困难的问题,可能导致芯片可靠性下降(如热应力失效、焊点开裂等)。以下是系统性原因分析与解决方案:一、原因分析1.材料特性问题胶水
    的头像 发表于 04-03 16:11 1089次阅读
    芯片底部<b class='flag-5'>填充</b>胶<b class='flag-5'>填充</b>不饱满或渗透困难原因分析及解决方案

    先进封装Underfill工艺的四种常用的填充胶CUF,NUF,WLUF和MUF介绍

    今天我们再详细看看Underfill工艺中所用到的四种填充胶:CUF,NUF,WLUF和MUF。 倒装芯片的底部填充工艺一般分为三种:毛细填充(流动型)、无流动填充和模压
    的头像 发表于 01-28 15:41 3664次阅读
    先进封装Underfill工艺<b class='flag-5'>中</b>的四种常用的<b class='flag-5'>填充</b>胶CUF,NUF,WLUF和MUF介绍

    沟槽结构碳化硅的外延填充方法

    一、引言 沟槽结构碳化硅的外延填充方法是指通过在碳化硅衬底上形成的沟槽内填充高质量的外延层,以实现器件的电学和热学性能要求。这一过程,不仅要保证外延层的填充率,还要避免空洞和缺陷的产
    的头像 发表于 12-30 15:11 504次阅读
    沟槽结构碳化硅的外延<b class='flag-5'>填充</b>方法

    芯片底部填充胶种类有哪些?

    芯片底部填充胶种类有哪些?底部填充胶(Underfill)又称底部填充剂,指以高分子材料为原材料制成的电子封装胶,主要用于在芯片和基板之间的空隙
    的头像 发表于 12-27 09:16 1626次阅读
    芯片底部<b class='flag-5'>填充</b>胶种类有哪些?

    PCB设计填充铜和网格铜有什么区别?

    填充铜(SolidCopper)和网格铜(HatchedCopper)是PCB设计两种不同的铺铜方式,它们在电气性能、热管理、加工工艺和成本方面存在一些区别:1.电气性能:填充铜:提供连续的导电层
    的头像 发表于 12-10 16:45 101次阅读
    PCB设计<b class='flag-5'>中</b><b class='flag-5'>填充</b>铜和网格铜有什么区别?

    PCB设计填充铜和网格铜有什么区别?

    填充铜(SolidCopper)和网格铜(HatchedCopper)是PCB设计两种不同的铺铜方式,它们在电气性能、热管理、加工工艺和成本方面存在一些区别:1.电气性能:填充铜:提供连续的导电层
    的头像 发表于 12-10 11:18 80次阅读
    PCB设计<b class='flag-5'>中</b><b class='flag-5'>填充</b>铜和网格铜有什么区别?