How to slice a point cloud along z axis
    14 views (last 30 days)
  
       Show older comments
    
    stefano chiappini
 on 7 Mar 2022
  
    
    
    
    
    Edited: Chen Xinzhuo
 on 8 Feb 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

0 Comments
Accepted Answer
  Paola Donis Noriega
    
 on 28 Apr 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 Comments
  Chen Xinzhuo
 on 8 Feb 2023
				
      Edited: Chen Xinzhuo
 on 8 Feb 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.
More Answers (0)
See Also
Categories
				Find more on Point Cloud Processing in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



