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

article/2025/8/26 19:37:21

目录

1、颜色识别

2、颜色检验


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

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

  • 在色彩学习阶段,系统会对模板图像或区域的颜色信息进行量化,并基于各种颜色及对应像素占总像素的百分比来生成颜色特征向量;
  • 在色彩比较阶段,系统会将模板和待测图像的颜色特征向量进行比较,并返回它们之间的相似度指标。

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

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

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

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

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

色谱提取

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

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

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

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

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

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

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

1、颜色识别

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

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

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

  • 程序总体分为模板图像颜色学习和颜色匹配两部分,一开始先用For循环将存放在文件夹中的6幅模板图像逐读入内存,并用IMAQ ColorLearn提取各图像的色谱,以供后续匹配过程进行比较;
  • 随后,程序将待测图像UUT.jpg读入内存,并由For循环中的IMAQ ColorMatch计算其色谱,并与之前由IMAQ ColorLearn学习到的6个色谱逐一进行比较,以确定与之匹配的图像;
  • 由于IMAQ ColorMatch可对同一ROl中的多个轮廓进行颜色匹配,因此其返回的匹配标记(Flag)和匹配度分值(Score)均为数组,其元素的值与ROI中轮廓的顺序对应;
  • 对于整幅图像匹配来说,相当于只有一个ROl和一个轮廓,因此仅取首个元素的值即可。由于程序设置了匹配度的阈值为800,因此从运行结果可以看到,被测图像的颜色与第5幅模板图像的颜色最匹配。

程序实现如下所示:

程序效果如下所示:

程序资源下载请参见:LabVIEW色彩匹配实现颜色识别-嵌入式文档类资源-CSDN下载

2、颜色检验

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

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

  • 程序一开始先读取黄色保险丝模板图像,并用IMAQ ColorLearn学习模板图像的色谱;
  • 此后,While循环逐个将待测图像文件夹中的图像读入内存,并调用IMAQ ColorMatch进行颜色匹配;
  • 由于指定的ROI中包含两个对应于待测保险丝位置的矩形轮廓,因此IMAQ ColorMatch返回的匹配标志和匹配分值数组中的前两个元素有效,分别按顺序对应于对ROI中的两个轮廓位置的检测结果;
  • 根据返回的匹配标志的值是否为真,可以清楚获知每个位置上的保险丝是否被正确安装。只有当两个位置上的保险丝均被正确安装时,整个测试才能通过。

程序实现如下所示:

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

程序资源下载请参见:LabVIEW颜色检测来检查汽车保险丝安装情况-嵌入式文档类资源-CSDN下载


http://chatgpt.dhexx.cn/article/C6EvZdt3.shtml

相关文章

Python 对图片进行颜色识别

场景:在进行压力测试时,需要判断图片的某一块区域是否是黑色 这里使用的是OpenCV库对图片进行颜色的识别,几乎可以识别所有常见的颜色 直接上代码 import cv2 import numpy as np import collectionsclass colorList:def getColorList(sel…

OpenCV颜色识别(所有颜色均可识别)

OpenCV颜色识别实例(所有颜色均可识别) 欢迎访问我的博客sakuraの绘梨衣 本文中的颜色识别为红色,颜色阈值设置如下: lower_apple np.array([0, 100, 100]) higher_apple np.array([10, 200, 200])识别其他颜色可以参考HSV颜色…

如何实现视觉识别颜色

1. 功能说明 通过摄像头识别特定颜色(红、绿、蓝)。摄像头采集图像信息并通过WiFi将信息传递给PC端,然后PC端根据比例判断出目标颜色在色盘上的所属颜色后,指针便会指向对应颜色。 红、绿、蓝-色块 2. 电子硬件 本实验中采用了以下…

Halcon——颜色识别提取

文章目录 前言一、颜色识别原理二、颜色识别为什么将其转换至HSV颜色空间三、源代码写在最后 前言 【Halcon】颜色识别提取 这里以嘉庚建筑风格为例~ 一、颜色识别原理 载入图像后,将其转换至HSV颜色空间,通过判断每个像素是否在所选取的范围内&…

颜色识别、轮廓识别-树莓派 Opencv-基于Python学习记录DAY-4

学习颜色识别之前先介绍一下新认识的图像格式HSV: 色调H 用角度度量,取值范围为0~360,从红色开始按逆时针方向计算,红色为0,绿色为120,蓝色为240。它们的补色是:黄色为60,青色为18…

opencv--颜色识别

目录 一、主要函数介绍 二、颜色识别 三、其他相关函数介绍 1. cv2.resize 2. np.array(x,dtype) 3. cv2.inRange() 4. cv2.imshow() 5.cv2. waitKey() 四、掩膜 一、主要函数介绍 通常,相机在RGB颜色模式下工作,但这种模式受到光线的影响较大&am…

颜色识别OpenCV

下面有多种颜色识别方法,可根据需要进行选择 ①colorList.py(颜色库) import numpy as np import collectionsdef getColorList():dict collections.defaultdict(list)# blacklower_black np.array([0, 0, 0])upper_black np.array([180…

SPSSAU统计分析软件,一键输出三线表格式分析结果

SPSSAU最近和一位朋友聊天,她在写论文,说到自己用SPSS软件对问卷数据做统计分析,做完之后分析结果有了,拿给导师看,但她们导师说,论文中的表格必须是三线表格式,然后她就得要自己手动制作三线表…

SPSS软件的数据分析与GDP和人口老龄化的预测

目录 前言 问题二模型的建立与求解 1.2.1 ARIMA时间序列模型的建立与求解 平稳性检验 的时间序列预测模型的建立与求解 ​​​​​​​模型的检验 ​​​​​​​对于的时间序列预测模型的建立与求解 ​​​​​​​模型的检验 ​​​​​​​ 前言 SPSS软件的数据分析与GDP和…

数据分析与挖掘———SPSS Moderler

数据分析与挖掘———SPSS Moderler 一、Modeler给概述 1、SPSS Modeler基本认识 IBM SPSS Modeler是一组数据挖掘工具,通过这些工具可以采用商业技术快速建立预测性模型,并将其应用于商业活动,从而改进决策过程。 SPSS Modeler提供了各种…

用SPSS做数据分析(1)

写在前面: 爬虫今天停更一天,今天是周六,今天要把最近网课学习SPSS课程做个总结和回顾,明天继续更新爬虫的内容,今天这篇文章主要是SPSS中的数据管理,一些关于数据的简单操作,是属于SPSS中比较基础的内容,希望看完博客能动手亲自实践一下,会有奇效 文章目录 写在前面:SPSS数据…

利用SPSS做数据分析①(了解SPSS)

话不多说,上才艺,BGM,BGM,BGMBGM。。。哈哈哈哈 不闹了,接下来让我们一起认识一个非常好用的数据分析工具:SPSS 1、SPSS是什么? SPSS是广大统计爱好者和数据分析师最熟悉的名字,它…

如何用SPSS进行数据分析?

1.什么是SPSS SPSS是社会统计科学软件包的简称, 其官方全称为IBM SPSS Statistics。SPSS软件包最初由SPSS Inc.于1968年推出,于2009年被IBM收购,主要运用于各领域数据的管理和统计分析。作为世界社会科学数据分析的标准,SPSS操作…

数据分析5大软件大PK:Python、Excel、R、SAS、SPSS你最爱哪个?

转自 中国统计网 本文为转载分享,若侵权请联系后台删除 1 Excel Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件。Excel 是微软办公套装软件的一个…

SPSS:数据分析

目录 1、数据采集 2、数据是否服从正态分布 3、T检验(T Test) 4、方差分析(ANOVA) 5、卡方检验(Chi-square Test) 6、灰色关联度分析(Grey Relation Analysis,GRA)…

[SPSS] SPSS统计分析软件简介

SPSS的英文缩写来源于以下两个 ① Statistical Package for Social Science(社会科学统计软件包) ② Statistical Product and Service Solutions(统计产品与服务解决方案) SPSS是一种专业的统计分析软件。为用户提供了直观的图形化菜单界面,用户的数据管理和统计…

SPSS软件介绍

SPSS软件界面描述 IBM SPSS是目前常用的一种统计分析软件,SPSS(Statistical Product and Service Solutions)是统计产品和服务解决方案软件,操作简单,无需写代码,只需确定要分析的数据及之间的因变、自变关…

数据分析软件及spss简单操作

数据分析软件介绍 SPSS统计软件 SPSS是英文Statistical package for the social science 的缩写,翻译成汉语是社会学统计程序包,20世纪60年代末由美国斯坦福大学的三位研究生研制,1975年在芝加哥组建SPSS总部。SPSS系统特点是操作比较方…

SPSS数据分析全套教程(1)——SPSS概览

SPSS数据分析全套教程(1)——SPSS概览 什么是SPSS? 社会科学统计软件包(Statistical Package for the Social Science,SPSS)是世界著名的统计分析软件之一。 经近40年的发展,在全球已拥有大量…

初识数据分析利器SPSS

今天这篇文章小白带大家了解一款做数据分析的利器—SPSS。 不知道大家有没有了解过SPSS,如果了解过甚至使用过的同学又对这款工具有多深的认识呢? SPSS是一款常用的数据分析工具,不管是在学校课程、学术论文还是数据分析工作中都是非常常见…