アナログとデジタルの違いは、連続的な量を扱うか、とびとびの離散的な量を扱うかの違いといえます。連続的に針が動くアナログ時計と数字がとびとびに変化するデジタル時計を思い浮かべると分かりやすいです。
コンピュータ上の画像はデジタル画像として取り扱われます。画素と呼ばれる小さな色の点が集まってデジタル画像が構成されています。
手書き数字のデジタル画像を表示し、中身がどうなっているか見てみましょう
ライブラリとしてインストールしたscikit-learnに収録されている手書き数字データを使用します
ライブラリには数多くの関数があるので、目的に応じたモジュールを利用する前に読み込む必要があります。モジュールは次のように読み込みます。
import モジュール名, モジュール名, …
import モジュール名 as 別名
別名は何でも自由ですが、numpy ならnp、pandasならpdのように慣例的に決まっているものもあります
読み込んだ関数を使うには、モジュール名と関数を指定して呼び出します
モジュール名.関数()
モジュール全体ではなく特定の関数を指定して読み込むこともできます
その場合はfromから始まる書式を使います
from モジュール名 import 関数名
from モジュール名 import 関数名 as 別名
モジュール全体を読み込んだときと違って、モジュールを指定せずに関数名だけで利用できます
関数()
以下のコードは、読み込んだデータのうち先頭から15個分の数字を表示します
import matplotlib.pyplot as plt #手書きデータの読み込み from sklearn import datasets digits = datasets.load_digits() #15個表示する for i in range(15): plt.subplot(3, 5, i+1) plt.axis("off") plt.title(str(digits.target[i])) plt.imshow(digits.images[i], cmap="gray") plt.show()
上の数字から最初の1個を取り出して中身の成分を見てみましょう
d0 = digits.images[0] plt.imshow(d0, cmap="gray") plt.show() print(d0)
手書き数字は8×8ピクセルであり、各ピクセルは0から16までの値で表されます
下の行列が数字を表しています。ぼーっと眺めると0以外の数字が「0」を描いているように見えませんか?笑
コンピュータで扱う画像がデジタルっていう感触が少しは伝わっていたら嬉しいです
コメント