cv2.cvtColor()是OpenCV中的一个函数,用于将图像从一个颜色空间转换为另一个颜色空间。这个函数接受两个参数:输入图像和转换类型。转换类型总共有三百多种,常用的转换类型包括:

  • cv2.COLOR_BGR2GRAY:将BGR图像转换为灰度图像
  • cv2.COLOR_BGR2RGB:将BGR图像转换为RGB图像
  • cv2.COLOR_BGR2HSV:将BGR图像转换为HSV图像
  • cv2.COLOR_GRAY2BGR:将灰度图像转换为BGR图像
一、将BGR转换成灰度图像
import cv2

img1 = cv2.imread("./1-1.jpg", cv2.IMREAD_UNCHANGED)

img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)

cv2.imshow("img-1", img1)
cv2.imshow("img-2", img2)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行效果:
图片alt

二、将BGR转换成RGB
import cv2

img1 = cv2.imread("./1-1.jpg", cv2.IMREAD_UNCHANGED)

img2 = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)

cv2.imshow("img-1", img1)
cv2.imshow("img-2", img2)

cv2.waitKey(0)
cv2.destroyAllWindows()

图片alt

三、将灰色图像转换成BGR
import cv2

img1 = cv2.imread("./1-gray.bmp", cv2.IMREAD_UNCHANGED)

img2 = cv2.cvtColor(img1, cv2.COLOR_GRAY2BGR)

cv2.imshow("img-1", img1)
cv2.imshow("img-2", img2)

cv2.waitKey(0)
cv2.destroyAllWindows()

图片alt

灰度图像转换成BGR图像,从图片上来看是看不出区别的,那么我们可以通过shape获取图片的属性.

import cv2

img1 = cv2.imread("./1-gray.bmp", cv2.IMREAD_UNCHANGED)

print(img1.shape)

img2 = cv2.cvtColor(img1, cv2.COLOR_GRAY2BGR)

print(img2.shape)

cv2.imshow("img-1", img1)
cv2.imshow("img-2", img2)

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果:

E:\python\opencv\venv\Scripts\python.exe E:\python\opencv\main.py 
(325, 520)
(325, 520, 3)

第一个是灰度图像的属性,只有行和列,第二个是转换后的,就包含了三个通道.