[scikit-image] 105. skimageで使用可能な窓関数s(filters.window)

matplotlib

はじめに

本記事では、scikit-imageのfilters.windowモジュールを使用して画像に適用可能な窓関数の生成方法と実装例を紹介します。窓関数は画像のフーリエ変換における重要な前処理技術であり、様々な種類の窓関数とその特性について解説します。

解説

モジュールのインポートなど

バージョン

画像の読み込み,グレースケール変換

下記サイトの画像を、まずrgba2rgb関数でRGBA配列からRGB配列に変換し、次にrgb2gray関数でグレースケールに変換した後、img_as_float関数を使用してfloat形式(0.0〜1.0)に変換します。

トントゥのイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。

画像に窓関数をかける

例として、Hann窓関数を適用します。対象画像のサイズは(738, 734)です。

元画像と窓関数をかけた画像の表示

窓関数を適用した画像は、端部がマスクされた状態になります。このマスクされる範囲は、選択する窓関数の種類によって変化します。

その他の窓関数(パラメータ不要)

各種パラメータ設定が不要な窓関数を適用して、それぞれの処理後画像を生成します。

パラメータ不要の窓関数画像の表示

パラメータが必要な窓関数

exponential

減衰のパラメータであるtauを変化させた窓関数を適用した画像は以下のとおりです。

kaiser

形状パラメータであるbetaを変化させた窓関数を適用した画像は以下のようになります。

gaussian

標準偏差パラメータ(std)を変化させて窓関数を適用した画像は以下のようになります。

chebwin

減衰のパラメータである at を変化させた窓関数を適用した画像は以下のようになります。

コードをダウンロード(.pyファイル)

コードをダウンロード(.ipynbファイル)

まとめ

scikit-imageのfilters.windowモジュールを使用することで、画像処理における窓関数の適用が容易に実現できます。窓関数はフーリエ変換の前処理として重要であり、適切な窓関数の選択と適用により、画像処理の精度と効果を大きく向上させることができます。実際の応用場面では目的に応じた窓関数の選択が重要です。

参考

get_window — SciPy v1.16.2 Manual
skimage.filters — skimage 0.25.2 documentation

コメント