• pcl


    1.获取最小最大值

    #include <pcl/common/common.h>

    pcl::PointXYZ minPt, maxPt;
    getMinMax3D(*cloud, minPt, maxPt);

    2.旋转和平移

    #include <pcl/common/transforms.h>
    float theta = M_PI / 180 * 22.6255761874; 

    float thetax = M_PI / 180 * 8.4;

    Eigen::Affine3f transform_2 = Eigen::Affine3f::Identity();

    transform_2.translation() << 0.0, 0.0, 6.5;

    transform_2.rotate(Eigen::AngleAxisf(theta, Eigen::Vector3f::UnitY()));
    transform_2.rotate(Eigen::AngleAxisf(-thetax, Eigen::Vector3f::UnitZ()));

    pcl::PointCloud<pcl::PointXYZ>::Ptr transformed_cloud(new pcl::PointCloud<pcl::PointXYZ>());
    pcl::transformPointCloud(*cloud, *transformed_cloud, transform_2);

    3.view视图中添加坐标系显示

    visualizer->addCoordinateSystem(10.0, 0, 0, 0, "CloudPoint");

    4.view视图中添加一条线,设置颜色和线宽

    pcl::PointXYZ startPt,endPt;

    visualizer->addLine<pcl::PointXYZ>(startPt, endPt, 255, 255, 255, "line" );
    visualizer->setShapeRenderingProperties(pcl::visualization::PCL_VISUALIZER_LINE_WIDTH, 2, "line");

    5.view视图中点云赋单色和设置点大小

    pcl::visualization::PointCloudColorHandlerCustom<pcl::PointXYZ> single_color(transformed_cloud, 255, 255, 0);
    visualizer->addPointCloud<pcl::PointXYZ>(cloud, single_color, "CloudPoint");
    visualizer->setPointCloudRenderingProperties(pcl::visualization::PCL_VISUALIZER_POINT_SIZE, 5, "CloudPoint");

    6.view视图总设置相机视点信息

    visualizer->initCameraParameters();
    visualizer->setCameraPosition(0,-100,0,0,0,0,0,-100,1);//(0,-100,0)表示相机的位置,(0,0,0)表示从相机位置看向该点设置相机的朝向,(0,-100,1)表示相机的张上方的位置用于设置相机的旋转

    7.保存点云数据

    pcl::io::savePCDFileASCII(“cloud.pcd”, *cloud);

  • 相关阅读:
    c#委托总结
    架构研究一(autofac 注册路由 )
    Fedora20 和ubuntu 14.04 chrome标签中文乱码
    Fedora20 编译安装qemu-system
    NFS安装配置
    Mysql自动备份脚本
    Mysql性能调优(my.cnf参数篇)
    Mysql性能基本测试
    mysql编译安装主从复制
    Mysql 配置参数详解以及优化配置
  • 原文地址:https://www.cnblogs.com/maycpou/p/13744483.html
Copyright © 2020-2023  润新知