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