http://homepages.inf.ed.ac.uk/rbf/HIPR2/log.htmおよびhttp://wwwmath.tau.ac.ilで説明されているものの組み合わせを使用して、エッジ検出にガウスのラプラシアンを使用しています。 /~turkel/notes/Maini.pdf
簡単に言えば、私はこの方程式を使用しています:
for(int i = -(kernelSize/2); i<=(kernelSize/2); i++)
{
for(int j = -(kernelSize/2); j<=(kernelSize/2); j++)
{
double L_xy = -1/(Math.PI * Math.pow(sigma,4))*(1 - ((Math.pow(i,2) + Math.pow(j,2))/(2*Math.pow(sigma,2))))*Math.exp(-((Math.pow(i,2) + Math.pow(j,2))/(2*Math.pow(sigma,2))));
L_xy*=426.3;
}
}
L_xy 変数を使用して、Log カーネルを構築します。
問題は、画像サイズが大きい場合、同じカーネルを適用するとフィルターがノイズに対してより敏感になることです。エッジの鋭さも同じではありません。
ここで例を挙げましょう...
次の画像があるとします。
この画像の 480 × 264 ピクセル バージョンで sigma = 0.9 の値と 5 x 5 マトリックスのカーネル サイズを使用すると、次の出力が得られます。
ただし、この画像の 1920 × 1080 ピクセル バージョンで同じ値を使用すると (シグマ値とカーネル サイズが同じ)、次のようになります。
[両方の画像は、さらに大きな画像の縮小版です。縮小はフォト エディターを使用して行われたため、画像に含まれるデータは完全に似ているわけではありません。しかし、少なくとも、それらは非常に近くにあるはずです。]
大きい画像が小さい画像の約 4 倍であることを考えると... シグマを 4 倍 (シグマ * = 4) にスケーリングしてみましたが、出力は... ご想像のとおり、黒いキャンバスでした。
入力信号が拡大または縮小されている場合でも、入力信号から同じ機能を検出する LoG エッジ検出器を実装する方法を理解するのを手伝ってください (スケーリング係数が与えられます)。