13

atan(dy/dx)エッジに直交する方向である勾配方向を取得できることを学びました。これで、この方向を4つのクラス(x方向とy方向、および両方の対角線)に離散化し、非最大抑制について最も一致する方向で両方の隣接ピクセルをチェックするという宿題がありました。

しかし、私は完全に解決策を得ることができませんでした。明らかに、4つのケースがありました。

  1. abs(angle) < pi/8、したがって、グラデーションは(おおよそ)x方向を指しているので、チェックimg(i, j-1)してimg(i, j+1)(画像の原点が左上にあると仮定して)

  2. angle > pi/8 && angle <= 3*pi/8、したがって、グラデーションは右上を指します。今、私たちはチェックする必要があると思いましたが、代わりにチェックimg(i-1, j+1)します。これは直交する対角線のように見えます。img(i+1, j-1)img(i-1, j-1)img(i+1, j+1)

他の2つのケースは同等です。これを変更しようとしましたが、エッジが本当に奇妙に見えるので、これは正しいように見えますが、理由がわかりません。

誰かが私にこれを説明できますか?

4

3 に答える 3

19

非最大抑制は、重要なエッジにないポイントを削除する方法です。最初のケースで、特定のポイントで勾配がゼロ度に近い場合、それはエッジが北または南にあることを意味し、このポイントの大きさがより大きい場合、そのポイントはエッジ上にあると見なされます左右のポイントの両方の大きさ(あなたの例のように)。2番目のケースでは、45度のグラデーションをチェックしているため、エッジは135度であるため、グラデーション方向に沿ったポイント、つまり(-1、-1)および(1)よりも大きい場合はポイントを保持します、1)。座標系を回転しても、これには影響しません。

ここに画像の説明を入力

于 2012-12-12T13:03:26.870 に答える