Visualización de nube de puntos: haga clic para mostrar las coordenadas de los puntos

1. Visualización de nubes de puntos

PCL1.8.1 basada en la biblioteca de nubes de puntos

1.1 incluye archivos de encabezado.

#includes

#includes

#includes

#includes

Usar espacio de nombres pcl

typedef PCL::punto XYZ PointT;

typedef PCL::nube de puntos nube de puntos t;

//mutex://bloqueo de proceso

boost::mutex cloud _ mutex

//Estructura utilizada para definir funciones de devolución de llamada.

Estructura callback_parameter

{

nube de puntos::Ptr hizo clic en _ puntos _ 3d

PCL::visualización:: PCLVisualizer: :Ptr Viewer Ptr;

};

//Función de devolución de llamada

//Mantenga presionada la tecla Mayús, haga clic derecho en la nube de puntos y la distancia del punto será Muéstralo.

void PP_callback(const PCL::visualization::PointPickingEvent & event, void * args)

{

struct callback_args * data = (struct callback_ args * )args;

Si (event.getPointIndex() == -1)

Retorno;

PuntoT punto actual;

Evento . getPoint(current_point.x, current_point.y, current_point.z);

//TODO

data->clicked_points_3d->clear( ); punto.

Datos->clicked_points_3d->points.push_back(current point);//Agregar puntos recién seleccionados

//Dibujar los puntos en los que se hizo clic en rojo Punto: marcar el punto seleccionado en rojo.

PCL::visualización::PointCloudColorHandlerCustom red(data->clicked_points_3d,255,0,0);

datos->viewer ptr->removePointCloud( " clicked_points" );

datos->viewer ptr->addPointCloud(data->clicked_points_3d, rojo, "clicked_points");

datos->viewer ptr->setPointCloudRenderingProperties (PCL::visualización::PCL_VISUALIZER_POINT_SIZE, 10, "clicked_points");

Estándar::cout