はじめに
skimage.filtersのエッジ検出フィルタには、sobel,prewitt, farid、scharrがある。これらのフィルタの回転不変性は、farid、scharr、sobel、prewittの順によかったので、各種フィルタを適用した画像の比較結果を示す。
解説
モジュールのインポートなど
バージョン
画像データの作成
skimageのdiskで円を作成することができる。ここでは、中心が(128,128)で半径が100の円を作成して、その部分を1として、中心が(128,128)で半径が98の円を作成してその部分を0とすることで円弧の画像を作成した。
作成した画像を表示すると以下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2021/01/disk_perimeter-1.png)
エッジフィルタの適用
各種フィルタを画像中の各画素に適用することで画像の勾配を求めることができる。勾配が急激に変化するところがエッジとして検出される。各種フィルタは以下のようになる。
Prewittフィルタ
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Horizontal_Prewitt_filter.png)
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Vertical_Prewitt_filter.png)
Sobelフィルタ
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Horizontal_Sobel_filter.png)
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Vertical_Sobel_filter.png)
Scharrフィルタ
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Horizontal_scharr_filter.png)
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Vertical_scharr_filter.png)
Faridフィルタ
Image derivative - Wikipedia
フィルタを適用した画像の表示
Prewittフィルタを適用した画像
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Prewitt-1.png)
Sobelフィルタを適用した画像
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Sobel-1.png)
scharrフィルタを適用した画像
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Scharr-1.png)
faridフィルタを適用した画像
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Farid-1.png)
まとめて表示
![](https://sabopy.com/wp/wp-content/uploads/2021/01/edgefilter-1.png)
参考
skimage.filters — skimage 0.24.1rc0.dev0 documentation
skimage.filters — skimage 0.24.1rc0.dev0 documentation
skimage.filters — skimage 0.24.1rc0.dev0 documentation
skimage.filters — skimage 0.24.1rc0.dev0 documentation
コメント