2012年6月5日火曜日

Instagramの画像処理3 -色味変換-

前々回のポスト のトーンカーブによる画像変換の続きで、トーンカーブを求めます。

トーンカーブなので、ガンマ曲線をフィッティングしてもいいんですが、

  • そこまで厳密に求める必要がない
  • 8bit 256階調なので、その入出力をマッピングしても事足りる

ということなので、ある入力値に対して、いくら出力するか、というデータをテーブルで保持しておくルックアップテーブル(LUT)を求めます。

求め方

黒から白へとなだらかに変化する画像を入力画像とし、この画像にInstagramで変換を行ったものを出力画像とする。
入出力画像の各ピクセルの入力と、出力の関係をテーブルに保持して行きます。
同じ入力輝度値の画素がいくつか出てきますが、平均化してならしました。

入力画像

出力画像


実行結果

instagramの結果

LUTの出力結果


なかなかいい感じですね。
この辺のデータはまとまってgithubにあがってます

https://github.com/ginrou/OpenCV-Sample/blob/master/src/instagram_hack.c
computeLookUpTableという関数が、このLUTを求める関数です。


次は

  • チルトによるぼけ効果
  • ケラレ

あたりをキャリブレーションするかもしれません。


前回の補足

色変換行列を、ランダムカラーの画像を使って推定してみましたが、あまりうまく行きませんでした。
推定に使った画像
Instagramへの入力
Instagramで変換
色変換行列で変換

色味が変わってるのは分かりますが、じゃあちゃんと変わってるかと言うと、そういうわけではないです。




0 件のコメント:

コメントを投稿