[scikit-image] 43. Harrisコーナー検出(corner_harris)による画像のコーナー検出(skimage.feature hog)

python

はじめに

この記事では、scikit-imageライブラリのHarrisコーナー検出(corner_harris)機能を使用して、画像中のコーナー(角)を検出する方法について解説します。Harrisコーナー検出は、画像処理やコンピュータビジョンにおいて重要なアルゴリズムであり、物体認識や画像マッチングなどのタスクに広く利用されています。コーナー点は、画像内で複数の方向に大きな輝度変化がある点であり、特徴点として抽出することで様々な画像処理タスクに役立てることができます。この記事では、基本的な使い方から実装例まで、scikit-imageを用いたHarrisコーナー検出の活用法を紹介します。

コード

解説

モジュールのインポート

画像データの読み込み

いらすとやから取得した画像を読み込みます。

コーヒーに砂糖を入れるイラスト
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。

コーナーの検出とコーナーの座標の取得

  • corner_harris(image): 画像に対してHarrisコーナー検出アルゴリズムを適用します。これにより各ピクセルがコーナーである可能性を示す「コーナーレスポンス」の値を持つマップが生成されます。
  • corner_peaks(): Harris検出器の出力から、実際のコーナーとして検出するピークを抽出します。
  • min_distance=25: 検出されたコーナー間の最小距離を25ピクセルに設定します。これにより、近すぎるコーナーが複数検出されることを防ぎ、より意味のある特徴点のみを抽出します。

結果として coords には、検出されたコーナーの座標(x, y)が格納されます。この座標情報は、物体認識や画像マッチングなどの高度な画像処理タスクで利用できます。

画像の表示

coords[:, 1], coords[:, 0]: 検出されたコーナー点の座標を指定しています。coords配列は[y, x]の形式で座標を保存しているため、プロット用にx座標(coords[:, 1])とy座標(coords[:, 0])を入れ替えています。

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

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

まとめ

scikit-imageのcorner_harris関数を使用することで、画像中のコーナー(角)を効率的に検出できることを紹介しました。このアルゴリズムは、画像の特徴点抽出において非常に有用であり、物体認識や画像マッチングなどの高度な画像処理タスクの基盤となります。パラメータを適切に調整することで、様々な画像に対して安定したコーナー検出が可能になります。

参考

Corner detection — skimage 0.25.2 documentation
skimage.feature — skimage 0.25.2 documentation
skimage.feature — skimage 0.25.2 documentation

コメント