拙作AviUtlプラグインフィルタ「セピア色とか白黒とか」の解説です。
画像をセピア調にする方法が書かれたサイトがあまり見つからなかったので、もしかしたら何かの参考になるかもしれません。
フィルタはここに置いてあります。
AviUtl プラグイン フィルタ by うえぽん
これが設定ダイアログです。
RGBを指定すると動画の色調を指定色と同じにします。「単色効果」とも言うようです。
RGBの値はWikipediaに親切に書かれているのでそれを利用することができます。
設定ダイアログにはプリセットとしてセピア色だけでなくヴァーミリオンやクリムゾンなどを用意しました。これはメガドライブやセガサターンのゲームが元ネタになっています。下のような感じになります。
ニコニコ動画にアップしたのがこれ。
さて、この画像処理の仕組みは簡単です。RGBをYUVに変換し、動画の全ピクセルのUV値を指定色と同じにします。AviUtlにはRGBをYUVに変換する関数が存在するので指定色をそれで変換。さらにAviUtlの内部処理はYUVなので、当プラグインがやるのはUVを書き換えるだけだったりします。
一応RGB→YUVの変換の仕組みを説明すると、基本は下のような計算です。
Y = 0.29891 * R + 0.58661 * G + 0.11448 * B
U = Y - B (青色の差分)
V = Y - R (赤色の差分)
あとは仕様用途に応じてUVの値の範囲を規格化するだけです。ネットを調べるとYUVの変換式があれこれあるのは規格がいくつかあるからです。
YUVからRGBにする場合は逆の変換をするだけです。
ちなみに、Yの式を他でも見たことがあるかもしれませんが、これは白黒に変換する式と同じです(つまりUVの値を0にしたのが白黒変換になる)。
画像をセピア調にする方法が書かれたサイトがあまり見つからなかったので、もしかしたら何かの参考になるかもしれません。
フィルタはここに置いてあります。
AviUtl プラグイン フィルタ by うえぽん
これが設定ダイアログです。
RGBを指定すると動画の色調を指定色と同じにします。「単色効果」とも言うようです。
RGBの値はWikipediaに親切に書かれているのでそれを利用することができます。
設定ダイアログにはプリセットとしてセピア色だけでなくヴァーミリオンやクリムゾンなどを用意しました。これはメガドライブやセガサターンのゲームが元ネタになっています。下のような感じになります。
ニコニコ動画にアップしたのがこれ。
さて、この画像処理の仕組みは簡単です。RGBをYUVに変換し、動画の全ピクセルのUV値を指定色と同じにします。AviUtlにはRGBをYUVに変換する関数が存在するので指定色をそれで変換。さらにAviUtlの内部処理はYUVなので、当プラグインがやるのはUVを書き換えるだけだったりします。
一応RGB→YUVの変換の仕組みを説明すると、基本は下のような計算です。
Y = 0.29891 * R + 0.58661 * G + 0.11448 * B
U = Y - B (青色の差分)
V = Y - R (赤色の差分)
あとは仕様用途に応じてUVの値の範囲を規格化するだけです。ネットを調べるとYUVの変換式があれこれあるのは規格がいくつかあるからです。
YUVからRGBにする場合は逆の変換をするだけです。
ちなみに、Yの式を他でも見たことがあるかもしれませんが、これは白黒に変換する式と同じです(つまりUVの値を0にしたのが白黒変換になる)。
コメント