Hough Transform Настройки аккумулятора (ро) - PullRequest
0 голосов
/ 02 октября 2018

Я изучал алгоритмы card.io и у меня возникли некоторые трудности при чтении скрипта преобразования Хафа.

Для преобразования Хафа требуется настроить аккумулятор, сетку, в которой хранятся голоса.(rho, theta) пробел.

В card.io-dmz/cv/hough.cpp (https://github.com/card-io/card.io-dmz/blob/master/cv/hough.cpp#L99) строка 99, говорится, что число rho numrho задается как

numrho = cvRound(((width + height) * 2 + 1) / rho);

Здесь width и height - это размер ROI, а rho - это разрешение по расстоянию.


Вопрос: Я не понимаю, почемучислитель: (width + height) * 2 + 1.

Я предполагаю, что + 1 - это подсчет нулевого значения, а * 2 - как + ve rho и -ve rho.

Но ядо сих пор не понимаю, почему появляется width + height. Я думаю, что более интуитивно понятно заменить его на sqrt(width*width + height*height), что является максимально возможным значением в rho.

Этот параметр также используется в OpenCV (см.ссылка: https://github.com/opencv/opencv/blob/master/modules/imgproc/src/hough.cpp#L128)

Любая помощь будет оценена. Спасибо

...