[scikit-image] 91. 各種エッジフィルタの回転不変性の比較

matplotlib

はじめに

skimage.filtersのエッジ検出フィルタには、sobel,prewitt, farid、scharrがある。これらのフィルタの回転不変性は、farid、scharr、sobel、prewittの順によかったので、各種フィルタを適用した画像の比較結果を示す。

解説

モジュールのインポートなど

バージョン

画像データの作成

skimageのdiskで円を作成することができる。ここでは、中心が(128,128)で半径が100の円を作成して、その部分を1として、中心が(128,128)で半径が98の円を作成してその部分を0とすることで円弧の画像を作成した。

作成した画像を表示すると以下のようになる。

エッジフィルタの適用

各種フィルタを画像中の各画素に適用することで画像の勾配を求めることができる。勾配が急激に変化するところがエッジとして検出される。各種フィルタは以下のようになる。

Prewittフィルタ

Sobelフィルタ

Scharrフィルタ

Faridフィルタ

Image derivative - Wikipedia

フィルタを適用した画像の表示

Prewittフィルタを適用した画像

Sobelフィルタを適用した画像

scharrフィルタを適用した画像

faridフィルタを適用した画像

まとめて表示

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

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

参考

skimage.filters — skimage 0.23.0rc3.dev0 documentation
skimage.filters — skimage 0.23.0rc3.dev0 documentation
skimage.filters — skimage 0.23.0rc3.dev0 documentation
skimage.filters — skimage 0.23.2rc2.dev0 documentation

コメント