How to test if points are inside a point cloud model
I have a point cloud of a tree trunk, imported as a ply file. It is a point cloud so the tree trunk is not a surface, but points with gaps in between.
I also have the 3D coordinates of a bunch of points. How do I remove those points that are not inside the tree trunk? The model is not parallel with the axes by the way.
Here’s a dropbox link for the ply file. Coordinates and values of the points are in the attached all_control_points.mat file. There’s no code yet except the ones to generate this data.
NOTE:-
Matlabsolutions.com provide latest MatLab Homework Help,MatLab Assignment Help for students, engineers and researchers in Multiple Branches like ECE, EEE, CSE, Mechanical, Civil with 100% output.Matlab Code for B.E, B.Tech,M.E,M.Tech, Ph.D. Scholars with 100% privacy guaranteed. Get MATLAB projects with source code for your learning and research.
Hi. I wrote a script and somehow it works 0_0. See attached script
This is what i ahieved
Maybe someone can please explain why (and how) it works
% xc,yc,zc - control points (red on the image)
% xt,yt,zt - tree point (blue on the image)
ri = sqrt(xt(it).^2 + yt(it).^2); % radius of tree points
ri1 = griddata(xt(it), yt(it), zt(it), ri, ...
xc,yc,zc);
griddata() generates radius for points inside only (NaN for other)
% clc,clear% load data.txt
Xt = X12(:,1);
Yt = X12(:,2);
Zt = X12(:,3);
% rotate data by 75 degree about X axis
a = -75;
xt = Xt;
yt = Yt*cosd(a) + Zt*sind(a);
zt = -Yt*sind(a) + Zt*cosd(a);
% center data (move to (0,0))
x0 = mean(xt);
y0 = mean(yt);
xt = xt - x0;
yt = yt - y0;
SEE COMPLETE ANSWER CLICK THE LINK