Я пытаюсь разместить более одной строки в списке точек в 2D. Мои баллы довольно малы (16 или 32).
Эти точки получены в моделируемой среде робота с лазерными дальномерами , прикрепленными к его стороне. Если точки лежат на линии, это означает, что они обнаружили стену , если нет, то они обнаружили препятствие . Я пытаюсь обнаружить стены и рассчитать их пересечение, и для этого я подумал, что лучшая идея - это разместить линии на наборе данных.
Подгонка одной линии к набору точек не является проблемой, если мы знаем, что все эти точки расположены на линии или вокруг нее.
Моя проблема в том, что Я не знаю, как я могу определить, какие наборы точек следует классифицировать для подгонки к одной и той же линии , а какие - не для каждой линии. Кроме того, я даже не определяю количество точек на линии, хотя, естественно, было бы лучше определить самый длинный отрезок линии.
Как бы вы решили эту проблему? Если я смотрю на все возможности, например, для групп из 5 баллов для всех 32 баллов, то это дает 32 выбора 5 = 201376 возможностей. Я думаю, что требуется слишком много времени, чтобы попробовать все возможности и попытаться сопоставить все 5 кортежей.
Итак, Какой алгоритм будет лучше Что будет работать намного быстрее? Я мог бы соединить точки в пределах лимита и создать полилинии. Но даже соединение точек - сложная задача, так как расстояние до краев меняется даже в пределах одной линии.
Как вы думаете, возможно ли выполнить какое-то преобразование Хафа для дискретного набора данных с таким небольшим количеством записей?
Примечание: если эту проблему слишком сложно решить, я думал об использовании порядка датчиков и использовании его для фильтрации. Таким образом, алгоритм может быть проще, но если перед стеной будет небольшое препятствие, это нарушит непрерывность линии и, таким образом, разбито стену на две половины.