[Insight-developers] ITKv4 Modularization Plan
Gaëtan Lehmann
gaetan.lehmann at jouy.inra.fr
Tue Feb 8 09:49:02 EST 2011
Hi Xiaoxiao,
I'm giving a closer look at the modularization. First I've tried to
compute a quick summary of the number of classes by module:
[glehmann at marvin Modularization]$ egrep '/[a-zA-Z]*\.h' Manifest.txt |
awk '{print $3}' | sort | uniq -c | sort -n
1 itk-anti-alias
1 itk-eigen
1 itk-io-raw
1 itk-polynomials
1 itk-spatial-function
1 itk-test-kernel
1 itk-xml
2 itk-io-biorad
2 itk-io-bmp
2 itk-io-gipl
2 itk-io-jpeg
2 itk-io-lsm
2 itk-io-mesh
2 itk-io-png
2 itk-io-siemens
2 itk-io-stimulate
2 itk-io-tiff
2 itk-io-vtk
2 itk-narrow-band
3 itk-io-analyze
3 itk-io-deprecated
3 itk-io-gdcm
3 itk-io-ge
3 itk-io-ipl
3 itk-io-nifti
3 itk-io-nrrd
3 itk-io-spatialobjects
3 itk-signed-distance-function
3 itk-vtk
4 itk-bias-correction
4 itk-io-meta
4 itk-markov-random-fields-classifiers
4 itk-voronoi
5 itk-deformation-field
5 itk-fem-registration
5 itk-label-voting
5 itk-region-growing
6 itk-classifiers
6 itk-curvature-flow
6 itk-edge-detection
6 itk-finite-difference
6 itk-image-compare
6 itk-region-growing-klm
6 itk-smoothing
7 itk-bio-cell
8 itk-fft
9 itk-connected-components
9 itk-thresholding
10 itk-deprecated
10 itk-pde-deformable-registration
12 itk-anisotropic-smoothing
12 itk-distance-map
13 itk-watersheds
14 itk-io-base
15 itk-image-filter-base
15 itk-path
16 itk-meta-spatial-objects
20 itk-image-statistics
20 itk-mesh
21 itk-quad-edge-mesh-filtering
25 itk-image-grid
25 itk-quad-edge-mesh
27 itk-blox
27 itk-image-function
28 itk-optimizers
33 itk-transform
35 itk-registration-common
38 itk-neural-networks
41 itk-spatial-objects
44 itk-fem
46 itk-level-sets
61 itk-mathematical-morphology
61 itk-statistics
99 itk-intensity-math
271 itk-common
and the total number of modules:
[glehmann at marvin Modularization]$ egrep '/[a-zA-Z]*\.h' Manifest.txt |
awk '{print $3}' | sort | uniq -c | sort -n | wc -l
75
And a few comments — sometimes only questions, as I don't know the
answer ;-)
* no itk-fftw? As for the io modules, I guess this would simplify the
management of the dependency on FFTW. I'm not sure how we can ensure
that FFTW will be used if it is available however - is it possible to
ensure that behavior with the itk factories?
* MedianImageFilter .h and .txx files are not in the same module
* VectorImageToImagePixelAccessor in itk-intensity-math?
* ChangeLabelImageFilter and RelabelImageFilter are not restricted to
connected components
* ReflectiveImageRegion[Const]Iterator in itk-distance-map?
* AbsoluteValueDifferenceImageFilter in image-compare? I would rather
put it in itk-intensity-math
* I don't get immediately the meaning of itk-image-grid.
Unfortunately, I'm not sure to have something better to propose. In
WrapITK, the closest library is named Resize
* itk-image-statistics contains mostly the filters for the projection.
Those projections use some statistics to compute the projected value,
that's right, but many filters are also using some statistics
internally, like the Otsu threshold for example. In WrapITK, the
projection filters are in the Resize library.
* the compose filters in itk-intensity-math?
* Gradient, Gaussian, Laplacian filters in itk-intensity-math?
Clearly, I won't look there to find them!
* ImageToVectorImageFilter, RGBToLuminanceImageFilter and the Join
filters are grouped with the Compose filter in WrapITK
* itk-intensity-math is quite big. It may be splitted in unary and
binary and more filters.
* there is a lot of itk-io-*. It may be better to create a module only
if there is a dependency on another project, like gdcm or tiff?
* itk-common is probably a bit too big for wrapping. If possible, it
would be nice to split it a bit.
Here are the classes which are not in the Base library in WrapITK, but
are in itk-common — note the a library in wrapitk is a module in the
modularization work.
BSplineInterpolationWeightFunction
CellInterface
DataObjectDecorator
DefaultDynamicMeshTraits
DefaultStaticMeshTraits
ExtractImageFilter
ImageConstIterator
ImageConstIteratorWithIndex
ImageDuplicator
ImageIterator
ImageIteratorWithIndex
ImageLinearConstIteratorWithIndex
ImageLinearIteratorWithIndex
ImageRandomConstIteratorWithIndex
ImageRandomIteratorWithIndex
ImageRandomNonRepeatingConstIteratorWithIndex
ImageRandomNonRepeatingIteratorWithIndex
ImageRegionConstIterator
ImageRegionConstIteratorWithIndex
ImageRegionIterator
ImageRegionIteratorWithIndex
ImageRegionSplitter
ImportImageFilter
LineCell
MinimumMaximumImageCalculator
PointSet
SimpleDataObjectDecorator
SparseFieldLayer
SparseImage
SpatialFunction
StreamingImageFilter
TreeNode
TriangleCell
TriangleHelper
VertexCell
In WrapITK I think we haven't kept anything related to mesh —
CellInterface, LineCell, TriangleCell, VertexCell,
DefaultDynamicMeshTraits, DefaultStaticMeshTraits, TriangleHelper and
PointSet are in the Mesh library.
All the iterators are in a separate library in WrapITK.
The Sparse* classes are in the LevelSet library.
Some are not in Base in WrapITK because they are not widely used, but
I think they should be in itk-common, like SimpleDataObjectDecorator,
so that's ok :-)
Gaëtan
Le 7 févr. 11 à 21:51, Xiaoxiao Liu a écrit :
> Dear All,
>
>
>
> During the ITKv4 Boston meeting, we presented the modularization
> progress and planned to push the modularized ITK into the main ITK
> git repository on Feb, 28th. To make this transition easier for
> all of us, please let us know if you have any suggested improvements
> as soon as possible. We would like to get more feedback especially
> on the granularity of the segmentation of the modules and the naming
> of the modules, since it will be harder to move things around once
> everyone starts to contribute to the modularized ITK.
>
>
> So far we have created 90 modules out of the monolithic ITK (not
> including Examples and Reviews). Among the 90 modules, there are 14
> utility modules (such as itk-tiff and itk-xml) , and 21 I/O
> modules (such as itk-io-tiff). The Manifest (located ITK/
> Modularization/Manifest.txt) lists 2352 source code files and
> their locations in the modularized ITK. Here is a spreadsheet
> version of the Manifest for your convinence to explore:
> Manifest.xlsx. You can also get a copy of a modularized ITK
> (produced at Feb. 2nd) from http://itk.org/gitweb?p=tmp/modularITK.git
> to investigate.
>
>
> The current modularization process involves manually editing the
> Manifest file, adding tests for each module and running dashboards
> for modularized ITK every day. This process is done for the
> majority of ITK now and will be done for the entire toolkit by Feb
> 28th. Moreover, this process will continue to be carried out for any
> new contributions into ITKv4. Therefore, it will be extremely
> helpful for developers to get familiar with the new lay-out of the
> toolkit and get ready for the changes.
>
>
> We are working on detailed documentations to help both developers
> and users to adapt to the modularized version of ITK. More details
> about the modularization can be found at this wiki page: http://www.itk.org/Wiki/ITK_Release_4/Modularization
> .
>
>
> Thank you for your attention!
>
>
>
>
> - Best,
>
> Modularization Team (Luis, Bill, Brad, Xiaoxiao)
>
>
>
>
>
>
> ---------------------------------------------
> Xiaoxiao Liu, Ph.D.
> R & D Engineer
> Kitware Inc.
> Clifton Park, NY
> Phone: (518) 881-4924 or (518) 371-3971 x124
>
>
> _______________________________________________
> 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/20110208/b4077eb4/attachment.pgp>
More information about the Insight-developers
mailing list