Gasyori100knock
Gasyori100knock copied to clipboard
Q.19. LoGフィルタ で輪郭が抽出できていなそう
Q.19. LoGフィルタ の出力を見ると、 単純に明るいところは明るい感じ、暗いところは暗い感じになっており、 エッジが検出できていないように見えます。
Pythonの実装で計算されたカーネルの値を見ると、
array([[0.00598426, 0.02827825, 0.03736715, 0.02827825, 0.00598426],
[0.02827825, 0.05846191, 0.07063052, 0.05846191, 0.02827825],
[0.03736715, 0.07063052, 0.08399867, 0.07063052, 0.03736715],
[0.02827825, 0.05846191, 0.07063052, 0.05846191, 0.02827825],
[0.00598426, 0.02827825, 0.03736715, 0.02827825, 0.00598426]])
となっており、全て正の値です。 一方、例えば 【画像処理】LoGフィルタの原理・特徴・計算式 | アルゴリズム雑記 では、同じ定義式を使いつつ、提示されているカーネルは
0 0 1 0 0
0 1 2 1 0
[ 1 2 -16 2 1 ]
0 1 2 1 0
0 0 1 0 0
となっており、負の値が入っています。
どうしてこのようなことになっているのでしょうか?
負の数が入っているカーネルは、 パラメータの影響なのか、紹介しているサイトが誤ったのか、 ラプラシアンフィルタだけのカーネルなのではないでしょうか。
ガウシアンフィルタは平滑化を行うフィルタで、 中央の値が大きくなるカーネルですよね。 そんなガウシアンフィルタと、ラプラシアンフィルタを掛け合わせると、 全てが正の数字になるのは個人的には違和感を感じません。
細かく数式等を検証した訳ではありませんが、いかがでしょうか。
@mikecat さん ご指摘ありがとうございます こちら今調べてるんですが、カーネルを手で計算しても上のようにならない気がしてます (x = y = 0, sigma = 3で調べても-16にならない気が。。) もう少し調べてみます