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

问题描述 投票:0回答:1

我发现奇怪的是,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

python numpy python-imaging-library
1个回答
0
投票

因为Numpy不是一个成像库。

numpy.ndarray.shape按照(H, W, D)的顺序给出形状,以便与ndarray(axis=0, axis=1, axis=2)中使用的术语保持一致

© www.soinside.com 2019 - 2024. All rights reserved.