第三回-03 画像処理アプリケーションをいろいろと変更してみよう

さて、以下では配布した画像処理アプリケーションに手を加えて 変更してもらう。
このページの内容は本日の課題にも関係してくるのでしっかりと押えておこう。

まずは色について理解しよう

[演習 1]
読み込んだ画像の横に表示する画像を赤一色のベタ塗りに変更してみよう

まずは、コンピュータ上での色の表現方法について理解しているかを問う演習。

このリンクのアプリケーションで、まずは赤色がどういう RGB の組合せで表現されるかを調べる。
赤の場合は調べるまでもなく R=255、G=0、B=0 であることはわかる (はず)。

これをプログラムに書く。 一般的なRGBの順番と、 配列上の順番 青 (Blue)緑 (Green)赤 (Red) は逆であることに注意する。
それを踏まえると以下のようにプログラムできる (オリジナルの部分は「//」によるコメントアウトで残した)。

R=255、G=0、B=0 の値の代入が、for 文により全てのピクセルで実行されることに注意して欲しい。



実行結果は以下の通り。




画像の位置の指定方法を理解しよう

[演習 2]
読み込んだ画像の横に表示する画像を、単純に読み込んだ画像のコピーとしてみよう

プログラムの配布時の状態は「入力画像を左右反転した状態」であったが、 これを「入力画像そのままの状態」に直すということ。

画像の位置の指定方法を理解していればできるはず。以下の通り。



実行結果は以下のようになる。




画像のそれぞれ色情報のみ抜きだしてみよう

[演習 3]
読み込んだ画像の横に表示する画像を、画像の赤情報のみを抜きだした画像としよう


赤情報と言われてもピンと来ないかもしれないが、まずは全てのピクセルは 青 (Blue)緑 (Green)赤 (Red)
3色の情報が組合わされて一つの色が決まっていることを思い出そう。

このうち、青 (Blue)緑 (Green)のみを強制的に 0 としてしまえば、赤についてだけの情報が取り出せる。
実際にやってみると以下の通り。これは [演習 2] の続きとして記述した。



結果は以下の通り。 人間の肌の色や鳥のオレンジ色には赤色の成分が多く含まれていることがわかるであろう。







←第三回-02 配布したGUIアプリケーションの概略第三回課題→

非情報系学生のための C/C++ 入門に戻る