对图像的色彩空间进行了概念性介绍,并通过代码显示了每个色彩空间的每个通道的含义。本文的内容包括:什么是色彩空间?颜色空间的类别是什么?如何在OpenCV中实现?什么是色彩空间?颜色是一种连续现象,它意味着有无数种颜色。但是,人眼和感知能力有限。因此,为了识别这些颜色,我们需要这些颜色的媒介或表示形式。颜色的这种表示称为颜色空间。用技术术语来说,颜色模型或颜色空间是特定的3D坐标系和系统中的子空间,其中每种颜色都由一个点表示。色彩空间有哪些类型?当前有五种颜色模型。但是,我只会写一些普通的(RGB,HSV和HSL)。 RGB(红色绿色蓝色)HSL(色调饱和度亮度)HSV(色调饱和度值)YUV(亮度,蓝色亮度,红色亮度)CMYK(青色,品红色,黄色,键)RGB颜色空间:RGB颜色空间是红色的三维坐标系,绿色,由蓝色坐标表示的众所周知的色彩空间之一。用更专业的术语来说,RGB将颜色描述为三个部分的元组。每个部分可以取0到255之间的值,其中元组(0,0,0)表示黑色,而元组(255,255,255)表示白色。元组的第0,第1和第2部分分别代表红色,绿色和蓝色分量。 RGB颜色空间的Python实现:这里我们导入必要的库,cv2用于颜色空间转换,NumPy用于数组操作,Matplotlib用于显示图像,os用于访问图像目录,tqdm用于显示加载栏。设置两个空列表Z和X,用于存储带有各自图像的标签,然后指定图像大小和路径目录。之后,我定义了两个函数以返回花朵类型(assign_lable)并访问每个图像,读取并调整其大小(make_train_data)。加载图像,然后在OpenCV读取BGR格式的图像时将BGR颜色空间转换为RGB颜色空间,但是Maplotlib使用RGB格式显示图像。这就是为什么我们需要在转换色彩空间后将图像读取为RGB。然后制作三张固定图像副本,并将每个副本的任何两个颜色通道设置为零,这两个通道分别用于访问红色,绿色和蓝色通道。如果您将第0个颜色通道全部设为0,那么您只会得到蓝色通道。显示图像:HSL色彩空间:HSL的一般含义是色相,饱和度和亮度。您可以将圆柱体形式的HSL可视化,如图2(a)所示。圆柱体周围有不同的颜色,例如绿色,黄色,红色等(我们真正想要的颜色)。饱和度是指颜色的数量,而亮度是指颜色的暗或亮。如您所见,圆柱体的顶部全为白色,底部为全黑色。图2:HSL色彩空间的Python实现HSL色彩空间:使用OpenCV函数** cvtColor()**将BGR色彩空间转换为HSL色彩空间,这里我们需要传递图像,以及从哪个色彩空间传递到哪个色彩我想改变图像的空间。然后复制两个颜色通道并使它们为零,以分别显示每个颜色通道。现在显示三个不同的颜色通道→HSV颜色空间:名称HSV来自颜色模型的三个坐标,即色相,饱和度和值。它也是一个圆柱体颜色模型,圆柱体的半径代表饱和度,垂直轴代表值,角度代表色调。对于观察者来说,色相是主要的,饱和度是混入色相的白光的量,值是铬的强度,值越低的颜色越类似于黑色,值越高,颜色越像颜色本身。通过更改这些参数,我们可以生成不同的颜色。图3:HSV色彩空间HSV色彩空间Python实现:使用cvtColor()函数将色彩空间转换为HSV色彩空间。然后将两个通道复制并设置为零,以分别显示每个通道。分别显示每个颜色通道:英文原文:https://medium.com/analytics-vidhya/image-processing-series-part1-colorspaces-836d2e3ca700