18 #ifndef itkHistogramMatchingImageFilter_h
19 #define itkHistogramMatchingImageFilter_h
23 #include "vnl/vnl_matrix.h"
67 template<
typename TInputImage,
typename TOutputImage,
typename THistogramMeasurement =
typename TInputImage::PixelType >
85 itkStaticConstMacro(ImageDimension,
unsigned int,
86 TInputImage::ImageDimension);
87 itkStaticConstMacro(OutputImageDimension,
unsigned int,
88 TOutputImage::ImageDimension);
111 { this->SetInput(source); }
113 {
return this->GetInput(); }
117 void SetReferenceImage(
const InputImageType *reference);
119 const InputImageType * GetReferenceImage();
136 itkSetMacro(ThresholdAtMeanIntensity,
bool);
137 itkGetConstMacro(ThresholdAtMeanIntensity,
bool);
138 itkBooleanMacro(ThresholdAtMeanIntensity);
142 virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
147 itkGetModifiableObjectMacro(SourceHistogram, HistogramType);
148 itkGetModifiableObjectMacro(ReferenceHistogram, HistogramType);
149 itkGetModifiableObjectMacro(OutputHistogram, HistogramType);
152 #ifdef ITK_USE_CONCEPT_CHECKING
174 void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
176 void BeforeThreadedGenerateData() ITK_OVERRIDE;
178 void AfterThreadedGenerateData() ITK_OVERRIDE;
180 void ThreadedGenerateData(const OutputImageRegionType & outputRegionForThread,
188 virtual
void VerifyInputInformation() ITK_OVERRIDE {}
191 void ComputeMinMaxMean(
const InputImageType *image,
192 THistogramMeasurement & minValue,
193 THistogramMeasurement & maxValue,
194 THistogramMeasurement & meanValue);
197 void ConstructHistogram(
const InputImageType *image,
198 HistogramType *histogram,
const THistogramMeasurement minValue,
199 const THistogramMeasurement maxValue);
236 #ifndef ITK_MANUAL_INSTANTIATION
237 #include "itkHistogramMatchingImageFilter.hxx"
THistogramMeasurement m_OutputMeanValue
InputPixelType m_ReferenceIntensityThreshold
THistogramMeasurement m_OutputMaxValue
TableType m_QuantileTable
vnl_matrix< double > TableType
InputImageType::PixelType InputPixelType
SizeValueType m_NumberOfMatchPoints
HistogramMatchingImageFilter Self
Superclass::OutputImageType OutputImageType
Superclass::InputImageType InputImageType
~HistogramMatchingImageFilter() override
HistogramPointer m_ReferenceHistogram
THistogramMeasurement m_ReferenceMeanValue
SizeValueType m_NumberOfHistogramLevels
THistogramMeasurement m_ReferenceMaxValue
vnl_vector< double > GradientArrayType
Superclass::OutputImagePointer OutputImagePointer
ImageToImageFilter< TInputImage, TOutputImage > Superclass
This class stores measurement vectors in the context of n-dimensional histogram.
Superclass::InputImagePointer InputImagePointer
THistogramMeasurement m_ReferenceMinValue
InputPixelType m_SourceIntensityThreshold
THistogramMeasurement m_SourceMeanValue
Base class for all process objects that output image data.
THistogramMeasurement m_OutputMinValue
unsigned long SizeValueType
bool m_ThresholdAtMeanIntensity
HistogramPointer m_OutputHistogram
SmartPointer< const Self > ConstPointer
THistogramMeasurement m_SourceMaxValue
TOutputImage::RegionType OutputImageRegionType
OutputImageType::PixelType OutputPixelType
const InputImageType * GetSourceImage(void)
TInputImage InputImageType
SmartPointer< Self > Pointer
unsigned int ThreadIdType
HistogramPointer m_SourceHistogram
Base class for filters that take an image as input and produce an image as output.
void SetSourceImage(const InputImageType *source)
Normalize the grayscale values between two images by histogram matching.
Control indentation during Print() invocation.
OutputPixelType m_OutputIntensityThreshold
GradientArrayType m_Gradients
#define itkConceptMacro(name, concept)
HistogramType::Pointer HistogramPointer
Statistics::Histogram< THistogramMeasurement > HistogramType
Superclass::InputImageConstPointer InputImageConstPointer
THistogramMeasurement m_SourceMinValue