[Insight-developers] proposal: enhancing wrapitk's filter coverage during (one of) the next tcon

Gaëtan Lehmann gaetan.lehmann at jouy.inra.fr
Wed Oct 1 05:25:16 EDT 2008


Hi,

You may know that WrapITK has greatly enhanced the filter coverage,  
compared to what was previously available in tcl, java and python.  
Currently, 66% of the filters in ITK are usable in WrapITK. In the  
future, the goal is to reach 100% of filter coverage. This is a quite  
difficult task for a single person, because it requires a quite good  
knowledge of the whole ITK, to be able to select, for all the classes,  
the relevant template parameters to instantiate. I made my best to  
complete this task, but obviously, I can't go further, because I'm not  
able to make a decision on the remaining non wrapped filters.

I think that the weekly tcon can be a great place to select the  
template parameters needed to instantiate the missing filters in  
WrapITK. For many of the filters, I'm quite sure the right template  
parameters to use are obvious for many of us, and that they only need  
to be collected. With those data, I would be able to implement the  
wrappers and to add them in WrapITK.
Also, some of the filters may not be of direct interest for the user,  
because they are intended to be used only internally in some other  
code, or because they can only be used as a superclass (like  
UnaryFunctorImageFilter). In that case, they should be added in the  
excluded filters list for the filter coverage.

A good goal, for the next release, would be to cover 80% of ITK's  
filter, which means 51 new filters added in WrapITK or in the excluded  
filters list. 51 filters may look like a big number of classes (and it  
is, for the final python/tcl/java user), but many of the remaining  
filters seems similar, so it should be easy to choose the template  
parameters for a group of filters, instead of processing them one by  
one.

Also, note that adding new stuff in WrapITK would not only benefit to  
WrapITK users: because building a class in WrapITK builds every  
methods in that class, we have found many bugs in ITK code during the  
addition of new classes in WrapITK in the past. It is likely that we  
would uncover a few more bugs by adding new classes, bugs which won't  
be found by final users.

A list of unwrapped filters can be found at the end of this mail.

What do you think?

Gaëtan




BSplineScatteredDataPointSetToImageFilter
BalloonForceFilter
BayesianClassifierImageFilter
BayesianClassifierInitializationImageFilter
BinaryMaskToNarrowBandPointSetFilter
BloxBoundaryPointImageToBloxBoundaryProfileImageFilter
BloxBoundaryPointToCoreAtomImageFilter
BloxBoundaryProfileImageToBloxCoreAtomImageFilter
ChainCodeToFourierSeriesPathFilter
ComposeRGBAImageFilter
ConformalFlatteningMeshFilter
ConnectedRegionsMeshFilter
ContourExtractor2DImageFilter
CurvatureRegistrationFilter
DeformableMesh3DFilter
DeformableSimplexMesh3DBalloonForceFilter
DeformableSimplexMesh3DFilter
DeformableSimplexMesh3DGradientConstraintForceFilter
DeformationFieldJacobianDeterminantFilter
DiffeomorphicDemonsRegistrationFilter
DifferenceOfGaussiansGradientImageFilter
DiffusionTensor3DReconstructionImageFilter
DisplacementFieldJacobianDeterminantFilter
EigenAnalysis2DImageFilter
ExponentialDeformationFieldImageFilter
ExtensionVelocitiesImageFilter
ExtractOrthogonalSwath2DImageFilter
FEMRegistrationFilter
FFTComplexToComplexImageFilter
FFTWComplexToComplexImageFilter
FastMarchingExtensionImageFilter
FastMarchingUpwindGradientImageFilter
FastSymmetricForcesDemonsRegistrationFilter
FiniteDifferenceSparseImageFilter
GetAverageSliceImageFilter
GradientImageToBloxBoundaryPointImageFilter
GradientVectorFlowImageFilter
GridForwardWarpImageFilter
HardConnectedComponentImageFilter
Hessian3DToVesselnessMeasureImageFilter
HessianRecursiveGaussianImageFilter
HistogramToEntropyImageFilter
HistogramToImageFilter
HistogramToIntensityImageFilter
HistogramToLogProbabilityImageFilter
HistogramToProbabilityImageFilter
HoughTransform2DCirclesImageFilter
HoughTransform2DLinesImageFilter
ImageAndPathToImageFilter
ImageToMeshFilter
ImageToParametricSpaceFilter
ImageToPathFilter
ImageToVectorImageFilter
ImplicitManifoldNormalVectorFilter
InteriorExteriorMeshFilter
InterpolateImagePointsFilter
InverseDeformationFieldImageFilter
IsoContourDistanceImageFilter
IterativeInverseDeformationFieldImageFilter
JoinImageFilter
KLMRegionGrowImageFilter
ListSampleToHistogramFilter
MRFImageFilter
MRIBiasFieldCorrectionFilter
MagnitudeAndPhaseToComplexImageFilter
MaskNeighborhoodOperatorImageFilter
MaskedMovingHistogramImageFilter
MatrixIndexSelectionImageFilter
MeshToMeshFilter
NarrowBandCurvesLevelSetImageFilter
NeighborhoodOperatorImageFilter
NormalizedCorrelationImageFilter
OrthogonalSwath2DPathFilter
ParametricSpaceToImageSpaceMeshFilter
PathAndImageToPathFilter
PathToChainCodePathFilter
PathToImageFilter
PathToPathFilter
PointSetToImageFilter
PolylineMask2DImageFilter
PolylineMaskImageFilter
QuadEdgeMeshCleanFilter
QuadEdgeMeshDecimationFilter
QuadEdgeMeshDelaunayConformingFilter
QuadEdgeMeshEdgeMergeDecimationFilter
QuadEdgeMeshNormalFilter
QuadEdgeMeshToQuadEdgeMeshFilter
RGBGibbsPriorFilter
RealAndImaginaryToComplexImageFilter
ReinitializeLevelSetImageFilter
SampleMeanShiftBlurringFilter
SampleMeanShiftClusteringFilter
SampleSelectiveMeanShiftBlurringFilter
SampleToHistogramProjectionFilter
ScalarImageKmeansImageFilter
ScalarToArrayCastImageFilter
SimpleFuzzyConnectednessRGBImageFilter
SimpleFuzzyConnectednessScalarImageFilter
SimplexMeshAdaptTopologyFilter
SimplexMeshToTriangleMeshFilter
SpatialFunctionImageEvaluatorFilter
SpatialObjectToPointSetFilter
SymmetricEigenAnalysisImageFilter
TensorFractionalAnisotropyImageFilter
TensorRelativeAnisotropyImageFilter
TransformMeshFilter
TriangleMeshToBinaryImageFilter
TriangleMeshToSimplexMeshFilter
UnsharpMaskLevelSetImageFilter
VectorConfidenceConnectedImageFilter
VectorConnectedComponentImageFilter
VectorCurvatureAnisotropicDiffusionImageFilter
VectorExpandImageFilter
VectorFuzzyConnectednessImageFilter
VectorGradientAnisotropicDiffusionImageFilter
VectorGradientMagnitudeImageFilter
VectorNeighborhoodOperatorImageFilter
VectorResampleImageFilter
VectorRescaleIntensityImageFilter
VectorThresholdSegmentationLevelSetImageFilter
VoronoiPartitioningImageFilter
VoronoiSegmentationRGBImageFilter
WarpJacobianDeterminantFilter
WarpMeshFilter
WarpVectorImageFilter
WrapPadImageFilter
ZeroCrossingBasedEdgeDetectionImageFilter

372 filters
245 wrapped filters
127 non wrapped filters
65.860215% covered


-- 
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.mandriva.org
http://www.itk.org  http://www.clavier-dvorak.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: This is a digitally signed message part
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20081001/98c94de1/attachment.pgp>


More information about the Insight-developers mailing list