変換式は前回の投稿と同様ですので,処理は単純です.が,たまに縮小後の画像が変になることがあります.
例えば,Fig.1のような画像をsx=0.5,sy=0.5で縮小するとします.ちなみにこの画像は円形ゾーンプレートといってExp.1の式で表されます.中心から遠ざかるにつれて周期が短くなっていきます.

Fig.1 縮小する画像

Exp.1 円形ゾーンプレート
で,単純に縮小した結果がFig.2です.

FIg.2 単純に縮小
端の方に変な模様が発生しています(元画像Fig.1と比較してみてください).この模様を偽パターンといったりするようです.この現象は割とよく見られます.周期的なパターンから周期的に抽出を行うと,新たにパターンが発生してしまうというようです.
ということで,この現象を解決するためにローパスフィルタを使います.
ローパスフィルタとは,周波数フィルタリングの一つで高周波成分を除去するというものです.この辺についてはフーリエ変換とかが入ってきます.とりあえず,今回はフーリエ変換は避けたいので,ローパスフィルタの代わりにガウシアンフィルタを用います.ガウシアンフィルタは,(ガウス分布型)ローパスフィルタを近似しています.
まず,元画像に対しガウシアン(≒ローパス)フィルタを適用します(Fig.3).
そして,その後,縮小を実行します(Fig.4).
処理はこれだけです.
パラメータ:
σ=0.7

Fig.3 ガウシアンフィルタ適用後

Fig.4 縮小
どうでしょうか.Fig.2に比べFig.4では,偽パターンが軽減されているのが分かると思います.この画像は意図的に作成したものですが,実際の画像でもローパスフィルタを適用すれば,このように偽パターンは消えるようです.
以上,縮小についての補足でした.
0 件のコメント:
コメントを投稿