Registration using CV Toolbox

2 次查看(过去 30 天)
gujax
gujax 2016-12-6
Hi, I have two 3D point clouds. The two are partially overlapped i.e., ~<50% of the data has an overlap and the rest does not. By itself the data is nearly well registered. For whatever reasons - I am not getting good registration using pcregrigid. It makes it worse. I have tried all permutations of pcdenoise, pcdownsample and inlier ratio settings. The only condition where I get good registration is by either making tolerance values large [10, 10] or using inlier ratio ~0.3 or less, both of which does not make sense because it means I am asking registration algorithm not to do anything. I have also tried using initial values of tform but to no avail. Does it mean pcregrigid is not robust i.e., needs priori information about how well the data looks registered? Any suggestions are appreciated.
Just as an example of one particular settings:
ptCloudmov = pcdenoise(pointCloud(Data),'Threshold',.2,'NumNeighbors',6);
ptCloudfix = pcdenoise(pointCloud(D_r),'Threshold',.2,'NumNeighbors',6);
ptCloudmov = pcdownsample(ptCloudmov,'random',.5);
ptCloudfix = pcdownsample(ptCloudfix,'nonuniformgridSample',9);
Tf=affine3d([1 0 0 0;0 1 0 0;0 0 1 0;0 0 0 1]);
[tform]=pcregrigid(ptCloudmov,ptCloudfix,'Metric','pointtoPoint','MaxIterations',10000,'ExtraPolate',true,'InlierRatio',0.6,'Tolerance',[.001 .001],'InitialTransform',Tf);
I compare ptCloudfix to
moving_reg = pctransform(ptCloudmov,tform);

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Point Cloud Processing 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by