Python OpenCV从入门到精通——第五章——色彩空间与通道

#光线有多种色彩,人类建立了多种色彩模型即色彩空间,每种色彩空间中都有多个通道,通过通道值的组合显示出颜色
#灰度图像:即图像中每一个像素都是单通道的。(BGR三个通道中的值都相等即单通道),0表示纯黑色,255表示纯白色,因此有256个灰度等级
#实际上灰度图像是无法转换成彩色图像的,因为在彩色图像转换为灰度图像时丢失了颜色比例
#HSV空间:色调(光的颜色,于[0,180]内取值)、饱和度(色彩的深浅,于[0,255]内取值0表示灰度图像)、亮度([0,255]内取值,值越大图像越亮
#显示单通道的值,即三个通道的值都变为此通道的值,即灰度图像(若色彩空间为BGR)
#alpha色彩空间:BGRA,相较于BGR增加了一个图像透明度通道于[0,255]内取值,0透明,255不透明。PNG图像即为alpha类型图像。
#唯有将修改透明度的图像保存才能够正确查看。否则与原图一样。
import cv2

#           —————————————————————————色彩空间的转换
#   dst = cv2.cvtColor(src,code)    值分别代表分别为:转换后图像,转换前图像,色彩空间转换码
image = cv2.imread("5.1.jpg")
cv2.imshow("5.1", image)
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)        # 从BGR色彩空间转换到GRAY色彩空间
hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV)          # 从BGR色彩空间转换到HSV色彩空间
bgra_image = cv2.cvtColor(image, cv2.COLOR_BGR2BGRA)        # 从BGR色彩空间转换到BGRA色彩空间
BGR = cv2.cvtColor(gray_image, cv2.COLOR_GRAY2BGR)          # 从GRAY色彩空间转换到BGR色彩空间
bgr = cv2.cvtColor(hsv_image, cv2.COLOR_HSV2BGR)            # 从HSV色彩空间转换到BGR色彩空间

b, g, r = cv2.split(image)                                  # 拆分BGR图像的通道
h, s, v = cv2.split(hsv_image)                              # 拆分HSV图像中的通道
b1, g1, r1, a1 = cv2.split(bgra_image)                      # 拆分BGRA图像中的通道
bgr = cv2.merge([b, g, r])                                  # 按B→G→R的顺序合并通道
hsv = cv2.merge([h, s, v])                                  # 按H→S→V的顺序合并通道
bgra_172 = cv2.merge([b1, g1, r1, a1])                      # 按B→G→R->A的顺序合并通道
a1[:, :] = 172                                              # 将BGRA图像的透明度调整为172(半透明)
cv2.imshow("H", h)                                          # 分别显示H、S、V通道图像
cv2.imshow("S", s)
cv2.imshow("V", v)
cv2.imshow("B", b)                                          # 分别显示B、G、R通道图像
cv2.imshow("G", g)
cv2.imshow("R", r)


cv2.waitKey()
cv2.destroyAllWindows()

5.1.jpg
Python OpenCV从入门到精通——第五章——色彩空间与通道_第1张图片

你可能感兴趣的:(OpenCV,计算机视觉基础教程,计算机视觉,opencv,python)