[PR]テレビ番組表
今夜の番組チェック

色を変える

一応プログラムの開発手順を載せておきます。

プログラム開発手順

  1. Groupを打ち込む(適当に名前をつける)
  2. Titleを打ち込む(適当に名前をつける)
  3. [Clear]ボタンを押す(別に押さなくてもプログラムを上書きすればよい)。
  4. Initializeプログラムを打ち込む
  5. Transformプログラムを打ち込む
  6. [Compile]ボタンを押してエラーチェックする
  7. [Save]ボタンを押してプログラムを保存する


基本的に色をいじる場合には、初期化プログラムは以下のものを使います。

---Initialize---
coord=0;

[Clear]ボタンを押した後、必要のない部分を削ればOKです。
あとはTransformのプログラムのみを編集します。

さて、ほとんどの画像がコンピュータ上ではカラーをあらわすために各ピクセル値はRGBの値で保存されています。それぞれ0〜255の値をとります。これは、この数値が1バイトに収まるので都合がいいからです(3Dグラフィックを扱う場合はfloatなどを使うため0〜1の実数を使うこともあります)。このプログラムでも、RGBの各値は0〜255をとります。計算結果が実数となった場合は小数点以下切捨てを行っています。

次のプログラムを考えて見ます。

---Transform---
R=0;
B=0;

RとBに0を設定しています。ということは、Gの値のみデフォルトが残るということになります。結果は、赤も青の成分も含まない画像になります。




では、次のようにしてみましょう。

---Transform---
R=G;
B=G;

赤も青も緑の値にするというプログラムです。
三原色が全て同じ値になるので、モノクロになってしまいます。ここでGの値を選んだわけは、緑色が三原色の中で一番人間の目に敏感だからです。




では明るい色を暗くして、暗い色を明るくしたら?

---Transform---
R=255-R;
G=255-G;
B=255-B;

このプログラムでは、255の値は0に、0は255に変更されます。よって、明るい色は暗く、暗い色は明るくなります。




ネガ写真のようになります。

今度は緑をちょっと強調してみましょう。Gを1.2倍して、Gに代入しています。

---Transform---
G=G*1.2;

左の元の写真が、右のようになります。緑が明るくなりましたが、花の色も緑っぽくなってしまいました。





写真の色を変えるというのも、このように実は簡単な数式で実現できます。

戻る