<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://pvela.gatech.edu/classes/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://pvela.gatech.edu/classes/feed.php">
        <title>Patricio Vela: Course Wiki - ece4580:module_pcd</title>
        <description></description>
        <link>https://pvela.gatech.edu/classes/</link>
        <image rdf:resource="https://pvela.gatech.edu/classes/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-04-08T20:05:58+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:basics&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:bridgeproblem&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:clusternormal&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:connected&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:connectedcomponents&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:icp&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:localneighborhood&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:localnormals&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:normalizepose&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:normals&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulation&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulation01&amp;rev=1724204335&amp;do=diff"/>
                <rdf:li rdf:resource="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulationapply&amp;rev=1724204335&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://pvela.gatech.edu/classes/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>Patricio Vela: Course Wiki</title>
        <link>https://pvela.gatech.edu/classes/</link>
        <url>https://pvela.gatech.edu/classes/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:basics&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>basics</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:basics&amp;rev=1724204335&amp;do=diff</link>
        <description>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.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:bridgeproblem&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bridgeproblem</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:bridgeproblem&amp;rev=1724204335&amp;do=diff</link>
        <description>Point Clouds Processing and Interpretation

Recently, a section of the I-85 in Atlanta collapsed due to a human-caused fire (images below).  The accident impacted Atlanta traffic and led to the closure of the I-85 in both directions in the vicinity of the damaged section.$\rho_{dist}$$\rho_{dist}$</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:clusternormal&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>clusternormal</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:clusternormal&amp;rev=1724204335&amp;do=diff</link>
        <description>Point Clouds Processing and Interpretation

Clustering by Normal Structure

The connected component clustering does not do too well when different objects are actually connected, say because they are touching, or one is resting on the other.  Usually, however, the objects might have differing local normals at the interface where they are touching.  Let&#039;s add normal agreement to the connected component clustering to see how the normals can be used to differentiate parts of the scene.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:connected&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>connected</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:connected&amp;rev=1724204335&amp;do=diff</link>
        <description>Point Clouds Processing and Interpretation

Connected Component Clustering

Flesh out the member functions for performing connected components clustering (clusterByProximity and connectivityMatrix).  This will involve:

	*  Completing the connectivity matrix member function.
	*  Parsing the matrix to find connected components.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:connectedcomponents&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>connectedcomponents</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:connectedcomponents&amp;rev=1724204335&amp;do=diff</link>
        <description>Connected Components Clustering for Point Clouds

Connected component clustering seeks to identify the sets of points that are “connected” where connectivty is determined by some kind of test.  In our case that test is proximity, if two points are close enough then they are connected.  The simplest form of connectivity clustering is a greedy method that arbitrarily picks a point (called the seed point) and finds its neighbors, then finds their neighbors, and so on until there are no new neighbor…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:icp&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>icp</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:icp&amp;rev=1724204335&amp;do=diff</link>
        <description>Point Clouds Processing and Interpretation

Point Cloud Registration

A commonly used and somewhat simple method for registering two point clouds (that presumably are of the same object or have significant similar structure), is to use what is called Iterative Closest Point (ICP). Read up on</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:localneighborhood&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>localneighborhood</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:localneighborhood&amp;rev=1724204335&amp;do=diff</link>
        <description>Obtaining a Sparser Set of Local Neighborhoods

This section covers how to obtain a sub-sampled set of points for extraction of local neighborhoods of the point clouds. The idea behind using local neighborhoods is that some information is best not calculated for every point in a point cloud, but rather at a subset of points, called central points. Usually the information will require computations with a small region around each central point.  Once computed for the small region, there is no need…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:localnormals&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>localnormals</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:localnormals&amp;rev=1724204335&amp;do=diff</link>
        <description>Local Surface Normal Estimation

For some applications, not only is the local connectivity of a point region important, but so is the local surface normal for that particular neighborhood.  Naturally, then, many point cloud libraries involve the calculation of the local normal vectors, either over the entire point set or for a subset of the point set.  There are two related approaches for computing the normal vector.$k$$\Sigma$$P$$n$$$ \Sigma = V \Lambda V^T, \ \ \text{where}\ \ \Lambda = \text{…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:normalizepose&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>normalizepose</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:normalizepose&amp;rev=1724204335&amp;do=diff</link>
        <description>Point Cloud Pose Normalization Using SVD

Sometimes a point cloud is living off in the wilderness, but we need it to be centered at the origina and possibly also oriented in some canonical manner.  Turns out the the singular value decomposition can do that.  Consider a matrix of points $P$$$ P = U \Sigma V.$$$U$$\Sigma V$$\bar p$$P$$p_i$$$ p_i&#039; = p_i - \bar p.$$$\bar{P}$$$ \bar P = U \Sigma V,$$$\bar p$$U$$g$$$ g = \left[ \begin{matrix} U &amp; \bar p \\ 0 &amp; 1 \end{matrix} \right].$$$$ P_n = \Sigma …</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:normals&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>normals</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:normals&amp;rev=1724204335&amp;do=diff</link>
        <description>Point Clouds Processing and Interpretation

Local Normal Vector Estimation

If the point cloud data represents an object as scanned from some device, usually the points lie on the surface of the object. So they are really 2D structurally speaking (local to each point), though they are in 3D.  Let&#039;s write a function to estimate the local normals to the point cloud, plus one more to visualize them. There are actually two ways to perform the</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulation&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>triangulation</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulation&amp;rev=1724204335&amp;do=diff</link>
        <description>Point Clouds Processing and Interpretation

Surface Mesh Triangulation

When the point cloud represents a surface, then it is possible to create a triangulated mesh for more rapidly visualizing the object.  Plotting points clouds takes some non-trivial processing since the renderer has to plot many points and do so with occlusion handling and scale awareness.  A must faster means to visualize objects whose surface are modelled by the point cloud would be to simply the points to surfaces, then to…</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulation01&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>triangulation01</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulation01&amp;rev=1724204335&amp;do=diff</link>
        <description>The Advancing Fronts Algorithm

The kind of algorithm we&#039;ll be palying with is an advancing front algorithm,  Early version of such algorithms include  Ball pivoting algorithm (BPA). Some related algorithms require the surface to be defined implicitly. YouTube  videos exist depicting the triangulation process and its utility for visualization. You can get a sense for what the value of triangulation is and how it represents an improvement over visualizing just the point cloud.</description>
    </item>
    <item rdf:about="https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulationapply&amp;rev=1724204335&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T01:38:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>triangulationapply</title>
        <link>https://pvela.gatech.edu/classes/doku.php?id=ece4580:module_pcd:triangulationapply&amp;rev=1724204335&amp;do=diff</link>
        <description>Triangulation on Objects

Combine the clustering code with the triangulation code to come up with a cluster-driven surface mesh of objects in a point cloud. The idea is that, first the point cloud is clustered based on proximity and normal agreement.  Each of cluster is extracted and triangulated. All of the meshes get put together for connected components (ignoring the normal agreement). If possible, color each mesh. Plot the final output.  It should be a set of meshes for the distinct/disconne…</description>
    </item>
</rdf:RDF>
