Registration using CV Toolbox
1 view (last 30 days)
Show older comments
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 Comments
Answers (0)
See Also
Categories
Find more on Point Cloud Processing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!