【发布时间】:2018-06-26 10:23:21
【问题描述】:
我正在使用三个不同的库在 python 中读取图像
- imageio
- PIL.Image
- cv2.
我在使用这些库中的每一个读取图像时得到的输出都是不同的。例如
-
关于使用 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)
为什么我在使用三个不同的库时会为同一个图像获得三种不同的尺寸?请帮助我理解其中的区别。
【问题讨论】:
-
你明白这些数字的含义吗?
-
所有尺寸都相同...高度 500,宽度 334。它们可能表示数据不同...第三维是深度,在 OpenCV 中,例如,这意味着通道加载图像时默认为 3 (BGR)
-
是的,我知道在每种情况下我都在获取图像的高度和宽度,但是 imageio 的通道数是 4,而 Opencv 的通道数是 3。我感到困惑的原因。
-
我不太明白你在问什么:你正在使用三个不同的库,所以你当然不能指望所有三个库都给你相同的输出。您应该在每个库的文档中查找每个值的含义。
-
@poke 我试图读取索引图像,但不确定哪个库适合。所以我尝试了三个不同的库,它们为同一索引图像提供了三种不同的结果,并且还显示了不同的图像形状。这就是我困惑的原因。同样早些时候,我对 Alpha 通道一无所知。
标签: python opencv python-imaging-library python-imageio