なにをしたか?
→画像データを1次元配列に変換
機械学習で画像データをインプットするときには、入力の次元数に合わせてデータを変換して投入する必要があります。以下では、画像データを1次元の配列に変換してみました。
<実施手順>
- 必要なライブラリーのインポート
- PILを使って画像ファイル読み込み
- Numpyを使用して画像ファイルをピクセル値で入力
- 正規化
- 2次元 → 1次元データに変換
実際にやってみた
JupyterNotebookを使用して以下を実行しました
1. 必要なライブラリのインポート
import numpy as np #numpyのインポート
from PIL import Image #PILのインポート
2. PILを使って画像ファイル読み込み
image1 = Image.open('./data/pict/image1.jpg')
image1
3. Numpyを使用して画像ファイルをピクセル値で入力
image1_px = np.array(image1)
print(image1_px)
ピクセルの値を確認
print(image1_px.shape)
# (300,500,3)
上記の出力されたimage1_pxが300(行)×500(列)のカラーチャンネル3であることを確認できました。
4. 正規化
image1_nor = image1_px.astype(np.float32)/255.0
print(image1_nor)
正規化されて0〜1になっていることが確認できました。
5. 2次元 → 1次元データに変換
image1_fl = image1_nor.flatten()
print(image1_fl)
1次元のデータが出力されていることが確認できました。