У меня есть дорога на карте. Как преобразовать его в функцию? - PullRequest
4 голосов
/ 05 апреля 2009

У меня есть файл изображения карты и извилистая дорога, отмеченная жирной красной линией (шире 1 пикселя, на изображении нет других красных объектов). Может кто-нибудь предложить шаги, как распознать эту дорогу как линию, а затем превратить ее в функцию y = f (x), чтобы я мог измерить точные расстояния. Понятия не имею, с чего начать ...

Спасибо.

Ответы [ 3 ]

2 голосов
/ 05 апреля 2009

Пройдите изображение попиксельно и проверьте цвет каждого из них. Если пиксель красный, добавьте точку (координаты x / y) в список точек, составляющих дорогу.

Я не уверен, что вы подразумеваете под функцией. Вы хотите, чтобы полином или функция определяли, находится ли конкретная точка на дороге или нет? Если первое, ищите математическую библиотеку, которая имеет функцию подбора кривой, которая возьмет набор точек и вернет вам полином, который наилучшим образом соответствует этим точкам. Я подозреваю, однако, что вы, вероятно, хотите последнее. В этом случае просто попросите функцию взять нужные координаты и выполнить поиск по набору точек, чтобы определить, входит ли точка в набор. Это было бы быстрее, если бы вы использовали карту / хэш, который закодировал координаты в ключ, который вы можете найти, используя операцию O (1).

1 голос
/ 05 апреля 2009

Попробуйте поискать интерполяции . Я использовал нечто похожее на то, о чем вы говорите на физическом симуляторе. Для этого вам нужно найти некоторые общие точки, представляющие дорогу, все с постоянным расстоянием друг от друга. Затем вы можете отобразить каждый набор из 3 точек в квадратное уравнение (легко, если точки равномерно разделены). После этого вам нужно интерполировать близлежащие уравнения. У меня есть код, который вы можете использовать, если хотите.

0 голосов
/ 06 апреля 2009

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

РЕДАКТИРОВАТЬ: Я думаю, что это похоже на статью об эрозии, указанную комментатором. Здесь - ссылка (очевидно, опубликованная ссылка была сломана).

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