MATLAB 如何使用HSV颜色空间进行颜色分割
在数字图像处理中,从图像中提取特定颜色或颜色范围,并丢弃所有其他颜色的过程称为颜色分割。在图像中,通过创建一个二进制掩码来执行颜色分割,以选择图像中处于指定颜色范围的所有像素。
颜色分割通常在特定颜色空间(如RGB(红-绿-蓝)颜色空间或HSV(色调-饱和度-值)颜色空间等)中使用。
在本文中,我们将学习如何使用MATLAB编程在HSV颜色空间中执行颜色分割。
在HSV颜色空间中,颜色分割是通过考虑图像的色调分量来实现的。其中,“色调”表示颜色的色调。从0到1的范围表示HSV颜色空间中色调值的整个颜色光谱。
颜色分割广泛应用于图像处理中,用于执行诸如去除背景、图像分割、对象识别等各种任务。
现在,让我们借助MATLAB示例程序来了解在HSV颜色空间中进行颜色分割的过程。
在图像中从红色到绿色进行颜色分割
示例
输出
代码解释
在这个MATLAB代码中,我们首先使用‘imread’函数读取一个RGB图像,并将其存储在变量‘in_img’中。接下来,我们使用‘rgb2hsv’函数将输入图像从RGB颜色空间转换为HSV颜色空间,并将其存储在变量‘hsv’中。然后,我们提取HSV图像的色调通道,并将其存储在变量‘h’中。
之后,我们在HSV颜色空间中指定了红色范围‘red_range’。然后,我们将该范围内的所有色调值设置为0.3333,即HSV空间中绿色的色调值。
接下来,我们用修改后的色调通道‘h’替换HSV图像中的原始色调通道‘hsv’,以应用颜色切片。然后,我们使用‘hsv2rgb’函数将修改后的HSV图像转换回RGB图像,以获取经过颜色切片的RGB图像,并将结果存储在变量‘out_img’中。
最后,我们使用‘imshow’函数显示原始图像和经过颜色切片到绿色的图像。
对图像进行从红色到紫色的颜色切片
示例
输出
代码解释
在这个MATLAB程序中,代码的实现和执行与MATLAB程序(1)相同。唯一的区别是,在这个MATLAB程序中,对红色到紫罗兰色的颜色进行了切片,其中在HSV颜色空间中指定的紫罗兰色的色调值为0.8。
因此,在本文中,我们通过MATLAB编程解释了图像在HSV颜色中的颜色切片。