How to slice a point cloud along z axis
9 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
stefano chiappini
el 7 de Mzo. de 2022
Editada: Chen Xinzhuo
el 8 de Feb. de 2023
Hi, i got the following question:
i have a crown tree point cloud and i need to slice along z axis with with 10 cm thickness. Finally, i need to calculate the volume by alpha shape algorithm for each individual slice.
How to solve these problem?
Thank you so much![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/917844/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/917844/image.jpeg)
0 comentarios
Respuesta aceptada
Paola Donis Noriega
el 28 de Abr. de 2022
You can slice a point cloud along the z-axis as follows:
% Use the teapot point cloud as an example.
ptCloud = pcread('teapot.ply');
% Get the point cloud z limits.
minZ = ptCloud.ZLimits(1);
maxZ = ptCloud.ZLimits(2);
% Define the thickness of each slice.
thickness = 0.1;
% Use pcplayer to visualize the point cloud slices.
player = pcplayer(ptCloud.XLimits, ptCloud.YLimits, ptCloud.ZLimits);
% Use a for loop to select each point cloud slice.
for i = minZ:thickness:maxZ
% Get the logical indices of the points in each slice.
selectedIdx = ptCloud.Location(:, 3) >= i & ...
ptCloud.Location(:, 3) < (i + thickness);
% Select the point cloud slice using the indices.
ptCloudSlice = select(ptCloud, selectedIdx);
% Visualize the slice.
view(player, ptCloudSlice)
pause(0.2)
end
5 comentarios
Chen Xinzhuo
el 8 de Feb. de 2023
Editada: Chen Xinzhuo
el 8 de Feb. de 2023
Hi Stefano,
I also encountered the same problem recently.
I have tried but still don't know how to extract each point cloud slice.
I want to ask what method you use, please.
Thank you.
Más respuestas (0)
Ver también
Categorías
Más información sobre Point Cloud Processing en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!