22 #ifndef otbStreamingInnerProductVectorImageFilter_h
23 #define otbStreamingInnerProductVectorImageFilter_h
27 #include "itkSimpleDataObjectDecorator.h"
28 #include "itkImageRegionSplitter.h"
29 #include "itkVariableSizeMatrix.h"
30 #include "itkVariableLengthVector.h"
31 #include "vnl/vnl_matrix.h"
54 template <
class TInputImage>
76 itkStaticConstMacro(InputImageDimension,
unsigned int, TInputImage::ImageDimension);
79 itkStaticConstMacro(ImageDimension,
unsigned int, TInputImage::ImageDimension);
96 return this->GetInnerProductOutput()->Get();
98 MatrixObjectType* GetInnerProductOutput();
99 const MatrixObjectType* GetInnerProductOutput()
const;
104 DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
override;
105 using Superclass::MakeOutput;
110 void AllocateOutputs()
override;
111 void GenerateOutputInformation()
override;
112 void Synthetize(
void)
override;
113 void Reset(
void)
override;
117 itkSetMacro(CenterData,
bool);
118 itkGetMacro(CenterData,
bool);
119 itkBooleanMacro(CenterData);
127 void PrintSelf(std::ostream& os, itk::Indent indent)
const override;
129 void ThreadedGenerateData(
const RegionType& outputRegionForThread, itk::ThreadIdType threadId)
override;
133 void operator=(
const Self&) =
delete;
164 template <
class TInputImage>
187 using Superclass::SetInput;
190 this->GetFilter()->SetInput(input);
194 return this->GetFilter()->GetInput();
200 return this->GetFilter()->GetInnerProductOutput()->Get();
204 return this->GetFilter()->GetInnerProductOutput();
208 return this->GetFilter()->GetInnerProductOutput();
215 this->GetFilter()->SetCenterData(centerdata);
229 void operator=(
const Self&) =
delete;
234 #ifndef OTB_MANUAL_INSTANTIATION