[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