How to upsample a 3d point cloud?

44 ビュー (過去 30 日間)
Ali
Ali 2020 年 7 月 11 日
編集済み: Matt J 2020 年 7 月 12 日
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 件のコメント
Matt J
Matt J 2020 年 7 月 12 日
編集済み: Matt J 2020 年 7 月 12 日
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 2020 年 7 月 12 日
@Matt that's exactly what I'm trying to do, "scattered upsampling"! Thank you :)

サインインしてコメントする。

採用された回答

Matt J
Matt J 2020 年 7 月 12 日
編集済み: Matt J 2020 年 7 月 12 日
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 件のコメント
Matt J
Matt J 2020 年 7 月 12 日
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 2020 年 7 月 12 日
@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. :-)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangePoint Cloud Processing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by