python OpenCv IMREAD_UNCHANGED 只返回三个通道

H_E*_*A_D 4 python opencv image

我试图找出我的代码有什么问题。

我想加载包含 Alpha 通道的图像,官方网站的描述如下:

cv.IMREAD_UNCHANGED:如果设置,则按原样返回加载的图像(带有 Alpha 通道,否则会被裁剪)。

这是我的尝试:

import cv2 as cv 

img2 = cv.imread( 'lbj.jpg' , cv.IMREAD_UNCHANGED)

img2.shape
Run Code Online (Sandbox Code Playgroud)

结果显示:(350, 590, 3)

不是应该的吗(350,590,4)?

谢谢!

Mic*_*ick 9

只有三个通道的原因是图像的jpg格式没有 Alpha 通道。如果您要加载例如png具有 Alpha 通道的格式图像,那么

img2 = cv.imread( 'lbj.png' , cv.IMREAD_UNCHANGED)
Run Code Online (Sandbox Code Playgroud)

与 'lbj. png ' 将加载包含 alpha 通道的图像,然后

img2.shape
Run Code Online (Sandbox Code Playgroud)

会显示(350, 590, 4).

如果将 a 转换jpg为 ,png那么此时您仍然只有三个通道,因为图像将仅具有BGR原始 中的通道jpg。但是,此时您可以添加一个 Alpha 通道来制作它BGRA,然后继续使用透明度选项。

添加 alpha 通道在python-opencv-add-alpha-channel-to-rgb-image中得到解答