Пример гауссова ядра PCL

Мне нужна помощь в применении ядра Гаусса к моему облаку точек, чтобы сгладить облако.

Я не мог понять, как мне писать код, и я не мог найти простых примеров.

Обновлять:

Я использую библиотеку облаков точек (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);

Это код, он не полный, и я не уверен, что если подход правильный?

у кого-нибудь есть идеи по этому поводу?


person Obadah Meslmani    schedule 26.01.2016    source источник
comment
Вам нужно предоставить код, который вы пробовали, и объяснить, почему он не делает то, что вам нужно, включая предоставление примера ввода и вывода. См. stackoverflow.com/help/mcve.   -  person Nathaniel Ford    schedule 29.01.2016


Ответы (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);

Надеюсь, это поможет кому-нибудь в его работе :)

person Obadah Meslmani    schedule 06.02.2016
comment
Я запустил этот код, я действительно получил странный результат. Мой вывод формируется как треугольник .. - person vishnukumar; 10.08.2020