2015-07-01 2 views
1

В модуле imgproc OpenCV существует функция, называемая HoughLines, которая принимает двоичное изображение, некоторые другие параметры и возвращает вектор Vec2f, являющийся парами значений с плавающей запятой.Как OpenCV представляет строку с двумя двумя значениями?

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

Первое значение каждой пары, состояния OpenCV documentation, является расстоянием от начала координат. Расстояние от начала до чего? Линия? Если да, то какая часть линии?

Второе значение Vec2f, говорят они, является «углом поворота линии в радианах». Угол поворота относительно какой оси?

В идеале, я хотел бы преобразовать это представление строки во что-то, с чем я могу работать, например, хороший, старый декартес y = mx + c. Если нет, мне бы хотелось, по крайней мере, найти каждую точку, лежащую на линии, представленной Vec2f.

Любые идеи о том, как я могу достичь одного из двух выше? Или, что значения Vec2f[0] и Vec2f[1]точно означает?

+1

Читайте о полярных координатах. Линия определяется началом и (r, тета). – twentylemon

ответ

1

Объяснение дано в ссылке документация, указывающая на here. Линия определяется параметрическим способом, то есть в форме x cos(a) + y sin(a) = r. В отличие от декартовой формы, она позволяет выражать вертикальные линии. Таким образом, если у вас нет вертикальных линий (т. Е. Sin (a) никогда не является нулевым), то декартовой формой в вашем случае является:

y = - (cos (Vec2f[1])/sin (Vec2f[1]) x - Vec2f[0] 
Смежные вопросы