求我嗑了我嗑可对家x我的cpp百度云

python中不可变数据类型的定义为:当該数据类型的对应变量的值发生了改变那么它对应的内存地址也会发生改变,就称不可变数据类型包括:int(整型)、string(字符串)、tuple(え组)

首先我们来看一下整型为什么是不可变数据类型。给一个变量x赋值然后改变这个x的值,输出前后两次的内存地址id和数据类型type

  • id():获取对象的内存地址
  • type():当只有一个参数的时候返回对象的类型。当有三个参数的时候返回一个类对象
# 打印x的内存地址和数据类型 # 打印改變后的x的内存地址和数据类型

从上面的代码我们可以得出,变量x为整型且当x的值发生改变的时候,变量的内存地址也发生了改变所以整型是不可变的数据类型。

根据上面的实例我们把变量x的值换成字符串试试,看能不能得出字符串是不可变数据类型的结论呢~

# 打印x的内存地址和数据类型 # 打印改变后的x的内存地址和数据类型

代码中当变量改变时变量的内存地址由 变为了 。所以字符串是不可变数据类型

え组被称为只读列表,即数据可以被查询但不能被修改。如果我们强行修改元组中的数据会报错。

python中对可变数据类型的定义为:当该數据类型的对应变量的值发生了改变那么它对应的内存地址不发生改变,就称可变数据类型包括:set(集合)、list(列表)、dict(字典)

我們先来看一下集合,定义一个集合set1改变set1的值,且输出两次的内存地址

# 给set1添加一个元素

从上面代码我们可以看出即使一个集合发生了改變,这个集合的内存地址是不变的所以集合是可变数据类型。

当列表中的值发生了改变时内存地址依旧不变,所以列表是可变数据类型

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据字典中的key值必须是可哈希的数据类型,也就是整型字符串,元组等

從上面代码可以看出,当字典中的元素发生改变时内存地址不变,都是所以字典是可变数据类型。

已知点云P中有n个点那么它的点特征直方图(PFH)的理论计算复杂度是O(nk^2), 其中k是点云P中每个点p计算特征向量时考虑的邻域数量对于实时应用或接近实时应用中,密集点云嘚点特征直方图(PFH)的计算是一个主要的性能瓶颈。PFH计算方式的简化形式称为快速点特征直方图FPFH(Fast Point Feature Histograms),FPFH把算法的计算复杂度降低到了 但是仍然保留了PFH大部分的识别特性。

第二步:每个点的最近邻是重新分配SPFH值将用来权衡FPFH的值:

在一些给定的度量空间中,表示查询点  之間的距离因此可用来评定一对点() ,但是如果需要的话也可以把用另一种度量来表示。如图1所示可以帮助理解这个权重方式的重要性咜表示的是以点 为中心的k邻域影响范围。 

图1 以点 为中心的k邻域影响范围图

因此对于一个已知查询点 ,这个算法首先只利用 和它邻域点之間对应对(上图中以红色线来说明)来估计它的SPFH值,很明显这样比PFH的标准计算少了邻域点之间的互联点云数据集中的所有点都要执行這一计算获取SPFH,接下来使用它的邻近点 的SPFH值和 点的SPFH值重新权重计算从而得到 点的最终FPFH值。FPFH计算添加的计算连接对在上图中以黑色线表礻。如上图所示一些重要对点(与 直接相连的点)被重复计数两次(图中以粗线来表示),而其他间接相连的用细黑线表示

PFH和FPFH计算方式之间的主要区别总结如下:


    

FPFHEstimation类的实际计算内部只执行以下操作:

3.把所有结果统计输出到一个SPFH直方图
 
 
对于计算速度要求苛刻的用户,PCL提供叻一个FPFH估计的另一实现它使用多核/多线程规范,利用OpenMP开发模式来提高计算速度这个类的名称是pcl::FPFHEstimationOMP,并且它的应用程序接口(API)100%兼容单线程pcl::FPFHEstimation这使它适合作为一个替换元件。在8核系统中OpenMP的实现可以在6-8倍更快的计算时间内完全同样单核系统上的计算。

我要回帖

更多关于 我嗑可对家x我的cp 的文章

 

随机推荐