三维重建过程中用到的一些文件格式,在这里做一下记录。

PCD

point cloud data, PCD并不是第一种支持3D点云数据的文件类型。
参考自 http://pointclouds.org/documentation/tutorials/pcd_file_format.php
格式示例如下:

# .PCD v0.7 - Point Cloud Data file format
VERSION 0.7
FIELDS x y z
SIZE 4 4 4
TYPE F F F
COUNT 1 1 1
WIDTH 5
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 5
DATA ascii
0.35222197 -0.15188313 -0.10639524
-0.3974061 -0.47310591 0.29260206
-0.73189831 0.66710472 0.44130373
-0.73476553 0.85458088 -0.036173344
-0.46070004 -0.2774682 -0.91676188
  • VERSION
    指定PCD文件版本号,目前正式的是v0.7
  • FIELDS
    指定点拥有的每一维/通道数据的名称。
FIELDS x y z                                # XYZ data
FIELDS x y z rgb                            # XYZ + colors
FIELDS x y z normal_x normal_y normal_z     # XYZ + surface normals
FIELDS j1 j2 j3                             # moment invariants
  • SIZE
    指定点的每一维数据的字节(bytes)大小。
unsigned char/char has 1 byte
unsigned short/short has 2 bytes
unsigned int/int/float has 4 bytes
double has 8 bytes
  • TYPE
    指定点每个维度的类型为char。
I - represents signed types int8 (char), int16 (short), and int32 (int)
U - represents unsigned types uint8 (unsigned char), uint16 (unsigned short), uint32 (unsigned int)
F - represents float types
  • COUNT
    指定每一维数据包含的元素数。例如,x数据一般拥有1个元素,但是一个像VFH一样的特征描述子拥有308个元素。本质上这是将n-D直方图描述子应用到每一个点的一种方式,可以将它们当成一个单个连续的存储块来对待。如果COUNT 不明确设定,所有维度的count都会默认设置为1。

  • WIDTH
    指定点云数据集点数目的宽度。

    • 指定不规则数据点云(等价于下文的POINTS)中点的总数
    • 它可以指定一个规则点云数据集每一行点的总数
  • HEIGHT
    指定点云数据集点数目的高度。

    • 非规则数据集的HEIGHT设置为1(用于检验一个数据集是否是规则的)
    • 指定规则数据点云集的总行数
  • VIEWPOINT
    指定数据集中点的获取视角。视角信息由一个平移(tx ty tz)+四元组(qw qx qy qz)确定。默认值是: 0 0 0 1 0 0 0

  • POINTS
    指定点云中点的总数。(与上面WIDTH和HEIGHT是有些重复的)

  • DATA
    指定点云数据被存储的数据类型。0.7版本支持ascii和binary两种数据类型。

PLY

Polygon File Format, 该格式主要用以储存立体扫描结果的三维数值,透过多边形片面的集合描述三维物体,与其他格式相较之下这是较为简单的方法。它可以储存的资讯包含颜色、透明度、表面法向量、材质座标与资料可信度,并能对多边形的正反两面设定不同的属性。
参考自 https://zh.wikipedia.org/wiki/PLY
格式示例如下:

 plyformat ascii 1.0element vertex 4property float xproperty float yproperty float zelement face 4property list uchar int vertex_indexend_header0 3 02.449 -1.0 -1.4140 -1 2.828-2.449 -1.0 -1.4143 0 1 33 0 2 13 0 3 23 1 2 3
  • header

第一行ply,作为PLY格式的识别。
第二行是版本资讯

 format ascii 1.0format binary_little_endian 1.0format binary_big_endian 1.0

第三行开始描述元素及属性,必须使用’element’及’property’的关键字,一般的格式为element下方接着属性列表,'property’不仅定义了资料的型态,其出现顺序亦定义了资料的顺序。内定的资料形态有两种写法:一种是char uchar short ushort int uint float double,另外一种是具有位元长度的int8 uint8 int16 uint16 int32 uint32 float32 float64。

element <element name> <number in file>
property <data_type> <property name 1>
property <data_type> <property name 2>
property <data_type> <property name 3>

一般而言,网格模型的“元素”就是顶点(vertices)、面(faces),另外还可能包含有(edges)、深度图样本(samples of range maps)与三角带(triangle strips)等元素。
最后,标头必须以此行结尾:

end_header

这之后就是按照上面描述的元素和属性写具体的元素和属性。

OUT

bundler是经典的单目重建公开库之一,.out文件是它的输出格式,包含场景估计和相机几何参数。
参考自 http://www.cs.cornell.edu/~snavely/bundler/bundler-v0.4-manual.html#S6
示例如下:

# Bundle file v0.3<num_cameras> <num_points>   [two integers]<camera1><camera2>...<cameraN><point1><point2>...<pointM>

具体如下:

  • 版本信息:# Bundle file v0.3
  • num_cameras num_points:两个整数,分别表示相机总数(其实就是输入图像的数量)和匹配到的点数;
  • 接下来依次是每个相机的内参和外参信息;
    • 内参:f k1 k2:焦距,两个径向畸变参数;
    • 外参:R:表示相机旋转的矩阵,33;T:相机平移矩阵,13;
 <f> <k1> <k2>   [the focal length, followed by two radial distortion coeffs]<R>             [a 3x3 matrix representing the camera rotation]<t>             [a 3-vector describing the camera translation]
  • 匹配点

    • position:点空间位置的描述,1*3;
    • color:RGB信息,1*3;
    • view list:描述点可见性的向量,包括 view list 长度,camera第几个相机,key表示该相机中第几个sift特征点,x和y表示在二维图像上的坐标(以图像中心的原点);
<position>      [a 3-vector describing the 3D position of the point]
<color>         [a 3-vector describing the RGB color of the point]
<view list>     [a list of views the point is visible in]

浅述pcd,ply,out文件格式相关推荐

  1. 浅述numpy中argsort()函数的用法

    浅述python中argsort()函数的用法 由于想使用python用训练好的caffemodel来对很多图片进行批处理分类,学习过程中,碰到了argsort函数,因此去查了相关文献,也自己在pyt ...

  2. 微服务浅述---架构演进

    微服务浅述---架构演进 提到架构演进,我们很容易想到'单体应用---分布式/SOA---微服务'的演进过程,那么为什么会有这个必然演进?演进的过程中遇到了哪些坑?是怎么解决这些坑的? 为什么会有这个 ...

  3. CV学习笔记-浅述CV方向

    浅述CV方向 一.浅述人工智能的一些术语 1. 人工智能初探 人工智能是通过机器来模拟人类认知能力的技术 人工智能最核心的能力就是根据给定的输入做出判断或预测 关键时间节点:1956年,达特茅斯会议, ...

  4. ui设计现状与意义_浅述UI设计在中国的现状

    原标题:浅述UI设计在中国的现状 在国内UI还是一个相对陌生的词,即便是一些设计人员也对这个词不太了解.我们经常看到一些招聘广告写着:招聘界面美工.界面美术设计师等等.这表明在国内对UI的理解还停留在 ...

  5. 浅提计算机未来的想法,浅述未来计算机的发展趋势论文

    计算机技术的趋未来发展势将面向智能化模式.多极化发展模式.网络化模式这三种主要模式.下面是学习啦小编给大家推荐的浅述未来计算机的发展趋势论文,希望大家喜欢! 浅述未来计算机的发展趋势论文篇一 < ...

  6. [滑模控制器浅述] (5) 基于分层滑模的吊车控制

    [滑模控制器浅述] (5) 基于分层滑模的吊车控制 [滑模控制器浅述] (5) 基于分层滑模的吊车控制 1 前言 2 吊车动力学模型 3 分层滑模控制器设计 4 仿真 5 参考文献 [滑模控制器浅述] ...

  7. 面试归来——梳理社招面试以及浅述对程序员职业生涯的看法

    原谅我是一个后知后觉的人,已经在新的岗位工作了两个月,才写这篇文章. 本文会先讲述博主一个月的面试经历,梳理一下技术面试,浅述关于程序员职业生涯的一些看法. 从创业到再就业 大概4个月以前,终止创业已 ...

  8. 转:解救西西弗斯- 模型驱动架构(MDA,Model Driven Architecture)浅述

    原文: 解救西西弗斯- 模型驱动架构(MDA,Model Driven Architecture)浅述 前言 西西弗斯是古希腊神话中的科林斯国王,他被罚将一块巨石推到山上,但无论西西弗斯如何努力,每次 ...

  9. [分布式控制浅述] (3)简单分布式事件触发控制

    [分布式控制浅述] (3)简单分布式事件触发控制 [分布式控制浅述] (3)简单分布式事件触发控制 1 前言 2 分布式事件触发控制 3 稳定性分析 [分布式控制浅述] (3)简单分布式事件触发控制 ...

最新文章

  1. VMware中Ubuntu系统不全屏问题
  2. 嵌入式http服务器boa 简介
  3. 头文件的包含以及命名空间的引入尽量写在cpp里
  4. HDU 1005 Number Sequence
  5. TiDB适用和不适用场景
  6. 台达触摸屏和vfd-m变频器通讯控制监视程序
  7. Windows Server 2008 R2 下载地址
  8. kerberos认证下kafka报错Bootstrap broker host:ip (id: -1 rack: null) disconnected
  9. 红帽linux认证的有效期,红帽RHCE证书过期怎么办
  10. 有关获取并保存微信头像到本地服务器
  11. python编写12306窗体抢票软件(二)
  12. 多看系统下载_看了辣么多的圣诞蛋糕,出事儿了吧?学吧——来自KA·MM店内的马卡拉劈柴蛋糕(已打包·可下载)...
  13. 【0022】没办法,你只能从“糟糕的”产品经理做起
  14. 【面试总结】测试开发面试题目
  15. NC17389-凤 凰(并查集)
  16. ubuntu18.04的Android环境配置
  17. stopwords.txt中英文数据集,四川大学机器智能实验室停用词库,哈工大停用词表,中文停用词表,百度停用词表百度网盘下载
  18. 均匀分布叠加与正态分布叠加
  19. 变化。。。。。随风而变
  20. 工信部前部长苗圩:5G应用场景约80%是To B,车联网或是最大应用(附关键数据)...

热门文章

  1. 【Unity3d Shader】眨眼效果
  2. 【问题总结(12)】Cascader 省市区联动 obj[] Object.key() some.() String() forEach() 数组筛选过滤filter
  3. CREO图文教程:三维设计案例之三弯管(基准点创建曲线进行扫描)图文教程之详细攻略
  4. Win10计算器不能用
  5. 计算机专业第二课堂计划,第二课堂活动计划
  6. BREAKING,个人感觉比较难
  7. 名画48 宋徽宗赵佶《雪江归棹图》
  8. 设备树的引进与体验_使用设备树时的驱动编程
  9. AAC-LC 是什么格式?和 AAC 有什么区别?
  10. Android Studio降低compileSdkVersion的SDK版本