///'#include //n#include <pcl/io/pcd_io.h>//n#include <pcl/point_types.h>//n#include <pcl/registration/icp.h>//n#include <pcl/registration/sac_ia.h>//n//nint main(int argc, char** argv)//n{//n // 检查输入参数//n if (argc != 4) {//n std::cerr << ///'请输入两个点云文件路径和输出文件路径!///' << std::endl;//n return -1;//n }//n//n // 加载输入的点云文件//n pcl::PointCloudpcl::PointXYZ::Ptr cloud1(new pcl::PointCloudpcl::PointXYZ);//n pcl::PointCloudpcl::PointXYZ::Ptr cloud2(new pcl::PointCloudpcl::PointXYZ);//n if (pcl::io::loadPCDFilepcl::PointXYZ(argv[1], *cloud1) == -1) {//n std::cerr << ///'无法加载点云文件 ///' << argv[1] << std::endl;//n return -1;//n }//n if (pcl::io::loadPCDFilepcl::PointXYZ(argv[2], *cloud2) == -1) {//n std::cerr << ///'无法加载点云文件 ///' << argv[2] << std::endl;//n return -1;//n }//n//n // 创建 SAC-IA 对象//n pcl::SampleConsensusInitialAlignment<pcl::PointXYZ, pcl::PointXYZ, pcl::FPFHSignature33> sac_ia;//n sac_ia.setInputSource(cloud1);//n sac_ia.setInputTarget(cloud2);//n//n // 设置 SAC-IA 参数//n sac_ia.setMinSampleDistance(0.05); // 最小采样距离//n sac_ia.setMaxCorrespondenceDistance(0.1); // 最大对应距离//n sac_ia.setMaximumIterations(500); // 最大迭代次数//n//n // 执行配准//n pcl::PointCloudpcl::PointXYZ::Ptr aligned_cloud(new pcl::PointCloudpcl::PointXYZ);//n sac_ia.align(*aligned_cloud);//n//n // 输出配准结果//n std::cout << ///'SAC-IA 配准结果: ///' << std::endl;//n std::cout << sac_ia.getFinalTransformation() << std::endl;//n//n // 保存配准后的点云//n pcl::io::savePCDFileASCII(argv[3], *aligned_cloud);//n std::cout << ///'配准结果已保存到 ///' << argv[3] << std::endl;//n//n return 0;//n}//n/


原文地址: http://www.cveoy.top/t/topic/pq70 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录