C++ 在PCL visualizer内打印选定点的三维坐标

C++ 在PCL visualizer内打印选定点的三维坐标,c++,point-cloud-library,C++,Point Cloud Library,我正在尝试使用PCL打印选定点的三维坐标。代码如下: #include <iostream> #include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/pcl_visualizer.h> using namespace std; void pointPickingEventOccurred (const pcl::visualization::Po

我正在尝试使用PCL打印选定点的三维坐标。代码如下:

#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>

using namespace std;

void pointPickingEventOccurred (const pcl::visualization::PointPickingEvent& event, void* viewer_void)
{
  std::cout << "[INOF] Point picking event occurred." << std::endl;

  float x, y, z;
  if (event.getPointIndex () == -1)
  {
     return;
  }
  event.getPoint(x, y, z);
  std::cout << "[INOF] Point coordinate ( " << x << ", " << y << ", " << z << ")" << std::endl;
}

int main (int argc, char** argv)
{
    pcl::visualization::PCLVisualizer viewer("Cloud Viewer");
    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr body (new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile ("body.pcd", *body);
    viewer.addPointCloud (body,"body");
    viewer.registerPointPickingCallback (pointPickingEventOccurred, (void*)&viewer);
    viewer.spin();
    return 0;
}
#包括
#包括
#包括
#包括
使用名称空间std;
void PointPickingEvent发生(const pcl::visualization::PointPickingEvent&event,void*viewer\u void)
{

std::cout尝试在按住shift键的同时单击鼠标左键选择一个点。

该功能是否始终通过“返回”按钮保留在输出之前?@Yunnosch:非常感谢。我放了一个
std::cout
语句,但它没有在终端上打印任何东西。你看到输出的第一行了吗,以及点ID得到了什么?也许它总是-1,就像@Yunnosch的意思。这样做:
std::cout@acraig5075:请看更新的问题。我添加了
std::难道这是一个非常愚蠢的问题……它正在工作……我从来不知道换档键是必要的。一点也不愚蠢,你不是第一个出现这个问题的人!