【问题标题】:PCL Gaussian Kernal examplePCL 高斯内核示例
【发布时间】:2016-05-03 15:17:19
【问题描述】:

我需要帮助在我的点云上应用高斯核来平滑云。

我不知道应该如何编写代码,也找不到任何简单的示例。

更新:

我正在使用点云库 (pcl):

pcl::io::loadPCDFile ("/home/..../2240.pcd", *raw_cloud);
Eigen::VectorXf horizontal;
//Set up the Gaussian Kernel
pcl::GaussianKernel<pcl::PointXYZRGB> gaussianKernel;
gaussianKernel.compute(5,horizontal,40);

pcl::filters::Convolution<pcl::PointXYZRGB> conv;
conv.setInputCloud(raw_cloud);
conv.setKernel(horizontal);

这是代码,它不完整,我不确定该方法是否正确?

有人对此有想法吗?

【问题讨论】:

  • 您需要提供您尝试过的代码,并解释为什么它没有按照您的要求执行 - 包括提供示例输入和输出。参考stackoverflow.com/help/mcve

标签: gaussian convolution point-cloud-library kernel-density


【解决方案1】:

我找到了通过 PCL 进行高斯平滑的正确方法:

pcl::PointCloud<pcl::PointXYZRGB>::Ptr inputCloud,cloud;
pcl::filters::Convolution<pcl::PointXYZRGB, pcl::PointXYZRGB>  convolution;
Eigen::ArrayXf gaussian_kernel(5);
gaussian_kernel << 1.f/16, 1.f/4, 3.f/8, 1.f/4, 1.f/16;
convolution.setBordersPolicy(
                pcl::filters::Convolution<pcl::PointXYZRGB, pcl::PointXYZRGB>::BORDERS_POLICY_IGNORE);
convolution.setDistanceThreshold (static_cast<float> (0.1));
convolution.setInputCloud (inputCloud);
convolution.setKernel (gaussian_kernel);
convolution.convolve(*cloud);

希望它能帮助任何人在他的工作:)

【讨论】:

  • 我运行了这段代码,我真的得到了奇怪的输出。我的输出形成了一个三角形..
猜你喜欢
  • 1970-01-01
  • 2014-05-25
  • 2021-12-15
  • 2020-08-07
  • 1970-01-01
  • 2018-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多