Я использую PCL с предварительно созданной версией (1.9.1 для Windows) и даже со сборкой версии с исходным кодом, но у меня нет возможности использовать итеративную ближайшую точку (ICP) или даже другие фильтры (например,нормальная оценка) чтобы правильно работать.Вот мой код C ++:
#include <pcl/io/ply_io.h>
#include <pcl/registration/icp.h>
void test(void)
{
typedef pcl::PointXYZ PointType;
typedef pcl::PointCloud<PointType> PointCloudType;
typedef pcl::IterativeClosestPoint<PointType, PointType, float> ICPType;
PointCloudType::Ptr pcA(new PointCloudType());
pcl::io::loadPLYFile("pointcloud00000.ply", *pcA);
std::cout << "pcA size: " << pcA->points.size() << std::endl;
PointCloudType::Ptr pcB(new PointCloudType());
pcl::io::loadPLYFile("pointcloud00001.ply", *pcB);
std::cout << "pcB size: " << pcB->points.size() << std::endl;
ICPType icp;
icp.setInputSource(pcA);
icp.setInputTarget(pcB);
PointCloudType pcC;
icp.align(pcC);
std::cout << "pcC size: " << pcC.points.size() << std::endl;
}
, и вот что я получаю в консоли вывода:
pcA size: 19346
pcB size: 19409
[pcl::KdTreeFLANN::setInputCloud] Cannot create a KDTree with an empty input cloud!
[pcl::KdTreeFLANN::setInputCloud] Cannot create a KDTree with an empty input cloud!
[pcl::IterativeClosestPoint::computeTransformation] Not enough correspondences found. Relax your threshold parameters.
pcC size: 19346
есть некоторые проблемы с использованием облаков, PCL жалуется на их пустоту, но онизаполнено, как написано, около 20К баллов.
не могли бы вы мне помочь?