2016-06-28 3 views
4

У меня есть несколько плоскостей в трехмерном пространстве, которые теоретически должны пересекаться в одной строке.Поиск средней линии пересечения для нескольких плоскостей

Каждая плоскость рассчитывается путем взятия 3 измеренных точек. Однако есть некоторая ошибка в измерении этих точек.

Так что на практике плоскости не все пересекаются на одной линии.

Как я могу получить «среднюю» линию пересечения для всех этих самолетов?

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

Есть ли более справедливый способ расчета общей линии пересечения?

+0

Вес линий пересечения с небольшим значением для * одинаковых плоскостей ориентации * и большего для * ортогональных плоскостей * ... Или устранить пересечения * вблизи параллельных плоскостей *. –

+0

Да, взвешивание каждой отдельной линии должно работать, спасибо! Мне любопытно, есть ли какое-то математическое обоснование для точного веса, т. Е. Если я буду весить каждую строку на основе [angle-between-the-planes-in-rad] ², я получу наилучший результат, или есть другое оптимальное значение для веса. – HugoRune

+0

Я подумал об этом ... но на этом нет хорошего ответа. Вы должны управлять как моделью ошибки, так и углом между плоскостями. Я думаю, вы не должны использовать линейную функцию, использовать какую-то быстро растущую функцию, экспоненциальную? Действительно пользу ортогоналов. Все это зависит от количества плоскостей и т. Д. –

ответ

0

Я думаю, что вам нужно не усреднение, а алгоритм, который обнаруживает выбросы (т. Е. Плохие линии пересечений) и отбрасывает их.

Один стандартный алгоритм делает это случайный образец консенсуса (RANSAC). Но для того, чтобы использовать его, вам нужно было бы определить какое-то расстояние между строками, которое должно быть сделано значимым образом.

Другая возможность найти более строгие (то есть хорошие линии пересечения) - это Hough transform. В этом алгоритме все пространство параметров линий подразделяется на ячейки. Вычисленная линия пересечения «голосов» для ячейки, которая содержит параметры этой линии пересечения. Побеждает партия параметров с наибольшим количеством голосов. Можно уточнить результат, вычислив среднюю строку из всех строк, проголосовавших за выигрышную ячейку.

Смежные вопросы