问题

在阅读PNG图像文件时,我使用opencvskimage测试了输入过程,并发现输入图像的形状不同.导致这些差异的原因是什么,为什么skimagePNG文件生成四个通道?

这是代码段

 from skimage.io import imread
image = imread("C:\Desktop\test1.png")
import cv2
img = cv2.imread("C:\Desktop\test1.png")
print("skimage shape: ",image.shape)
print("cv2 shape: ",img.shape)
 

输出是

 skimage shape:  (247, 497, 4)
cv2 shape:  (247, 497, 3)
 

  最佳答案

OpenCV的imread()默认抛弃了alpha通道(BGRA中的第四个通道).如果您想保持它,您需要使用 IMREAD_UNCHANGED 标志:

imread_nity Python:cv.IMREAD_nition

如果设置,返回加载的图像(使用alpha通道,否则它被裁剪).

skimage的imread() 没有这种行为.如果存在,则包含alpha通道:

不同的颜色带/通道存储在第三维,这样的灰度图像是MxN,RGB-image MxNx3和RGBA-image MxNx4。

  相同标签的其他问题

opencvimage-processingcomputer-visionscikit-image