Я ищу немного разъяснений о том, как алгоритмы реализованы в обнаружении границ Canny — запись в Википедии - работай. Кажется довольно простым выполнить шумоподавление с помощью 2D-фильтра Гаусса, но я слышал, что с помощью двух 1D-фильтров — как это достигается? Также просто вычислить градиент и направление края. Однако при выполнении не максимального подавления есть ли изящный трюк для получения закругленного угла? Что я сейчас делаю, так это делю значение направления края (тета) на число пи/4, привожу его к целому числу и использую оператор switch. Но как обрабатывать отрицательные тета-значения, т.е. следует ли обрабатывать -pi/4 так же, как 3*pi/4, или так же, как pi/4?
Любые советы/ссылки очень ценятся!
Спасибо, Бен