還沒有自己測試,在郭浩老師的書中看見了這個例程,先記下來。
應用ransac演算法實現基於球型靶標的自動標定方法,連個深度攝像頭獲取的點雲資料中檢測並識別出各個圓球,檢測識別出3個圓球後,擁有兩組對應的3個座標點,根據變換矩陣求解方程,估計出變換矩陣,實現雙深度攝像頭的標定。
包括資料獲取模組、直通濾波模組、平面檢測及刪除模組、圓球檢測模組、剛體變換矩陣估計模組。
(1)資料獲取模組
從不同方向採集3個小球的場景點雲,使用grabber介面。
(2)直通濾波模組
採集到的點雲通常包含z軸方向2m以外的點雲,可以使用直通濾波的方式濾除z軸方向的點雲資料。
(3)平面檢測及刪除模組
直通濾波後的點雲有近似於平面形狀的地面點雲,利用sacsegmentation類檢測地面所在平面點雲,並刪除,其中setmodeltype()函式設定模型型別為平面,setmethodtype()函式設定為隨機取樣一致性。
pcl::sacsegmentationseg;
seg.
setmodeltype
(pcl::sanmodel_plane)
;//平面模型
seg.
setmethodtype
(pcl::sac_ransac)
;
(4)刪除場景地面點雲資料後,建立sacsegmentation物件檢測圓球,設定檢測形狀及相關引數;
pcl::sacsegmentationseg2;
seg2.
setoptimizecoefficients
(true);
seg2.
setmodeltype
(pcl::sacmodel_sphere)
;//球模型
seg2.
setmethodtype
(pcl::sac_ransac)
;seg2.
setmaxiterations
(100);
//迭代次數
seg2.
setdistancethreshold
(0.01
);
迴圈檢測,直到把3個球表面點雲都檢測到,並記錄三個圓球的球心
for(int i =
0;i <
3; i++)
(5)剛體變換矩陣估計
基於3對對應點,利用transformationfromcorrespondences類估計變換矩陣,利用transformationformcorr類的add函式新增對應點,利用gettransformation函式獲取變換矩陣,實現雙深度攝像頭標定。
點雲配準 一 兩兩配準
由於一直對雙目視覺較為感興趣,無論是傳統的雙目立體視覺,還是面陣的結構光3d相機,亦或是日漸流行的vslam中流行的rgb d相機,都會涉及到點雲資料.由於點雲的不完整,旋轉到完整點雲就需要對區域性點雲進行配準.那麼這便帶來了如下幾個問題 1 什麼是點雲的配準呢?為了得到被測物體的完整資料模型,需要...
用pcl將兩不同型別點雲轉換
pointcloud和pointcloud之間相互裝換 使用pcl函式直接轉換 pointcloudcloud xyz pointcloudcloud xyzrgb copypointcloud cloud xyz,cloud xyzrgb 通過賦值來裝換 cloud xyzrgb.points.r...
PCL庫學習筆記 連線兩個點雲
本篇將展示如何串聯兩個不同點雲的點。此處強加的約束是兩個資料集中的字段型別和數量必須相等。後面還將展示如何連線兩個不同點雲的字段 例如,維度 此處強加的約束是兩個資料集中的點數必須相等。include include include int main int argc,char argv 定義三個輸...