はじめに
このページでは、SciPyのndimageモジュールに含まれるminimum_filterの使い方と応用例について詳しく解説します。
ミニマムフィルタとは
ミニマムフィルタ(minimum_filter)は、指定された範囲(ウィンドウ)内の最小値を取り出すフィルタです。画像処理においては、低輝度の部分を強調し、高輝度の部分を目立たなくする効果があります。
コード&解説
モジュールのインポート
バージョン
画像の読み込み
Matplotlibのpltモジュールのimread()関数を使用して、サボテン「すみれ丸」の画像を読み込みます。
グレースケール変換
skimageライブラリのcolor.rgb2gray関数を使用してRGB画像をグレースケールに変換できます。変換した画像をcmap=”bone”パラメータで表示すると、以下のような結果になります。

ミニマムフィルタ
ミニマムフィルタのサイズを10として処理すると、以下のような画像が得られます。高輝度部分である棘が目立たなくなり、まるで棘のないサボテンのようになっていることがわかります。

sizeを変化させた場合
サイズを大きくすることで、高輝度部分がより目立たなくなっていきます。

footprintを変化させた場合
footprintパラメータを使用してフィルタの適用範囲をカスタマイズできます。以下の例では、skimageのmorphologyモジュールを活用してフィルタの形状を定義しています。適用結果は次のようになります。
Generate footprints (structuring elements) — skimage 0.25.2 documentation

参考
minimum_filter — SciPy v1.16.1 Manual
コメント