为什么在将PIL Image转换为Numpy数组时大小不同?

时间:2018-03-03 13:49:32

标签: python numpy python-imaging-library

我发现奇怪的是,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正确处理它。

enter image description here

1 个答案:

答案 0 :(得分:0)

因为Numpy不是影像库。

numpy.ndarray.shape按照此顺序(H, W, D)给出形状,以保持与ndarray轴[{1}}

中使用的术语保持一致