Proposals:Increasing WrapITK Coverage

From KitwarePublic
Revision as of 13:19, 1 October 2008 by Ibanez (talk | contribs) (New page: = Motivation = 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 IT...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Motivation

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.

List of Unwrapped Filters

  • 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