我发现奇怪的是,numpy数组和PIL图像有不同的形状,在这种情况下,(H,W)
在numpy和(W,H)
在PIL。我的版本是,
名称:numpy版本:1.13.3
名称:枕头版本:4.1.1
IMG = '/path/to/test-image.jpg'
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
%matplotlib inline
with Image.open(IMG) as img:
print img.size
img_np_f = np.asarray(img, order='F')
print img_np_f.shape
img_np_c = np.asarray(img, order='C')
print img_np_c.shape
plt.subplot(131)
plt.imshow(img)
plt.subplot(132)
plt.imshow(img_np_f)
plt.subplot(133)
plt.imshow(img_np_c)
plt.show()
输出去了,
(320, 240)
(240, 320)
(240, 320)
但是,无论如何,似乎matplotlib正确处理它。
因为Numpy
不是一个成像库。
numpy.ndarray.shape
按照(H, W, D)
的顺序给出形状,以便与ndarray
轴(axis=0, axis=1, axis=2)
中使用的术语保持一致