从RGB到HSV,然后又返回

对带有Python和OpenCV的彩色空间的实用介绍,从RGB到HSV,然后再次出现在数据科学上。

来源:走向数据科学

计算机视觉中的一个基本概念是了解图像的存储和表示。在磁盘上,图像文件以各种方式编码,从有损的压缩JPEG文件到无损PNG文件。将图像加载到程序中并从相应的文件格式进行解码后,它很可能具有代表图像中像素的数组状结构。

计算机视觉 JPEG png

RGB

每个像素包含有关图像中该特定点的一些颜色信息。现在,表示这种颜色的最常见方法是在RGB空间中,每个像素都有三个值:红色,绿色和蓝色。这些值描述了每种颜色的存在,它们将是混合的。因此,例如,将所有值设置为零的图像都是黑色的。如果将所有三个值设置为100%,则结果图像将为白色。

颜色信息

有时这些颜色通道的顺序可以交换。另一个常见的顺序是BGR,因此订单被颠倒了。这在读取或显示图像时通常在OpenCV和默认值中使用。

bgr OpenCV

alpha通道

图像还可以包含有关透明度的信息。在这种情况下,存在一个其他alpha通道(RGBA)。 alpha值表示每个像素的不透明度:零的alpha表示像素是完全透明的,值为100%表示完全不透明的像素。

RGBA

HSV

rgb(a) 色调 饱和 value 激烈

现在,此颜色模型在图像处理中非常有帮助,因为它使我们能够从饱和度和亮度中将颜色色调解散,这是不可能直接在RGB中进行的。例如,如果您想要两种颜色之间的过渡并在完整的过渡过程中保持相同的亮度,那么使用RGB颜色模型实现这将是非常复杂的,而在HSV模型中,仅通过插值色调而简单地实现。

实例

1 - 颜色面具

cv2.color_bgr2hsv
python“>导入cv2img_bgr = cv2.imread(“ images/notes.png”)img_hsv = cv2.cvtcolor(img_bgr,cv2.color_bgr2hsv)
属性