[Insight-developers] Integrating the New Statistics framework into ITK

Bill Lorensen bill.lorensen at gmail.com
Thu Apr 9 15:19:13 EDT 2009


I have to admit, I have loo0ked at the new statistics framework until
today. I just checked out a copy and compared the file names in
Statistics and the new Statistics. Below is the output of the unix
comm command. I only looked at .h files.

comm oldnames newnames

Just a few initial comments:

I see in general that Calculators have been replaced with Filters. It
is a great idea to have filters. However, I'm suprised that the
calculators are gone. In other parts of ITK, we have both Calculators
and Filters. The Filters are implemented using the Calculators.

I wonder was there any consideration to minimize backward compatibility issues.

I see a DensityFrequencyContainer2 in the new lib.


OLD NEW BOTH

       itkChiSquareDistribution.h
itkCovarianceCalculator.h
	itkCovarianceFilter.h
	itkDecisionRule.h
	itkDenseFrequencyContainer2.h
itkDenseFrequencyContainer.h
itkDensityFunction.h
		itkDistanceMetric.h
		itkDistanceToCentroidMembershipFunction.h
itkEuclideanDistance.h
	itkEuclideanDistanceMetric.h
	itkEuclideanSquareDistanceMetric.h
		itkExpectationMaximizationMixtureModelEstimator.h
itkGaussianDensityFunction.h
		itkGaussianDistribution.h
itkGaussianGoodnessOfFitComponent.h
	itkGaussianMembershipFunction.h
		itkGaussianMixtureModelComponent.h
itkGoodnessOfFitComponentBase.h
itkGoodnessOfFitFunctionBase.h
itkGoodnessOfFitMixtureModelCostFunction.h
itkGreyLevelCooccurrenceMatrixTextureCoefficientsCalculator.h
		itkHistogram.h
itkHistogramToEntropyImageFilter.h
itkHistogramToImageFilter.h
itkHistogramToIntensityImageFilter.h
itkHistogramToLogProbabilityImageFilter.h
itkHistogramToProbabilityImageFilter.h
	itkHistogramToTextureFeaturesFilter.h
itkHypersphereKernelMeanShiftModeSeeker.h
	itkImageClassifierFilter.h
itkImageToCooccurrenceListAdaptor.h
	itkImageToHistogramFilter.h
itkImageToHistogramGenerator.h
itkImageToListAdaptor.h
itkImageToListGenerator.h
	itkImageToListSampleAdaptor.h
	itkImageToListSampleFilter.h
itkJointDomainImageToListAdaptor.h
	itkJointDomainImageToListSampleAdaptor.h
		itkKdTreeBasedKmeansEstimator.h
		itkKdTreeGenerator.h
		itkKdTree.h
itkListSampleBase.h
		itkListSample.h
itkListSampleToHistogramFilter.h
itkListSampleToHistogramGenerator.h
itkLogLikelihoodGoodnessOfFitFunction.h
itkMahalanobisDistanceMembershipFunction.h
	itkMahalanobisDistanceMetric.h
	itkManhattanDistanceMetric.h
itkMaskedScalarImageToGreyLevelCooccurrenceMatrixGenerator.h
	itkMaximumDecisionRule2.h
	itkMaximumRatioDecisionRule2.h
itkMeanCalculator.h
	itkMeanFilter.h
itkMeanShiftModeCacheMethod.h
itkMeanShiftModeSeekerBase.h
		itkMeasurementVectorTraits.h
		itkMembershipFunctionBase.h
itkMembershipSampleGenerator.h
		itkMembershipSample.h
	itkMinimumDecisionRule2.h
		itkMixtureModelComponentBase.h
		itkNeighborhoodSampler.h
itkNormalVariateGenerator.h
itkPointSetToListAdaptor.h
	itkPointSetToListSampleAdaptor.h
		itkProbabilityDistribution.h
itkRandomVariateGeneratorBase.h
itkSampleAlgorithmBase.h
	itkSampleClassifierFilter.h
itkSampleClassifier.h
itkSampleClassifierWithMask.h
		itkSample.h
itkSampleMeanShiftBlurringFilter.h
itkSampleMeanShiftClusteringFilter.h
itkSampleSelectiveMeanShiftBlurringFilter.h
	itkSampleToHistogramFilter.h
itkSampleToHistogramProjectionFilter.h
	itkSampleToSubsampleFilter.h
itkScalarImageTextureCalculator.h
	itkScalarImageToCooccurrenceListSampleFilter.h
	itkScalarImageToCooccurrenceMatrixFilter.h
itkScalarImageToGreyLevelCooccurrenceMatrixGenerator.h
itkScalarImageToHistogramGenerator.h
itkScalarImageToListAdaptor.h
	itkScalarImageToTextureFeaturesFilter.h
itkSelectiveSubsampleGenerator.h
	itkSparseFrequencyContainer2.h
itkSparseFrequencyContainer.h
	itkStandardDeviationPerComponentFilter.h
		itkStatisticsAlgorithm.h
		itkSubsample.h
		itkTDistribution.h
itkVariableDimensionHistogram.h
		itkWeightedCentroidKdTreeGenerator.h
itkWeightedCovarianceCalculator.h
	itkWeightedCovarianceFilter.h
itkWeightedMeanCalculator.h
	itkWeightedMeanFilter.h


On Thu, Apr 9, 2009 at 3:03 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> I don't see us dropping any directories that we have already
> distributed to our customer.
>
> Customers that have figured out how to use the current Statistics
> would be surprised after an upgrade to see that their code no longer
> compiles.
>
> Changing filenames places zero burden on our customers, only an
> inconvenience to us, the developers.
>
> On Thu, Apr 9, 2009 at 2:54 PM, Karthik Krishnan
> <karthik.krishnan at kitware.com> wrote:
>> On Thu, Apr 9, 2009 at 2:34 PM, Bill Lorensen <bill.lorensen at gmail.com>
>> wrote:
>>>
>>> My thought was that we would compile both.
>>
>> We cannot compile both unless we change the filenames of the classes in the
>> refactored framework, to ones different from the ones in the older
>> framework.
>>
>>>
>>> ITK distributed classes
>>> would be converted over to the StatisticsV2 (as long as the API
>>> remains the same).
>>>
>>> If we go with Option A, I think we should keep the current name for
>>> the old Statistics and call the new Statistics StatisticsV2 or some
>>> thing similar. We could still use the CMAKE selection mechanism.
>>
>> That sounds great.
>>
>> Would yout think that to a new user, it would be nice if he saw a directory
>> name was self-explanatorily named deprecated ? Also at some point, if we
>> moved to ITK-X.0 and broke compatibility, we could drop the old directory,
>> but we'd be stuck with a funky name StatisticsV2.
>>
>> Thanks
>> --
>> karthik
>>
>


More information about the Insight-developers mailing list