代码语言:javascript复制
import cv2
img=cv2.imread('C:/Users/xpp/Desktop/Lena.png')#原始图像
bgra=cv2.cvtColor(img,cv2.COLOR_BGR2BGRA)#将彩色图片转换为灰度图片
b,g,r,a=cv2.split(bgra)#拆分红、绿、蓝3个颜色通道
a[:,:]=125
bgra125=cv2.merge([b,g,r,a])#合并红、绿、蓝、alpha4个颜色通道
a[:,:]=0
bgra0=cv2.merge([b,g,r,a])#合并红、绿、蓝、alpha4个颜色通道
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)
True
算法:图像阿尔法通道是RGB色彩空间三个通道的基础上,还可以加上一个A通道,也称alpha通道,表示透明度和半透明度。虽然图像阿尔法通道值不同,但是在图像显示时没有差别。这种四个通道的色彩空间被称为RGBA色彩空间,PNG格式的图像是一种典型的四通道图像。alpha通道的赋值范围是[0, 1],或[0, 255],表示从透明到不透明。
注意:在图像BGRA0处于预览模式时,看起来可能是一幅黑色的图像,将其开后就会看到它实际上是纯色透明的。