HOWTO · NumPy

PIL イメージを NumPy 配列に変換する

Python で PIL イメージを 3 次元の NumPy 配列に変換するために使用できる主なメソッドは、numpy.array()関数と numpy.asarray()関数の 2つです。

このページの内容

このチュートリアルでは、Python で PIL 画像を 3 次元の NumPy 配列に変換する方法について説明します。

Python の numpy.array() 関数を使用して、PIL イメージを NumPy 配列に変換する

PIL は、Python で画像に対してさまざまな操作を実行するために使用されます。Pillow ライブラリには、Python プログラミング言語がプリインストールされていません。したがって、最初にインストールする必要があります。Pillow ライブラリをインストールするコマンドを以下に示します。

pip install Pillow

PIL ライブラリによって読み取られた画像を NumPy 配列に変換する場合は、numpy.array() 関数を使用できます。numpy.array() 関数は、numpy 配列を作成して初期化します。numpy.array() 関数は、PIL 画像を 3 次元配列に変換します。次のコード例を参照してください。

import numpy as np
from PIL import Image

img = Image.open("NASA.jpg")
imgArray = np.array(img)
print(imgArray.shape)

出力:

(90, 240, 3)

上記のコードでは、numpy.array() 関数を使用して、PIL 画像 img を 3 次元の NumPy 配列 imgArray に変換しました。Python の Image.open() 関数を使用して、変数 img 内の画像を読み取ります。次に、Python の numpy.array() 関数を使用して、img を NumPy 配列 imgArray に変換しました。最後に、print() 関数を使用して imgArray の形状を出力しました。

Python の numpy.asarray() 関数を使用して、PIL イメージを NumPy 配列に変換する

numpy.asarray() 関数を使用して、前の例と同じ目標を達成することもできます。numpy.asarray() 関数も numpy 配列を作成して初期化します。画像を numpy.asarray() 関数に渡すことで、PIL 画像を numPy 配列に変換できます。次のコード例を参照してください。

import numpy as np
from PIL import Image

img = Image.open("NASA.jpg")
imgArray = np.asarray(img)
print(imgArray.shape)

出力:

(90, 240, 3)

上記のコードでは、Python の numpy.array() 関数を使用して、PIL 画像 img を 3 次元 NumPy 配列 imgArray に変換しました。Python の Image.open() 関数を使用して、img 変数にをロードしました。次に、Python の numpy.asarray() 関数を使用して、img 画像を NumPy 配列 imgArray に変換しました。最後に、print() 関数を使用して imgArray の形状を出力しました。