Orfeo Toolbox  3.16
otbSarBrightnessFunction.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: ORFEO Toolbox
4  Language: C++
5  Date: $Date$
6  Version: $Revision$
7 
8 
9  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
10  See OTBCopyright.txt for details.
11 
12 
13  This software is distributed WITHOUT ANY WARRANTY; without even
14  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15  PURPOSE. See the above copyright notices for more information.
16 
17 =========================================================================*/
18 #ifndef __otbSarBrightnessFunction_h
19 #define __otbSarBrightnessFunction_h
20 
21 #include "itkNumericTraits.h"
22 #include "itkImageFunction.h"
25 
26 
27 namespace otb
28 {
29 
45 template <class TInputImage, class TCoordRep = float>
47  public itk::ImageFunction<TInputImage, typename itk::NumericTraits<typename TInputImage::PixelType>::AbsType,
48  TCoordRep>
49 {
50 public:
54  TCoordRep> Superclass;
57 
60 
62  itkNewMacro(Self);
63 
65  typedef TInputImage InputImageType;
66  typedef typename InputImageType::PixelType InputPixelType;
68  typedef typename Superclass::IndexType IndexType;
70  typedef typename Superclass::PointType PointType;
71 
72  itkStaticConstMacro(ImageDimension, unsigned int, InputImageType::ImageDimension);
73 
74 
76  typedef double RealType;
79 
83 
85  virtual OutputType EvaluateAtIndex(const IndexType& index) const;
86 
88  virtual OutputType Evaluate(const PointType& point) const
89  {
90  IndexType index;
91  this->ConvertPointToNearestIndex(point, index);
92  return this->EvaluateAtIndex(index);
93  }
94  virtual OutputType EvaluateAtContinuousIndex(
95  const ContinuousIndexType& cindex) const
96  {
97  IndexType index;
98  this->ConvertContinuousIndexToNearestIndex(cindex, index);
99  return this->EvaluateAtIndex(index);
100  }
101 
106  virtual void SetInputImage( const InputImageType * ptr );
107 
108 
110  itkSetMacro(Scale, FunctorRealType);
111  itkGetMacro(Scale, FunctorRealType);
112 
114  itkSetObjectMacro(Noise, ParametricFunctionType);
115  itkGetConstObjectMacro(Noise, ParametricFunctionType);
116  itkGetObjectMacro(Noise, ParametricFunctionType);
117 
119  itkSetMacro(EnableNoise, bool);
120  itkGetMacro(EnableNoise, bool);
121 
123  itkSetObjectMacro(AntennaPatternNewGain, ParametricFunctionType);
124  itkGetConstObjectMacro(AntennaPatternNewGain, ParametricFunctionType);
125  itkGetObjectMacro(AntennaPatternNewGain, ParametricFunctionType);
126 
128  itkSetObjectMacro(AntennaPatternOldGain, ParametricFunctionType);
129  itkGetObjectMacro(AntennaPatternOldGain, ParametricFunctionType);
130  itkGetConstObjectMacro(AntennaPatternOldGain, ParametricFunctionType);
131 
133  itkSetObjectMacro(RangeSpreadLoss, ParametricFunctionType);
134  itkGetConstObjectMacro(RangeSpreadLoss, ParametricFunctionType);
135  itkGetObjectMacro(RangeSpreadLoss, ParametricFunctionType);
136 
137 
138 protected:
141  void PrintSelf(std::ostream& os, itk::Indent indent) const;
142 
143 private:
144  SarBrightnessFunction(const Self &); //purposely not implemented
145  void operator =(const Self&); //purposely not implemented
146 
153 };
154 
155 } // end namespace otb
156 
157 #ifndef OTB_MANUAL_INSTANTIATION
159 #endif
160 
161 #endif

Generated at Sun May 19 2013 00:47:18 for Orfeo Toolbox with doxygen 1.8.3.1