我正在尝试使用点云库创建一个多边形。它显示一个错误 没有找到匹配的参数列表。 这是我的代码:
pcl::可视化::PCLVisualizer::addPolygon(云);
感谢您的任何建议...
有同样的错误,已解决。
pcl::visualization::PCLVisualizer::addPolygon(cloud);
到
pcl::visualization::PCLVisualizer::addPolygon<pcl::PointXYZ>(cloud);
确保您使用的是 pcl::PointXYZ。 例如如果您像这样创建云数据,
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud
那么你需要使用 pcl::PointXYZRGB
addPolygon 的定义:
template <typename PointT> bool
pcl::visualization::PCLVisualizer::addPolygon (
const typename pcl::PointCloud<PointT>::ConstPtr &cloud,
const std::string &id, int viewport)
{
return (!addPolygon<PointT> (cloud, 0.5, 0.5, 0.5, id, viewport));
}
我们必须指定函数模板的类型:
viewer.addPolygon<pcl::PointXYZ>(cloud);
这是我的例子:
void PclVisualize(std::string filename)
{
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud =
pcl::PointCloud<pcl::PointXYZ>::Ptr (new pcl::PointCloud<pcl::PointXYZ>());
pcl::io::loadPCDFile<pcl::PointXYZ>(filename,*cloud);
pcl::visualization::PCLVisualizer viewer("pclviewer");
viewer.setBackgroundColor(0,0,0);
viewer.addPointCloud<pcl::PointXYZ>(cloud,"pclviewer");
viewer.setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE,1,"pclviewer");
viewer.addCoordinateSystem(1.0);
viewer.initCameraParameters();
viewer.addPolygon<pcl::PointXYZ>(cloud);
while(!viewer.wasStopped())
{
viewer.spinOnce(1000);
std::this_thread::sleep_for(std::chrono::duration<long double,std::milli>(200));
}
}