栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

基于PCL库的点云坐标系转换

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

基于PCL库的点云坐标系转换

代码实现的功能

  1. 读取文件数据
  2. 将采集的激光雷达数据进行转换,也可以将某一区域的点云进行筛选,然后对此区域的点云坐标转换,如y轴坐标加某一个数值,x坐标加减某一个数值
  3. 保存更改改变坐标之后的文件数据
  4. 代码示例
  5. #include
    #include
    #include
    
    int main(int argc, char** argv) {
    pcl::PointCloud::Ptr cloud(new pcl::PointCloud);
    if (pcl::io::loadPCDFile("E://1PCD点云文件//四周中速1直通滤波//2.pcd", *cloud) == -1) {
    	PCL_ERROR("Couldn't read file rabbit.pcdn");
    		return(-1);
    	}
    int j = 0;
    pcl::PointCloud::Ptr cloud_extract(new pcl::PointCloud);
    	for (int i = 0; i < cloud->points.size(); i++)
    	{
    		pcl::PointXYZ p;
    		//设定提取范围内的点的范围
    if (cloud->points[i].x > 0.018|| cloud->points[i].z<-0.018)//对全局坐标变换可以删除此行
    		{
    			p.x = cloud->points[i].x;
    			p.y = cloud->points[i].y+0.6;
    			p.z = cloud->points[i].z+0.44;
    			cloud_extract->push_back(p);
    			j++;
    		}
    	}
    //对于无序点云hight默认是1
    	cloud_extract->height = 1;
    	//cloud_extract点云文件中push_back了j个点,故width=j
    	cloud_extract->width = j;
    	pcl::io::savePCDFile("E://1PCD点云文件//四周中速1直通滤波//2改.pcd", *cloud_extract);
    }
    
    
    
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/699137.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号