需安装PCL,配好环境。程序中需要更改的内容包括原点云、目标点云及二者间估算的转换矩阵(44)。

  • 虫虫123456
    了解作者
  • matlab
    开发工具
  • 714B
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 5 积分
    下载积分
  • 0
    下载次数
  • 2022-07-19 22:18
    上传日期
需安装PCL,配好环境。程序中需要更改的内容包括原点云、目标点云及二者间估算的转换矩阵(44)。
新建文本文档.rar
  • 新建文本文档.txt
    1.9KB
内容介绍
#include <iostream> #include <pcl/io/io.h> #include <pcl/io/pcd_io.h> #include <pcl/visualization/pcl_visualizer.h> #include <pcl/registration/transforms.h> int main(int argc, char** argv) { pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud2(new pcl::PointCloud<pcl::PointXYZ>); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud1to2(new pcl::PointCloud<pcl::PointXYZ>); // load pcd file if (pcl::io::loadPCDFile<pcl::PointXYZ>("Lgray.pcd", *cloud1) == -1) { std::cout << "load cloud1 failed!" << std::endl; getchar(); return -1; } std::cout << "cloud1 loaded!" << std::endl; if (pcl::io::loadPCDFile<pcl::PointXYZ>("Rgray.pcd", *cloud2) == -1) { std::cout << "load cloud2 failed!" << std::endl; getchar(); return -1; } std::cout << "cloud2 loaded!" << std::endl; Eigen::Matrix4f transformation12; transformation12 << -0.2390, 0.2257, 0.9444, 1.1989, -0.2231, 0.9338, -0.2797, -0.2809, -0.9450, -0.2776, -0.1728, -1.2644, 0, 0, 0, 1; // transformation12 << -0.2699, 0.0632, 0.9608, -0.700, -0.2046, 0.9713, -0.1213, 0.194, -0.9409, -0.2294, -0.2492, 1.058, 0, 0, 0, 1; // transformation12 << -0.2699, 0.0632, 0.9608, -0, -0.2046, 0.9713, -0.1213, 0, -0.9409, -0.2294, -0.2492, -0.5, 0, 0, 0, 1; std::cout << transformation12 << std::endl; pcl::transformPointCloud(*cloud1, *cloud1to2, transformation12); pcl::visualization::PCLVisualizer p; pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud1to2_h(cloud1to2, 255, 0, 0); p.addPointCloud(cloud1to2, cloud1to2_h, "cloud1to2"); pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> cloud2_h(cloud2, 100, 255, 0); p.addPointCloud(cloud2, cloud2_h, "cloud_2"); pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_result(new pcl::PointCloud<pcl::PointXYZ>); *cloud_result = *cloud1to2 + *cloud2; pcl::io::savePCDFile("cloud_result.pcd", *cloud_result); p.spin(); return 0; }
评论
    相关推荐