Декартовы координаты в Хафлайнах
Почему мы не можем использовать декартовы координаты (x,y) вместо полярных координат (r,theta) в преобразованиях Хафлайна? Кто-нибудь может уточнить?
1 ответ
Из того, что я могу понять (цитата из Википедии):
Простейший случай преобразования Хафа - обнаружение прямых линий. В общем, прямая y = mx + b
может быть представлен в виде точки (b, m)
в пространстве параметров. Однако вертикальные линии представляют проблему. Они могут привести к неограниченным значениям параметра наклона m
, Таким образом, по вычислительным соображениям Дуда и Харт предложили использовать нормальную форму Гессе r = x*cos(theta) + y*sin(theta)
, где r
расстояние от начала координат до ближайшей точки на прямой линии, и theta
это угол между x
ось и линия, соединяющая начало координат с этой ближайшей точкой.
Линия может быть обнаружена путем нахождения количества пересечений между кривыми. Чем больше кривых пересекается, тем больше линий имеет точка, представленная этим пересечением. В общем, мы можем определить порог минимального количества пересечений, необходимых для обнаружения линии. Это то, что делает трансформация Hough Line. Он отслеживает пересечение между кривыми каждой точки на изображении. Если количество пересечений выше некоторого порога, то оно объявляет его как строку с параметрами (theta,r_(theta))
точки пересечения. (Документы OpenCV)