什么是点云(Point Cloud)
直观地讲,点云文件就是坐标系中大量的点组成的数据集。

除了 PCD 格式以外,PLY,OBJ,X3D 等格式也支持点云数据。
程序如何识别PCD文件
在每个点云文件的开头,都包含一个 header。
在 header 中声明了该点云数据的属性,如果缺少 header 或者缺少了部分属性的声明,这个点云文件可能不能被正确识别。
比如 TU Wien 提供的由佛头雕像碎片扫描得来的PCD格式文件,直接导入Matlab中就不能被正确识别:
ptCloud = pcread('head_part01.pcd');
pcshow(ptCloud);
出错 pcread (第 99 行)
properties = visionPcdRead(filename,requiredProperties,optionalProperties);
出错 reconstruction (第 1 行)
ptCloud = pcread('gargoyle_part01.pcd');点云文件中的header
为了让 Matlab 能读取上述的点云文件,需要手动在文件中添加 header。header 包含以下内容,且它们的顺序不能变:
# .PCD v.7 - Point Cloud Data file format
VERSION .7
FIELDS x y z nx ny nz
SIZE 4 4 4 4 4 4
TYPE F F F F F F
COUNT 1 1 1 1 1 1
WIDTH 299266
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 299266
DATA asciiVERSION:描述的是 PCD 文件的版本
FIELDS:声明每个维度的数据所代表的信息
SIZE:以字节 Byte 为单位,每个维度的每个数据的大小
TYPE:每个维度中,数据的类型
COUNT:每个维度的数据中,包含几个元素。比如在上述中
Filed x的数据中,该维度只包含1个元素,即x坐标。但是某些特征会有更多元素。如未声明,Count 默认为 1WIDTH:对于无组织的数据集,width 指的是点云的总点数,(同 Points)。对于有组织的数据集,width 指的是每行中点云的数量
HEIGHT:对于无组织的数据集,为 1。可以用来判断数据集是有组织/无组织的。对于有组织的数据集,height 指的是行的数量
何为有组织?
有组织一般是矩阵结构,被清晰的分成行和列。
你可能会想,所有的 PCD 文件都是矩阵,如果只有 1 列,那也不能描述一个图像。这个也是我的疑问。
根据 Zhaokai Huang 的解释,Width 和 Height 的单位,是点的数量。尽管 FIELDS x y z 的数据有 3 列,但是每行仅代表一个点。
VIEWPOINT:可以用于不同坐标系之间的转换,也可以用于获取其他特征
translation(tx, ty, tz) + Quaternion(qw, qx, qy, qz)。默认值为0 0 0 1 0 0 0POINTS:点的总数
Points = Height x WidthDATA:数据的存储格式,有 ascii, binary 和 binary_compressed 三种格式
下面的例子是手动为 TU Wien 的 PCD 文件添加的 header:
# .PCD v.7 - Point Cloud Data file format
VERSION .7
FIELDS x y z nx ny nz
SIZE 4 4 4 4 4 4
TYPE F F F F F F
COUNT 1 1 1 1 1 1
WIDTH 102938
HEIGHT 1
VIEWPOINT 0 0 0 1 0 0 0
POINTS 102938
DATA ascii
102938
1.011964 0.361297 0.685791 0.345835 0.656790 0.670093
1.023398 0.327738 0.684021 0.711937 0.049566 0.700492
1.030203 0.338442 0.676021 0.759381 0.142571 0.634834
1.035776 0.347701 0.666306 0.775289 0.410973 0.479612
1.038322 0.353410 0.652387 0.672118 0.662722 0.330237
1.007311 0.328270 0.696681 0.386798 0.088136 0.917943
1.015605 0.340721 0.690751 0.591992 0.094817 0.800347
1.022397 0.351409 0.682731 0.727027 0.359505 0.584968
1.018546 0.356378 0.684908 0.615437 0.451608 0.645977
1.026427 0.358859 0.670873 0.662852 0.673819 0.326489
1.026488 0.361653 0.653498 0.593205 0.795269 0.125118
0.995876 0.336982 0.698348 -0.046741 0.321698 0.945688
1.005216 0.350660 0.693871 0.150240 0.386989 0.909762
1.010517 0.358848 0.688599 0.093089 0.633670 0.767982
1.011428 0.361500 0.685706 -0.051091 0.800765 0.596795
1.012907 0.362980 0.683394 0.344692 0.844429 0.410032
1.014405 0.366882 0.671723 0.301833 0.889688 0.342566
1.050411 0.320620 0.651526 0.818362 0.061351 0.571418
1.056186 0.330115 0.642094 0.840398 0.251403 0.480133
1.059744 0.337011 0.629580 0.788652 0.477697 0.387084
1.030111 0.313488 0.675790 0.732464 -0.036297 0.679837
1.023415 0.327707 0.684004 0.720720 -0.026997 0.692700
1.037215 0.324543 0.668206 0.769673 -0.008567 0.638380
1.033512 0.332423 0.672761 0.764597 0.048633 0.642672
1.043732 0.334909 0.659804 0.814237 0.129242 0.565963
1.041905 0.338366 0.661710 0.799961 0.249749 0.545607
1.048278 0.342963 0.648664 0.808180 0.517638 0.280886
1.041505 0.350636 0.651646 0.765379 0.573880 0.291302
1.049364 0.346961 0.632714 0.695640 0.688046 0.206584
1.015291 0.315507 0.690212 0.623701 -0.075095 0.778048
1.008936 0.326144 0.695739 0.530107 -0.042689 0.846855
1.023367 0.327690 0.684053 0.681226 -0.026203 0.731604
1.038327 0.353561 0.651464 0.635710 0.771927 0.001101
1.037443 0.355102 0.633704 0.569775 0.820953 0.037321
0.997210 0.313701 0.700100 0.257353 -0.006301 0.966297
1.006258 0.326730 0.697170 0.307550 0.027328 0.951139
1.024709 0.362723 0.653531 0.480678 0.875884 0.042136
1.026458 0.361664 0.653166 0.531235 0.847208 -0.005295
1.024737 0.362322 0.633603 0.481632 0.876157 -0.019484
0.984768 0.321232 0.700367 -0.188216 0.270342 0.944188
0.994462 0.334961 0.698712 -0.167593 0.223623 0.960159
0.993535 0.337227 0.697467 -0.413795 0.422269 0.806513
0.992373 0.350045 0.687488 -0.500029 0.577478 0.645361
0.994005 0.360854 0.677195 -0.331955 0.782894 0.526197
0.999034 0.369217 0.666521 -0.032753 0.971199 0.236009
1.013574 0.368010 0.657080 0.344987 0.936461 0.063438
1.013246 0.368246 0.652653 0.305482 0.951901 0.023769
0.982903 0.346613 0.680415 -0.649269 0.573639 0.499388
0.992291 0.360346 0.676005 -0.576426 0.664634 0.475389
0.997454 0.369124 0.665721 -0.222296 0.925662 0.306163
0.998333 0.372878 0.649484 0.194059 0.971738 0.134408
1.056026 0.305082 0.641769 0.823855 -0.063948 0.563182
评论