2016-12-01 3 views
0

Я пытаюсь реализовать алгоритм Hough transform.Hough transform: где разместить отрицательный rhos в матрице аккумулятора

Я установил источник cartesian plane в левом верхнем углу изображения.

Диапазон тета (угол между Rho и осью X) является 1..180, с шагом 1 степени. Максимальный размер rho - размер диагонали изображения. Я хочу рассчитать аккумуляторную матрицу. С учетом информации выше ее размер должен быть Y: rho, X: 180 (theta).

Алгоритм кажется простым для меня, но есть проблема с rho. Для него будут отрицательные значения. Для тета от к PI/2 Rho будет только положительным, потому что грех и соз положительны. Тем не менее, для тета от PI/2 к PI, потому что соз отрицательна здесь, в то время как грех положительный, в зависимости от х, у координаты точки, Rho может иметь отрицательные значения.

Мой вопрос: как я должен иметь дело с отрицательными значениями rho при расчете аккумуляторной матрицы? Где я должен их разместить?

ответ

0

В rho-theta космических линиях L1 = (rho, theta) и L2 = (rho, theta + 180) те же, потому что линия не имеет выбранного направления.

Так просто изменить отрицательный theta (как ты это?), Чтобы theta + 180

+0

Так что я полагаю, я должен перейти к (тете + 180) всякий раз, когда г является отрицательным (тета), и наоборот. Это правильно? Я привел пример, для theta = 2PI/3 и (x, y) = (9,4). В этом случае «r» отрицательно (-1.03). Но для theta = PI + 2PI/3 это положительно (1.03). –

+0

Вы не должны получать отрицательные значения вообще. Для каждой ненулевой точки вы увеличиваете все подходящие ячейки в массиве с индексом 0..179 (или 1..180) и 0..диагональным – MBo