[scikit-image] 108. マキシマムフィルタによる高輝度部分の強調(skiamge.filters.rank.maximum)

python

はじめに

skiamgeのfiltersのrank.maximumを使って、画像中の高輝度部分を強調する方法について説明する。

コード&解説

モジュールのインポート

バージョン

画像の読み込み

サボテン すみれ丸の画像を、plt.imread()で読み込む。

グレースケール変換

skimage.color の rgb2grayでRGB画像をグレースケール画像に変換する。rankフィルタなので、img_as_ubyteでubyte形式に変換しておく。

変換した画像をcmap=”YlGn_r”で表示すると以下のようになる。

マキシマムフィルタ

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

footprintを変化させた場合

footprintでフィルタをかける範囲を変更できる。ここでは、skimageのmorphologyを使用して、フィルタのかかる範囲を設定した。結果は以下のようになる。

Generate footprints (structuring elements) — skimage 0.24.0 documentation
コードをダウンロード(.pyファイル)

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

参考

skimage.filters.rank — skimage 0.25.0rc2.dev0 documentation
skimage.util — skimage 0.25.0rc2.dev0 documentation

コメント