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日
------------------------------------------------------------------------------------------------------------*/