alpha通道
2021-10-01 本文已影响0人
大龙10
《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05
第4章 色彩空间类型转换
4.4 HSV色彩空间讨论
4.5 alpha通道
1)定义
在RGB色彩空间三个通道的基础上,还可以加上一个A通道,也叫alpha通道,表示透明度。这种4个通道的色彩空间被称为RGBA色彩空间,PNG图像是一种典型的4通道图像。
alpha通道的赋值范围是[0, 1],或者[0, 255],表示从透明到不透明。
2)程序
【例4.13】编写一个程序,对图像的alpha通道进行处理。
- 首先从当前目录下读取文件lenacolor.png,然后将其进行色彩空间变换,将其由BGR色彩空间转换到BGRA色彩空间,得到bgra,即为原始图像lena添加alpha通道。
- 接下来,分别将提取得到的alpha通道的值设置为125、0,并将新的alpha通道与原有的BGR通道进行组合,得到新的BGRA图像bgra125、bgra0。
- 接着,分别显示原始图像、原始BGRA图像bgra、重构的BGRA图像bgra125和bgra0。
- 最后,将3个不同的BGRA图像保存在当前目录下。
import cv2
img=cv2.imread("lenacolor.png")
bgra = cv2.cvtColor(img, cv2.COLOR_BGR2BGRA)
b,g,r,a=cv2.split(bgra)
a[:,:]=125
bgra125=cv2.merge([b,g,r,a])
a[:,:]=0
bgra0=cv2.merge([b,g,r,a])
cv2.imshow("img",img)
cv2.imshow("bgra",bgra)
cv2.imshow("bgra125",bgra125)
cv2.imshow("bgra0",bgra0)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imwrite("bgra.png", bgra)
cv2.imwrite("bgra125.png", bgra125)
cv2.imwrite("bgra0.png", bgra0)
3)运行结果
alpha通道值为0的PNG图像是透明的,覆盖在其他图像上时,可以透过该PNG图像看见后面的背景图像。