математика — Удаление очков Переполнение стека

У меня есть N количество точек (x_N, y_N, z_N) в облаке точек. Облако точек образует объект сферической формы. Моя проблема в том, что у меня есть точки в моем облаке, которые заметно выступают вдоль оси z (это связано с тем, что булавочный объект вставлен в мой объект во время сканирования). Я хотел бы удалить эти пункты.

Один из подходов, который я выбрал, — это найти изменение наклона для набора точек в моем облаке по сравнению с ближайшим следующим набором точек. (например, я беру свои первые 10 точек, вычисляю изменение наклона и сравниваю его с изменением наклона для следующих десяти точек). Но это не так хорошо работает. Какие-либо предложения?

Любая помощь будет принята с благодарностью. Любая путаница в отношении моей проблемы, просто дайте мне знать.

1

Решение

Если это точно сфера, подобная объекту, и точки распределены одинаково (ни одна сторона не имеет больше точек, чем другая сторона), возьмите средние значения X, Y и Z всех точек.
Это будет рядом с center сферы. Если этот штифт не очень толстый или очень длинный (если у него мало точек по сравнению с общим), вы можете принять это как center,

Затем измерьте расстояние каждой точки до center,
Снимите те, которые имеют расстояния выше среднего расстояния.


Если вам известны радиусы сферы и ее центра, просто рассчитайте расстояние каждой точки до центра и сравните с радиусами.

1

Другие решения

У меня есть наблюдение и соответствующее предложение:

Во-первых, наблюдение: вы, кажется, строите индивидуальное решение для одноразового случая. Это не будет работать, когда вы сканируете другой объект (при этом булавка снова торчит).

Теперь предложение: используйте что-то вроде meshlab, где вы можете загрузить облако точек, выбрать точки и удалить их.

Конечно, если вы увлечены написанием кода для решения этой проблемы, то это не поможет.

0

  • Найдите наивысшую точку в z, которая на 100% наверняка будет булавкой или отделена от нее.
  • Установите точку, чтобы быть центром сферы и удалите все точки в пределах выбранного радиуса
  • Повторите еще дважды для других выводов
0
По вопросам рекламы [email protected]