opencv matlab三维点云,点云采样的三种方法 - 小白学视觉的个人空间 - OSCHINA - 中文开源技术交流社区...
點(diǎn)擊上方“小白學(xué)視覺”,選擇“星標(biāo)”公眾號
重磅干貨,第一時(shí)間送達(dá)
編輯:3D視覺工坊
本文由知乎作者GeometryHub授權(quán)轉(zhuǎn)載,不得擅自二次轉(zhuǎn)載。
原文鏈接:https://zhuanlan.zhihu.com/p/86044055
點(diǎn)云采樣分類
點(diǎn)云采樣的方法有很多種,常見的有均勻采樣,幾何采樣,隨機(jī)采樣,格點(diǎn)采樣等。下面介紹一些常見的采樣方法。
格點(diǎn)采樣
格點(diǎn)采樣,就是把三維空間用格點(diǎn)離散化,然后在每個(gè)格點(diǎn)里采樣一個(gè)點(diǎn)。具體方法如下:
1. 創(chuàng)建格點(diǎn):如中間圖所示,計(jì)算點(diǎn)云的包圍盒,然后把包圍盒離散成小格子。格子的長寬高可以用戶設(shè)定,也可以通過設(shè)定包圍盒三個(gè)方向的格點(diǎn)數(shù)來求得。
2. 每個(gè)小格子包含了若干個(gè)點(diǎn),取離格子中心點(diǎn)最近的點(diǎn)為采樣點(diǎn),如右圖所示。
格點(diǎn)采樣的特點(diǎn):
效率非常高
采樣點(diǎn)分布比較均勻,但是均勻性沒有均價(jià)采樣高
可以通過格點(diǎn)的尺寸控制點(diǎn)間距
不能精確控制采樣點(diǎn)個(gè)數(shù)
均勻采樣
均勻采樣的方法有很多,并且有一定的方法來評估采樣的均勻性。這里介紹一種簡單的均勻采樣方法,最遠(yuǎn)點(diǎn)采樣。具體方法如下:
輸入點(diǎn)云記為C,采樣點(diǎn)集記為S,S初始化為空集。
1. 隨機(jī)采樣一個(gè)種子點(diǎn)Seed,放入S。如圖1所示。
2. 每次采樣一個(gè)點(diǎn),放入S。采樣的方法是,在集合C-S里,找一點(diǎn)距離集合S距離最遠(yuǎn)的點(diǎn)。其中點(diǎn)到集合的距離為,這點(diǎn)到集合里所有點(diǎn)距最小的距離。如圖2-6所示,采樣點(diǎn)S的數(shù)量分別為2,4,10,20,100.
最遠(yuǎn)點(diǎn)采樣的特點(diǎn):
采樣點(diǎn)分布均勻
算法時(shí)間復(fù)雜度有些高,因?yàn)槊看尾蓸右粋€(gè)點(diǎn),都要計(jì)算集合到集合之間的距離。可以采用分治的方法來提高效率。
采樣點(diǎn)一般先分布在邊界附近,這個(gè)性質(zhì)在有些地方是有用的,比如圖元檢測里面的點(diǎn)采樣。
幾何采樣
幾何采樣,在點(diǎn)云曲率越大的地方,采樣點(diǎn)個(gè)數(shù)越多。下面介紹一種簡單的幾何采樣方法,具體方法如下:
輸入是一個(gè)點(diǎn)云,目標(biāo)采樣數(shù)S,采樣均勻性U
1.點(diǎn)云曲率計(jì)算比較耗時(shí),這里我們采用了一個(gè)簡單方法,來近似達(dá)到曲率的效果:給每個(gè)點(diǎn)計(jì)算K鄰域,然后計(jì)算點(diǎn)到鄰域點(diǎn)的法線夾角值。曲率越大的地方,這個(gè)夾角值就越大。
2.設(shè)置一個(gè)角度閾值,比如5度。點(diǎn)的鄰域夾角值大于這個(gè)閾值的點(diǎn),被放入幾何特征區(qū)域G。這樣點(diǎn)云就分成了兩部分,幾何特征區(qū)域G和其它區(qū)域。
3.均勻采樣幾何特征區(qū)域G和其它區(qū)域,采樣數(shù)分別為S * (1 - U),S * U。
下圖是一個(gè)均勻采樣和幾何采樣的比較圖,這個(gè)采樣方法的特點(diǎn):
幾何特征越明顯的區(qū)域,采樣點(diǎn)個(gè)數(shù)分布越多
計(jì)算效率高
采樣點(diǎn)局部分布是均勻的
穩(wěn)定性高:通過幾何特征區(qū)域的劃分,使得采樣結(jié)果抗噪性更強(qiáng)
總結(jié)
以上是生活随笔為你收集整理的opencv matlab三维点云,点云采样的三种方法 - 小白学视觉的个人空间 - OSCHINA - 中文开源技术交流社区...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 根据当前时间戳_mysql
- 下一篇: imread函数 matlab_【MAT