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 DynamicThreadedGenerateData(
const OutputImageRegionType& outputRegionForThread)
override;
200 void ComputeElectromagneticFields();
203 void VerifyAndForceInputs();
205 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
246 #ifndef OTB_MANUAL_INSTANTIATION
This class computes the polarimetric synthesis from two to four radar images, depending on the polari...
itk::FixedArray< int, 4 > IndexArrayType
void SetFunctor(const FunctorType &functor)
~MultiChannelsPolarimetricSynthesisFilter() override
void SetEr(ComplexArrayType er)
itk::FixedArray< ComplexType, 2 > ComplexArrayType
OutputImageType::RegionType OutputImageRegionType
itk::SmartPointer< const Self > ConstPointer
const FunctorType & GetFunctor() const
TInputImage InputImageType
std::complex< double > InputPixelType
void SetEi(ComplexArrayType ei)
itk::InPlaceImageFilter< TInputImage, TOutputImage > Superclass
OutputImageType::Pointer OutputImagePointer
TOutputImage OutputImageType
MultiChannelsPolarimetricSynthesisFilter(const Self &)=delete
std::complex< double > ComplexType
InputImageType::RegionType InputImageRegionType
MultiChannelsPolarimetricSynthesisFilter Self
OutputImageType::PixelType OutputImagePixelType
InputImageType::ConstPointer InputImagePointer
itk::SmartPointer< Self > Pointer
PolarimetricData::Pointer m_ArchitectureType
InputImageType::PixelType InputImagePixelType
FunctorType & GetFunctor()
itk::SmartPointer< Self > Pointer
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.