21 #ifndef otbImageListToImageListApplyFilter_hxx
22 #define otbImageListToImageListApplyFilter_hxx
31 template <
class TInputImageList,
class TOutputImageList,
class TFilter>
34 m_Filter = FilterType::New();
40 template <
class TInputImageList,
class TOutputImageList,
class TFilter>
44 InputImageListPointerType inputPtr = this->GetInput();
45 OutputImageListPointerType outputPtr = this->GetOutput();
48 if (outputPtr->Size() != inputPtr->Size())
52 typename InputImageListType::ConstIterator inputListIt = inputPtr->Begin();
53 while (inputListIt != inputPtr->End())
55 outputPtr->PushBack(OutputImageType::New());
62 typename InputImageListType::ConstIterator inputListIt = inputPtr->Begin();
63 typename OutputImageListType::Iterator outputListIt = outputPtr->Begin();
65 while (inputListIt != inputPtr->End() && outputListIt != outputPtr->End())
69 m_Filter->SetInput(inputListIt.Get());
70 m_Filter->UpdateOutputInformation();
71 outputListIt.Get()->CopyInformation(m_Filter->GetOutput(m_OutputIndex));
72 outputListIt.Get()->SetLargestPossibleRegion(m_Filter->GetOutput(m_OutputIndex)->GetLargestPossibleRegion());
79 template <
class TInputImageList,
class TOutputImageList,
class TFilter>
83 InputImageListPointerType inputPtr = this->GetInput();
84 OutputImageListPointerType outputPtr = this->GetOutput();
88 typename InputImageListType::ConstIterator inputListIt = inputPtr->Begin();
89 typename OutputImageListType::Iterator outputListIt = outputPtr->Begin();
92 while (inputListIt != inputPtr->End() && outputListIt != outputPtr->End())
94 m_Filter->SetInput(inputListIt.Get());
95 m_Filter->GetOutput(m_OutputIndex)->SetRequestedRegion(outputListIt.Get()->GetRequestedRegion());
96 m_Filter->PropagateRequestedRegion(outputListIt.Get());
102 template <
class TInputImageList,
class TOutputImageList,
class TFilter>
106 InputImageListPointerType inputPtr = this->GetInput();
107 OutputImageListPointerType outputPtr = this->GetOutput();
111 typename InputImageListType::ConstIterator inputListIt = inputPtr->Begin();
112 typename OutputImageListType::Iterator outputListIt = outputPtr->Begin();
113 unsigned int counter = 0;
115 while (inputListIt != inputPtr->End() && outputListIt != outputPtr->End())
117 m_Filter->SetInput(inputListIt.Get());
118 m_Filter->GetOutput(m_OutputIndex)->SetRequestedRegion(outputListIt.Get()->GetRequestedRegion());
120 outputPtr->SetNthElement(counter,
static_cast<OutputImageType*
>(m_Filter->GetOutput(m_OutputIndex)));
121 outputListIt.Get()->DisconnectPipeline();