我正在使用三个不同的库
在python中读取图像我用这些库中的每一个读取图像的输出是不同的。例如
使用imageio阅读
a = imageio.imread('test_img.png')
输出的类型为 - uint8,大小为(500,334,4)
使用图片
b = Image.open('test_img.png')
类型 - 图像,大小(334,500)
使用cv2
c = cv2.imread('test_img.png')
type- uint8,size(500,334,3)
为什么在使用三个不同的库时,我为同一图像获得三种不同的大小?请帮助我理解差异。
答案 0 :(得分:2)
你从imageio& OpenCV是图像的三个属性,高度,宽度和宽度。频道(或深度)。对于标准BGR图像,您只有3个通道,这就是为什么您看到OpenCV
的3个通道对于imageio,它可能正在读取第四个通道,通常为alpha,表示图像透明度,通常在PNG图像中找到。
如果您想要使用OpenCV的第四个频道,那么您需要使用以下代码:
Mat image = imread("image.png", IMREAD_UNCHANGED);
哪个会给你第四个频道