点云可视化-单击以显示点坐标
基于点云库的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