OTB  6.1.0
Orfeo Toolbox
otbDisparityMapEstimationMethod.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-2017 Centre National d'Etudes Spatiales (CNES)
3  *
4  * This file is part of Orfeo Toolbox
5  *
6  * https://www.orfeo-toolbox.org/
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20 
21 #ifndef otbDisparityMapEstimationMethod_h
22 #define otbDisparityMapEstimationMethod_h
23 
24 #include "itkImageToImageMetric.h"
26 #include "itkDataObjectDecorator.h"
27 #include "itkPointSet.h"
28 #include "otbPointSetSource.h"
29 
30 namespace otb
31 {
55 template <class TFixedImage, class TMovingImage, class TPointSet>
57  : public PointSetSource<TPointSet>
58 {
59 public:
65 
67  itkNewMacro(Self);
68 
70  itkTypeMacro(DisparityMapEstimationMethod, ProcessObject);
71 
73  typedef TFixedImage FixedImageType;
74  typedef typename FixedImageType::Pointer FixedImagePointerType;
75  typedef typename FixedImageType::PixelType FixedPixelType;
77 
79  typedef TMovingImage MovingImageType;
80  typedef typename MovingImageType::Pointer MovingImagePointerType;
81  typedef typename MovingImageType::PixelType MovingPixelType;
82 
84  typedef TPointSet PointSetType;
85  typedef typename PointSetType::Pointer PointSetPointerType;
86 
91 
95 
100 
104 
108 
112 
115 
117  itkSetObjectMacro(Optimizer, OptimizerType);
118  itkGetObjectMacro(Optimizer, OptimizerType);
120 
122  itkSetObjectMacro(Metric, MetricType);
123  itkGetObjectMacro(Metric, MetricType);
125 
127  itkSetObjectMacro(Transform, TransformType);
128  itkGetObjectMacro(Transform, TransformType);
130 
132  itkSetObjectMacro(Interpolator, InterpolatorType);
133  itkGetObjectMacro(Interpolator, InterpolatorType);
135 
137  itkSetMacro(WinSize, SizeType);
138  itkGetMacro(WinSize, SizeType);
140 
142  itkSetMacro(ExploSize, SizeType);
143  itkGetMacro(ExploSize, SizeType);
145 
147  itkSetMacro(InitialTransformParameters, ParametersType);
148  itkGetConstReferenceMacro(InitialTransformParameters, ParametersType);
150 
155  void SetPointSet(const TPointSet * pointset);
156 
161  const TPointSet * GetPointSet(void);
162 
167  void SetFixedImage(const TFixedImage * image);
168 
173  const TFixedImage * GetFixedImage(void);
174 
179  void SetMovingImage(const TMovingImage * image);
180 
185  const TMovingImage * GetMovingImage(void);
186 
187 protected:
192 
196  ~DisparityMapEstimationMethod() ITK_OVERRIDE;
197 
201  void PrintSelf(std::ostream& os, itk::Indent indent) const ITK_OVERRIDE;
202 
206  void GenerateData() ITK_OVERRIDE;
207 
208 private:
209  DisparityMapEstimationMethod(const Self &); //purposely not implemented
210  void operator =(const Self&); //purposely not implemented
215 
219  OptimizerPointerType m_Optimizer;
220 
224  TransformPointerType m_Transform;
225 
229  InterpolatorPointerType m_Interpolator;
230 
234  ParametersType m_InitialTransformParameters;
235 
239  SizeType m_ExploSize;
240 
244  SizeType m_WinSize;
245 };
246 } // end namespace otb
247 #ifndef OTB_MANUAL_INSTANTIATION
249 #endif
250 
251 #endif
itk::Size< Monteverdi_DIMENSION > SizeType
Definition: mvdTypes.h:146
itk::ImageToImageMetric< FixedImageType, MovingImageType > MetricType
TransformOutputType::ConstPointer TransformOutputConstPointerType
Base class for all process objects that output point set data.
This class performs an estimation of the local displacement modelled by a given transform between the...
itk::SmartPointer< const Self > ConstPointer
TransformOutputType::Pointer TransformOutputPointerType
itk::DataObjectDecorator< TransformType > TransformOutputType
itk::SingleValuedNonLinearOptimizer OptimizerType
MetricType::FixedImageRegionType FixedImageRegionType
FixedImageType::RegionType FixedImageRegionType
MetricType::TransformParametersType ParametersType
Class to overload method passed to virtual pure in ITK V4.
Definition: otbTransform.h:40