opencv matlab三维点云,点云采样的三种方法 - 小白学视觉的个人空间 - OSCHINA - 中文开源技术交流社区...

点击上方“小白学视觉”,选择“星标”公众号

重磅干货,第一时间送达1e5291d4ccecf40ae3c6adfeb196dc9e.png

编辑:3D视觉工坊

本文由知乎作者GeometryHub授权转载,不得擅自二次转载。

原文链接:https://zhuanlan.zhihu.com/p/86044055

点云采样分类

点云采样的方法有很多种,常见的有均匀采样,几何采样,随机采样,格点采样等。下面介绍一些常见的采样方法。

格点采样

格点采样,就是把三维空间用格点离散化,然后在每个格点里采样一个点。具体方法如下:

1. 创建格点:如中间图所示,计算点云的包围盒,然后把包围盒离散成小格子。格子的长宽高可以用户设定,也可以通过设定包围盒三个方向的格点数来求得。

2. 每个小格子包含了若干个点,取离格子中心点最近的点为采样点,如右图所示。

fa2498364d1579dce98df2fa4136d2ea.png

格点采样的特点:

效率非常高

采样点分布比较均匀,但是均匀性没有均价采样高

可以通过格点的尺寸控制点间距

不能精确控制采样点个数

均匀采样

均匀采样的方法有很多,并且有一定的方法来评估采样的均匀性。这里介绍一种简单的均匀采样方法,最远点采样。具体方法如下:

输入点云记为C,采样点集记为S,S初始化为空集。

1. 随机采样一个种子点Seed,放入S。如图1所示。

2. 每次采样一个点,放入S。采样的方法是,在集合C-S里,找一点距离集合S距离最远的点。其中点到集合的距离为,这点到集合里所有点距最小的距离。如图2-6所示,采样点S的数量分别为2,4,10,20,100.

3548e4983ff3561db1ee6d9bcaef41c8.png

最远点采样的特点:

采样点分布均匀

算法时间复杂度有些高,因为每次采样一个点,都要计算集合到集合之间的距离。可以采用分治的方法来提高效率。

采样点一般先分布在边界附近,这个性质在有些地方是有用的,比如图元检测里面的点采样。

几何采样

几何采样,在点云曲率越大的地方,采样点个数越多。下面介绍一种简单的几何采样方法,具体方法如下:

输入是一个点云,目标采样数S,采样均匀性U

1.点云曲率计算比较耗时,这里我们采用了一个简单方法,来近似达到曲率的效果:给每个点计算K邻域,然后计算点到邻域点的法线夹角值。曲率越大的地方,这个夹角值就越大。

2.设置一个角度阈值,比如5度。点的邻域夹角值大于这个阈值的点,被放入几何特征区域G。这样点云就分成了两部分,几何特征区域G和其它区域。

3.均匀采样几何特征区域G和其它区域,采样数分别为S * (1 - U),S * U。

下图是一个均匀采样和几何采样的比较图,这个采样方法的特点:

几何特征越明显的区域,采样点个数分布越多

计算效率高

采样点局部分布是均匀的

稳定性高:通过几何特征区域的划分,使得采样结果抗噪性更强

1072e4d9e24d151dabfcd3e7f82f1bf1.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468247.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言数组越界导致无限循环

大奖也是你们的,感谢支持,不喜欢的请轻拍。过年抽奖我还是很期待的,每年公司的年会抽奖的时候,我总是能小中一把,有一年我还中了个一等奖,不知道大家对一等奖什么概念,中一等奖的概率非常低&…

七月流水账

7.1-7.3 >< 7.4 看了一会儿李老大给的Caffe的教程 重配python qt vtk&#xff0c;大概是原来装了一个xxx&#xff08;忘记名字&#xff09;&#xff0c;然后位数有些不对&#xff0c;搞了好一阵 果然还是卸载重装好>< 然后又看了会儿Matlab神经网络工具箱怎么用 …

python绘制拟合回归散点图_机器学习之利用Python进行简单线性回归分析

前言&#xff1a;在利用机器学习方法进行数据分析时经常要了解变量的相关性&#xff0c;有时还需要对变量进行回归分析。本文首先对人工智能/机器学习/深度学习、相关分析/因果分析/回归分析等易混淆的概念进行区分&#xff0c;最后结合案例介绍如何利用Python进行简单线性回归…

十年经验教你如何学习嵌入式系统

一、如何学习嵌入式系统- - 嵌入式系统的概念着重理解“嵌入”的概念 &#xff0c;主要从三个方面上来理解。1、从硬件上&#xff0c;“嵌入”将基于CPU的处围器件&#xff0c;整合到CPU芯片内部&#xff0c;比如早期基于X86体系结构下的计算机&#xff0c;CPU只是有运算器和累…

php博客文章修改,wordpress博客如何快速修改文章阅读数

WordPress修改文章阅读次数可以通过插件来完成&#xff0c;下面我们以WP-PostViews插件演示如何修改文章阅读次数。WP-PostViews是一个非常常用的wordpress插件&#xff0c;主要用于文章阅读数访问量的统计&#xff0c;插件使用简单&#xff0c;直接安装启用即可&#xff0c;并…

ionic拍照,从相册选择功能

在介绍插件的使用之前&#xff0c;我们有必要先大致了解下插件的原理 一、插件工作原理分析 一个插件是如何正确地在IONIC框架下运行的呢? 前台的HTML/js代码又是如何与后面具体平台做数据交互的呢? 这个就需要对插件的工作原理及各个模块之间的流程关系有一个基本的了解。 为…

python爬虫爬图片教程_python爬虫实战之爬取京东商城实例教程

前言 本文主要介绍的是利用python爬取京东商城的方法&#xff0c;文中介绍的非常详细&#xff0c;下面话不多说了&#xff0c;来看看详细的介绍吧。 主要工具 scrapy BeautifulSoup requests 分析步骤 1、打开京东首页&#xff0c;输入裤子将会看到页面跳转到了这里&#xff0c…

安卓camera总体框架

今天是周五了&#xff0c;时间过得真快&#xff0c;通常这个时候&#xff0c;我都还沉醉了上班的状态中&#xff0c;说到上班&#xff0c;我是认真的&#xff0c;我非常喜欢上班&#xff0c;特别是今天&#xff0c;我会听到一声优美的声音&#xff0c;我的银行卡会多出一些钱&a…

matlab可以连接阻抗分析仪么,阻抗分析仪的工作原理与测试方法

阻抗分析仪和LCR表是非常通用的测量器件的电子仪器。根据阻抗范围和频率范围的不同&#xff0c;有一系列不同原理的仪器来满足测试要求&#xff0c;图1是不同阻抗范围和不同频率范围的阻抗测量方法。图1 阻抗测量方法图2是自动平衡电桥法的原理框图。通过精确测量加载到被测件D…

项目管理中的沟通管理(转)

集成项目管理中的沟通管理 摘要&#xff1a;本文从沟通关系、方式及容易出现的问题阐述如何进行项目的沟通管理&#xff0c;并通过示例展现一个普通的集成类项目中的沟通方法。 关键词&#xff1a;沟通管理 系统集成 项目管理就是指把各种系统、方法和人员结合在一起&#xff0…

分享几个有意思的视频

最近微信加我的好友有点多&#xff0c;然后问问题的也不少&#xff0c;有的问题我不知道&#xff0c;有的问题我觉得百度一下应该很多答案&#xff0c;有的问题我觉得我可以知道&#xff0c;但是需要自己去寻找答案&#xff0c;也需要花费我一些时间&#xff0c;我有时候非常不…

python判断对象是否实例化_Python判断对象是否相等及eq函数的讲解

摘要 什么是python对象的标识 python对象相等的判断 自定义python对象相等的条件 python对象的标识 python对象标识就是python对象自身的要素&#xff0c;python对象主要有3要素&#xff1a; id:相当于对象在内存中的地址&#xff0c;相当于c的指针&#xff0c;可以用id(对象)来…

php+redis+设置前缀,spring使用Redis自定义前缀后缀名(去掉SimpleKey []+自定义)

标签&#xff1a;spring中自动加上 SimpleKey [] 解决方案一、自定义后缀名1、定义类实现KeyGenerator接口MyKeyGeneratorpackage com.wbg.springRedis.service.impl;import org.springframework.cache.interceptor.KeyGenerator;import org.springframework.stereotype.Compon…

gravity 时序图绘制,改

gmt gmtset FONT_TITLE 24,37gmt gmtset MAP_GRID_PEN_PRIMARY 0.5p,bluegmt gmtset FORMAT_DATE_IN yyyy-mm-dd FORMAT_DATE_MAP yyyy-mm set R-R2008-01-01\T/2017-05-31\T/-100/80set J-JX9i/6irem x轴格网间隔密度为3个月&#xff1f;gmt psbasemap %R% %J% -Bxa12O -Bya2…

php wdatepicker,WdatePicker时间控件的使用

1&#xff0c;引入js文件2&#xff0c;js代码function createTime(){WdatePicker({dateFmt:yyyy-MM-dd,minDate:2010-10-01,maxDate:2012-10-01});}3&#xff0c;html代码4&#xff0c;介绍这是最基本的使用方法&#xff0c;如需要增加或减少内容&#xff0c;可通过改变WdatePi…

python列表如何修改_如何在python中更改列表的字典中的值

for x in range(0, 5): ohlc_list[x] [open , high , low, close] 这并没有按照您的想法做.它为相同的4个列表创建5个引用,并将这些引用保留在不同的键下. 这可以用以下循环显示&#xff1a; for value in ohlc_list.values(): print([id(inner_list) for inner_list in value…

北京的林书豪,像一把小李飞刀

从《我要打篮球》节目开始&#xff0c;就一直在关注书豪的比赛&#xff0c;我喜欢书豪&#xff0c;书豪选择来CBA打球&#xff0c;也满足了很多球迷的愿望&#xff0c;近距离感受球星的那种状态&#xff0c;今天晚上&#xff0c;北京跟青岛的比赛&#xff0c;我是一分钟没有拉下…

20170706xlVBA城中村改造汇总

Public Sub GatherDataPicker()Application.ScreenUpdating FalseApplication.DisplayAlerts FalseApplication.Calculation xlCalculationManualApplication.StatusBar ">>>>>>>>程序正在运行>>>>>>>>"On Erro…

php 循环队列,队列和循环队列-php数组

//实现基本队列class Queues{private $head;private $tail;private $cnt; //数组大小private $array [];public function __construct($n 5){$this->cnt $n;$this->head 0;$this->tail 0;}//数组实现队列public function basisEnQueue($val){//队列已满if ($this…

I2C和SPI注定要打一架

最近微信群里好几天聊到I2C&#xff0c;既然说到了I2C&#xff0c;那就有必要说SPI&#xff0c;那就一起说了算了&#xff0c;大家有更好见解的&#xff0c;留言回复下&#xff0c;让更多的人知道你的观点。整理与网络&#xff0c;侵删I2C和SPI应该要打一架&#xff1f;现今&am…