Proposals:Increasing WrapITK Coverage: Difference between revisions

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

Revision as of 13:20, 1 October 2008

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