15 #ifndef __itkMammogramPectoralisFitMetric_h
16 #define __itkMammogramPectoralisFitMetric_h
18 #include <itkSingleValuedCostFunction.h>
19 #include <itkImageRegionIterator.h>
20 #include <itkImageRegionIteratorWithIndex.h>
21 #include <itkImageRegionConstIterator.h>
22 #include <itkImageRegionConstIteratorWithIndex.h>
34 template <
class TInputImage>
36 public SingleValuedCostFunction
52 itkStaticConstMacro(ImageDimension,
unsigned int,
53 TInputImage::ImageDimension);
66 typedef typename itk::ImageRegionIterator< TInputImage >
IteratorType;
89 typedef typename itk::Image<MaskPixelType, ImageDimension>
MaskImageType;
103 void SetInputImage(
const InputImageType *imInput );
106 void SetMask(
const MaskImageType *imMask );
109 void SetSSD(
bool flag ) { m_flgOptimiseSSD = flag; }
115 itkGetObjectMacro( ImTemplate, TemplateImageType );
121 itkStaticConstMacro( ParametricSpaceDimension,
unsigned int, 8 );
125 return ParametricSpaceDimension;
128 void GetParameters(
const InputImagePointType &pecInterceptInMM,
129 ParametersType ¶meters );
132 DerivativeType &Derivative )
const override
137 MeasureType GetValueAtPecIntercept(
const InputImagePointType &pecInterceptInMM );
139 MeasureType GetValue(
const ParametersType ¶meters )
const override;
141 MeasureType GetValueNCC(
const ParametersType ¶meters )
const;
142 MeasureType GetValueSSD(
const ParametersType ¶meters )
const;
146 DerivativeType &Derivative )
const override
148 Value = this->GetValue( parameters );
149 this->GetDerivative( parameters, Derivative );
154 void ClearTemplate(
void );
156 void GenerateTemplate(
const ParametersType ¶meters,
157 double &tMean,
double &tStdDev,
double &nInside,
double &nPixels,
158 TemplateImageRegionType &templateRegion );
167 void PrintSelf(std::ostream & os, Indent indent)
const override;
186 double GradientAtMidpoint(
const ParametersType ¶meters )
const;
191 #ifndef ITK_MANUAL_INSTANTIATION
192 #include "itkMammogramPectoralisFitMetric.txx"
MaskImageType::SizeType MaskImageSizeType
Definition: itkMammogramPectoralisFitMetric.h:93
SingleValuedCostFunction Superclass
Definition: itkMammogramPectoralisFitMetric.h:41
MaskImageConstPointer m_Mask
Definition: itkMammogramPectoralisFitMetric.h:184
MaskImageType::RegionType MaskImageRegionType
Definition: itkMammogramPectoralisFitMetric.h:92
TemplateImageType::SpacingType TemplateImageSpacingType
Definition: itkMammogramPectoralisFitMetric.h:79
A metric to compute the similarity between an image and a pectoral shape model.
Definition: itkMammogramPectoralisFitMetric.h:35
bool m_flgOptimiseSSD
Definition: itkMammogramPectoralisFitMetric.h:169
unsigned int GetNumberOfParameters(void) const override
Definition: itkMammogramPectoralisFitMetric.h:123
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
itk::Image< TemplatePixelType, ImageDimension > TemplateImageType
Definition: itkMammogramPectoralisFitMetric.h:74
TemplateImageType::IndexType TemplateImageIndexType
Definition: itkMammogramPectoralisFitMetric.h:81
TInputImage InputImageType
Definition: itkMammogramPectoralisFitMetric.h:56
InputImageType::PointType InputImagePointType
Definition: itkMammogramPectoralisFitMetric.h:62
void GetDerivative(const ParametersType ¶meters, DerivativeType &Derivative) const override
Definition: itkMammogramPectoralisFitMetric.h:131
InputImageType::Pointer InputImagePointer
Definition: itkMammogramPectoralisFitMetric.h:57
TemplateImageType::PointType TemplateImagePointType
Definition: itkMammogramPectoralisFitMetric.h:80
MaskImageType::ConstPointer MaskImageConstPointer
Definition: itkMammogramPectoralisFitMetric.h:90
itk::ImageLinearConstIteratorWithIndex< MaskImageType > MaskLineIteratorType
Definition: itkMammogramPectoralisFitMetric.h:99
TemplateImageType::SizeType TemplateImageSizeType
Definition: itkMammogramPectoralisFitMetric.h:82
Superclass::ParametersType ParametersType
Definition: itkMammogramPectoralisFitMetric.h:115
MammogramPectoralisFitMetric Self
Definition: itkMammogramPectoralisFitMetric.h:40
Definition: niftkITKAffineResampleImage.cxx:74
ImageType::IndexType IndexType
Definition: niftkMakeLapUSProbeBasicModel.cxx:32
InputImageConstPointer m_InputImage
Definition: itkMammogramPectoralisFitMetric.h:179
InputImagePointType m_ImSizeInMM
Definition: itkMammogramPectoralisFitMetric.h:178
TemplateImagePointer GetTemplate(void)
Definition: itkMammogramPectoralisFitMetric.h:152
itk::ImageRegionConstIterator< MaskImageType > MaskIteratorType
Definition: itkMammogramPectoralisFitMetric.h:98
void SetSSD(bool flag)
Optimise SSD rather than normalised cross-correlation.
Definition: itkMammogramPectoralisFitMetric.h:109
itk::ImageRegionIteratorWithIndex< TemplateImageType > TemplateIteratorWithIndexType
Definition: itkMammogramPectoralisFitMetric.h:85
float TemplatePixelType
Definition: itkMammogramPectoralisFitMetric.h:73
SmartPointer< Self > Pointer
Definition: itkMammogramPectoralisFitMetric.h:42
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
SmartPointer< const Self > ConstPointer
Definition: itkMammogramPectoralisFitMetric.h:43
InputImageType::RegionType InputImageRegionType
Definition: itkMammogramPectoralisFitMetric.h:59
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
MaskImageRegionType m_MaskRegion
Definition: itkMammogramPectoralisFitMetric.h:183
InputImageType::SizeType InputImageSizeType
Definition: itkMammogramPectoralisFitMetric.h:64
itk::ImageRegionConstIterator< TInputImage > IteratorConstType
Definition: itkMammogramPectoralisFitMetric.h:68
double m_MinimumPectoralArea
Definition: itkMammogramPectoralisFitMetric.h:171
InputImagePointType m_ImOrigin
Definition: itkMammogramPectoralisFitMetric.h:176
MammogramPectoralisFitMetric(const Self &)
Definition: itkMammogramPectoralisFitMetric.h:165
MaskImageType::SpacingType MaskImageSpacingType
Definition: itkMammogramPectoralisFitMetric.h:95
InputImageSpacingType m_ImSpacing
Definition: itkMammogramPectoralisFitMetric.h:175
unsigned char MaskPixelType
Definition: itkMammogramPectoralisFitMetric.h:88
InputImageType::PixelType InputImagePixelType
Definition: itkMammogramPectoralisFitMetric.h:60
InputImageType::IndexType InputImageIndexType
Definition: itkMammogramPectoralisFitMetric.h:63
void operator=(const Self &)
Definition: itkMammogramPectoralisFitMetric.h:166
InputImageSizeType m_ImSize
Definition: itkMammogramPectoralisFitMetric.h:177
MaskImageType::IndexType MaskImageIndexType
Definition: itkMammogramPectoralisFitMetric.h:94
TemplateImagePointer m_ImTemplate
Definition: itkMammogramPectoralisFitMetric.h:181
void GetValueAndDerivative(const ParametersType ¶meters, MeasureType &Value, DerivativeType &Derivative) const override
Definition: itkMammogramPectoralisFitMetric.h:144
itk::ImageRegionIterator< TInputImage > IteratorType
Definition: itkMammogramPectoralisFitMetric.h:66
itk::ImageRegionIteratorWithIndex< TInputImage > IteratorWithIndexType
Definition: itkMammogramPectoralisFitMetric.h:67
double m_TemplatePixelAreaInMM
Definition: itkMammogramPectoralisFitMetric.h:172
itk::ImageRegionIterator< TemplateImageType > TemplateIteratorType
Definition: itkMammogramPectoralisFitMetric.h:84
void SetMinimumPectoralArea(double minPecArea)
Set the minuimum pectoral area in mm^2.
Definition: itkMammogramPectoralisFitMetric.h:112
TemplateImageType::ConstPointer TemplateImageConstPointer
Definition: itkMammogramPectoralisFitMetric.h:76
InputImageType::SpacingType InputImageSpacingType
Definition: itkMammogramPectoralisFitMetric.h:61
MaskImageType::Pointer MaskImagePointer
Definition: itkMammogramPectoralisFitMetric.h:91
InputImageRegionType m_ImRegion
Definition: itkMammogramPectoralisFitMetric.h:174
itk::ImageRegionConstIteratorWithIndex< TInputImage > IteratorWithIndexConstType
Definition: itkMammogramPectoralisFitMetric.h:69
itk::Image< MaskPixelType, ImageDimension > MaskImageType
Definition: itkMammogramPectoralisFitMetric.h:89
Superclass::DerivativeType DerivativeType
Definition: itkMammogramPectoralisFitMetric.h:118
Superclass::MeasureType MeasureType
Definition: itkMammogramPectoralisFitMetric.h:119
TemplateImageType::PixelType TemplateImagePixelType
Definition: itkMammogramPectoralisFitMetric.h:78
InputImageType::ConstPointer InputImageConstPointer
Definition: itkMammogramPectoralisFitMetric.h:58
TemplateImageType::Pointer TemplateImagePointer
Definition: itkMammogramPectoralisFitMetric.h:75
TemplateImageType::RegionType TemplateImageRegionType
Definition: itkMammogramPectoralisFitMetric.h:77