Gasyori100knock icon indicating copy to clipboard operation
Gasyori100knock copied to clipboard

Q.19. LoGフィルタ で輪郭が抽出できていなそう

Open mikecat opened this issue 5 years ago • 2 comments

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 avatar May 19 '19 14:05 mikecat

負の数が入っているカーネルは、 パラメータの影響なのか、紹介しているサイトが誤ったのか、 ラプラシアンフィルタだけのカーネルなのではないでしょうか。

ガウシアンフィルタは平滑化を行うフィルタで、 中央の値が大きくなるカーネルですよね。 そんなガウシアンフィルタと、ラプラシアンフィルタを掛け合わせると、 全てが正の数字になるのは個人的には違和感を感じません。

細かく数式等を検証した訳ではありませんが、いかがでしょうか。

kokosabu avatar Jun 02 '19 09:06 kokosabu

@mikecat さん ご指摘ありがとうございます こちら今調べてるんですが、カーネルを手で計算しても上のようにならない気がしてます (x = y = 0, sigma = 3で調べても-16にならない気が。。) もう少し調べてみます

yoyoyo-yo avatar Mar 02 '20 22:03 yoyoyo-yo