前言
在进行PCL开发时,需要对点进行操作,如删除离群点、噪声点;获取点三维坐标等。单一的选点功能效率低下,掌握点云的框选功能有利于进一步提高应用的交互功能。本博文将一步步介绍如何在PCL中实现点云框选功能。
PCL函数说明:
点云的框选功能回调函数:
pcl::visualization::AreaPickingEvent::AreaPickingEvent ()
成员函数
bool pcl::visualization::AreaPickingEvent::getPointsIndices ( std::vector< int > & indices ) const
利用此函数可以获取视窗中选择的点云数据的索引,根据索引又可以获得确定的离散点数据。
//点云类型、可视化窗口定义
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>());
boost::shared_ptr<pcl::visualization::PCLVisualizer> viewer(new pcl::visualization::PCLVisualizer("viewer"));
pcl::PointCloud<pcl::PointXYZ>::Ptr clicked_points_3d(new pcl::PointCloud<pcl::PointXYZ>);//框选点云
int num = 0;
//回调函数
void ppp_callback(const pcl::visualization::AreaPickingEvent& event, void *args)
{
struct callback_args * d