首先说明一点:Binary(二进制)格式点云文件进行读取时要比Ascll码格式点云读取时要快的多,尤其是对于大型的点云文件,如几百万、甚至几千万个点云的情况下。
今天遇到了一种情况,在写项目的时候进行点云读取,读取的时候只有90多万个点,读取却要1分钟左右,所以项目的进行就涉及到了性能的问题,为什么读取的这么慢呢?晚上单独把读取点云文件的代码拎了出来。然后加载了一个七十万的点云文件,令我震惊的是1s中左右就读取完毕了。
分析:第一就是我的点云路径问题。第二就是我的文件问题。针对这两点,我就分别打开这两个文件看了一下,发现1s中读完的那个点云,是用二进制进行保存的,而另一个使用ascll码进行保存的。
下面我就针对同一个文件数据分别进行了两种格式的保存,点数为6124679个点,使用ASCLL码保存的,读取时间大概为:
9分钟!!!(很长)
而二进制格式保存的读取时间大概为:
3s!!!
后来就查询了一下原因:
ASCLL码保存:
优点:可以通过点云文件进行查看点的详细信息,以及点云的属性信息。
缺点:在文件读取的时候,会将ASCLL码首先转换为二进制码,就是0和1的数字串形式,读取速度很慢。
Binary保存:
优点:读取时不用使用ASCLL码转换为二进制码,直接可以进行读取,而且可以更有效地直接利用每个字节来表示数据,从而减少了存储空间的需求。读取速度大家可以通过上面两个例子区别出来。
缺点:在通过查看点云信息的时候,二进制码格式在文本查看的时候非常的不友好。
以此记录!