[scikit-image] 51. 画像の局所的な極大値を検出(skimage.feature peak_local_max)

python

はじめに

scikit-imageライブラリのpeak_local_max関数を使用して、画像内の局所的な極大値(ピーク)を検出する方法について解説します。この機能は画像処理において、特徴点の検出や物体のカウントなどに役立ちます。

コード

解説

モジュールのインポート

画像データの読み込み

ストロンギロゴナムの発芽後1年の画像を使用します。画像はrgb2gray関数でグレースケールに変換し、img_as_float関数でデータの範囲を0~1に正規化します。

最大値フィルタの適用

ndi.maximum_filter(im, size=30, mode=’constant’)で画像に最大値フィルタを適用できます。sizeが30×30なので、この範囲内の最大値がその範囲内のすべてのピクセルに適用されます。その結果、グレースケール画像の明るい部分が膨張して見えるようになります。

局所的極大値の検出

peak_local_maxを使用すると画像中の局所的な極大値を検出できます。その原理は、元の画像と最大値フィルタで膨張させた画像を比較し、値が等しい箇所を極大値とみなすというものです。

画像の表示

左にオリジナル、中央に最大値フィルタを適用した画像、右にオリジナル画像と赤丸で極大値を示しています。

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

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

参考

Finding local maxima — skimage 0.25.2 documentation
maximum_filter — SciPy v1.16.1 Manual
skimage.feature — skimage 0.25.2 documentation

コメント