はじめに
skimage.filtersのsobel,sobel_h, sobel_vを使用して、画像の各画素の勾配を求める方法について解説する。
解説
モジュールのインポートなど
バージョン
データの生成
2dのガウス関数を定義して、データを作成する。作成した画像を表示すると以下のようになる。
![](https://sabopy.com/wp/wp-content/uploads/2021/01/data_gaussian2D-1.png)
Sobel フィルタの適用
Sobelフィルタとは下に示したフィルタであり、このフィルタを各画素に適用することで画像の勾配を求めることができる。sobel_h,sobel_vによりそれぞれ平行方向のフィルタのみを適用、垂直方向のフィルタのみを適用することができる。
![](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)
勾配画像の表示
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Sobel_img-1.png)
平行方向の勾配像を表示
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Sobel_h_img-1.png)
垂直方向の勾配像を表示
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Sobel_v_img-1.png)
sobel_hとsobel_vの結果を合わせる
sobel_hとsobel_vの結果を合わせて表示するとsobelフィルタのものと同様に結果が得られる。
![](https://sabopy.com/wp/wp-content/uploads/2021/01/Sobel_hv_img-1.png)
参考
skimage.filters — skimage 0.24.1rc0.dev0 documentation
コメント