\)を試していく必要があるようですが、実際はそうではありません。数学は美しく助けてくれます。\)は下記の式に分解できます。Marr-Hildrethエッジ検出法もう一つの二次差分エッジ検出法はMarr-Hildreth法です。これはガウススムージングから由来します。マグニチュードを無視すれば、二元ガウス関数は下記の形式を取ります。\)の微分を二回計算すれば下記のような式になります。\)に座標を割り当てるとMarr-Hildreth法のテンプレートが出来上がります。このテンプレートは修正が必要です。原因はこのテンプレートの合計はゼロではないからです。ゼロでないと、各座標において算出された二次差分は全体的に正数か負数に偏ることが発生します。結局ゼロ交差でのエッジの検出はできなくなります。これ点を注意した上で結果を見てみましょう。画像が大きいため、この処理結果を得るには120秒掛かりました。エッジ検出のためのラプラシアン演算子を考察する一次差分法でエッジを検出する方法はありますが、さらに考えますと、一次差分が最大値に至ったときにエッジが記録されます。一次差分が最大値に達する点は、二次差分の符号が変わる時でもあります。二次差分の符号が変わる点を割り出せば、エッジが分かるはずです。この中、もっとも簡単なものかも知れませんが、ラプラシアン法があります。ラプラシアン法は下記のようなテンプレートを使用します。このテンプレートの出力結果は図1にあります。平均してみましょうか、なので、下記のような周辺8点を全部入れましょう。Cannyエッジ検出法Cannyエッジ検出法は一般に四つのステップがあります。Sobel法では、ある程度のスムージングが効いています。その標準偏差は変えられない。Sobel法の前に別途スムージングのステップを組めば、より良いノイズ耐性は期待できます。Sobel法では、一個の画素に対して、横と縦二回の検査があります。横と縦に方向での明暗変化の強さが求められ、エッジの方向は分かるようになります。\)とすれば、エッジの方向は下記の式で算出されます。この角度を非最大値抑制のステップで活用します。非最大値抑制の目的は、検出されたエッジを細くするためです。明暗変化は上げ下げしているので、綿花のもっとも激しいところをエッジにし、そのたの画素をエッジにしないことが目的です。画像の画素は離散しているため、一つの画素の周辺は八個の画素しかありません。エッジの方向は非常に多いです。現在対象の画素は最大であるかどうかをより正確に検出するため、Canny法は数値補間を使用します。イメージとしては図1をご覧ください。図1に大きい丸は実在する画素を意味します。\)は画素の明るさです。M2\)は補間によって算出される非実在の画素の明るさです。図1の実線の直線はエッジで、点線はエッジを跨ぐノーマル方向です。画素がノーマル方向において、最大である場合に限ってエッジにいると認定されます。この様な画素だけが保留され、そうでない点は全部消されます。ステップ3直後の効果をまずは見てみましょう。図2を詳しく見てみますと、薄い灰色の顔の輪郭は見られます。人の目ではなかなか見えないですが、図2に黒に使い画素は多々あります。見せるためだけ、これらの点を全部明るくしたバージョンは図3です。黒に近い点は所謂ノイズで形成されています。エッジから除外されるべきです。これはステップ4、ヒステリシス、の役割です。ヒステリシスとは延滞です。エッジに充分なり得る一点から初め、周辺に探って行きます。エッジになり得ない点を除き、すべての点はエッジにする。