使用Open CV Python将Alpha通道添加到单色图像

时间:2014-11-20 11:02:53

标签: python opencv numpy alpha

我一直致力于使用alpha通道(RGBA)处理彩色图像(RGB)和彩色图像。从RGBA图像读取alpha通道非常简单,我甚至可以分割图像的4个通道。有没有什么方法可以将alpha通道添加到单色或灰度图像?此外,alpha通道可以单独添加到R,G,B通道吗?

我用来读取透明图像和分割通道的代码如下 -

import cv2
img = cv2.imread(image1_path,-1)

b = img[:,:,0]
g = img[:,:,1]
r = img[:,:,2]
a = img[:,:,3]

img_merge = cv2.merge((b,g,r,a))
cv2.imshow("img_merge",img_merge)

cv2.imshow("r channel",r)
cv2.imshow("g channel",g)
cv2.imshow("b channel",b)
cv2.imshow("a channel",a)
cv2.waitKey(0)
cv2.destroyAllWindows()

我正在使用的图片是 -

RGBA Image

1 个答案:

答案 0 :(得分:4)

你不能创建一个双通道"亮度-α"但是,您可以通过复制灰度通道并将Alpha通道添加到该通道,仅使用灰度值将1通道灰度图像转换为BGRA。让l成为灰度图像:

img_3gray = cv2.merge((l,l,l,a))

您也不能将Alpha通道仅应用于图像的一个通道,但您可以拍摄图像的单个通道(例如蓝色)并将其转换为灰度图像,如前所述:

img_3blue = cv2.merge((b,b,b,a))

或者您只能显示带有alpha的蓝色通道:

img_bzz = cv2.merge((b,z,z,a))

其中z全为零。