21 #ifndef otbPerBandVectorImageFilter_hxx 22 #define otbPerBandVectorImageFilter_hxx 31 template <
class TInputImage,
class TOutputImage,
class TFilter>
34 m_Filter = FilterType::New();
39 template <
class TInputImage,
class TOutputImage,
class TFilter>
45 typename InputImageType::Pointer dummyInputImage = InputImageType::New();
46 dummyInputImage->CopyInformation(this->GetInput());
47 dummyInputImage->SetNumberOfComponentsPerPixel(1);
48 m_Filter->SetInput(dummyInputImage);
49 m_Filter->UpdateOutputInformation();
50 this->GetOutput()->CopyInformation(m_Filter->GetOutput(m_OutputIndex));
51 this->GetOutput()->SetNumberOfComponentsPerPixel(this->GetInput()->GetNumberOfComponentsPerPixel());
55 template <
class TInputImage,
class TOutputImage,
class TFilter>
58 InputVectorImageType* inputPtr =
const_cast<InputVectorImageType*
>(this->GetInput());
59 typename InputImageType::Pointer dummyInputImage = InputImageType::New();
60 dummyInputImage->CopyInformation(this->GetInput());
61 dummyInputImage->SetNumberOfComponentsPerPixel(1);
62 m_Filter->SetInput(dummyInputImage);
63 m_Filter->GetOutput(m_OutputIndex)->SetRequestedRegion(this->GetOutput()->GetRequestedRegion());
64 m_Filter->PropagateRequestedRegion(this->GetOutput());
65 inputPtr->SetRequestedRegion(m_Filter->GetInput()->GetRequestedRegion());
70 template <
class TInputImage,
class TOutputImage,
class TFilter>
73 InputVectorImageType* inputPtr =
const_cast<InputVectorImageType*
>(this->GetInput());
74 OutputVectorImagePointerType outputPtr = this->GetOutput();
75 DecompositionFilterPointerType decomposer = DecompositionFilterType::New();
76 ProcessingFilterPointerType processor = ProcessingFilterType::New();
77 RecompositionFilterPointerType recomposer = RecompositionFilterType::New();
80 inputPtr->UpdateOutputData();
82 decomposer->SetInput(this->GetInput());
83 processor->SetInput(decomposer->GetOutput());
84 processor->SetFilter(m_Filter);
85 processor->SetOutputIndex(m_OutputIndex);
86 recomposer->SetInput(processor->GetOutput());
87 recomposer->GetOutput()->SetRequestedRegion(this->GetOutput()->GetRequestedRegion());
89 recomposer->GraftOutput(this->GetOutput());
91 this->GraftOutput(recomposer->GetOutput());
void GenerateData(void) override
void GenerateOutputInformation(void) override
The "otb" namespace contains all Orfeo Toolbox (OTB) classes.
void GenerateInputRequestedRegion(void) override
PerBandVectorImageFilter()