Подавление Non-max

мы узнали, что вы можете получить направление градиента с atan(dy/dx) которое является направлением, ортогональным краю. Теперь у нас было домашнее задание, где мы должны были дискретизировать это направление на четыре класса (X-и y-направление и обе диагонали), а затем проверить обоих соседей пикселей в лучшем направлении соответствия для подавление non-max.

Я не полностью получил решение. Очевидно, нас было четверо. случаи:

  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) что похоже на ортогональную диагональ.

два других случая эквивалентны. Я пытался измените это, но тогда края действительно выглядят странно, поэтому это кажется правильным, но я не понимаю, почему.

может кто-нибудь объяснить это мне?

3 ответов


non-max подавление является способом устранения точек, которые не лежат в важных краях. В первом случае, если градиент близок к нулю градусов в данной точке, это означает, что край находится к северу или к югу, и эта точка будет считаться на краю, если величина этой точки больше, чем обе величины точек слева и справа (как в вашем примере). Во втором случае вы проверяете градиент на 45 градусов, поэтому край находится на 135 градусах, и таким образом, вы сохраняете точку, если она больше точек вдоль направления градиента, т. е. (-1, -1) и (1, 1). Вращение системы координат на это не влияет.

enter image description here


вот реализация python Подавление Не Максимумов использованный в Canny процессе обнаружения края.

надеюсь, это поможет кому-то, кто нуждается в NMS для поиска лучшего края.


может опоздать на исходный вопрос, но следующая ссылка может помочь любому, кто пытается понять не-максимальное подавление.

Java демо не-Макс подавления