[Insight-users] 4-Connectivity of itkMesh (load a PTX file)?

David Doria daviddoria+itk at gmail.com
Sat Aug 8 21:01:56 EDT 2009


On Sat, Aug 8, 2009 at 5:25 PM, Luis Ibanez <luis.ibanez at kitware.com> wrote:

>
> Hi David,
>
> I would think that it all depends on what you are going to do next
> with this data.
>
> The image 2D storage will be more compact and will be convenient
> for performing processing that relies on neighborhoods. However its
> notions of Origin, Spacing and Direction will be useless, and even
> worse, actually misleading.
>
> The storage as a Mesh seems to be a better option... but then we have
> less Mesh-based filters than Image-based filters.
>
> Again, it all depends on what kind of operations or algorithms are you
> planning to apply to your LiDAR data.
>
>     Please let use know about them,
>
>
>          Thanks
>
>
>              Luis


I thing both types of operations can be necessary. Here is a small list:

1) Ray-mesh intersections - an itkMesh would be the way to go here (are
there efficient intersection methods available? I saw that there is an
octree class (http://www.itk.org/Doxygen/html/classitk_1_1Octree.html ) but
I grepped for "octree" in the examples and came up with nothing. In VTK, the
http://www.vtk.org/doc/release/4.0/html/classvtkOBBTree.html class has a
SetDataSet(PolyData) method that you can stick a whole mesh into the octree
and then call Ocree->IntersectWithLine(P0, P1), is something like this
available in ITK? (Luis - this would be the main conversion necessary to
bring the synthetic LiDAR scanner to ITK...)

2) "all points in a 3d radius" lookup - itkMesh should be used - as with the
octree, I didn't see anything about how to put a mesh into a kdtree for
these nearest-neighbor type lookups?

3) 4-neighborhood connected neighbors for "quick" normal estimation or
simple depth discontinuity detection - an itk Vector Image would be well
suited here.

4) Traversing a scan a "strip" (i.e. column) at a time - seems like an
itkImage would be good here

5) Region growing on the mesh - i.e. finding parts of the mesh that are
similar according to some metric (probably involving the normals) - an
itkImage is crucial here.

It looks like both types of functionality are required sometimes, so maybe I
just need to write functions to load the data into both data structures and
use the appropriate one when necessary? Or maybe derive a class from itkMesh
that is called itkGridMesh that stores the connectivity information and has
"getUpperNeighbor", "getRightNeighbor" etc type functions. I'm not sure this
is generalizable to N-d though...

Thanks,

David
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/pipermail/insight-users/attachments/20090808/91af79e1/attachment.htm>


More information about the Insight-users mailing list