转自: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文件相关推荐

  1. ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件

    ROS kinetic环境使用Realsense D435i获取三维点云并存为.pcd文件 二进制安装D435的SDK 下载intel Realsense ROS工作空间 ROS下驱动D435i获得点 ...

  2. PCL点云CSV转PCD文件

    点云文件转换代码 注意:CSV文件格式也不同,本文所述的CSV文件时用基恩士线激光传感器得到的. 具体格式为,这样式的 表格中行表示X轴向的点,列表示Y,而表格中的数值表示Z轴深度. X与Y的间距是由 ...

  3. PCL点云学习(1)——pcd文件的生成和读取

    MATLAB mat文件转TXT文件 因为本菜鸟之前一直使用MATLAB做点云处理,所以数据都是mat文件,为了使用PCL库,需要先转化为TXT文件,在使用C++PCL将TXT文件转化为PCD文件.. ...

  4. 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 ...

  5. KITTI数据集的点云格式转PCD格式

    参考文章:https://blog.csdn.net/xinguihu/article/details/78922005 KITTI数据集应该不用多做介绍了,基本上做自动驾驶的都知道这个东西.最近本人 ...

  6. 从PCD文件写入和读取点云数据

    (1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp  CMakeLists.txt两个文件 write_pcd.cpp : #include <iostr ...

  7. C 怎么读取Cpp文件_从PCD文件写入和读取点云数据

    (1)学习向PCD文件写入点云数据 建立工程文件ch2,然后新建write_pcd.cpp CMakeLists.txt两个文件 write_pcd.cpp : #include <iostre ...

  8. python 把txt文件转化为pcd文件并用open3D可视化

    python 把txt文件转化为pcd文件并用open3D进行可视化 最近在弄3D点云的一些东西,遇到一个问题:很多数据集给的点云数据都是txt格式的,但是在模型上用到的数据集基本是pcd格式!找了很 ...

  9. ORB-SLAM稠密点云地图构建(黑白+彩色)+ pcd文件以八叉树形式表示

    pcl1.8.1 VTK 7.1.1 版本一定要对好,如果安装了不符的版本如我之前安的pcl1.1.3和VTK8.2 一定要卸载干净不然会一直报错 ,不同版本的pcl和vtk是无法共存的,并且光把包删 ...

最新文章

  1. mysql求每个订单的平均价_MySQL – 选择所有客户和每个客户的总订单和总价值
  2. 【JAVA集合类(大公司面试喜欢问的) 】
  3. java kinect 人体识别_深度图像的Kinect骨架算法
  4. nginx和fpm的进程数配置和502,504错误
  5. oracle product文件,快速修复Oracle参数文件的另类方法
  6. Python并发编程:多线程-死锁现象与递归锁
  7. Oracle最新的Java 8更新破坏了您的工具-它是如何发生的?
  8. 性能进阶:使用JMeter进行websocket测试
  9. jQuery 工具方法 (全)
  10. python中唯一的映射类型是什么_Python基础类型之字典(dict)
  11. 跳槽高峰期,请注意:技术面试九忌
  12. 奇怪的 Win10 输入法问题
  13. 王道数据结构代码---第五章:二叉树(重要)
  14. 基于铂电阻测温电路的设计
  15. MyBatis基本工作原理
  16. 隐私计算-多方安全计算
  17. 2015年上半年系统集成项目管理工程师案例计算题精讲(乔俊峰)-乔俊峰-专题视频课程...
  18. 听说尤雨溪在开发vue4.0?是谁煽动了前端圈的焦虑情绪
  19. macOS Big Sur:您会喜欢的事情
  20. MySQL数据库的创建(表的创建,列,表的增删改,深入浅出)

热门文章

  1. Url scheme 方式 打开App Store和应用商店
  2. AI修图!pix2pix网络介绍与tensorflow实现
  3. 用eclipse europa开发web service服务 - 东写西读终见大海无量 - JavaEye技术网站
  4. api系列聚美优品的知识点
  5. 高得地图 +数据绑定(databinding) + BaseQuickAdapter 自定义地图选点!
  6. LeetCode 661. Image Smoother
  7. echarts 重新加载数据
  8. WIN7下VirtualBox “指令引用的0x0000000内存”报错问题
  9. WPS Office 2019 for Linux(WPS 2019 文字操作指引)
  10. 怎么把vue改写成html,vue将字符串转为为html