[scikit-image] 16. エッジ演算子(filters.roberts, sobel)

matplotlib

はじめに

scikit-imageライブラリのfiltersモジュールにあるrobertsフィルタとsobelフィルタを使った画像エッジ検出について解説する記事です。これらの演算子は、画像内の輝度が急激に変化する箇所(エッジ)を検出するためのツールです。記事では両フィルタの使用方法と特性について、サンプルコードと出力例を交えて説明しています。

コード

解説

本記事では、画像内のエッジを検出するための filters モジュールにある roberts フィルタと sobel フィルタの使い方について解説します。

モジュールのインポート

バージョン

画像の読み込み

上記の画像を読み込んで表示すると、以下のようになります。

画像のグレースケール化

skimage.color モジュールの rgb2gray 関数を使用して画像をグレースケールに変換すると、以下のような結果になります。

フィルタの適用

各フィルタに使用されるカーネルは、以下のような構造になっています。

roberts

sobel

図の表示

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

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

まとめ

RobertsとSobelはどちらも画像のエッジを検出するフィルタですが、Robertsはシンプルで高速、Sobelはノイズに強いという特徴があります。目的に応じて適切なフィルタを選択することが重要です。

参考

Edge operators — skimage 0.25.2 documentation
skimage.filters — skimage 0.26.0rc0.dev0 documentation
skimage.filters — skimage 0.26.0rc0.dev0 documentation

コメント

  1. […] [scikit-image] 16. エッジ演算子(filters.roberts, sobel)skimage.filters の roberts, sobelを用いた画像のエッジ検出sabopy.com2019.05.10 [scikit-image] 53. 画像のラベリング(skimage.measure labelなど)skimage.filtersのthresho […]