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

Luis Ibanez luis.ibanez at kitware.com
Sat Oct 16 14:40:18 EDT 2010


Gaetan,

A class diagram has been added to the Wiki:

http://www.itk.org/Wiki/ITK_Release_4/Image_Class_Hierarchy_Refactoring#Class_Diagram

It may help clarify the relationships between
classes in the proposed new hierarchy.


-------


Cory:

That's a very through analysis of the change.
Very nicely done !




      Luis


------------------------------------------------------
2010/10/5 Gaëtan Lehmann <gaetan.lehmann at jouy.inra.fr>

>
> 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 <http://www.cs.unc.edu/%7Ecquammen>
>> _______________________________________________
>> 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
>
>
> _______________________________________________
> 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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20101016/d88e34c4/attachment.htm>


More information about the Insight-developers mailing list