У меня есть облако точек (массив вершин - x, y, z), мы можем показать облако точек, используя - with three.js / webgl.

Мы бы использовали это устройство:
https://www.sparkfun.com/products/14032
https://www.youtube.com/watch?v=gCpCGkwwy8I

Так что нам нужно делать, кроме оценки объема облака точек.

Есть ли у вас какие-либо указания, как это сделать, надеюсь, с примерами? (я бы начал с облака точек и перейти к оценке объема)

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

0
Patrik Laszlo 11 Апр 2019 в 13:05

2 ответа

Лучший ответ

Чтобы вычислить объем облака точек, вам нужно трехмерное сетчатое представление облака точек.

Поскольку вы добавили c++ в тег вопроса, рассматривали ли вы возможность использования PCL?

PCL предлагает алгоритмы восстановления поверхности, такие как здесь.

Получив трехмерную сетку облака точек, вы можете вычислить объем сетки следующим образом: Как рассчитать объем трехмерного объекта-сетки, поверхность которого состоит из треугольников

Надеюсь, это поможет вам немного!

1
kanstar 15 Апр 2019 в 00:08

Мой простой метод предполагает линейную интерполяцию.

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

Затем мы могли бы использовать формулу для объема тетраэдра (1/3 основания * высота), чтобы получить этот объем. Суммируйте все тетраэдры, и мы должны получить объем облака точек.

Возможно, самая сложная часть заключается в получении списка треугольников на поверхности. Мы можем использовать методы из компьютерной графики для преобразования облаков точек в треугольную сетку, как и в ответе на этот другой вопрос SO .

2
Leighton Ritchie 11 Апр 2019 в 10:30