别人没那么重要,我也没那么重要,好好活着,把能做的小事做好,够不到的东西就放弃,承认就好。做一个心情好能睡着的人,你所有事情都会在正轨上。

PythonOpenCV-图像变换-色彩空间变换

0. 简介

  色彩空间变换是图像在计算机内部的一种存储形式。常见的色彩空间变换包括RGB、GRAY、XYZ、YCrCb、HSV等。OpenCV默认采用BGR色彩空间。

色彩空间变换函数原型

dst = cv2.cvtColor(src, code[, dstCn])

参数说明

dst:转换后的图像

src:转换前的图像

code:色彩空间类型转换码

  cv2.COLOR_BGR2RGB:将BGR色彩空间转换为RGB色彩空间

  cv2.COLOR_BGR2GRAY:将BGR色彩空间转换为GRAY色彩空间

  cv2.COLOR_BGR2HSV:将BGR色彩空间转换为HSV色彩空间

  cv2.COLOR_BGR2YCrCb:将BGR色彩空间转换为YCrCb色彩空间

  cv2.COLOR_RGB2BGR:将RGB色彩空间转换为BGR色彩空间

  cv2.COLOR_RGB2GRAY:将RGB色彩空间转换为GRAY色彩空间

  cv2.COLOR_RGB2HSV:将RGB色彩空间转换为HSV色彩空间

  cv2.COLOR_RGB2YCrCb:将RGB色彩空间转换为YCrCb色彩空间

dstCn:目标图像的通道数

本例原图(BGR):

1. RGB色彩空间

  RGB色彩空间中,图像的每个像素用一个三元组表示,三元组中的3个值一次表示为红色、绿色和蓝色,依次对应R、G、B。OpenCV默认采用BGR色彩空间。

代码示例

import cv2 as cv

Img = cv.imread(r"D:\PersonalFile\Picture\flower.jpg")
cv.imshow("BGR", Img)
Img1 = cv.cvtColor(Img, cv.COLOR_BGR2RGB)
cv.imshow("RGB", Img1)

cv.waitKey(0)

运行结果

2. GRAY色彩空间

  GRAY色彩空间通常指8位灰度图像,其颜色取值范围为[0, 255],共256个灰度级。

  从RGB色彩空间转成GRAY色彩空间的计算公式如下:

  其中R、G和B为RGB色彩空间中的R、G和B通道的图像。

代码示例

import cv2 as cv

Img = cv.imread(r"D:\PersonalFile\Picture\flower.jpg")
cv.imshow("BGR", Img)
Img1 = cv.cvtColor(Img, cv.COLOR_BGR2GRAY)
cv.imshow("HSV", Img1)

cv.waitKey(0)

运行结果

 

3. YCrCb色彩空间

  YCrCb色彩空间用亮度Y、红色Cr和蓝色Cb表示图像。

  从RGB色彩空间转成GRAY色彩空间的计算公式如下:

  

代码示例

import cv2 as cv

Img = cv.imread(r"D:\PersonalFile\Picture\flower.jpg")
cv.imshow("BGR", Img)
Img1 = cv.cvtColor(Img, cv.COLOR_BGR2YCrCb)
cv.imshow("YCrCb", Img1)

cv.waitKey(0)

运行结果

 

4. HSV色彩空间

  HSV色彩空间使用色调(Hue,也称为色相)、饱和度(Saturation)和亮度(Value)表示图像。

  色调H:表示颜色,用角度表示,取值范围为[0°, 360°],从红色开始逆时针方向计算。例如,红色为0°、黄色为60°、绿色为120°、青色为180°、蓝色为240°、紫色为300°等。

  饱和度S:表示颜色接近光谱色的程度,或者表示光谱色中混入白光的比例。光谱色中混入的白光的比例越低,饱和度越高,颜色越深、艳。光谱色中白光比例为0时,饱和度最高。饱和度取值范围为[0, 1]。

  亮度V:表示颜色明亮程度,是人眼可以感受到的明暗程度。其取值范围为[0, 1]。

  从RGB色彩空间转成GRAY色彩空间的计算公式如下:  

  

   

   

   计算结果中,如果H < 0,则令H = H + 360

代码示例

import cv2 as cv

Img = cv.imread(r"D:\PersonalFile\Picture\flower.jpg")
cv.imshow("BGR", Img)
Img1 = cv.cvtColor(Img, cv.COLOR_BGR2HSV)
cv.imshow("HSV", Img1)

cv.waitKey(0)

运行结果

 

 

/*-------------------------------------------------------------------------------------------------------

笔者说明:

  该笔记来源于本人学习Python + OpenCv时的资料,

  分享出来只是为了供大家学习,并且为了自己以后想要用的时候方便寻找。

时间:2023年4月16日

------------------------------------------------------------------------------------------------------------*/

posted @ 2023-04-16 09:42  一路狂奔的乌龟  阅读(64)  评论(0编辑  收藏  举报
返回顶部