[Insight-developers] Proposal: refactoring of image class hierarchy in ITK v4

Gaëtan Lehmann gaetan.lehmann at jouy.inra.fr
Tue Oct 5 19:29:22 EDT 2010


Hi Cory,

The LabelMap class should be at the same level in the class hierarchy  
as Image.

* ImageBase< unsigned int VDimension >
** PhysicalImageBase< unsigned int VDimension >
*** RegularImageBase< unsigned int VDimension >
**** Image< class TPixel, unsigned int VDimension >
***** BloxImage< class TPixel, unsigned int VDimension >
****** BloxImage subclasses
***** SparseImage< class TNode, unsigned int VDimension >
**** LabelMap< class TPixel, unsigned int VDimension >
**** VectorImage< class TPixel, unsigned int VDimension >
*** RectilinearImageBase < unsigned int VDimension >
**** RectilinearImage <class TPixel, unsigned in VDimension >
*** PhasedArray3DSpecialCoordinatesImage< class TPixel >

PhysicalImageBase then become less obvious. I think that all the  
images are physically placed in ITK - any idea of non physically  
placed image?


While I understand that non regular spacing may be useful, I'm not  
sure that implementing that feature in a new class is the way to go.

How would we avoid code duplication between similar classes? Excepted  
the physical coordinates, Image and RectilinearImage would be very  
similar.
And there is no reason the LabelMap could not store the data of an  
image with an irregular spacing. Should we add a RectilinearLabelMap?
I guess that's also true for Dan's classes (slice contiguous and  
single bit binary images) - should they also be defined as Regular and  
Rectilinear?

I also think that we should try to keep the number of image classes  
quite low to be able to have them in the wrapping projects - wrapitk  
and simpleitk. Because they are base classes, having Image and  
RectilinearImage would make wrapitk twice as big as it is now, twice  
as long to build, ...

IMO, a new image class should be added only if the data organization  
is very different of the one already there - like the LabelMap - so  
the user can use that data layout to run algorithms which wouldn't  
have been possible without it. Performance is also a very important  
point.

Would it be possible to implement the non regular spacing feature in  
ImageBase without too much performance penalties?
Get/SetSpacing may be used, for example, for a mean spacing, instead  
of doing nothing as in the example you give on the wiki.

Regards,

Gaëtan


Le 5 oct. 10 à 18:12, Cory Quammen a écrit :

> Dear all,
>
> I've drafted a proposal for refactoring the image class hierarchy in
> ITK v4, which can be found here:
>
> http://www.itk.org/Wiki/ITK_Release_4/ 
> Image_Class_Hierarchy_Refactoring
>
> Please feel free to modify the wiki page to address things I've
> overlooked, suggest nomenclature improvements, or correct things I
> have gotten wrong.
>
> Thank you,
> Cory
>
> -- 
> Cory Quammen
> Computer Integrated Systems for Microscopy and Manipulation (CISMM)
> Department of Computer Science
> University of North Carolina at Chapel Hill
> http://www.cs.unc.edu/~cquammen
> _______________________________________________
> Powered by www.kitware.com
>
> Visit other Kitware open-source projects at
> http://www.kitware.com/opensource/opensource.html
>
> Kitware offers ITK Training Courses, for more information visit:
> http://kitware.com/products/protraining.html
>
> Please keep messages on-topic and check the ITK FAQ at:
> http://www.itk.org/Wiki/ITK_FAQ
>
> Follow this link to subscribe/unsubscribe:
> http://www.itk.org/mailman/listinfo/insight-developers

-- 
Gaëtan Lehmann
Biologie du Développement et de la Reproduction
INRA de Jouy-en-Josas (France)
tel: +33 1 34 65 29 66    fax: 01 34 65 29 09
http://voxel.jouy.inra.fr  http://www.itk.org
http://www.mandriva.org  http://www.bepo.fr

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 203 bytes
Desc: Ceci est une signature ?lectronique PGP
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20101006/e355fbdf/attachment.pgp>


More information about the Insight-developers mailing list