python OpenCv IMREAD_UNCHANGED只返回三个通道

u4vypkhs  于 2023-04-21  发布在  Python
关注(0)|答案(1)|浏览(125)

我在想我的代码出了什么问题。
我想加载我的图像包含alpha通道和描述从官方网站上说:
cv.IMREAD_UNCHANGED:如果设置,则按原样返回加载的图像(使用Alpha通道,否则将对其进行裁剪)。
以下是我的尝试:

import cv2 as cv 

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

img2.shape

结果表明:(350, 590, 3)
不是应该是(350,590,4)吗?
谢谢!

0qx6xfy6

0qx6xfy61#

只有三个通道的原因是图像是jpg的,它没有alpha通道。

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

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

img2.shape

显示(350, 590, 4)
如果您将jpg转换为png,那么此时您仍然只有三个通道,因为图像将只有原始jpg中的BGR通道。但是,您可以在此时添加一个alpha通道,使其成为BGRA,然后继续使用透明度选项。
python-opencv-add-alpha-channel-to-rgb-image中回答添加alpha通道

相关问题