はじめに
この記事では、scikit-imageライブラリのfilters.rank.maximumを使用して、画像内の高輝度部分を強調する方法を解説します。マキシマムフィルタの基本原理から実装例、適切なパラメータ設定wを説明しています。
コード&解説
モジュールのインポート
バージョン
画像の読み込み
サボテン すみれ丸の画像を、plt.imread()で読み込みます。
グレースケール変換
RGB画像は skimage.color の rgb2gray 関数を使用してグレースケール画像に変換します。rank フィルタを適用するために、img_as_ubyte 関数で ubyte 形式に変換する必要があります。変換後の画像を cmap=”YlGn_r” パラメータで表示すると以下のようになります。

マキシマムフィルタ
マキシマムフィルタのfootprintをdisk(5)として処理すると、以下のような画像が得られます。この処理により、高輝度部分である棘がより目立つようになっていることが確認できます。

footprintを変化させた場合
footprintパラメータを使用して、フィルタをかける範囲を変更できます。この例では、skimageのmorphology
モジュールを使用してフィルタの適用範囲を設定しました。結果は以下のとおりです。
Generate footprints (structuring elements) — skimage 0.25.2 documentation

参考
skimage.filters.rank — skimage 0.26.0rc0.dev0 documentation
skimage.util — skimage 0.26.0rc0.dev0 documentation
コメント