[SciPy] 25. LoGフィルタによるエッジ検出(ndimage. gaussian_laplace)

matplotlib

はじめに

scipyのndimageのgaussian_laplaceを使って、LoGフィルタで画像のエッジを検出して表示する方法について説明する。

コード&解説

モジュールのインポート

バージョン

画像の読み込み

下記サイトから画像を取得し、plt.imread()で読み込む。

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

グレースケール変換

skimage.color の rgb2grayでRGB画像をグレースケール画像に変換する。

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

LoGフィルタ

LoGフィルタであるgaussian_laplaceをsigma=3として用いることで、以下のようになる。

手動でLoGフィルタ

LoGフィルタはガウス関数の2階微分フィルタであるため、x方向の結果は結果は、ndi.gaussian_filter(img_g, (sigma,sigma), (0,2))で得られる。yはorderを(2,0)とした場合に得られる。強度の像は各成分の和として得られる。

LoGフィルタのsigmaを変えた場合

ガウス微分フィルタのsigmaを変えた時の変化は以下のようになる。

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

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

参考

scipy.ndimage.gaussian_laplace — SciPy v1.8.1 Manual
scipy.ndimage.gaussian_filter — SciPy v1.8.1 Manual

コメント