Преобразование между PointT и PointXYZ

Я скомпилировал и запустил этот https://github.com/otherlab/pcl/blob/master/apps/src/openni_ii_normal_estimation.cpp

Однако теперь я хочу иметь доступ к основной необработанной информации о нормалях и точках x, y, z. Однако я не могу извлечь необработанную информацию (например, позиции x, y, z) из CloudConstPtr (это pcl::PointCloud::ConstPtr).

Я попытался выполнить приведение к новым объектам PointCloud типа шаблона PointXYZ, но это неверно. Может кто-нибудь продемонстрировать, как извлечь информацию xyz? Это должно быть легко.


person Prof    schedule 01.05.2013    source источник
comment
Покажите нам точный код, который вы используете. И имейте в виду, что настоящего PointT не существует. Это параметр шаблона. Сам по себе он не является реальным объектом. P.S. не используйте тег PCL. Это не связано с библиотекой PointClouds.   -  person Bart    schedule 06.05.2013


Ответы (1)


Хотите получить или извлечь информацию XYZ? (в данный момент я не могу пытаться запустить код, но это действительно должно быть легко)

Если вы хотите получить к нему доступ, вы можете найти его в атрибуте points вашего облачного объекта, например:

cloud->points[pointNumber].x
cloud->points[pointNumber].y
cloud->points[pointNumber].z

(при условии, что облачная переменная является указателем)

Если вы хотите извлечь его в отдельное облако точек или тип данных, вы просто перебираете его и копируете данные points в свой отдельный объект/переменную. Или просто используйте

pcl::copyPointCloud()

внутреннюю функцию, чтобы скопировать его в другой тип облака PCL (подробности см. в документе API, его можно найти в пространстве имен common).

person Oszkar    schedule 01.05.2013