У меня есть два набора линий, заданных A и B. Начальная и конечная точки всех линий в этих двух наборах известны, и я хочу найти вращение и перевод, который лучше всего подходит множество B на множестве A. Там нет масштабирования:Алгоритм наилучшего соответствия для набора строк на многоугольник
- Существует не отображение взаимно однозначно. Я считаю, что это исключает алгоритм Кабша, хотя я могу предусмотреть алгоритм грубой силы, который использует это.
- В наборе B, скорее всего, содержатся частичные сегменты линий в A. Это, скорее всего, содержит довольно малое количество строк.
- Линии B будут ошибочными - могут быть линии, наблюдаемые, которые не существуют в А.
- Там может, конечно, быть более чем один из возможных «спички»
Для некоторого фона, это часть грубой системы позиционирования роботов на основе изображений.
- Set A - это «карта» - данные импортируются из импортированного файла dxf.
- Набор B - это набор наблюдаемых линий.
Я имел взгляд вокруг, например, здесь:
How to align shapes together? (Geometrical Best-Fit Algorithm)
умный способ сделать это? Похоже, что сравнение изображений с изображениями по сравнению с образцами изображений больше подходит для растровых изображений - возможно, для этой проблемы может быть избыток.
Наилучший способ, которым я могу воспринимать на данный момент, - использовать подход, похожий на Хобби, с использованием каждой линии в В вдоль каждой линии в А и имеющих ячейки для этих преобразований/преобразований, которые они представляют. Я еще не закодировал это и не пробовал - вроде хотел бы не изобретать колесо.
Любые идеи и вводят очень ценные.
Hi. Спасибо за ответ. Я думаю, я могу видеть, откуда вы родом, хотя я с самого начала застрял. Я не уверен, как вы получите набор A угловых пар? Что означает, например, (0,0) в вашем примере?
Тогда речь идет о том, что я буду делать дальше. Действительно ли этот подход дает мне возможные совпадения между строками в наборе и, следовательно, эвристику, если хотите, уменьшить пространство поиска, в котором я бросаю алгоритм Кабша (или аналогичный) для решения моего перевода и вращения? – Jon