Both sides previous revisionPrevious revisionNext revision | Previous revision |
ece4580:module_pcd:localnormals [2017/02/21 11:45] – [Local Surface Normal Estimation] pvela | ece4580:module_pcd:localnormals [2024/08/20 21:38] (current) – external edit 127.0.0.1 |
---|
First, though, it is important to note that we are talking about local neighborhoods to the points in question. Since the normals will be computed for local neighborhoods, it does not make much sense to actually compute the normal at every point. Yes, it is possible and may be of utility for many algorithms. Here, we want to get a slightly coarse estimate of the normals over the entire point cloud. What that means, is that a subset of points should be selected for computing these local normals, much like in the [[ECE4580:Module_PCD:LocalNormals#Matlab_Version|Matlab Version]] noted below. | First, though, it is important to note that we are talking about local neighborhoods to the points in question. Since the normals will be computed for local neighborhoods, it does not make much sense to actually compute the normal at every point. Yes, it is possible and may be of utility for many algorithms. Here, we want to get a slightly coarse estimate of the normals over the entire point cloud. What that means, is that a subset of points should be selected for computing these local normals, much like in the [[ECE4580:Module_PCD:LocalNormals#Matlab_Version|Matlab Version]] noted below. |
| |
| ===== Getting a Local Neighborhood ===== |
| |
| There are actually many ways to get a local neighborhood. What we are really looking for in a neighborhood is a center point from the point cloud, plus the local surrounding points to that chosen center point. As long as you identify a reasonable policy for establishing the center point and its local nearby points, you should be good to go. |
| |
| Some ideas are: |
| * Using the connectivity matrix. |
| * Using Matlab's internal $k$-nearest neighbors code to grab the local points. |
| * Using evenly chosen points from the point cloud list, then creating their neighborhoods. |
| More details on the underlying algorithms go [[ECE4580:Module_PCD:LocalNeighborhood | here]]. |
===== PCA ===== | ===== PCA ===== |
| |
===== Matlab Version ===== | ===== Matlab Version ===== |
| |
Matlab has its own internal routine for performing the same operation. It is called ''pcnormals'' and its operation is sort of described in this [[https://www.mathworks.com/help/vision/ref/pcnormals.html|tutorial]]. IT can be used as a check of your code, but should not be used as the solution to the weekly activity (unless explicitly noted). | Matlab has its own internal routine for performing the same operation. It is called ''pcnormals'' and its operation is sort of described in this [[https://www.mathworks.com/help/vision/ref/pcnormals.html|tutorial]]. The tutorial can be followed as a check of your code, but should not be used as the solution to the weekly activity (unless explicitly noted). |
| |
--------------------- | --------------------- |