Как определить направление вектора линии? - PullRequest
0 голосов
/ 25 ноября 2010

У меня проблема с программированием в контексте распознавания геометрических фигур (прямоугольники, овалы и т. Д.). В этом контексте, если у меня есть простая линия, скажем, от (x1, y1) до (x2, y2) - составленная из серии точек (пары x-y) -

Как рассчитать ВЕКТОР НАПРАВЛЕНИЯ для этой строки? Я понимаю математику за этим, но я нахожу алгоритм, предоставленный моим клиентом, немного расплывчатым. Я застрял на шаге 3) этого алгоритма. Ниже приведен алгоритм (на английском языке, а не psedocode), точно такой же, как мой клиент.

1) Тормозите точки, которые составляют «штрих» или «линию», в наборы X (где по умолчанию X = 20 - мы будем корректировать) точки = Набор точек

2) Для каждого набора точек найдите EndPouint (среднее число точек на концах) для первой и последней точек Y (где по умолчанию Y = X / 5).

3) Найти Вектор направления PointSet = Вычесть CentrePoints

4) Для каждой пары PointSets найдите AngleChange = угол между векторами направления PointSets.

и так далее ....... Я пытаюсь выяснить, что означает (3) ...... Любая помощь будет глубоко признательна людям! Заранее спасибо.

1 Ответ

0 голосов
/ 26 ноября 2010

Если отрезок от (x1, y1) до (x2, y2) короткий, вы можете аппроксимировать его вектор направления просто:* j .

В противном случае вы можете использовать PCA для оценки вектора направления в качестве главной оси отдельных точек, образующих сегмент,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...