配列としての画像
CoddyのMachine Learningジャーニー「データとプロット」セクションの一部。レッスン 29/60。
白黒写真は数値のグリッドで、各ピクセルに明るさの値が1つずつあります。つまり、2次元配列は画像であり、ax.imshowで描画できます。
plus = np.array([[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0],
[1, 1, 1, 1, 1],
[0, 0, 1, 0, 0],
[0, 0, 1, 0, 0]])
fig, ax = plt.subplots()
ax.imshow(plus, cmap="gray")
plt.show()cmap="gray" はグレーのカラーマップを選択します。最小値は黒、最大値は白です。配列に書かれているとおり、行 0 が上に描画されます。
写真は通常、0(黒)から255(白)までの値で保存されます。この学習の後半では、モデルがこのように保存された手書きの数字を読み取ります。
チャレンジ
中級スキャナーは印刷された文字を読み取りましたが、反転した状態で保存しました。暗い紙に明るいインクです。入れ子のリストscanには、各ピクセルの明るさが0から255の範囲で格納されています。
scanを配列に変換して反転させます。各ピクセルを255からその値を引いた値にします。- グレーのカラーマップを使って描画し、タイトルを
Letter Eにして、表示します。
修正後のスキャン画像であるLの文字は、次のようになります。
プログラムは何も出力しません。Coddyが画像を行ごとに説明します。
自分で試してみよう
import numpy as np
import matplotlib.pyplot as plt
scan = [[255, 255, 255, 255, 255],
[255, 30, 0, 0, 0],
[255, 0, 0, 0, 0],
[255, 255, 255, 200, 0],
[255, 0, 0, 0, 0],
[255, 0, 0, 0, 15],
[255, 255, 255, 255, 255]]
# 以下にコードを書いてください
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
データとプロットのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ