やってみよう

コーナーは、上下左右どちらにずらしても見え方が変わる点=物体の「角」です。Harris のコーナー応答 \(R\)が大きい点を丸で示します。図形は背景とのコントラストを変えてあり、薄い図形の角ほど応答 \(R\) が小さいので、しきい値を上げると弱い角から順に消え、下げるとすべての角が拾えます。

検出されたコーナー/\(R > 0\)(コーナーらしい)
\(R < 0\)(エッジらしい)
\[R = \det(M) - k \, \operatorname{trace}(M)^2\]
検出されたコーナー数
–
図形の理論上の角の数
–

仕組み:各画素のまわりで勾配(明るさの変化)を集めた行列 \(M\) を作り、縦方向にも横方向にも大きく変化する点だけが \(R\) の大きい点=コーナーになります。エッジ(線)の途中は一方向しか変化しないので選ばれません。

\(k\) は「どこまで鈍い角をコーナーと認めるか」を決めます。最初の図形で \(k\) を上げると、150°、135°、120° と鈍い角から順に消えていきます(165° はほぼ直線なので最初から拾われません)。応答 \(R\) の図では、\(k\) を上げるほどエッジの青が濃くなります。直角だけの図形では、\(k\) を変えても検出結果はほとんど変わりません。