LabVIEW色彩匹配实现颜色识别、颜色检验(基础篇—13)

简介: LabVIEW色彩匹配实现颜色识别、颜色检验(基础篇—13)

目录

1、颜色识别


2、颜色检验


色彩匹配(Color Matching)是将模板图像与待测图像或其中某一区域的颜色进行比较,判断它们是否相同或相近的过程。它可以用于颜色识别、颜色检验以及彩色对象定位等基于色彩信息比较的应用程序。


色彩匹配通常分为色彩学习(Color Learning)和色彩比较(Color Comparing)两步。


在色彩学习阶段,系统会对模板图像或区域的颜色信息进行量化,并基于各种颜色及对应像素占总像素的百分比来生成颜色特征向量;

在色彩比较阶段,系统会将模板和待测图像的颜色特征向量进行比较,并返回它们之间的相似度指标。

如何才能判断两幅图像中的颜色是否相同呢?


当然是从图像中不同颜色的像素统计信息入手。对于两幅尺寸和颜色相同的图像来说,图像中每种颜色的像素数均相同。对于尺寸不同但颜色相同的图像来说,图像中每种颜色的像素数不相同,但是两幅图像中每种颜色的像素数占总像素数的比例却相同。考虑通用性,可以将图像中各种颜色对应的像素数占图像总像素数的比例作为颜色比较的特征向量。


但是,若对图像中所有颜色都进行统计,生成的特征向量就会很大,这极不利于系统对实时性的要求。因此还要再进一步对特征向量进行优化。


由于HSL色彩空间具有亮度和色彩信息分离的特点,因此可以将图像转换至HSL空间中,再基于色调和饱和度构成的色盘对颜色进行量化。这样得到的颜色特征向量不仅不会受到亮度变化的影响,还能根据程序对颜色分辨率的需要,调整量化等级以减少特征向量的数据量。


下图显示了提取图像颜色特征向量的过程:

image.png


色谱提取

首先彩色图像被转换至HSL色彩空间,以分离亮度和颜色信息。由于亮度128对应的色盘最大(中间),因此可以仅抽取该色盘进行量化。量化时先根据对颜色分辨率的需要,将色盘等分为多个扇区。颜色敏感度(color sensitivity)参数用来确定色盘具体被划分为多少个扇区。


Nl Vision采用低、中、高3挡颜色敏感度值来控制颜色的分辨率。低挡将色盘分为7个扇区,中挡将色盘分为14个扇区,高挡则将色盘分为28个扇区。扇区越多,说明量化的分辨率越高。色盘被等分为扇区后,就可以进一步沿着饱和度方向进行分割。Nl Vision将各扇区沿饱和度方向分为两块,具体分割位置由饱和度阈值(saturation threshold)决定,它控制了每个扇区分为两块的内圆的半径。


在色彩学习阶段,机器视觉系统会从模板图像或区域中提取其色谱。在匹配阶段,机器视觉系统同样会从目标图像中提取其色谱,并比较其与模板图像色谱的差异。而色谱之间的差异则可使用两个向量之间的曼哈顿距离来定量评价。


在实际中,为了补偿色彩量化过程中可能发生的一些错误,一般都会在计算色谱之间的距离之前使用模糊权重函数对色谱进行加权。通过色谱间的曼哈顿距离(各元素间差异的绝对值求和),最终生成一个在0~1000之间的表示差异度的值。下图显示了上述色彩比较过程,其中0表示色谱之间没有相似性,而1000分表示完美匹配。


image.png


综上所述,色彩匹配实际上就是比较图像或图像区域的色谱与模板图像的色谱是否相同或相近的过程。在学习阶段,机器视觉系统会提取指定模板图像或选择图像的色谱,其中图像的颜色信息可以由一种或多种颜色组成。色谱提取过程可将图像中的三维颜色信息量化表示为一维色谱。在颜色匹配阶段,机器视觉系统会提取待测图像中的色谱,并与学习到的模板色谱进行比较,最后计算色谱的匹配度。


Nl Vision使用位于LabVIEW的视觉与运动→lmage Processing→Color Processing函数选板中的IMAQ Color Learn和IMAQ ColorMatch函数分别封装了上述色彩学习和匹配过程。基于得到的色谱及其匹配度数据,机器视觉系统可设置阈值来实现颜色识别、颜色检测、颜色定位以及其他基于色彩比较的应用程序,如下图所示:


image.png


函数说明及使用可参见帮助手册:


image.png


1、颜色识别

颜色识别(Color ldentification)是指从预先定义的模板图像色彩中搜寻与待测图像颜色能最佳匹配者,以确定待测图像颜色的归属。


颜色识别应用一般会预先学习各种模板图像的颜色,并将其连同图像标签保存至数据库中。通过将被测图像的颜色信息与数据库中的记录进行比较,获取与其最接近的记录,并返回对应的图像标签。


通过一个一个颜色识别的实例程序了解其使用方法,程序设计思路如下所示:


程序总体分为模板图像颜色学习和颜色匹配两部分,一开始先用For循环将存放在文件夹中的6幅模板图像逐读入内存,并用IMAQ ColorLearn提取各图像的色谱,以供后续匹配过程进行比较;

随后,程序将待测图像UUT.jpg读入内存,并由For循环中的IMAQ ColorMatch计算其色谱,并与之前由IMAQ ColorLearn学习到的6个色谱逐一进行比较,以确定与之匹配的图像;

由于IMAQ ColorMatch可对同一ROl中的多个轮廓进行颜色匹配,因此其返回的匹配标记(Flag)和匹配度分值(Score)均为数组,其元素的值与ROI中轮廓的顺序对应;

对于整幅图像匹配来说,相当于只有一个ROl和一个轮廓,因此仅取首个元素的值即可。由于程序设置了匹配度的阈值为800,因此从运行结果可以看到,被测图像的颜色与第5幅模板图像的颜色最匹配。

程序实现如下所示:


image.png


程序效果如下所示:


image.png


程序资源下载请参见:https://download.csdn.net/download/m0_38106923/20712053


2、颜色检验

颜色检测(Color Inspection)是指通过检查产品颜色是否与预知色彩相同来实现产品的缺陷检测。如检测产品是否缺少或有放错的彩色部件,搜索彩色部件以及进行彩色标签的缺陷检测等。


通过颜色检测来检查汽车保险丝安装情况的实例,了解其使用方法,程序设计思路如下所示:


程序一开始先读取黄色保险丝模板图像,并用IMAQ ColorLearn学习模板图像的色谱;

此后,While循环逐个将待测图像文件夹中的图像读入内存,并调用IMAQ ColorMatch进行颜色匹配;

由于指定的ROI中包含两个对应于待测保险丝位置的矩形轮廓,因此IMAQ ColorMatch返回的匹配标志和匹配分值数组中的前两个元素有效,分别按顺序对应于对ROI中的两个轮廓位置的检测结果;

根据返回的匹配标志的值是否为真,可以清楚获知每个位置上的保险丝是否被正确安装。只有当两个位置上的保险丝均被正确安装时,整个测试才能通过。

程序实现如下所示:


image.png


程序能检查第二行的第二和第三个位置是否正确安装了型号为20的黄色保险丝。下面效果还显示了检测到ROI第一个轮廓对应位置未安装保险丝的情况。同样,当这两个位置安装的保险丝为其他类型时,测试也不能通过。


image.png

程序资源下载请参见:https://download.csdn.net/download/m0_38106923/20713069


相关文章
STM32F103标准外设库——SysTick系统定时器(八)
STM32F103标准外设库——SysTick系统定时器(八)
1850 0
STM32F103标准外设库——SysTick系统定时器(八)
|
消息中间件 存储 XML
Kettle实现rabbitMQ的生产与消费
文章目录 一、Kettle为什么可以读取流数据? 二、rabbitMQ中启动MQTT插件并创建队列和路由键 三、Kettle实现rabbitMQ的生产与消费 Kettle是一款非常强大的ETL工具,不仅可以使用图形化界面,还可以处理各种数据,今天记录一下本人使用Kettle中MQTT组件来实现从rabbitMQ中读取流数据,并进行解析和处理。 提示:以下是本篇文章正文内容,下面案例可供参考
|
编解码
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
3059 1
STM32:PWM驱动舵机(内含:1.接线原理图/实物图+2.代码部分+3.补充知识部分)
|
6月前
|
人工智能 搜索推荐 API
API驱动电商个性化:用户行为分析接口
在电商领域,个性化体验至关重要。用户行为分析接口通过实时捕捉浏览、点击等行为,结合API技术实现个性化推荐与精准营销。本文详解其工作原理、实现方式及应用价值,助力电商平台提升用户体验与转化率。
184 0
|
机器学习/深度学习 数据采集 人工智能
《人工智能如何加速药物研发进程:从新药发现到临床试验的突破》
在医药领域,药物研发复杂且成本高昂,新药推出面临诸多挑战。人工智能(AI)通过分析海量生物数据,加速靶点识别、药物分子设计及临床试验设计与数据分析,显著提升研发效率和质量。AI利用机器学习算法和大数据分析,优化试验方案,预测药物疗效与安全性,助力智能化药物研发平台的建设。尽管存在数据质量和隐私等挑战,AI仍为药物研发带来巨大潜力与创新机遇。
658 10
|
7月前
|
人工智能 开发者
DeepSeek-R1源码解读
deepseek-r1源码分析
300 0
|
11月前
|
机器学习/深度学习 存储 算法
《探秘NAS:卷积神经网络的架构革新之路》
神经架构搜索(NAS)在卷积神经网络(CNN)领域掀起革新,自动化生成最优架构,改变传统设计方式。其特点包括扩展搜索空间、优化搜索策略、提升性能、模型压缩及跨领域应用。NAS发现了超越人工设计的高性能架构,如EfficientNet,并在图像分类、目标检测和分割中取得显著成果。尽管面临计算资源消耗大和可解释性差的挑战,NAS仍为CNN的发展带来重大突破,推动深度学习广泛应用。
362 12
|
弹性计算 自然语言处理 数据库
通过阿里云Milvus和LangChain快速构建LLM问答系统
本文介绍如何通过整合阿里云Milvus、阿里云DashScope Embedding模型与阿里云PAI(EAS)模型服务,构建一个由LLM(大型语言模型)驱动的问题解答应用,并着重演示了如何搭建基于这些技术的RAG对话系统。
|
数据安全/隐私保护 开发者 Python
【Python 基础】检查字符串是否只包含数字和字母?
【5月更文挑战第8天】【Python 基础】检查字符串是否只包含数字和字母?