아래 함수는 아무런 결과도 가져 오지 않습니다. 즉, 포인트 클라우드의 포인트 수는 다운 샘플링 전과 동일합니다. 나는 잎 크기를 위해 0.01에서부터 당신이 아래에 보이는 것들에 이르기까지 다양한 숫자들을 시도했지만, 모두 같은 결과를 만들어 낸다. pcl::PointCloud<T>
에서 pcl::PCLPointCloud2
으로가는 전환 수 (아래에서 볼 수 있듯이)로 시세 표시해야 했으므로 여기에서 문제가 될 수도 있습니다.pcl :: VoxelGrid를 사용한 PCL 다운 샘플
비슷한 문제가있는 경우 알려 주시면 해결해 드리겠습니다. 감사합니다.
typedef pcl::PointCloud<pcl::PointXYZ>::Ptr PointCloudPtr;
void PlantVis::downsample(PointCloudPtr cloud) {
pcl::PCLPointCloud2::Ptr cloud2(new pcl::PCLPointCloud2());
pcl::toPCLPointCloud2(*cloud, *cloud2);
pcl::PCLPointCloud2::Ptr cloud_filtered(new pcl::PCLPointCloud2());
pcl::VoxelGrid<pcl::PCLPointCloud2> sor;
sor.setInputCloud(cloud2);
sor.setLeafSize(500000000.01f, 500000000.01f, 500000000.01f);
sor.filter(*cloud_filtered);
pcl::PointCloud<pcl::PointXYZ>::Ptr m_cloud(new pcl::PointCloud<pcl::PointXYZ>);
pcl::fromPCLPointCloud2(*cloud_filtered, *m_cloud);
cloud = m_cloud;
}
감사합니다. 코드는 이전에 간과 한 것을 보여 줬습니다. – Illia