18 #ifndef __otbImageSimulationMethod_txx
19 #define __otbImageSimulationMethod_txx
26 template <
class TInputVectorData,
class TSpatialisation,
class TSimulationStep1,
class TSimulationStep2,
class TFTM,
class TOutputImage>
31 m_Spatialisation = SpatialisationType::New();
32 m_LabelMapToSimulatedImageFilter = LabelMapToSimulatedImageFilterType::New();
33 m_LabelMapToLabelImageFilter = LabelMapToLabelImageFilterType::New();
44 m_ImageList = ImageListType::New();
45 m_ImageListToVectorImageFilter = ImageListToVectorImageFilterType::New();
48 m_NumberOfComponentsPerPixel = 3;
50 m_SatRSRFilename =
"";
103 template <
class TInputVectorData,
class TSpatialisation,
class TSimulationStep1,
class TSimulationStep2,
class TFTM,
class TOutputImage>
108 return m_ImageListToVectorImageFilter->GetOutput();
112 template <
class TInputVectorData,
class TSpatialisation,
class TSimulationStep1,
class TSimulationStep2,
class TFTM,
class TOutputImage>
117 return m_LabelMapToLabelImageFilter->GetOutput();
120 template <
class TInputVectorData,
class TSpatialisation,
class TSimulationStep1,
class TSimulationStep2,
class TFTM,
class TOutputImage>
125 Superclass::GenerateOutputInformation();
130 m_Spatialisation->UpdateOutputInformation();
132 outputReflImage->SetNumberOfComponentsPerPixel(m_NumberOfComponentsPerPixel);
133 outputReflImage->SetLargestPossibleRegion(m_Spatialisation->GetOutput()->GetLargestPossibleRegion());
134 outputReflImage->SetOrigin(m_Spatialisation->GetOutput()->GetOrigin());
138 outputLabelImage->
SetOrigin(m_Spatialisation->GetOutput()->GetOrigin());
141 template <
class TInputVectorData,
class TSpatialisation,
class TSimulationStep1,
class TSimulationStep2,
class TFTM,
class TOutputImage>
151 m_LabelMapToSimulatedImageFilter->SetInput(m_Spatialisation->GetOutput());
152 m_LabelMapToSimulatedImageFilter->SetNumberOfComponentsPerPixel(m_NumberOfComponentsPerPixel);
153 m_LabelMapToSimulatedImageFilter->SetSatRSRFilename(m_SatRSRFilename);
154 m_LabelMapToSimulatedImageFilter->SetNumberOfThreads(1);
155 m_LabelMapToSimulatedImageFilter->SetPathRoot(m_PathRoot);
156 m_LabelMapToSimulatedImageFilter->SetMean(m_Mean);
157 m_LabelMapToSimulatedImageFilter->SetVariance(m_Variance);
159 m_LabelMapToLabelImageFilter->SetInput(m_Spatialisation->GetOutput());
161 for (
unsigned int i = 0; i < m_NumberOfComponentsPerPixel; ++i)
168 multiToMonoChannelFilter->SetInput(m_LabelMapToSimulatedImageFilter->GetOutput());
169 multiToMonoChannelFilter->SetChannel(i + 1);
170 multiToMonoChannelFilter->SetExtractionRegion(
171 m_LabelMapToSimulatedImageFilter->GetOutput()->GetLargestPossibleRegion());
174 interpolator->SetInputImage(multiToMonoChannelFilter->GetOutput());
175 interpolator->SetRadius(m_Radius);
176 interpolator->Initialize();
178 multiToMonoChannelFilter->UpdateOutputInformation();
180 FTMFilter->SetInterpolator(interpolator);
182 FTMFilter->SetSize(multiToMonoChannelFilter->GetOutput()->GetLargestPossibleRegion().GetSize());
183 FTMFilter->SetOutputSpacing(multiToMonoChannelFilter->GetOutput()->GetSpacing());
184 FTMFilter->SetOutputOrigin(multiToMonoChannelFilter->GetOutput()->GetOrigin());
185 FTMFilter->SetInput(multiToMonoChannelFilter->GetOutput());
188 m_ImageList->PushBack(FTMFilter->GetOutput());
190 m_ImageListToVectorImageFilter->SetInput(m_ImageList);
260 template <
class TInputVectorData,
class TSpatialisation,
class TSimulationStep1,
class TSimulationStep2,
class TFTM,
class TOutputImage>
265 Superclass::PrintSelf(os, indent);