SAC IA粗配準 NDT精配準

2021-08-10 16:04:19 字數 1380 閱讀 1587

正態分佈變換演算法(3d-ndt)

正態分佈變換演算法應用於三維點的統計模型,使用標準最優化技術來確定兩個點雲間的最優的匹配,因為其在配準過程中不利用對應點的特徵計算和匹配,所以時間比其他方法快,可用於點較多時的配準過程。其原理可參考martin magnusson的the three-dimensional normal-distributions transform— an efficient representation for registration,su***ce analysis, and loop detection

3d-ndt演算法對引數敏感,主要涉及到以下四個引數:最小轉換差異(transformationepsilon)、more-thuente線搜尋的最大步長(stepsize)、ndt網格結構的解析度(resolution)、匹配迭代的最大次數(maximumiterations)。

在使用此演算法時,可以給定或者不給定初始變換矩陣。

還是直接上**吧:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

using pcl::normalestimation;

using pcl::search

::kdtree;

typedef pcl::pointxyz pointt;

typedef pcl::pointcloud

pointcloud;

void visualize_pcd(pointcloud::ptr pcd_src,

pointcloud::ptr pcd_tgt,

pointcloud::ptr pcd_final)

}void matrix2angle (eigen::matrix4f

&result_trans,eigen::vector3f

&result_angle)

else

} else

result_angle<

}int

main (int argc, char** argv)

最後,附上效果圖:

對比來看,還是sac-ia+icp的方案效果好。

關於ndt在pcl中的應用的更詳細的解釋請參考:

點雲的粗配準和精配準

1.前言 點雲配準是點雲處理的重要技術之一,可以用來估計物體位姿,拼接多個視角下的點雲.分別用基於取樣一致性的粗配準,以及粗配準與icp精配準結合的方法進行配準實驗。粗配準流程圖如下,主要為精配準提供乙個比較好的初始位置。精配準採用icp配準,pcl庫實現思路 2.思考 以上可以看出無論是粗配準還是...

ITK elastix 剛性 配準

讀取資料設定 3d const unsigned int dimension 3 typedef float pixeltype typedef itk imageimagetype typedef itk imagefilereaderreadertype readertype pointer f...

ARCGIS影像配準

影像配準 step1.新增影像到mapgis並開啟中工具 georeferencing,工具被啟用 step2.去掉 auto adjust 前的 step3.作配準點 至少七個點,並均勻分布在圖中 在georeferencing工具條上,點選add control point按鈕.使用該工具在掃瞄...