エッジ検出
L x x ( x , y ) = L ( x − 1 , y ) − 2 L ( x , y ) + L ( x + 1 , y ) {\displaystyle L_{xx}(x,y)=L(x-1,y)-2L(x,y)+L(x+1,y)\,}
L x y ( x , y ) = ( L ( x − 1 , y − 1 ) − L ( x − 1 , y + 1 ) − L ( x + 1 , y − 1 ) + L ( x + 1 , y + 1 ) ) / 4 {\displaystyle L_{xy}(x,y)=(L(x-1,y-1)-L(x-1,y+1)-L(x+1,y-1)+L(x+1,y+1))/4\,}
L y y ( x , y ) = L ( x , y − 1 ) − 2 L ( x , y ) + L ( x , y + 1 ) {\displaystyle L_{yy}(x,y)=L(x,y-1)-2L(x,y)+L(x,y+1)\,}
これは次のようなフィルタによるマスクと対応している。
L x x = [ 1 − 2 1 ] ∗ L and L x y = [ − 1 / 4 0 1 / 4 0 0 0 1 / 4 0 − 1 / 4 ] ∗ L and L y y = [ 1 − 2 1 ] ∗ L {\displaystyle L_{xx}={\begin{bmatrix}1&-2&1\end{bmatrix}}*L\quad {\mbox{and}}\quad L_{xy}={\begin{bmatrix}-1/4&0&1/4\\0&0&0\\1/4&0&-1/4\end{bmatrix}}*L\quad {\mbox{and}}\quad L_{yy}={\begin{bmatrix}1\\-2\\1\end{bmatrix}}*L}
勾配の大きさなどでエッジの強さを計算すると、次にしきい値を適用して必要なエッジだけを抽出する必要がある。しきい値を低く設定すればエッジは多くなり、ノイズの影響を受けやすくなるため、画像の本質的でない特徴を捉えてしまいやすくなる。逆にしきい値を高く設定すると断片化したエッジしか得られないことになる。
勾配の強さを画像化したものにしきい値を適用すると、得られるエッジは太いのが普通で、なんらかの方法でそれを細くする必要がある。非最大抑制でエッジ検出した場合、その定義上エッジは細くなり、エッジ連結処理を施すことでエッジの線同士を連結して多角形を形成することができる。離散的な手法で非最大抑制のような効果を得るには、1次微分から勾配方向を見積もり、それを45度単位に丸め、その勾配方向での勾配の強さを比較する。
適切なしきい値を求めるために一般に使われる手法は、ヒステリシスを伴った適応的しきい値処理と呼ばれる手法である。これは、複数のしきい値を使うもので、まず最大のしきい値でエッジの始点を求める。始点が見つかったら、そこからエッジがどう続いているかをピクセル単位に検討していき、最小のしきい値より上のエッジ箇所を全て見ていき、しきい値未満になった時点で追跡をやめる。この手法はエッジが連続的な曲線になっていると仮定しており、不要なエッジを検出することなく、必要なエッジのかすかな部分も検出できるという利点がある。それでも適切なしきい値を選択する問題は残っており、一般に画像によって適切なしきい値は異なる。