Выпрямление перпендикулярных плоскостей - PullRequest
1 голос
/ 18 апреля 2020

У меня есть облако точек, из которого я вычислил все существующие плоскости. У меня есть математическая формула, которая лучше всего описывает плоскости, которые содержат точки в облаке точек, например: ax + by + cz + d = 0. В этой формуле a, b, c описывают вектор нормалей этих плоскостей. Я знаю, что все рассчитанные мной плоскости либо перпендикулярны друг другу, либо параллельны друг другу. Но из-за шума в облаке точек результирующие нормальные векторы не идеально параллельны и перпендикулярны.

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

1 Ответ

1 голос
/ 18 апреля 2020

Я предлагаю распределить ошибку между нормалями.

Вы должны относиться к типам нормалей: к одной группе плоскостей (параллельно) или к другой группе (перпендикулярно первой группе).

Нормы могут быть средневзвешены по количеству точек в каждой плоскости и / или по ошибке, которую вы получаете для каждой плоскости.

Теперь у вас есть только две «основные» нормали, «A» и «B». ». После их нормализации (деления на длину) их точечное произведение позволяет узнать угол между ними.

Разница между результатом точечного произведения и углом 90 градусов может быть распределена, опять же с некоторым числом: of-points или критерии полной ошибки.
Две нормали образуют плоскость, и в этой плоскости применяется разность, вы заканчиваете немного вращать нормали вокруг нормали к этой плоскости, каждая нормаль имеет свой распределенный угол.

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