How to upsample a 3d point cloud?

38 Ansichten (letzte 30 Tage)
Ali
Ali am 11 Jul. 2020
Bearbeitet: Matt J am 12 Jul. 2020
I have a .ply 3d point cloud that I want to upsample to increase the density, how can I do that?
Should I use scatteredInterpolant ? If yes then I don't know what to use as the 'v' in the form of 'F = scatteredInterpolant(x,y,z,v)'. I have x y z point coordinates but have no clue what is v in this context!
Also any extra tips on what exactly are the steps to upsample a 3d point cloud from start to finish is immensely appreciated (like what to before or after getting the interpolant 'F').
Point cloud file attached.
UPDATE: Edited question title and body thanks to @Matt_J.
  2 Kommentare
Matt J
Matt J am 12 Jul. 2020
Bearbeitet: Matt J am 12 Jul. 2020
I have x y z point coordinates but have no clue what is v in this context!
It is nothing. This is not an application of scatteredInterpolant. I wouldn't even call it interpolation ... maybe "scattered upsampling" instead.
Ali
Ali am 12 Jul. 2020
@Matt that's exactly what I'm trying to do, "scattered upsampling"! Thank you :)

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Matt J
Matt J am 12 Jul. 2020
Bearbeitet: Matt J am 12 Jul. 2020
Perhaps this is what you are trying to do,
[x1,y1,z1] = sphere(24); %Given points (example)
x1 = x1(:); y1 = y1(:); z1 = z1(:);
P = [x1 y1 z1];
P = unique(P,'rows');
shp = alphaShape(P(:,1),P(:,2),P(:,3),1);
[F,V]=boundaryFacets(shp);
F=F.'; V=V.';
Q=mean(reshape(V(:,F),3,3,[]),2);
Q=num2cell(reshape(Q,3,[]).',1);
[x2,y2,z2]=deal(Q{:}); %"Interpolated" points
hold on
plot(shp);
hg=scatter3(x1,y1,z1,'SizeData',50,'MarkerFaceColor','red','MarkerEdgeColor','none');
hi=scatter3(x2,y2,z2,'SizeData',50,'MarkerFaceColor','blue','MarkerEdgeColor','none');
legend([hg,hi],'Given Points','"Interpolated" Points');
hold off
  3 Kommentare
Matt J
Matt J am 12 Jul. 2020
Ali, when you create the alpha shape,
shp = alphaShape(P(:,1),P(:,2),P(:,3),alpha_radius);
you may have to customize the choice alpha_radius parameter and the HoleThreshold parameter to your data so as to avoid gaps in the shape. Here are some examples in the documentation showing the influence of these parameters:
Ali
Ali am 12 Jul. 2020
@Matt_J Changing the HoleThreshold didn't increase the sampling rate and at best lowered the generated points, as for the alpha_radius values lower or higher than '1' also lowered the points count. Anyway thanks for your time, helped a lot. :-)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by