User Tools

Site Tools


ece4580:module_pcd:connectedcomponents

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ece4580:module_pcd:connectedcomponents [2017/02/10 19:55] pvelaece4580:module_pcd:connectedcomponents [2024/08/20 21:38] (current) – external edit 127.0.0.1
Line 10: Line 10:
   - Apply a threshold to the proximity matrix to get the connectivity matrix $C$.   - Apply a threshold to the proximity matrix to get the connectivity matrix $C$.
   - Find the first row with a non-zero as the index.   - Find the first row with a non-zero as the index.
 +  - numSets = 0
 +  - Set labels to be a 1 x $n_p$ matrix where $n_p$ is the number of points in the point cloud.
   - While there is an index to grab   - While there is an index to grab
 +    * numSets = numSets + 1
     * Grab a random point from the point cloud. Let its index be $i$.     * Grab a random point from the point cloud. Let its index be $i$.
     * Initialize the index set $S = {i}$.     * Initialize the index set $S = {i}$.
     * Initialize the neighbor index set $N = {i}$.     * Initialize the neighbor index set $N = {i}$.
     * While the neighbor set is not empty, do the following:     * While the neighbor set is not empty, do the following:
-      * Zero out the rows for the current neighbor index set ($C(N,:) = 0$). +      * Zero out the rows for the current neighbor index set ($C(N,:) = 0$). Makes them no longer available
-      * Given the neighbor set, find indices of its connected components +      * Given the neighbor set, find indices of its connected components. These are all of the indices that are non-zero in the column $C(N,:)$.
-        There are all of the indices that are non-zero in the column $C(N,:$)).+
       * Add these indices to the index set $S$.       * Add these indices to the index set $S$.
-      * Set the new neighbor index set $N$ to the found connected components. +      * SOverwrite the neighbor index set $N$ to the found connected components. 
-    * The set $S$ forms a cluster. +    * The index set $S$ forms a cluster. 
-  +    * Set labels($S$) = numSets 
 + 
 +Each time a new set $S$ is computed, it defines a connected component cluster. The indices in the set $S$ are then used to label the points.  The variable labels indicates what label each point is in, in order of the points stored in the point cloud matrix.  In the code stub, there is code to generate a matrix of different color values by hue for each label.  Use that to generate a large matrix that is $n_p$ x 3 of colors, where the color chosen is based on the label assignment. This color matrix can be computed in one line of code if you know your Matlab.  Invoke the ''setColor'' function with the matrix to assign a color to each point.  The next time you plot the points, they will be colored according to their assignment. 
 +The labels variable should be returned. 
  
 ----------------------- -----------------------
ece4580/module_pcd/connectedcomponents.1486774522.txt.gz · Last modified: 2024/08/20 21:38 (external edit)