点云txt文件—pcd文件
转自:http://blog.csdn.net/u013832676/article/details/44186699
这个现在看来,可能是觉得走了弯路了。因为我们是可以直接将点云数据保存在pcd文件中的,不用先保存在txt文档里然后再转换为ipcd文件里。但是学习就是这么一个过程。我转载这篇文章,主要也是因为自己在学习的过程中的确也是这样做的,一步步来,慢慢的学习。不可能一口吃成一个大胖子!
由于pcl点云库中的大多数方法的操作都是针对于pcd文件进行的,对于xyz坐标的txt文件的操作需要转化成pcd,今晚整理了一下将点云xyz坐标的txt文件转化成pcd文件方法。首先,统计txt文件中点的个数,即通过使用fgetc函数来统计\n的个数,然后将返回值作为pcd文件中点的个数。
使用以下代码实现:
struct lin
{double a[6];
};int main()
{int n=121994;int c=0;lin st_1[n];int m = 0;/////////////////////////////////以下为计算txt文件中点的数量////////////////////////////////////////
// FILE *fp;
// fp = fopen("/Users/pangshuxin/dataset/to pang/to pang/scan02.txt","r");
//
// do{// c = fgetc(fp);
// if(c == '\n'){// ++m;
// }
// }
// while(c != EOF);
//
// fclose(fp);
// std::cout << m <<std::endl;
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////std::cout<<n<<std::endl;FILE *fp_1;fp_1 = fopen("/Users/pangshuxin/dataset/to pang/to pang/scan02.txt","r");std::cout << n <<std::endl;for(int i=0; i<n; ++i){if(6==fscanf(fp_1,"%lf,%lf,%lf,%lf,%lf,%lf\n", &st_1[i].a[0],&st_1[i].a[1],&st_1[i].a[2],&st_1[i].a[3],&st_1[i].a[4],&st_1[i].a[5])){// std::cout<<st_1[i].a[0]<<std::endl;}}fclose(fp_1);std::cout<<"ok"<<std::endl;pcl::PointCloud<pcl::PointXYZ> cloud;// Fill in the cloud data
cloud.width = n;
cloud.height = 1;
cloud.is_dense = false;
cloud.points.resize (cloud.width * cloud.height);for (size_t i = 0; i < cloud.points.size (); ++i)
{cloud.points[i].x = st_1[i].a[0];cloud.points[i].y = st_1[i].a[1];cloud.points[i].z = st_1[i].a[2];
}pcl::io::savePCDFileASCII ("/Users/pangshuxin/dataset/1/b.pcd", cloud);
std::cerr << "Saved " << cloud.points.size () << " data points to test_pcd.pcd." << std::endl;for (size_t i = 0; i < cloud.points.size (); ++i)
std::cerr << " " << cloud.points[i].x << " " << cloud.points[i].y << " " << cloud.points[i].z << std::endl;return 0;
}int numofPoints(char* fname){int n=0;int c=0;FILE *fp;fp = fopen(fname,"r");do{c = fgetc(fp);if(c == '\n'){++n;}}while(c != EOF);fclose(fp);return n;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
点云txt文件—pcd文件相关推荐
- ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件
ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件 二进制安装D435的SDK 下载intel Realsense ROS工作空间 ROS下驱动D435i获得点 ...
- PCL点云CSV转PCD文件
点云文件转换代码 注意:CSV文件格式也不同,本文所述的CSV文件时用基恩士线激光传感器得到的. 具体格式为,这样式的 表格中行表示X轴向的点,列表示Y,而表格中的数值表示Z轴深度. X与Y的间距是由 ...
- PCL点云学习(1)——pcd文件的生成和读取
MATLAB mat文件转TXT文件 因为本菜鸟之前一直使用MATLAB做点云处理,所以数据都是mat文件,为了使用PCL库,需要先转化为TXT文件,在使用C++PCL将TXT文件转化为PCD文件.. ...
- Ubuntu16.04安装PCL库的python实现python-pcl,并且通过pcl加载pcd文件验证python-pcl是否安装成功
1. 安装PCL库 使用如下指令安装PCL库. sudo apt install libpcl-dev 如果提示"Unable to locate package libpcl-dev&qu ...
- KITTI数据集的点云格式转PCD格式
参考文章:https://blog.csdn.net/xinguihu/article/details/78922005 KITTI数据集应该不用多做介绍了,基本上做自动驾驶的都知道这个东西.最近本人 ...
- 从PCD文件写入和读取点云数据
(1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件 write_pcd.cpp : #include <iostr ...
- C 怎么读取Cpp文件_从PCD文件写入和读取点云数据
(1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件 write_pcd.cpp : #include <iostre ...
- python 把txt文件转化为pcd文件并用open3D可视化
python 把txt文件转化为pcd文件并用open3D进行可视化 最近在弄3D点云的一些东西,遇到一个问题:很多数据集给的点云数据都是txt格式的,但是在模型上用到的数据集基本是pcd格式!找了很 ...
- ORB-SLAM稠密点云地图构建(黑白+彩色)+ pcd文件以八叉树形式表示
pcl1.8.1 VTK 7.1.1 版本一定要对好,如果安装了不符的版本如我之前安的pcl1.1.3和VTK8.2 一定要卸载干净不然会一直报错 ,不同版本的pcl和vtk是无法共存的,并且光把包删 ...
最新文章
- mysql求每个订单的平均价_MySQL – 选择所有客户和每个客户的总订单和总价值
- 【JAVA集合类(大公司面试喜欢问的) 】
- java kinect 人体识别_深度图像的Kinect骨架算法
- nginx和fpm的进程数配置和502,504错误
- oracle product文件,快速修复Oracle参数文件的另类方法
- Python并发编程:多线程-死锁现象与递归锁
- Oracle最新的Java 8更新破坏了您的工具-它是如何发生的?
- 性能进阶:使用JMeter进行websocket测试
- jQuery 工具方法 (全)
- python中唯一的映射类型是什么_Python基础类型之字典(dict)
- 跳槽高峰期,请注意:技术面试九忌
- 奇怪的 Win10 输入法问题
- 王道数据结构代码---第五章:二叉树(重要)
- 基于铂电阻测温电路的设计
- MyBatis基本工作原理
- 隐私计算-多方安全计算
- 2015年上半年系统集成项目管理工程师案例计算题精讲(乔俊峰)-乔俊峰-专题视频课程...
- 听说尤雨溪在开发vue4.0?是谁煽动了前端圈的焦虑情绪
- macOS Big Sur:您会喜欢的事情
- MySQL数据库的创建(表的创建,列,表的增删改,深入浅出)
热门文章
- Url scheme 方式 打开App Store和应用商店
- AI修图!pix2pix网络介绍与tensorflow实现
- 用eclipse europa开发web service服务 - 东写西读终见大海无量 - JavaEye技术网站
- api系列聚美优品的知识点
- 高得地图 +数据绑定(databinding) + BaseQuickAdapter 自定义地图选点!
- LeetCode 661. Image Smoother
- echarts 重新加载数据
- WIN7下VirtualBox “指令引用的0x0000000内存”报错问题
- WPS Office 2019 for Linux(WPS 2019 文字操作指引)
- 怎么把vue改写成html,vue将字符串转为为html