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

基于PCL库的点云坐标系转换,第1张

基于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);
    }
    
    
    

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5699265.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存