headerAd

2014年10月5日日曜日

Colorエフェクトとか

基本的にトーンカーブを使う。
動的色域(ナイトビジョン)とかは、その名の通り周りの明るさからトーンカーブを導出する。

その他のエフェクトは、RGBを直接いじるエフェクトとかツールを使ってカーブを指定してやったりする。
GPUImageは簡単にトーンカーブを読み取ることができるので、便利である。以下の通り、

GPUImageToneCurveFilter *toneCurve = [[GPUImageToneCurveFilter alloc] initWithACV:@"hoge"];

ね、簡単でしょ?

ナイトビジョンの方は、明るすぎず暗すぎずを動的に導出する式を作るのが大変だったけどね。白飛び防止は暗視系の重要ファクターね。0.5秒おきにトーンカーブを変更するので瞬間的な明るさの変化には弱いんだけどね。
あと、露光ターゲットと同期させたりするのも、割と面倒だった。

このナイトビジョンの明るさ調節に用いられる値を導出したことによる副産物が静音時におけるフラッシュ。静音の設定にすると、簡単に言ってしまうとiOSの仕様上、非静音時と同じようにフラッシュを使うことができないんだ。ほかの人がどうやっているかはわからないけど、フラッシュ設定時にはトーチをつけっぱなしにする人もいるね。

0 件のコメント:

コメントを投稿