gaussian - PCL 高斯核示例

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

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

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

更新:

我正在使用点云库(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);

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

有人对此有什么想法吗?

最佳答案

我找到了通过 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);

希望这对任何人的工作都有帮助:)

关于gaussian - PCL 高斯核示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35024359/

相关文章:

c++ - 如何合并不同大小的点云簇

python - Numpy 高斯来自/dev/urandom

python - tf.conv2d 高斯核卷积在 Tensorflow 中产生奇怪的边界效果

python - 在 PyPy 上矢量化高斯 CDF(或 erf/erfc/等)的最快方法(即没有 SciPy)

python - GMM - 对数似然不是单调的

fft - Ron Mayer FFT 卷积算法

python - opencv 中使用 4D 内核进行图像卷积

matlab - 了解MATLAB转换的行为

c++ - PCL 在没有云复制的情况下对八叉树应用过滤器

使用 PCL 时私有(private)函数的 C++ 继承