LabVIEW彩色图像分割(基础篇—14)

本文涉及的产品
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像资源包5000点
视觉智能开放平台,视频资源包5000点
简介: LabVIEW彩色图像分割(基础篇—14)

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


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


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


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


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


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


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


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


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


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


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


image.png


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


image.png


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


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


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


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


image.png


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


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


image.png


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


程序一开始先从色彩分类器文件Cookie.clf中读取训练得到的颜色类别等信息,并返回颜色分类器会话;

随后调用IMAQ Get Color Segmentation Distance基于分类器会话计算可以被接受的相同类标签窗口中心像素色彩特征间距的最大值Dmax,并由IMAQ Color Segmentation Supervised完成色彩分割;

分割过程采用大小为15×15的检测窗口、10个像素大小的步长,并规定区域不能小于10个像素(最大为整个图像);

为了增强色彩分割过程输出的标记图像显示效果,程序还为不同颜色类别指定了标记灰度值。

程序实现如下所示:


image.png


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


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


image.png


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


相关文章
|
监控 算法 计算机视觉
【图像算法】彩色图像分割专题一:颜色空间1(原理)
【图像算法】彩色图像分割专题一:颜色空间1(原理)  SkySeraph May 3rd 2011  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified Date:May 13rd 2011 HQU   暂时把收集的一些有用的资料链接给上,以后再补工程源码~~ 补上: 源码:http://www.
1174 0
|
Web App开发 算法 计算机视觉
【图像算法】彩色图像分割专题七:基于分水岭的彩色分割
【图像算法】彩色图像分割专题七:基于分水岭的彩色分割       SkySeraph July 7th 2011  HQU Email:zgzhaobo@gmail.com    QQ:452728574 Latest Modified Date:July 7th 2011 HQU --------...
1229 0
|
4月前
|
Serverless 计算机视觉
语义分割笔记(三):通过opencv对mask图片来画分割对象的外接椭圆
这篇文章介绍了如何使用OpenCV库通过mask图像绘制分割对象的外接椭圆。首先,需要加载mask图像,然后使用`cv2.findContours()`寻找轮廓,接着用`cv2.fitEllipse()`拟合外接椭圆,最后用`cv2.ellipse()`绘制椭圆。文章提供了详细的代码示例,展示了从读取图像到显示结果的完整过程。
92 0
语义分割笔记(三):通过opencv对mask图片来画分割对象的外接椭圆
|
算法
halcon模板匹配实践(6)差异模型
halcon模板匹配实践(6)差异模型
839 0
|
9月前
|
存储 数据可视化 算法
LabVIEW将彩色图像转换到灰度图像
LabVIEW将彩色图像转换到灰度图像
90 3
《Visual C++数字图像模式识别技术详解(第2版)》一3.5 纹理特征
本节书摘来自华章出版社《Visual C++数字图像模式识别技术详解(第2版)》一 书中的第3章,第3.5节,作者:冯伟兴 贺波 王臣业,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
1580 0
|
算法 计算机视觉
LabVIEW轮廓分析与比较(基础篇—8)
LabVIEW轮廓分析与比较(基础篇—8)
LabVIEW轮廓分析与比较(基础篇—8)
|
算法 计算机视觉 异构计算
m基于FPGA的图像Harris角点特征提取和图像配准verilog实现,包含testbench和MATLAB辅助验证
m基于FPGA的图像Harris角点特征提取和图像配准verilog实现,包含testbench和MATLAB辅助验证
344 0
|
算法 计算机视觉 C++
ITK基础(一) — 二值化分割
ITK 全称为 Insight Toolkit ,是一款开源、跨平台、用于图像分析工具包,开发遵循极限编程,主流使用语言为 C++,但目前开发团队已经提供了面向 Python 的接口。 ITK 内部封装了许多优秀算法。ITK 可用于图像处理、配准、分割等领域,处理图像维度面向二维、三维或者更高维度
ITK基础(一) — 二值化分割
|
前端开发 定位技术 C++
3D激光SLAM:A-LOAM :前端lidar点预处理部分代码解读
A-LOAM的cpp有四个,其中 kittiHelper.cpp 的作用是将kitti数据集转为rosbag 剩下的三个是作为 slam 的 部分,分别是: - laserMappin.cpp ++++ 当前帧到地图的优化 - laserOdometry.cpp ++++ 帧间里程计 - scanRegistration.cpp ++++ 前端lidar点预处理及特征提取 本片主要解读 前端lidar点预处理部分的代码
3D激光SLAM:A-LOAM :前端lidar点预处理部分代码解读

热门文章

最新文章