點雲離群點剔除演算法 PCL原始碼有實現

2021-10-07 20:44:23 字數 892 閱讀 3770

utf8gbsn

基於概率的點雲離群點剔除演算法. 本演算法的原始碼實現在pcl庫中,

請搜尋statistical_outlier_removal.hpp檔案.

假如我們有乙個點雲資料x

=x=\

x=. 其中x

ix_i

xi​是n維度空間中的點.那麼問題是, 我們想剔除掉那些遠離資料群落的離群點.

比如, 三維重建中的點雲主要集中在物體表面.

有的離群點是遠離物體表面的我們希望剔除他們.具體怎麼辦呢?

直觀的辦法是,採用概率分布函式來擬合點雲資料.但是這有乙個缺點,

你很難定那種概率分布函式來擬合. 因為現實中的資料千奇百怪,

你無法選擇乙個通用的概率分布模型. 比如你可能想用高斯分布, 來剔除離群點,

但是高斯分布實際上在二維上是乙個橢圓, 在三維上是乙個體密度函式.

但是都是個橢球.所以總體上來看, 你沒有辦法來更好的貼近物體的表面.

你只能剔除掉大部分的離群外點.

這個方法很簡單直觀, 這個方法需要兩個超引數(就是人為靠經驗選擇的引數),

kmean 和 multi, 這兩個引數是用來進行過濾離群點的,

具體怎麼用下面來講.演算法具體步驟:

所以綜上所述的方法來看, 其實pcl的離群點剔除演算法非常的簡單, 這直觀.

但是值得注意的是, did_

di​資料的分布, 可能不是乙個高斯分布.

可能是其他的類似gamma的分布. 所以multi的選擇需要自己思考.

也可以由你自己去決定到底採用那種過濾方法.

因為這個過濾的核心思想就是靠概率分布來過濾.

kmean的選擇是影響邊緣點被過濾多少的比較重要的引數.

調節kmean可以影響邊緣點被過濾的多寡.

PCL庫學習(1) 離群點濾波

本篇主講在用vs2012成功配置pcl1.7.2環境後,對table scene點雲進行離群點移除並視覺化顯示。首先參照 pcl點雲庫學習教程 使用statistical outlierremove濾波器移除離群點程式,詳見如下 include include include include int...

PCL點雲索引

點雲索引其實就是將點雲中不同點加上標籤,方便後面的分類提取。有了點雲的索引值可以方便的對點雲進行不同操作 以下舉例說明 1.儲存一點雲中某些特定的點 pcl pointcloudcloud new pcl pointcloud 輸入點雲 pcl io loadpcdfile pcd cloud pc...

pcl點雲處理

一 如何實現類似pcl pointcloud ptr和pcl pointcloud的兩個類相互轉換?include include include pcl pointcloud ptr cloudpointer new pcl pointcloud pcl pointcloudcloud cloud...