====== 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 [[https://www.mathworks.com/help/vision/ref/pointcloud-class.html|point cloud class]] and [[https://www.mathworks.com/help/vision/3-d-point-cloud-processing.html|toolbox]] for point cloud processing. Note that the point cloud capability is in Matlab R2015b and later. Download the **pts3D** Matlab [[http://pvela.gatech.edu/classes/files/ECE4580/Module_PCD/pts3D.m|class stub ]] and the sample Matlab file [[http://pvela.gatech.edu/classes/files/ECE4580/Module_PCD/points01.mat|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 [[ECE4580:Module_PCD:NormalizePose|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 [[http://www.pointclouds.org/news/2013/01/07/point-cloud-data-sets|here]]. For those feel comfortable with C++ programming, [[http://pointclouds.org/documentation/tutorials/#i-o|Point Cloud Library (PCL)]] is a nice alternative option. */ -------- ;#; [[ECE4580:Module_PCD|Back]] ;#;