Jupyter Notebook (2)

前回に引き続き配列の操作を、Jupyter Notebookを使って、Pythonプログラムの逐次実行をしてみます。
今回は画像データの配列を操作します。
OpenCVのロゴ画像を読み込み、そのデータがどんな配列になって確認します。

読み込んだ画像は、縦220ドット、横180ドット、そしてRGB(赤、緑、青)の3色、つまり220 x 180 x 3の三次元配列のデータになっていることがわかります。
このデータを変更して、その変化を見てみます。
その前に色データはRGB値がそれぞれ0から255までの値で表現されます。
R=255,G=0,B=0 は赤色、R=0,G=255,B=0は緑色、R=0,G=0,B=255は青色で、それぞれの混ざり具合でさまざまな色を表現します。
黒色は、R=0,G=0,B=0、白色はR=255,G=255,B=255になるので、img配列変数の値が[0,0,0]から始まり、しばらく続いているのは画像の背景が黒色だから、ということが確認できます。

まず初めに3次元配列の色配列の部分の一番目(color[0]に相当するのは赤の値)を255にします。
今まで緑色だった部分R=0,G=255,B=0は、R=255にすることにより、黄色になりました。(R=255,G=255,B=0)
黒だった部分は赤になり、青だった部分は紫色になります。
次に色配列の二番目(color[1]に相当するのは緑)を255にします。

G=255を上書きするので、赤だった部分は黄色になります。その他はRGBすべて255になるので白になります。
最後に色配列の三番目(color[2]に相当するのは青)を255にします。

黄色R=255,G=255,B=0 にB=255を上書きするので、RGBすべて255になり白になります。

ここで言いたいことは、色の表現の仕組みだけでなく、この環境がデータ編集してその結果を確認することが簡単にできるということです。
このようなプログラムの部分実行は、実現したい機能について試行錯誤をするときに便利です。