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+处理EXIF orientation,因此它会加载并旋转图像,io.imread
不会。
因此,图像的真实方向是io.imread
返回的方向。