go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkAdvancedKappaStatisticImageToImageMetric.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 
15 
16 #ifndef __itkAdvancedKappaStatisticImageToImageMetric_h
17 #define __itkAdvancedKappaStatisticImageToImageMetric_h
18 
20 
21 namespace itk
22 {
23 
53 template < class TFixedImage, class TMovingImage >
55  public AdvancedImageToImageMetric< TFixedImage, TMovingImage>
56 {
57 public:
58 
62  TFixedImage, TMovingImage > Superclass;
63  typedef SmartPointer<Self> Pointer;
64  typedef SmartPointer<const Self> ConstPointer;
65 
67  itkNewMacro( Self );
68 
71 
73  typedef typename
89  typedef typename Superclass::RealType RealType;
108  typedef typename
112  typedef typename
114  typedef typename
116  typedef typename
118 
120  itkStaticConstMacro( FixedImageDimension, unsigned int,
121  FixedImageType::ImageDimension );
122 
124  itkStaticConstMacro( MovingImageDimension, unsigned int,
125  MovingImageType::ImageDimension );
126 
128  virtual MeasureType GetValue( const TransformParametersType & parameters ) const;
129 
131  virtual void GetDerivative( const TransformParametersType & parameters,
132  DerivativeType & derivative ) const;
133 
135  virtual void GetValueAndDerivative( const TransformParametersType & parameters,
136  MeasureType& Value, DerivativeType& Derivative ) const;
137 
139  virtual void ComputeGradient( void );
140 
142  itkSetMacro( ForegroundValue, RealType );
143  itkGetConstReferenceMacro( ForegroundValue, RealType );
144 
150  itkSetMacro( Complement, bool );
151  itkGetConstReferenceMacro( Complement, bool );
152  itkBooleanMacro( Complement );
153 
155  itkSetMacro( Epsilon, RealType );
156  itkGetConstReferenceMacro( Epsilon, RealType );
157 
158 protected:
161 
163  void PrintSelf( std::ostream & os, Indent indent ) const;
164 
178 
184  const TransformJacobianType & jacobian,
185  const MovingImageDerivativeType & movingImageDerivative,
186  DerivativeType & innerProduct ) const;
187 
192  const RealType & fixedImageValue,
193  const RealType & movingImageValue,
194  std::size_t & fixedForegroundArea,
195  std::size_t & movingForegroundArea,
196  std::size_t & intersection,
197  const DerivativeType & imageJacobian,
198  const NonZeroJacobianIndicesType & nzji,
199  DerivativeType & sum1,
200  DerivativeType & sum2 ) const;
201 
202 private:
203  AdvancedKappaStatisticImageToImageMetric(const Self&); //purposely not implemented
204  void operator=(const Self&); //purposely not implemented
205 
209 
210 }; // end class AdvancedKappaStatisticImageToImageMetric
211 
212 } // end namespace itk
213 
214 #ifndef ITK_MANUAL_INSTANTIATION
215 #include "itkAdvancedKappaStatisticImageToImageMetric.hxx"
216 #endif
217 
218 #endif // end #ifndef __itkAdvancedKappaStatisticImageToImageMetric_h
219 


Generated on 27-06-2013 for elastix by doxygen 1.8.3.1 elastix logo