• PCL的PNG文件和计算点云重心


    PCL提供节约一点云的值为一个PNG图像文件的可能方案。显然,这只能用有序的点云来完成,因为生成的图像的行和列将与点云的对应完全一致。例如,如果你从一个传感器Kinect或Xtion的点云,你可以用这个来检索640x480 RGB图像匹配的点云。

    就是将点云文件PCD保存成PNG文件,程序如下

    #include <pcl/io/pcd_io.h>
    #include <pcl/io/png_io.h>
    
    int
    main(int argc, char** argv)
    {
        // 创建点云对象
        pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGB>);
    
        // 读取点云文件
        if (pcl::io::loadPCDFile<pcl::PointXYZRGB>(argv[1], *cloud) != 0)
        {
            return -1;
        }
    
        // 保存图片,(必须为有序点云)
        pcl::io::savePNGFile("output.png", *cloud, "rgb");
    }

    那么这里的实验结果是根据我之前使用的用kinect获得的点云数据,他的点云可视化效果如下

    保存为PNG的结果为

    如果省略参数,函数将默认保存RGB域。

    (2)计算点云重心

     点云的重心是一个点坐标,计算出云中所有点的平均值。你可以说它是“质量中心”,它对于某些算法有多种用途。如果你想计算一个聚集的物体的实际重心,记住,传感器没有检索到从相机中相反的一面,就像被前面板遮挡的背面,或者里面的。只有面对相机表面的一部分。

    #include <pcl/io/pcd_io.h>
    #include <pcl/common/centroid.h>
    
    #include <iostream>
    
    int
    main(int argc, char** argv)
    {
        // 创建点云的对象
        pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
    
        // 读取点云
        if (pcl::io::loadPCDFile<pcl::PointXYZ>(argv[1], *cloud) != 0)
        {
            return -1;
        }
    
        // 创建存储点云重心的对象
        Eigen::Vector4f centroid;
        
        pcl::compute3DCentroid(*cloud, centroid);
    
        std::cout << "The XYZ coordinates of the centroid are: ("
                  << centroid[0] << ", "
                  << centroid[1] << ", "
                  << centroid[2] << ")." << std::endl;
    }

    这样就可以计算出点云的XYZ三个轴的重心的坐标值

     简单的程序演示,大神请忽略,

    微信公众号号可扫描二维码一起共同学习交流

  • 相关阅读:
    SQLSERVER 分区分表
    SQLSERVER 执行计划
    SQL SERVER 自定义函数
    codeforces 414C C. Mashmokh and Reverse Operation(归并排序求逆序对)
    codeforces 414A A. Mashmokh and Numbers(素数筛)
    codeforces 414B B. Mashmokh and ACM(dp)
    bzoj-1012 1012: [JSOI2008]最大数maxnumber(线段树)
    codeforces 665E E. Beautiful Subarrays(trie树)
    codeforces 667D D. World Tour(最短路)
    codeforces 667C C. Reberland Linguistics(dp)
  • 原文地址:https://www.cnblogs.com/li-yao7758258/p/6523012.html
Copyright © 2020-2023  润新知