Proposals:Refactoring Statistics Framework 2007 Action Items
From KitwarePublic
Revision as of 15:47, 4 August 2008 by Andinet (talk | contribs) (→Classifier related classes refactoring)
Action Items
API Fixes
- ImageToCoocurrenceListAdaptor
- Create a Filter for this operation, in this class the Compute() method will be used.
- Fix the API so it is a real Adaptor : must have a GetMeasurementVector(unsigned int id) method.
- There is no conceptual difference between "Generators" and "Calculators"
- They should become Filters
- Estimators have similar characterstics as "Generators" and "Calculators"
- They could be converted to filters
Proposals
- Sample class could be derived from a DataObject
- Subsequently, all the derived classes such as ListSampleBase, Histogram and Subsample will be part of the pipeline.
- Add a typedef in the Sample class for the DataObjectDectorator of a Measurement vector
- KDTree could be derived from a DataObject
- ListSampleBase : to be deprecated
- SampleAlgorithmBase will be derived from ProcessObject
- Subsequently, classes derived from the SampleAlgorithmBase will be process objects.
- The following Calculator classes will also be derived from process object
- ScalarImageTextureCalculator
- GreyLevelCooccurrenceMatrixTextureCoefficientsCalculator
- The following Generator classes will be derived from process object
- ImageToHistogramGenerator
- ImageToListGenerator
- KdTreeGenerator
- ListSampleToHistogramGenerator
- MaskedScalarImageToGreyLevelCooccurrenceMatrixGenerator
- MembershipSampleGenerator
- ScalarImageToGreyLevelCooccurrenceMatrixGenerator
- ScalarImageToHistogramGenerator
- SelectiveSubsampleGenerator
- WeightedCentroidKdTreeGenerator
- The following two generator classes will remain as generators
- NormalVariateGenerator
- RandomVariateGeneratorBase
- Frequency container classes ( DenseFrequencyContainer and SparseFrequencyContainer ) do not need any modification at this point unless
- there is a filter which outputs this data type ( in which case DataObjectDecorator can be defined )
- There is a duplication of data in the omponentbase, membership function
Progress of Specific Tasks
Data Objects
- Sample (Luis) Done
- ListSample (Luis) Done
- Histogram (Luis) Done
- Subsample (Andinet) Done
- MembershipSample (Luis) In Progress
- KdTree (Luis) Pending
- Replace "WeightedCentroid" with "SumMeasurmentVector"
- propagate this to KdTree generators
- VariableDimensionHistogram (Luis) Pending
- MembershipFunctionBase (Luis) Pending
- Make it a DataObject ?
- and derived classes
Process Objects
- MeanFilter (Andinet) Done!
- SampleToHistogramFilter (it was ListSampleToHistogramGenerator) (Luis) In Progress
- ImageToCooccurrenceListFilter (it was ImageToCooccurrenceListAdaptor) (Luis)
- CovarianceFilter (Andinet)
- HistogramToTextureFeaturesFilter (it was GreyLevelCooccurrenceMatrixTextureCoefficientsFilter) (Andinet) Done!
- ScalarImageToTextureFeaturesFilter (Andinet)
- WeightedCovarianceFilter (Andinet)
- WeightedMeanFilter (Andinet) Done!
- ImageToHistogramFilter (was ImageToHistogramGenerator) (Luis)
- ImageToListSampleFilter (ImageToListGenerator) (Andinet) Done!
- SampleToKdTreeFilter (it was KdTreeGenerator ) (Andinet)
- (+option for generating sum vectors)
- WeigthedCentroidKdTreeGenerator will be deprecated
- ScalarImageToCooccurrenceMatrixFilter (it was ScalarImageToGreyLevelCooccurrenceMatrixGenerator)(Andinet) Done!
- MaskedScalarImageToGreyLevelCooccurrenceMatrixGenerator will be deprecated
- ScalarImageToCooccurrenceMatrixFilter takes a mask image if provided
- ScalarImageToHistogramFilter (it was ScalarImageToHistogramGenerator)(Luis)
- SampleToSubsampleFilter (New class) (Luis) In Progress
- ClassLabelSubsamplerFilter (it was SelectiveSubsampleGenerator) (Luis)
- NeighborSubsamplerFilter (it was NeighborhoodSampler)(Luis) In Progress
- ListSampleToHistogramFilter (make it derive from ProcessObject) Andinet
- SampleFilterBase (it was SampleAlgorithmBase) (make it derive from ProcessObject) (Luis)
- HistogramToImageFilter (remove decorator, now that Histogram is a DataObject) (Luis)
- HistogramToEntropyImageFilter (do code review) (Andinet)
- HistogramToIntensityImageFilter (do code review) (Luis)
- HistogramToLogProbabilityImageFilter (do code review) (Andinet)
- HistogramToProbabilityImageFilter (do code review) (Luis)
- SampleToHistogramProjectionFilter (output Histogram should be created in MakeOutput)(Andinet)
- MeanShiftBlurringSampleFilter (it was SampleMeanShiftBlurringFilter)(Andinet)
- SelectiveMeanShiftBlurringSampleFilter (it was SampleSelectiveMeanShiftBlurringFilter)(Luis)
- MeanShiftClusteringSampleFilter (it was SampleMeanShiftClusteringFilter) (Andinet)
- SelectiveMeanShiftClusteringSampleFilter (it was SampleSelectiveMeanShiftClusteringFilter) (Luis)(why should be called "Selective")
- SampleClassifierFilter (it was SampleClassifier) (Luis) In Progress
- SampleClassifierWithMaskFilter (it was SampleClassifier) (Luis)
- ExpectationMaximizationMixtureModelEstimator (Luis)
- (review the Classifiers hierarchy)
- Review Components and MembershipSample classes
- SampleToKmeansFilter (it was KdTreeBasedKmeansEstimator) (Andinet)
- (it now should use the WeightedKdTreeGenerator inside).
- Output should be a container of MeasuremenVectors of RealType (Andinet)
- Rework the Insight/Code/Algorithms/itkScalarImageKmeansImageFilter accordingly (Luis)
- ClassificationSampleFilter (it was SampleClassifier) (Andinet)
- Related to the classifier reorganization
- MaskedClassificationSampleFilter (it was SampleClassifierWithMask) (Luis)
- Related to the classifier reorganization
Adaptors
- ImageToListAdaptor (Andinet)
- JointDomainImageToListAdaptor (Andinet)
- PointSetToListAdaptor (Luis)
- ScalarImageToListAdaptor (Andinet)
- Reorganize distance metrics and membership function bases as suggested in [[1]] (Andinet :Done)
- Use the new MeasurmentVectorTraits added to set/get MeasurementVectorSize
- Update the migration guide ([[2]])
- Add unit tests if necessary
- Fix code style issues
- Refactor Gaussian density function
- Rename itkGaussianDensityfunction as GaussianMembership function
- Remove itkDenistyFunction (it does exactly what itkMembershipfunction is supposed to do)