从没有 header 的 .pts 文件读取到点云
Reading from a .pts file that has no header into a point cloud
我有一个以 .pts 结尾的文件,其中包含 6 列数字。它实际上是一个文本文件,因为它没有定义 header 或其他任何内容。例如一个片段:
497074.93 5419772.04 266.04 12 1 1
497074.93 5419772.08 266.02 15 1 1
497074.93 5419772.09 266.05 13 1 1
497074.93 5419772.11 266.05 13 1 1
497074.94 5419772.14 266.02 11 1 1
497074.94 5419772.15 266.04 13 1 1
497074.94 5419772.17 266.04 14 1 1
497074.94 5419772.18 266.05 14 1 1
我这里有两个问题:
这些 xyz 值是否附加了 RGB?
如何将它们加载到 matlab 中并将其保存为点云?
数据是从 this link 获得的,据我所知应该包含某种格式的点云。
关于读入,可以用textscan
:
filename = '*** Full path to your text file ***';
fid = fopen(filename, 'r');
if fid == -1, error('Cannot open file! Check filename or location.'); end
readdata = cell2mat(textscan(fid,'%f%f%f%f%f%f'));
fclose(fid);
如果文件不包含除数字以外的数据,此代码会将数据保存在具有 6 列的矩阵中。格式 %f
可以根据您的需要进行更改(参见 https://de.mathworks.com/help/matlab/ref/textscan.html)。
关于数据的含义:当我点击 link 时,我没有看到任何数据,所以请更具体一些。除此之外,你为什么要使用你不知道其含义的数据?
我有一个以 .pts 结尾的文件,其中包含 6 列数字。它实际上是一个文本文件,因为它没有定义 header 或其他任何内容。例如一个片段:
497074.93 5419772.04 266.04 12 1 1
497074.93 5419772.08 266.02 15 1 1
497074.93 5419772.09 266.05 13 1 1
497074.93 5419772.11 266.05 13 1 1
497074.94 5419772.14 266.02 11 1 1
497074.94 5419772.15 266.04 13 1 1
497074.94 5419772.17 266.04 14 1 1
497074.94 5419772.18 266.05 14 1 1
我这里有两个问题:
这些 xyz 值是否附加了 RGB?
如何将它们加载到 matlab 中并将其保存为点云?
数据是从 this link 获得的,据我所知应该包含某种格式的点云。
关于读入,可以用textscan
:
filename = '*** Full path to your text file ***';
fid = fopen(filename, 'r');
if fid == -1, error('Cannot open file! Check filename or location.'); end
readdata = cell2mat(textscan(fid,'%f%f%f%f%f%f'));
fclose(fid);
如果文件不包含除数字以外的数据,此代码会将数据保存在具有 6 列的矩阵中。格式 %f
可以根据您的需要进行更改(参见 https://de.mathworks.com/help/matlab/ref/textscan.html)。
关于数据的含义:当我点击 link 时,我没有看到任何数据,所以请更具体一些。除此之外,你为什么要使用你不知道其含义的数据?