atan(dy/dx)
エッジに直交する方向である勾配方向を取得できることを学びました。これで、この方向を4つのクラス(x方向とy方向、および両方の対角線)に離散化し、非最大抑制について最も一致する方向で両方の隣接ピクセルをチェックするという宿題がありました。
しかし、私は完全に解決策を得ることができませんでした。明らかに、4つのケースがありました。
abs(angle) < pi/8
、したがって、グラデーションは(おおよそ)x方向を指しているので、チェックimg(i, j-1)
してimg(i, j+1)
(画像の原点が左上にあると仮定して)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つのケースは同等です。これを変更しようとしましたが、エッジが本当に奇妙に見えるので、これは正しいように見えますが、理由がわかりません。
誰かが私にこれを説明できますか?