Subsample子采样(CloudCompare软件)

article/2025/10/20 9:50:40

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

文章目录

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

一、Random采样

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

(1)加载数据。
在这里插入图片描述
(2)选中要进行子采样的点云对象,然后点击“Subsample”按钮。
在这里插入图片描述
(3)选择随机采样,并设置参数。
在这里插入图片描述
(4)最后,点击“确定”即可生成新的点云数据。(此时的“Use active SF”使用不了,该选项只适用于space采样)
在这里插入图片描述

二、space采样

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

因为过程和随机采样类似,所以我就只说一下参数设置。
在这里插入图片描述
处理效果:
在这里插入图片描述

本着学习的态度我又试了一下“Use active SF”选项,设置如下所示:
在这里插入图片描述
此时我当前活动的字段是高程字段,那么我的设置就很明显了,就是想要高程越低点云数据分布的密度也越低,并且此时的高程和采样距离存在着一种线性插值的关系。处理的效果如下所示:
在这里插入图片描述

三、octree采样

octree采样方法与体素滤波器与很多相似之处,他们唯一的区别就是体素滤波器使用的是体元中的原始点集的质心作为采样点,而octree方法则是把距离体元中心最近的那个点作为采样点。这样的做法使得octree采样所获取的采样点均来源于原始点集,而没有产生新的采样点,这样做不仅可以减轻点云数据分布不均而带来的影响,而且还尽可能的保留了原始点集的特征。

参数设置如下所示:
在这里插入图片描述
处理效果:
在这里插入图片描述

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

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

因为我们都比较了解octree这种数据结构,其体元数每分割一次就会扩大8倍。在这里我们假设使用octree方法采样所得到的体元可以用1个字节来表示,那么 8 10 8^{10} 810是多少呢?1,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会有分割水平的限制。

四、小结

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


http://chatgpt.dhexx.cn/article/hmqS3G4i.shtml

相关文章

Android Content Providers(三)——Contacts Provider

接着上篇Android Content Providers(二)——Contacts Provider继续,接下来要说明的是顶层的Contacts,Contacts是聚合联系人表,在之前讨论的RawContacts是原始联系人表,在Android通讯录的架构中,…

Android contacts 的详解

一、包结构分析 相关联的的projects 1、Contacts相关 联系人分为了Contacts和ContactsCommon,与sim卡联系人相关的是在Telephony中,数据库是在ContactsProvider,apk要push到/system/priv-app/Contacts下 2、Contacts的包结构 3、ContactsComm…

由ContactsProvider的升级引发的OTA首次开机卡白米问题分析

上午的宁静被一个OTA卡白米问题打破,接下来不断有人反馈不同机型都复现了OTA后卡白米,10.9号OTA升级到10.10号的版本,全机型问题,线刷没有问题,好吧,接下来就根据这些信息开始初步分析log吧! 初…

Android Content Providers(二)——Contacts Provider

Contacts Provider是Android中一个强大并且灵活的组件,负责管理系统通讯录的数据,对外提供访问接口来对系统通讯录进行访问和操作。 以下是Contacts Provider的组织结构图: 可以看出Android的系统通讯录是三层架构,通过URI进行访…

API Guides Contacts Provider (二)

Data From Sync Adapters 用户直接输入联系人的数据到设备中,但是也可以通过sync adapters从服务器上获取联系人的数据。sync adapter 会自动同步设备和服务器上的数据。sync adapter运行在后台,由系统来控制。系统调用ContentResolver去管理数据。 在A…

Android 7.0后SettingProvider ContactsProvider TelephonyProvider MediaProvider数据库位置

在Android7.0之后,很多Provider数据库的位置都发生了改变,在这记录下,免得以后又忘记了,找起来费劲。 1、SettingsProvider 在之前SettingsProvider是是以settings.db的方法存在,在Android N之后SettingsProvider数据存…

利用Contacts Provider读取手机联系人信息

参考:https://developer.android.google.cn/guide/topics/providers/contacts-provider.html Contacts Provider组织结构 Contacts Provider组织结构由三部分构成,如下图所示: (联系人)Contact:代表联系人,包含了多种联系渠道。(原始联系人)RawContact:每个原始联…

API Guides Contacts Provider

Contacts Provider Contacts Provider是Android的一个强大组件,它管理联系人的核心数据。你在手机联系人看到联系人信息,来源于Contact Provider。当然,你可以在自己的应用用访问ContactProvider的数据,也可以同步手机和服务…

Android官方文档—APP组件(Content Providers)(Contacts Provider)

通讯录内容提供者 Contacts Provider是一个功能强大且灵活的Android组件,用于管理设备的人员数据中​​央存储库。联系人提供程序是您在设备的联系人应用程序中看到的数据源,您还可以在自己的应用程序中访问其数据,并在设备和在线服务之间传…

理清contactsprovider

初步了解android contact provider android的联系人数据单独拿出来做成ContactsProvider,众多的table和view整体看下来,使得联系人的数据错综复杂。但是我们在开发的过程并不需要将所有的table都搞清楚。用到最多的是 ContactsContract.Contacts、Contac…

Android ContactsProvider源码分析

Android源码目录packages\providers下的应用是下载,通话等内置基本应用提供数据存储和操作的provider应用,本文章将针对ContactsProvider源码的架构和实现展开分析。(注:本文使用使用android4.0版本进行分析) 1、架构设…

ContactsProvider2

本篇不全也不细,只是根据按照个人理解和工作中遇到的问题,总结了个人认为的要点。 1. Android的数据库体系 1.1. 概述1.2 uri结构 2. ContactsProvider2 2.1. 概述2.2. Contacts2.db中的表2.3. ContactProvider2中的实现2.4. 批量访问 1. Android的数…

Android ContactProvider码源解析

Android Contacts源码解析2 4 ContactsProvider模块 1ContactsProvider简介2数据库创建3主要数据库的表结构相互关系 1data表2raw_contacts表3contacts表4mimetypes5其他表 文章转载自:https://blog.csdn.net/kafka_88/article/details/58585607 4,…

Contacts Provider基础

作为四大组件之一的ContentProvider工作中我们很少会用到自己自定义的ContentProvider,用到的最多的就是系统提供的。官方文档提供了两种系统ContentProvider,一种是CalendarProvider,一种是Contacts Provider。今天我们的主角就是Contact Provider。 The Contacts Provider is…

Error: invalid code, hints: [ req_id: * ]

1、问题描述:这个问题是在处理订单支付时需要用户登录遇到的,具体报错信息如下: 2、报错原因: 当前开发者的appid没有支付权限导致 3、解决方案: 需要负责人给分配对应的权限

This application’s bundle identifier does not match its code signing identifier.

今天使用carthage更新第三方后莫名出现真机云心失败,提示 This application’s bundle identifier does not match its code signing identifier. 解决方法: /usr/local/bin/carthage copy-frameworks 进入Building Phases 单击并在New Run Script Phase中添加脚本 将/usr/lo…

Code Sign error: a valid provisioning profile matching the application's Identifier 'com.yourcompany

出现这个错误的原因是因为:appid和provisioning profile不匹配 !有两种解决的办法:重新下载provisioning profile,或者可能因为:生成证书和appid 所用的根证书不同,最好重新都生成然后下载。(这…

ANTD react 手机号(验证码)登陆 + 账号登陆(图形验证码)

这种页面可能是大家常用的,但重写比较费时间,之前没有搜到完整的,在这里自己总结一下,方面复用 代码: <LoginFormformRef{formRef}initialValues{{autoLogin: false}}onFinish{async values > {await handleSubmit(values as LoginParams)}}><Tabs activeKey{type…

Springboot+axios+vue使用VerifyCodeUtils工具类实现验证码图片功能

一、环境准备 ideajava 1.8maven 3.6.3操作系统&#xff1a;window10vue.min.jsaxios.min.js 二、VerifyCodeUtils工具类 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import ja…

Identity and Authentication - Common Authentication Methods

Username and Passwords This is the most common method of identifying users in the age of Software as a Service (SaaS) 解释上面的图中的步骤&#xff1a; Login Request: POST /login postuser {username: users,password: pws }Find users: SELECT * FROM databa…