Point Clouds Processing and Interpretation
3D Points Class and Basics
For this week, we will start with some basis stuff. There is a basic point cloud stub class that we will use to augment the existing Matlab point cloud class and toolbox for point cloud processing. Note that the point cloud capability is in Matlab R2015b and later.
Download the pts3D Matlab class stub and the sample Matlab file here. The Matlab file has four point matrices in it.
Perform the following:
- Flesh out the plot function so it can plot the data (plot the different point matrices).
- Flesh out the normalizePose function (normalize for the sPts0X point matrices).
- Flesh out the size function (look into the pointCloud class to see how to obtain the value).
- Flesh out the removeInds function (again look into the pointCloud class operations to see how to make this easier).
- Flesh out the keepOnlyInds function.
Notes: Regarding the pose normalization function, here is the math description. You should use the pointCloud
class member functions as much as possible. Also the function setdiff
is your friend.
Explore & Deliverables: Given what you know about the SVD and how it orders the singular values, relate this to the shapes of the different sPts0X
variables. Write in English what you think is happened and what role the SVD plays in doing that. Plot the before and after pose normalization for the sPts0X
point sets.
When you load the points into a matrix, use the size
or numPoints
member functions to list the number of points in the point cloud, for each point matrix provided. Show that you can remove points from a point cloud by plotting the original point cloud and a decimated version obtained by removing more than one third of the points using the removeInds
function. Display the number of points before and after the removal operation.
/*Grab data sets, learn to load point cloud data and visualize it.
A list of point cloud dataset can be found here.
For those feel comfortable with C++ programming, Point Cloud Library (PCL) is a nice alternative option. */