Python 这个图像的真实形状是什么?
Python 这个图像的真实形状是什么?,python,opencv,scikit-image,Python,Opencv,Scikit Image,cv2.imread和skimage.io.imread都将图像加载到ndarray,但形状不同 import cv2 from skimage import io im = cv2.imread(imfile) print im.shape # (2592, 1936, 3) im = io.imread(imfile) print im.shape # (1936, 2592, 3) 此图像的实际宽度/高度是多少?为什么这些形状不同 编辑:此问题仅在某些图像中出现 解决方案:Open
cv2.imread
和skimage.io.imread
都将图像加载到ndarray
,但形状不同
import cv2
from skimage import io
im = cv2.imread(imfile)
print im.shape # (2592, 1936, 3)
im = io.imread(imfile)
print im.shape # (1936, 2592, 3)
此图像的实际宽度/高度是多少?为什么这些形状不同
编辑:此问题仅在某些图像中出现
解决方案:OpenCV 3.1+似乎可以处理图像,因此它可以加载和旋转图像,而io.imread
则不能
因此,图像的真实方向是由
io返回的方向。imread
它们使用不同的布局来确定方向。真正的形状是您在文件中获得的形状。亲自查看,然后您就知道这两个库是如何进行布局的。当您引用单个像素时,请确保正确使用[x,y]或[y,x]。也许您的问题是特定于格式和库的。那个除非对于相同的文件扩展名和库,您可以为不同的图像获得不同的布局。图像可以用两种方式描述。有些将宽度标识为从左到右的垂直列,有些将宽度标识为最长的行。对于那些编写函数来读取图像的人来说,这是非常主观的。他们使用不同的方向布局。真正的形状是您在文件中获得的形状。亲自查看,然后您就知道这两个库是如何进行布局的。当您引用单个像素时,请确保正确使用[x,y]或[y,x]。也许您的问题是特定于格式和库的。那个除非对于相同的文件扩展名和库,您可以为不同的图像获得不同的布局。图像可以用两种方式描述。有些将宽度标识为从左到右的垂直列,有些将宽度标识为最长的行。这是非常主观的从那些谁写的函数如何读取图像。