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