我在想我的代码出了什么问题。我想加载我的图像包含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)吗?谢谢!
(350, 590, 3)
(350,590,4)
0qx6xfy61#
只有三个通道的原因是图像是jpg的,它没有alpha通道。
jpg
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通道
(350, 590, 4)
png
BGR
BGRA
1条答案
按热度按时间0qx6xfy61#
只有三个通道的原因是图像是
jpg
的,它没有alpha通道。使用'lbj.png'将加载包含alpha通道的图像,然后
显示
(350, 590, 4)
。如果您将
jpg
转换为png
,那么此时您仍然只有三个通道,因为图像将只有原始jpg
中的BGR
通道。但是,您可以在此时添加一个alpha通道,使其成为BGRA
,然后继续使用透明度选项。在python-opencv-add-alpha-channel-to-rgb-image中回答添加alpha通道