Orfeo ToolBox  4.2
Orfeo ToolBox is not a black box
otbSinclairImageFilter.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 __otbSinclairImageFilter_h
19 #define __otbSinclairImageFilter_h
20 
23 #include <complex>
24 
25 namespace otb
26 {
27 
55 template <class TInputImageHH, class TInputImageHV,
56  class TInputImageVH, class TInputImageVV, class TOutputImage,
57  class TFunction = Functor::SinclairToCovarianceMatrixFunctor<
58  typename TInputImageHH::PixelType,
59  typename TInputImageHV::PixelType,
60  typename TInputImageVH::PixelType,
61  typename TInputImageVV::PixelType,
62  typename TOutputImage::PixelType> >
63 class ITK_EXPORT SinclairImageFilter : public otb::QuaternaryFunctorImageFilter<TInputImageHH,
64  TInputImageHV, TInputImageVH,
65  TInputImageVV, TOutputImage,
66  TFunction>
67 {
68 public:
69 
72  typedef otb::QuaternaryFunctorImageFilter<TInputImageHH, TInputImageHV,
73  TInputImageVH, TInputImageVV, TOutputImage, TFunction> Superclass;
76 
78  itkNewMacro(Self);
79 
82 
93  typedef typename OutputImageType::Pointer OutputImagePointer;
94  typedef typename OutputImageType::RegionType OutputImageRegionType;
96 
97  void SetInputHH(const TInputImageHH * image);
98  void SetInputHV(const TInputImageHV * image);
99  void SetInputVH(const TInputImageVH * image);
100  void SetInputVV(const TInputImageVV * image);
101 
102 
103 protected:
107  virtual ~SinclairImageFilter() {}
108 
109  virtual void GenerateOutputInformation();
110 
111  void PrintSelf(std::ostream& os, itk::Indent indent) const;
112 
113 private:
114 
115  SinclairImageFilter(const Self &); //purposely not implemented
116  void operator =(const Self&); //purposely not implemented
117 
118 };
119 
120 
121 } // end namespace otb
122 
123 #ifndef OTB_MANUAL_INSTANTIATION
125 #endif
126 
127 #endif
OutputImageType::Pointer OutputImagePointer
Superclass::Input1ImagePointer HHInputImagePointer
Superclass::Input2ImagePointer HVInputImagePointer
otb::QuaternaryFunctorImageFilter< TInputImageHH, TInputImageHV, TInputImageVH, TInputImageVV, TOutputImage, TFunction > Superclass
Implements pixel-wise generic operation of four images.
Superclass::Input4ImageType VVInputImageType
Computes the Covariance matrix for the sinclair one.
Superclass::Input3ImageType VHInputImageType
Superclass::Input3ImagePointer VHInputImagePointer
Superclass::OutputImageType OutputImageType
itk::SmartPointer< Self > Pointer
Superclass::Input4ImagePointer VVInputImagePointer
Superclass::FunctorType FunctorType
Superclass::Input2ImageType HVInputImageType
OutputImageType::RegionType OutputImageRegionType
Superclass::Input1ImageType HHInputImageType
itk::SmartPointer< const Self > ConstPointer