Python+OpenCVで二次元ウェーブレット変換
クリエイティブコモンズの写真に対して、二次元離散ウェーブレット変換を適用してみました。
この記事では逆変換は扱っていません。変換の様子がみたい!という人は下の動画を見ると楽しいと思います。
画像を離散ウェーブレット変換してみた ‐ ニコニコ動画:GINZA
洗濯機に吸い込まれそうな
はじめの入力画像はこちら。
これを、一度だけウェーブレット変換にかけてみます。ウェーブレット変換によって次のような画像が取得できます。
左上の縮小画像が、低周波成分、下の画像がy方向の高周波成分、右の画像がx方向の高周波成分に該当します。
表情豊かな写真で
次は、この人でやってみましょう。今度は2度ウェーブレット変換をかけてみます。
2度ウェーブレット変換をかけると、1度目に得られた低解像度部分がウェーブレット変換されます。
結果が分かりにくかったので、Photoshopのトーンカーブ機能で強調加工しました。
ソースコード
PythonとOpenCVを使っています。下のgistのリンクを辿ってください。 https://gist.github.com/tamanobi/7e35f164b0e9d67266f2
ウェーブレット変換
ウェーブレット変換は、多重解像度解析の走りになっているようです。ウェーブレット変換を何度も繰り返すと、低解像度の画像がいくつか得られます。計算の方法は違いますが、低解像度画像(スケールの異なる画像)をいくつか生成するという点では、ガウシアンピラミッドと似ていますね。