Python 3でPIL画像をNumPy配列に変換する方法
Pythonは、多くの画像処理ライブラリを提供しており、その中でもPillow(PIL)は非常に人気があります。Pillowを使用することで、画像を簡単に操作でき、さらにNumPyと組み合わせることで、数値計算を効率的に行うことができます。本記事では、Pillowで読み込んだ画像をNumPy配列に変換する方法を詳しく解説します。
PillowとNumPyのインストール
まず、PillowとNumPyをインストールする必要があります。これらのライブラリはpipを使用して簡単にインストールできます。
pip install pillow numpy
画像をPILで読み込む
最初に、Pillowを使用して画像を読み込みます。以下のコードでは、サンプル画像を開きます。
from PIL import Image # 画像を開く image = Image.open('sample.jpg') image.show() # 画像を表示
このコードを実行すると、指定した画像ファイルが開かれ、表示されます。
画像をNumPy配列に変換する
次に、PIL画像をNumPy配列に変換します。これは非常に簡単で、NumPyのarray関数を使用するだけで実現できます。
import numpy as np # PIL画像をNumPy配列に変換 image_array = np.array(image) print(image_array.shape) # 配列の形状を出力
このコードを実行すると、画像の配列形状が表示されます。例えば、RGB画像の場合、出力は(高さ, 幅, 3)の形になります。
NumPy配列を操作する
NumPy配列に変換した後は、様々な操作が可能です。例えば、画像をグレースケールに変換したり、特定の色チャネルを抽出したりできます。
# グレースケールに変換 gray_image_array = np.mean(image_array, axis=2) # グレースケール画像の形状を出力 print(gray_image_array.shape)
このコードは、RGB画像をグレースケールに変換し、その形状を出力します。グレースケール画像の形状は(高さ, 幅)になります。
NumPy配列をPIL画像に戻す
最後に、NumPy配列を再びPIL画像に戻すことも可能です。これは、PILのImage.fromarray関数を使用します。
# NumPy配列をPIL画像に変換 new_image = Image.fromarray(image_array) # 画像を保存 new_image.save('new_sample.jpg')
このコードは、NumPy配列から新しい画像を生成し、それをファイルとして保存します。これにより、画像処理の結果を保存して共有することができます。
まとめ
PythonのPillowとNumPyを使用することで、画像を簡単に操作し、数値計算を行うことができます。これにより、画像処理の可能性が大幅に広がります。ぜひ、この記事を参考にして、画像処理のプロジェクトに挑戦してみてください。
Python 3 で PIL(Python Imaging Library)画像を NumPy 配列に変換する方法は、以下の手順に従います:
1. PIL ライブラリをインストールします(PIL は現在 Pillow として知られています)。
2. PIL で画像を開きます。
3. 画像を NumPy 配列に変換します。これには、numpy ライブラリをインポートして、`numpy.array()` メソッドを使用します。以下は、簡単なコード例です:
“`python
from PIL import Image
import numpy as np# 画像を開く
img = Image.open(‘image.jpg’)# 画像を NumPy 配列に変換
img_array = np.array(img)
“`このようにすると、PIL で開いた画像が NumPy 配列として変換されます。NumPy 配列を使用することで、画像データを効率的に処理できるようになります。