基于目标颜色的彩色图像分割常包括色彩阈值处理(Color Threshold)和色彩分割(Color Segmentation)两种方法。

色彩阈值处理可以对图像在色彩空间中的3个分量分别进行阈值处理,并返回一个8位的二值图像。色彩分割则通过对比图像中各像素的色彩特征与其周围像素的色彩特征,或对比其与经训练得到的色彩分类器信息,将图像按色彩分割成不同的标记区域。

色彩阈值处理常用于从图像中分割仅有一种颜色的目标,色彩分割则常用于从杂乱的背景中标记出具有多种颜色的目标,并对其进行机器视觉检测或计数。

色彩分割过程主要包括色彩分类器训练、色彩区域分割和分割区域后处理3个阶段。

1、基于色彩样本进行色彩分类器训练;

2、确定检测窗口大小(行列大小一般为奇数),在待测图像上按设定的步长移动该窗口,计算检测窗口所覆盖区域的色彩特征,并将该值作为窗口中心像素(Pivot Pixel)的色彩特征值;

3、计算检测窗口所覆盖区域和与其相邻的几个窗口所覆盖区域的色彩特征距离,并选取特征距离最短的窗口进行以下处理:

若最短特征距离小于预先设定的最大距离(Maximum Distance)阈值参数,就将该窗口中心像素的类别标签赋值给检测窗口的中心像素。

否则,基于色彩分类器对检测窗口区域进行分类。若分类的识别可信度分值(ldentificationScore)大于预先设定的最小识别可信度分值(Minimum ldentification Score)阈值参数,就使用分类得到的类别标签对检测窗口中心像素进行标记,否则不对中心像素进行标记。

4、按照预先设定的尺寸参数,滤除不符合尺寸要求的区域,即可得到对各颜色区域的标记图像(可以为8位、16位无符号类型或16位整型)。

整个过程按照下述流程执行:

上述过程中使用的最大距离阈值参数Dmax由训练得到的色彩分类器信息确定。它是指可以被接受的相同类标签窗口中心像素色彩特征间距的最大值,可通过下式计算:

最大距离阈值参数越大,意味着允许使用相邻窗口的颜色类别标签的像素越多。这可避免频繁使用色彩分类器,并提高色彩分割的速度。但是,提高该参数值却会牺牲色彩分割的准确性。

在实际应用中,常使用该参数的保守(Conservative)或激进(Aggressive)值。保守值将两个距离最接近的训练类别的间距定义为各类中样本间距的最小值,激进值则将两个距离最近的训练类别的间距定义为各类中样本间距的中间值。

此外,也可以通过为检测窗口的移动设定步长或降低色彩特征的分辨率来提高色彩分割过程的整体速度。相对于逐像素在图像中移动检测窗口,以一定步长在图像中移动检测窗口的计算量会极大地减少。采用较低分辨率的色彩特征,也会减少计算量,提高色彩分割过程的实时性。

NI Vision提供了封装色彩分割过程的函数IMAQ Color Segmentation Supervised和IMAQ Get Color Segmentation Distance,它们位于LabVIEW的视觉与运动→lmage Processing→Color Processing函数选板中,如如图所示:

其中IMAQ Color Segmentation Supervised用于实现色彩分割过程,IMAQ Get ColorSegmentation Distance则用于基于色彩分类器计算色彩分割过程要用到的最大距离阈值参数Dmax。

函数的说明和使用可参见帮助文档:

通过一个色彩分割的实例:根据饼干不同部分颜色的区别,分割出巧克力、烘焙程度较好和欠烘焙的区域,了解其使用方法,程序设计思路如下所示:

  • 程序一开始先从色彩分类器文件Cookie.clf中读取训练得到的颜色类别等信息,并返回颜色分类器会话;
  • 随后调用IMAQ Get Color Segmentation Distance基于分类器会话计算可以被接受的相同类标签窗口中心像素色彩特征间距的最大值Dmax,并由IMAQ Color Segmentation Supervised完成色彩分割;
  • 分割过程采用大小为15×15的检测窗口、10个像素大小的步长,并规定区域不能小于10个像素(最大为整个图像);
  • 为了增强色彩分割过程输出的标记图像显示效果,程序还为不同颜色类别指定了标记灰度值。

程序实现如下所示:

分割过程结束后,For循环统计所有符合要求的区域的灰度标记值,然后调用IMAQLabelToROI将这些标记区域转换为ROI,并由IMAQ Group ROls将得到的ROl组合后交由IMAQ Overlay ROI以图层的方式显示在原图像中。

观察下图显示的程序运行结果,可以发现,饼干中的巧克力、烘焙程度较好和欠烘焙的区域已经被用不同的灰度值在输出的图像中进行了标记。不难想到,对标记图像进行阈值化处理和颗粒分析,即可得到各种类型区域占整个饼干的比例。而基于此比例值,就能判断生产线上饼干的质量是否合格。

上述实例中所使用的色彩分类器文件Cookie.clf可事先由NI色彩分类训练器对饼干中不同部分的色彩进行训练得到,可参见博文:LabVIEW色彩分类识别。

项目资源下载请参见:https://download.csdn.net/download/m0_38106923/20890565

LabVIEW彩色图像分割(基础篇—14)相关推荐

  1. LabVIEW控制Arduino采集光敏电阻数值(基础篇—14)

    目录 1.实验目的 2.实验环境 3.程序设计 4.实验演示 1.实验目的 利用光敏电阻和LIAT中的光敏函数库,通过Arduino Uno控制板的模拟端口采集与光敏电阻串联电阻的分压值上传给LabV ...

  2. LabVIEW纹理分析(基础篇—9)

    纹理(Texture)是物体表面固有的特征之一.目前对于纹理尚无正式的定义,但一般认为它是由许多相互连接且常周期性重复的单元构成.与灰度特征不同,纹理不是基于单个像素点的特征,它通常与图像的尺度关系密 ...

  3. Python学习-基础篇14 Web框架本质及第一个Django实例

    Web框架本质 我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端. 这样我们就可以自己实现Web框架了. 半成品自定义web框架 impor ...

  4. Python Qt GUI设计:QComboBox下拉列表框类(基础篇—14)

    QComboBox是一个集按钮和下拉选项于一体的控件,也被称为下拉列表框. QComboBox类中的常用方法如下表所示: QComboBox类中的常用信号如下表所示: 来看看QComboBox按钮类的 ...

  5. 计算机视觉竞赛技巧总结(二):图像分割基础篇

  6. 【OpenCV 例程300篇】209. HSV 颜色空间的彩色图像分割

    OpenCV 例程200篇 总目录 [youcans 的 OpenCV 例程300篇]209. HSV 颜色空间的彩色图像分割 5.1 HSV 颜色空间的彩色图像分割 HSV 模型是针对用户观感的一种 ...

  7. 思维导图 基础篇(14)应用-阅读书籍

    系列文章解读&说明: 本系列文章主要内容是 思维导图 基础课,旨在帮助更多 热爱学习的伙伴 更具体的了解思维导图,同时也会让 更多的伙伴从 思维导图 认知 误区中走出. 系列文章总纲链接为:专 ...

  8. 14.实战+补充知识+PS增强+DW(到此 前端工程师【基础篇】 完结)

    WPS Word辅助阅读技巧 min-width(最小宽度) 1. "min-width:600px;"当页面大小小于600像素时,浏览器按照600像素计算. 布局整体规划注意事项 ...

  9. [Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置

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

最新文章

  1. IDEA IntelliJ 如何快速查看一个类里面包含哪些方法
  2. chmod g+s 、chmod o+t 、chmod u+s:Linux高级权限管理
  3. PXC管理数据库服务器(引擎)
  4. 计算机技术基础期末考试,《计算机网络技术基础》期末考试试卷
  5. SpringBoot中的Profile配置的使用
  6. 如何QLayout内部的成员部件之间从左到右依次排列
  7. linux7安装EMC的多路径,Oracle Linux 7.8 多路径(Multipath)+Udev绑定磁盘
  8. 走进新华三解决方案 360°业务能力中心,读懂新华三如何助力企业数字化转型
  9. JQuery中使用Ajax赋值给全局变量失败异常的解决方法,jqueryajax
  10. 华为P50 Pro+高清渲染图曝光:居中单挖孔屏+后置徕卡五摄
  11. Linux使用ntpdate和ntpd进行时间同步
  12. 解决命令行的乱码以及编码的问题
  13. 蓝桥杯2016年第七届C/C++省赛B组第五题-抽签
  14. protel 99se快捷键 总结
  15. LCD屏幕调试 ~ 字模提取工具和图片转码工具
  16. 终于能在Linux下用firefox使用支付宝了!!!
  17. 数学常用特殊符号读音
  18. MR:二:什么是MR混合现实技术?
  19. 简单html实现图片轮播,JavaScript实现简易轮播图
  20. 从程序员到CTO的Java技术路线图(转)

热门文章

  1. CentOS7 php7.0 升级到php7.3
  2. C++ sizeof 运算符的使用
  3. Androidx CoordinatorLayout 和 AppBarLayout 实现折叠效果(通俗的说是粘性头效果)
  4. android studio gradle 位置更改
  5. 机器学习工程师 - Udacity 可视化 CNN
  6. springboot-springmvc-requestParam
  7. 【题解搬运】PAT_L1-009 N个数求和
  8. 为什么ajax请求状态码为0,ajax请求状态码为0的解决办法
  9. PyTorch 笔记(08)— Tensor 比较运算(torch.gt、lt、ge、le、eq、ne、torch.topk、torch.sort、torch.max、torch.min)
  10. xshell连接Linux、ngix部署