[Insight-users] Suggestions for the best Data Structure

Luis Ibanez luis.ibanez at kitware.com
Wed, 28 Jan 2004 17:53:36 -0500


Hi Arash,

Thanks for your clarifications.

It seems that the itk::PointSet<>
may be a more appropriate structure
for your data.

The PointSet is templated over the
pixel type, so you can easily associate
an arbitrary C++ class of your choice
as the pixel type.

For example, you could use the RGBPixel<>
class, or a class containing an RGBPixel
and the (U,V) coordinates.

You could then do PointSet-to-Image
registration or PointSet-to-PointSet
registration.

---

The rationale for the introduction of
the SpatialObject in ITK is that they
provide a coherent structure for
representing objects with complex
shapes. SpatialObjects are arranged
in a hierarchical tree structure.

SpatialObjects will be interesting
in your case, if you decompose your
object in sub-objects whose geometrical
relationships may be controlled.

Let's say that your data shows stereo
images of a city taken from an airplane,
you could imagine associating Spatial
Objects to every building and every
vehicle in order to account easily
for their relative movements.
Or if your images were taken from a
living cell under microscopy, you could
associate specific spatial objects to
every organelle and track their relative
movements over time.

If your data behaves as a coherent
structure you may rather use the
PointSet directly.

You may want to get familiar with the
characteristics of the itk::PointSet
and itk::Mesh. They are described in
the SoftwareGuide.

http://www.itk.org/ItkSoftwareGuide.pdf

PointSet   Section 4.2, pdf-page 74
Mesh       Section 4.3, pdf-page 86




Regards,


    Luis



-----------------------
Arash Jahangir wrote:

> Hi Luis,
> The Image is the output of stereo image disparity analysis.  So I don't
> really have a functional transformation of the (u,v) into (x,y,z) but rather
> a look up table.  Nor do all the points lie on the same plane or otherwise
> can be easily categorized just based on their (u,v) coordinates.  After the
> image/object is loaded in, I will be deleting the unwanted parts and
> intelligently reduce the number of cells/pixels (I'd say I'll be decimating
> the object, except that my algorithms are rather quite different from
> standard decimation).  Eventually the data will be transformed to connect
> with VTK for visualization.  But before I do that, I will need methods to
> query the cells based on their angles, derivatives (both spatial and
> intensity values), etc so that I can reduce the point count properly.
> 
> BTW, I will be dealing only with Surface values for now so I am curious if I
> should be looking at SurfaceSpatialObjects.  It just seems to me there are
> too many options open to me and I can't tell which is the best one.  Can you
> tell me what is the motivation behind Spatial Objects and what they are best
> used for.
> 
> all help is appreciated,
> Arash
> PS  I tried to reply to your post but I got:
>  
> 
>     This Message was undeliverable due to the following reason:
> 
>     Your message was not delivered because the return address was refused.
> 
>     The return address was '<arash at vije.ca>' <mailto:arash at vije.ca>'>
>      
> 
> What gives?!
>