Subsample子采样(CloudCompare软件)

之前一直以为CC软件里面没有子采样这个功能,不过找了找之后发现还是有的,感觉这些小的功能挺有意思的,所以也就记录一下。

文章目录

  • 一、Random采样
  • 二、space采样
  • 三、octree采样
  • 四、小结

一、Random采样

有时候我总是喜欢使用一些小的样本来测试一些算法,所以这个小功能感觉还是很实用的,可以在保证原点云数据特征(如:颜色、法向量等等)的同时,而且能有效的降低点云数据的数据量。

(1)加载数据。

二、space采样

这个功能感觉也是很实用,它有点类似PCL中的VoxelGrid(体素)滤波器(在CC软件中,该方法为“Octree”中的“Resample”方法),虽然其做法可能与体素滤波器有些不同,但是达到的效果却是有些类似。这两种方法均可以在减少点云数据量的同时,还可以减轻点云数据分布不均匀(或是密度不同)的影响。

因为过程和随机采样类似,所以我就只说一下参数设置。

本着学习的态度我又试了一下“Use active SF”选项,设置如下所示:

三、octree采样

参数设置如下所示:

不过在这里要注意的是如果你的CC软件是32位的,那么你的分割水平最高只能为10层,而如果是64位的则可以达到21层。

私下,我曾仔细思考了一下为什么会有这方面的限制,以下的内容纯属我个人的猜测,如果有所错误就当是个笑话看看得了*~*。

因为我们都比较了解octree这种数据结构,其体元数每分割一次就会扩大8倍。在这里我们假设使用octree方法采样所得到的体元可以用1个字节来表示,那么 8 10 8^{10} 810是多少呢073,741,824?个体元,也就是1,073,741,824?字节。而我们经常所说的32位系统就是指计算机的逻辑地址空间有 2 32 2^{32} 232个字节,也就是4,294,967,296?个字节。那么此时我们就可以看出来,如果我们要将分割水平设置为11层,那么 8 11 8^{11} 811就已经大于 2 32 2^{32} 232了,计算机内的逻辑地址空间就不够用了,在这里也可以简单理解为内存不够用了。同样的道理如果是64位系统,分割层数一但大于21层,那么也会和上述情况一样,面临着逻辑地址空间不够使用了,所以这可以解释一下为什么octree会有分割水平的限制。

四、小结

我有时候在使用一些功能的时候会时不时的进行瞎猜,之所以这样做一方面可能就是为了求个“道理”,而另一方面可能就是方便自己的记忆吧,如果文中因此出现错误还希望大家能及时的指出*~*。

文章知识点与官方知识档案匹配,可进一步学习相关知识OpenCV技能树OpenCV中的深度学习图像分类11611 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年1月12日
下一篇 2022年1月12日

相关推荐