Anu*_*dha 5 python opencv alpha numpy
我一直在研究彩色图像(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()
Run Code Online (Sandbox Code Playgroud)
我正在使用的图像是 -

您无法创建 2 通道“亮度-alpha”图像,但是您可以通过复制灰度通道并向其添加 alpha 通道,仅使用灰度值将 1 通道灰度图像转换为 BGRA。让l是灰度图像:
img_3gray = cv2.merge((l,l,l,a))
Run Code Online (Sandbox Code Playgroud)
您也不能仅将 alpha 通道应用于图像的一个通道,但您可以像我们之前所做的那样,将图像的单个通道(例如蓝色)转换为灰度图像:
img_3blue = cv2.merge((b,b,b,a))
Run Code Online (Sandbox Code Playgroud)
或者你可以只显示带有 alpha 的蓝色通道:
img_bzz = cv2.merge((b,z,z,a))
Run Code Online (Sandbox Code Playgroud)
哪里z都是零。
| 归档时间: |
|
| 查看次数: |
5658 次 |
| 最近记录: |