How to upsample a 3d point cloud?

39 visualizaciones (últimos 30 días)
Ali
Ali el 11 de Jul. de 2020
Editada: Matt J el 12 de Jul. de 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 comentarios
Matt J
Matt J el 12 de Jul. de 2020
Editada: Matt J el 12 de Jul. de 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 el 12 de Jul. de 2020
@Matt that's exactly what I'm trying to do, "scattered upsampling"! Thank you :)

Iniciar sesión para comentar.

Respuesta aceptada

Matt J
Matt J el 12 de Jul. de 2020
Editada: Matt J el 12 de Jul. de 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 comentarios
Matt J
Matt J el 12 de Jul. de 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 el 12 de Jul. de 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. :-)

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Point Cloud Processing en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by