我是 PCL(点云库)的新手,只想将 ICP 应用于两组点。但是,当我尝试使用 Visual Studio 2010 64 位运行 ICP 的在线代码示例时,它会引发致命错误。我尝试了不同的方法来创建点云,但没有运气。致命错误发生icp.setInputTarget
在行内target_ = target.makeShared ();
这就是我创建两个云点的方式
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_in (new pcl::PointCloud<pcl::PointXYZ>);
cloud_in->width = _head_width+1;
cloud_in->height = _head_height+1;
cloud_in->is_dense = true;
for(int x=0; x<=width; x++) {
for(int y=0; y<=height; y++) {
float z = depths[x][y];
pcl::PointXYZ curr_point;
curr_point.x = x;
curr_point.y = y;
curr_point.z = z;
cloud_in->points.push_back(curr_point);
}
}
这就是发生错误的地方
pcl::IterativeClosestPoint<pcl::PointXYZ, pcl::PointXYZ> icp;
icp_dummy.setInputCloud(cloud_in);
icp_dummy.setInputTarget(cloud_out); /* This throws a fatal error */
任何帮助将不胜感激