24

Pillow と numpy を使用していますが、Pillow Image オブジェクトと numpy 配列の間の変換に問題があります。

次のコードを実行すると、結果が奇妙になります。

im = Image.open(os.path.join(self.img_path, ifname))
print im.size
in_data = np.asarray(im, dtype=np.uint8)
print in_data.shape

結果は

(1024, 768)
(768, 1024)

なぜ次元が変わるのですか?

4

3 に答える 3

17

numpyの配列は行優先ですが、列優先かもしれません

in_data = in_data.TPython配列を転置するために行う

おそらく in_data をmatplotlib'sでチェックimshowして、画像が正しく見えることを確認する必要があります。

しかし、matplotlib には、numpy 配列を直接提供する独自の読み込み関数が付属していることをご存知ですか? 参照: http://matplotlib.org/users/image_tutorial.html

于 2013-09-25T22:53:09.190 に答える
6

画像がグレースケールの場合:

in_data = in_data.T

ただし、RGB 画像を操作している場合は、転置操作が 2 つの軸のみに沿っていることを確認する必要があります。

in_data = np.transpose(in_data, (1,0,2))
于 2016-03-16T19:06:58.447 に答える