点云可视化-单击以显示点坐标

1,点云可视化

基于点云库的PCL1.8.1

1.1包含头文件。

#包括

#包括

#包括

#包括

使用命名空间pcl

typedef PCL::point XYZ PointT;

typedef PCL::point cloud point cloud t;

//互斥://进程锁

boost::互斥cloud _ mutex

//用于定义回调函数的结构。

结构回调_参数

{

point cloudt::Ptr clicked _ points _ 3d;

PCL::visualization::PCLVisualizer::Ptr viewer Ptr;

};

//回调函数

//按住shift,鼠标右键点击点云,点距离就会显示出来。

void PP _ callback(const PCL::visualization::PointPickingEvent & amp;事件,void * args)

{

struct回调_args * data = ( struct回调_ args *)args;

如果(事件。getPointIndex() == -1)

返回;

PointT当前点;

事件。getPoint(current_point.x,current_point.y,current _ point . z);

//TODO

数据-& gt;clicked _ points _ 3d-& gt;clear();//清空最后选择的点。

数据-& gt;clicked _ points _ 3d-& gt;points.push_back(当前点);//添加新选择的点

//用红色绘制点击的点:用红色标记选中的点。

PCL::visualization::PointCloudColorHandlerCustom red(data-& gt;clicked_points_3d,255,0,0);

数据-& gt;viewer ptr-& gt;removePointCloud(" clicked _ points ");

数据-& gt;viewer ptr-& gt;addPointCloud(data-& gt;clicked_points_3d,红色,“clicked _ points”);

数据-& gt;viewer ptr-& gt;setPointCloudRenderingProperties(PCL::visualization::PCL _ VISUALIZER _ POINT _ SIZE,10," clicked _ points ");

标准::cout