MATLAB: How to upsample a 3d point cloud

point cloudpointcloudscattered upsampling

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.

Best Answer

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
Related Question