使用Open CV Python向单色图像添加alpha通道

2024-05-23 18:31:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在研究彩色图像(RGB)和带有alpha通道(RGBA)的彩色图像。从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


Tags: 方法代码图像importalphaimgchannelrgb
1条回答
网友
1楼 · 发布于 2024-05-23 18:31:33

不能创建双通道“亮度alpha”图像,但是可以通过复制灰度通道并将alpha通道添加到其中,仅使用灰度值将单通道灰度图像转换为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都是零。

相关问题 更多 >