opencv-python-学习笔记八(颜色空间转化)

1.颜色空间转换

OpenCV中有150多种颜色空间转换方法。但是我们将研究只有两个最广泛使用的,BGR↔Gray 和BGR↔HSV,BGR和灰度图的转换使用 cv2.COLOR_BGR2GRAY ,
BGR和HSV的转换使用 cv2.COLOR_BGR2HSV。在HSV空间中,H表示色彩/色度,取值范围 [0,179],S表示饱和度,取值范围 [0,255],V表示亮度,取值范围 [0,255]。但是不同的软件使用值不同

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

参数:

src:输入图像:8位无符号,16位无符号(CV_16UC…),或单精度浮点。

code:转换方式

dst:与原图像深度大小相同的输出图像。可省略

dstCn:标图像通道数,默认为0,表示由src和code决定。

打印所有的code:

import cv2 as cv


flags = [i for i in dir(cv) if i.startswith('COLOR_')]
print(flags)

函数说明:

该函数将输入图像从一个颜色空间转换为另一个颜色空间。

 

举例

 

import matplotlib.pyplot as plt
import cv2

img_BGR = cv2.imread('2.jpg')  # BGR
plt.subplot(331), plt.imshow(img_BGR), plt.axis('off'), plt.title('BGR')

img_RGB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2RGB)
plt.subplot(332), plt.imshow(img_RGB), plt.axis('off'), plt.title('RGB')

img_GRAY = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2GRAY)
plt.subplot(333), plt.imshow(img_GRAY), plt.axis('off'), plt.title('GRAY')

img_HSV = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2HSV)
plt.subplot(334), plt.imshow(img_HSV), plt.axis('off'), plt.title('HSV')

img_YcrCb = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2YCrCb)
plt.subplot(335), plt.imshow(img_YcrCb), plt.axis('off'), plt.title('YcrCb')

img_HLS = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2HLS)
plt.subplot(336), plt.imshow(img_HLS), plt.axis('off'), plt.title('HLS')

img_XYZ = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2XYZ)
plt.subplot(337), plt.imshow(img_XYZ), plt.axis('off'), plt.title('XYZ')

img_LAB = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2LAB)
plt.subplot(338), plt.imshow(img_LAB), plt.axis('off'), plt.title('LAB')

img_YUV = cv2.cvtColor(img_BGR, cv2.COLOR_BGR2YUV)
plt.subplot(339), plt.imshow(img_YUV), plt.axis('off'), plt.title('YUV')
plt.show()

cv2.imshow('gray', img_GRAY)

k = cv2.waitKey(0)  # 始终检测键盘
if k == 27:  # 按ESC退出
    cv2.destroyAllWindows()

 

opencv-python-学习笔记八(颜色空间转化)

 

上一篇:【题解】使用分治法找出第K大的数 (递归+分治)


下一篇:Kafka连接服务器异常:Connection to node 0 (/127.0.0.1:9092)