通过分析 L*a*b* 颜色空间来识别织物中的不同颜色

简介: 通过分析 L*a*b* 颜色空间来识别织物中的不同颜色

一、前言
通过分析 Lab* 颜色空间来识别织物中的不同颜色。
二、实现步骤
步骤 1:采集图像
这是一个彩色织物图像。
1.png

步骤 2:基于 Lab 颜色空间计算每个区域的样本颜色
您可以在图像中看到六种主要颜色:背景色、红色、绿色、紫色、黄色和洋红色。请注意,您可以很轻松地在视觉上区分这些颜色。L
ab 颜色空间(也称为 CIELAB 或 CIE Lab*)使您能够量化这些视觉差异。

Lab 颜色空间是从 CIE XYZ 三色值派生的。Lab 空间包含亮度层 'L'、色度层 'a'(表示颜色落在沿红-绿轴的位置)和色度层 'b*'(表示颜色落在沿蓝-黄轴的位置)。

您的方法是为每种颜色选择一个小样本区域,并计算每个样本区域的基于 'ab' 空间的平均颜色。您将使用这些颜色标记对每个像素进行分类。
为了简化此示例,请加载存储在 MAT 文件中的区域坐标。
使用 rgb2lab 将您的织物 RGB 图像转换为 Lab 图像。用 roipoly 提取的每个区域的 'a' 和 'b' 均值。这些值用作基于 'ab' 空间的颜色标记。
步骤 3:使用最近邻规则对每个像素进行分类
现在每个颜色标记都有一个 'a
' 和一个 'b*' 值。您可以通过计算 lab_fabric 图像中每个像素与每个颜色标记之间的欧几里德距离对该像素进行分类。最小距离表示像素最接近该颜色标记。例如,如果某像素和红色标记之间的距离最小,则该像素将被标记为红色像素。
创建一个包含颜色标签的数组,即 0 表示背景,1 表示红色,2 表示绿色,3 表示紫色,4 表示洋红色,5 表示黄色。初始化用于最近邻分类的矩阵。执行分类。
步骤 4:显示最近邻分类的结果
标签矩阵包含织物图像中每个像素的颜色标签。使用标签矩阵按颜色分离原始织物图像中的对象。以蒙太奇方式显示五种分割颜色。同时显示图像中未归类为颜色的背景像素。
2.png

步骤 5:显示已标注颜色的 'a' 和 'b' 值
通过绘制分类为不同颜色的像素的 'a' 和 'b' 值,您可以看到最近邻分类对不同颜色总体的区分情况。出于显示目的,用颜色标签标注每个点。
3.png

目录
相关文章
圆形算法识别
圆形算法识别
|
6月前
|
计算机视觉 Python
opencv识别颜色
opencv识别颜色
|
3月前
|
算法 计算机视觉 Python
圆形检测算法-基于颜色和形状(opencv)
该代码实现了一个圆检测算法,用于识别视频中的红色、白色和蓝色圆形。通过将图像从RGB转换为HSV颜色空间,并设置对应颜色的阈值范围,提取出目标颜色的区域。接着对这些区域进行轮廓提取和面积筛选,使用霍夫圆变换检测圆形,并在原图上绘制检测结果。
108 0
|
7月前
|
机器学习/深度学习 算法
五种基于RGB色彩空间统计的皮肤检测算法
五种基于RGB色彩空间统计的皮肤检测算法
53 0
|
8月前
[Halcon&图像] 图像、区域和轮廓相互转化
[Halcon&图像] 图像、区域和轮廓相互转化
316 1
|
机器学习/深度学习 人工智能 算法
OpenCV-差分法实现绿叶识别(图像差分+颜色通道)
OpenCV-差分法实现绿叶识别(图像差分+颜色通道)
216 0
|
算法 计算机视觉
阴影检测
阴影检测
156 0
|
数据可视化 算法 安全
自动检测图像中的圆形目标并可视化检测到的圆
说明如何自动检测图像中的圆或圆形目标并可视化检测到的圆。
210 0
|
算法 编译器 Python
CV7 颜色追踪和图像阈值
因为在HSV中比在BGR颜色空间中更容易表示颜色,所以我们需要将BGR图像转换成HSV,用来提取一个有颜色的对象
170 0