まるもの雑記

なにか作ったりとかゲームとか。

IIRフィルタと画像

作ったフィルタを画像にかけてみます。

元画像

これを素材にします。

よく見るといろいろ写っていますがあまり気にしない。

1次元データなので赤青緑の成分に分けて

その後3枚の絵を重ねます。

一見すると単色化して色を付けただけのように見えます。

たぶんあっているはず。

フィルタをかけてみる

最初から縦横でかけると結果がわかりにくいので

写真を1行ごとに分けて左から右へ(→方向)でかけてみます。

LPF

まずは低域通過フィルタ

Fsは1としました。

グラフを書くプログラムが適当なせいで0.5より高い周波数までグラフがありますが

これもFsの半分から上は意味がありません。

F0=0.01 Qは0.7です。

f=0.01のときー3dBなので波長が100ピクセルの部分は約0.7倍

F=0.1のときー40dBなので波長が10ピクセルの部分はレベルが1/100になる

と解釈できる・・・ような気がします。

何はともあれ結果はこんな感じ

予想通りぼかしフィルタになります。

これは直感的にわかりやすい。

左がグレーっぽくなっているのは各行でフィルタを初期化しているので

中間値(256/2=128)の初期値から左端の色に向かって変わっていくからです。

ぱっと見てわかる問題点は位相がずれていること。

左右対称じゃないので画像が右にシフトしています。

HPF

直感的にわかりにくいけど理想的には漫画みたいに

線画に変換できると良いなという感じ。

こちらはf0=0.1としました。Qは0.7

これもf=0.1のときー40dBなので波長が10の部分は1/100になるはずです。

結果はこんな感じ。

中間値が灰色なので直流成分は灰色になります。

ちょっと見にくい。

色が極端に変わるところはエッジ検出されて線になっています。

実際は振幅が2倍になるので0-255の範囲を超えますが

切り上げ切捨てで中に入れています。

うまくやれば写真から絵のようなものに変換できそう。

が、今まで試した感じだとそんなにうまくはいきません。

 

音声でやらなかったのは見て楽しいのとわかりやすいからです。

マイク入力をFFTするとこれも面白いので

グラフがきれいに書けたら乗せようと思います。

そろそろ会社に行く準備をしないと。