Orfeo Toolbox  3.16
itkDirectedHausdorffDistanceImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Insight Segmentation & Registration Toolkit
4  Module: $RCSfile: itkDirectedHausdorffDistanceImageFilter.h,v $
5  Language: C++
6  Date: $Date: 2009-04-25 12:27:21 $
7  Version: $Revision: 1.11 $
8 
9  Copyright (c) Insight Software Consortium. All rights reserved.
10  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
11 
12  This software is distributed WITHOUT ANY WARRANTY; without even
13  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  PURPOSE. See the above copyright notices for more information.
15 
16 =========================================================================*/
17 #ifndef __itkDirectedHausdorffDistanceImageFilter_h
18 #define __itkDirectedHausdorffDistanceImageFilter_h
19 
20 #include "itkImageToImageFilter.h"
21 #include "itkNumericTraits.h"
22 #include "itkArray.h"
23 #include "itkImage.h"
24 
25 namespace itk {
26 
61 template<class TInputImage1, class TInputImage2>
63  public ImageToImageFilter<TInputImage1, TInputImage1>
64 {
65 public:
71 
73  itkNewMacro(Self);
74 
77 
79  typedef TInputImage1 InputImage1Type;
80  typedef TInputImage2 InputImage2Type;
81  typedef typename TInputImage1::Pointer InputImage1Pointer;
82  typedef typename TInputImage2::Pointer InputImage2Pointer;
83  typedef typename TInputImage1::ConstPointer InputImage1ConstPointer;
84  typedef typename TInputImage2::ConstPointer InputImage2ConstPointer;
85 
86  typedef typename TInputImage1::RegionType RegionType;
87  typedef typename TInputImage1::SizeType SizeType;
88  typedef typename TInputImage1::IndexType IndexType;
89 
90  typedef typename TInputImage1::PixelType InputImage1PixelType;
91  typedef typename TInputImage2::PixelType InputImage2PixelType;
92 
94  itkStaticConstMacro(ImageDimension, unsigned int,
95  TInputImage1::ImageDimension);
96 
98  typedef typename NumericTraits<InputImage1PixelType>::RealType RealType;
99 
101  void SetInput1( const InputImage1Type * image )
102  { this->SetInput( image ); }
103 
105  void SetInput2( const InputImage2Type * image );
106 
108  const InputImage1Type * GetInput1(void)
109  { return this->GetInput(); }
110 
112  const InputImage2Type * GetInput2(void);
113 
115  itkGetConstMacro(DirectedHausdorffDistance,RealType);
116  itkGetConstMacro(AverageHausdorffDistance,RealType);
117 
118 #ifdef ITK_USE_CONCEPT_CHECKING
119 
120  itkConceptMacro(InputHasNumericTraitsCheck,
123 #endif
124 
125 protected:
128  void PrintSelf(std::ostream& os, Indent indent) const;
129 
132  void AllocateOutputs();
133 
135  void BeforeThreadedGenerateData ();
136 
138  void AfterThreadedGenerateData ();
139 
141  void ThreadedGenerateData (const RegionType&
142  outputRegionForThread,
143  int threadId);
144 
145  // Override since the filter needs all the data for the algorithm
146  void GenerateInputRequestedRegion();
147 
148  // Override since the filter produces all of its output
149  void EnlargeOutputRequestedRegion(DataObject *data);
150 
151 private:
152  DirectedHausdorffDistanceImageFilter(const Self&); //purposely not implemented
153  void operator=(const Self&); //purposely not implemented
154 
156 
163 
164 }; // end of class
165 
166 } // end namespace itk
167 
168 #ifndef ITK_MANUAL_INSTANTIATION
170 #endif
171 
172 #endif

Generated at Sat Feb 2 2013 23:35:18 for Orfeo Toolbox with doxygen 1.8.1.1