はじめに
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.25.0rc2.dev0 documentation
skimage.filters — skimage 0.25.0rc2.dev0 documentation
skimage.filters — skimage 0.25.0rc2.dev0 documentation
skimage.filters — skimage 0.26.0rc0.dev0 documentation
コメント