Article header library 129909  1

[画像合成ソフト製作] 第4話 独自機能-色補正にチャレンジ-

こんにちは、MIYA です。
前回の、[画像合成ソフト製作] 第3話 クロマキー合成にチャレンジ ではクロマキー合成を成功させ、今回は独自機能にチャレンジします!

独自機能を考える

まずはどのような独自機能にするのか、アイデアをいくつか出してみることにしました。

  • 画像の上下反転
  • 画像の色補正
  • 画像の拡大/縮小
  • 画像の回転

んー・・・
上下反転は、基本課題でやった左右反転とあまり変わりはないのでボツですね。

画像の色補正はおもしろそう。
最近はスマホで撮った写真などアプリで簡単に加工できてしまうけど、それを自分でできたらおもしろい。

ということで画像の色補正をやってみることにします!
また、独自機能は「合成+独自機能」とします。

つまり、合成と色補正ができるプログラムを作成していきます。

色補正の方法

ビットマップ画像はピクセルの集合体でできており、ピクセルの色はRGBの各成分(0~255の値)の組み合わせによって表現されることは 第1話 で説明しました。

このRGBの各成分に対して、任意の定数を掛けることによって色補正を実現することにします!

Article header library 129909 pic01  1

色補正の方法

仕様書の作成

早速、基本設計を作成していきます。

Article header library 129909 pic02  1

「合成+色補正」の基本設計

次にフローチャート!

Article header library 129909 pic03  1

「合成+色補正」のフローチャート

コーディング開始

仕様書が作成できたところで、コーディングしていきます。
今回もどんどん書き進めていきます!

Article header library 129909 pic04  1

「合成+色補正」のコード

なかなかいい感じにコーディングすることができました!
あとは実行のみ。

今回はRGBの値全てに1.8を掛けて写真の色を明るくしてみます。

実行してみる

今回も前回と同様のフレーム画像と写真を用意します。

Article header library 129909 pic05  1

フレーム画像と写真

Cygwinツール上で下記のように記入し、実行!

Article header library 129909 pic06  2

Cygwin画面



Now Loading・・・












Article header library 129909 pic07  1

「合成+色補正」写真




・・・あれ?
何かがおかしい。いや、おかしすぎる。

完全に失敗です。

というわけでデバッグ開始。

デバッグ

何が間違っているのかを見つけて修正します。
今回の場合、クロマキー合成はできており、色補正をするとあのような画像になってしまったので、原因は色補正をするコードにあると考えられます。

早速チェックしていきます。

「何が間違っているんだ」と思いましたが、自分で書いたコードを見ているとすぐに気が付きました。

原因は「8ビットで飽和していないこと」

どういうことか説明します。
さきほども言いましたが、RGBの各成分は256諧調(8ビット)で表現され、各成分の値は0~255の範囲でのみ表されます。

しかし、今回定数を掛けることによって255を超えてしまう場合が発生してしまいます。
これが原因でした!

では、どうしたらいいのか?
「255を超える値になったとき255で飽和させるようにすればいい」と考えました!

これを踏まえてフローチャートを修正します。

Article header library 129909 pic08  1

「合成+色補正」のフローチャート(修正後)

再度コーディング~実行

仕様書を修正したところで再びコーディングをします。
RGBの各成分の値が255を超えた場合は255になるようにしました!

これでうまくいくはず・・・

再びCygwinツール上で下記のように記入し、実行します。

Article header library 129909 pic09  2

Cygwin画面




願いを込めて、実行!












ばん!!!







Article header library 129909 pic10  1

「合成+色補正」写真




できました!!!
嬉しい、クウゥゥゥ!!

この時点でまだ時間に余裕があったので、もう1つ独自機能を実装することにしました。
今回はここまで!

ということで次回は最終回、[画像合成ソフト製作] 第5話 独自機能-モザイク加工にチャレンジ- です。
お楽しみに!

2018年度 翔け新人!エンジニア奮闘記はこちら

翔け新人!エンジニア奮闘記とは?

マクニカのエンジニアが新人時代に研修中に感じた疑問、制作実習での奮闘、発生したトラブルを解決するまでのフローなど紹介します。個性あふれる新人たちが奮闘から会得した実用的なノウハウを業務にご活用ください。

翔け新人!エンジニア奮闘記 著者紹介はこちら

関連タグ