21 #ifndef otbMultiChannelsPolarimetricSynthesisFilter_h
22 #define otbMultiChannelsPolarimetricSynthesisFilter_h
24 #include "itkInPlaceImageFilter.h"
46 template <
class TInputImage,
class TOutputImage,
47 class TFunction = Functor::PolarimetricSynthesisFunctor<
typename TInputImage::InternalPixelType,
typename TInputImage::InternalPixelType,
48 typename TInputImage::InternalPixelType,
typename TInputImage::InternalPixelType,
49 typename TOutputImage::PixelType>>
55 typedef itk::InPlaceImageFilter<TInputImage, TOutputImage>
Superclass;
102 if (m_Functor != functor)
113 this->GetFunctor().SetEi(ei);
121 this->GetFunctor().SetEr(er);
127 itkSetMacro(PsiI,
double);
128 itkGetMacro(PsiI,
double);
131 itkSetMacro(KhiI,
double);
132 itkGetMacro(KhiI,
double);
135 itkSetMacro(PsiR,
double);
136 itkGetMacro(PsiR,
double);
139 itkSetMacro(KhiR,
double);
140 itkGetMacro(KhiR,
double);
143 itkSetMacro(EmissionH,
bool);
144 itkGetMacro(EmissionH,
bool);
147 itkSetMacro(EmissionV,
bool);
148 itkGetMacro(EmissionV,
bool);
151 itkSetMacro(Mode,
int);
152 itkGetMacro(Mode,
int);
155 itkSetMacro(Gain,
double);
156 itkGetMacro(Gain,
double);
162 void ForceCrossPolar();
183 void GenerateOutputInformation()
override;
185 void BeforeThreadedGenerateData()
override;
197 void ThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
200 void ComputeElectromagneticFields();
203 void VerifyAndForceInputs();
205 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
246 #ifndef OTB_MANUAL_INSTANTIATION