108bool CreateRandomDistanceImage(
unsigned int dimX,
unsigned int dimY, ItkImageType_2D::Pointer& itkImage, mitk::Image::Pointer& mitkImage)
112 ItkImageType_2D::IndexType start;
115 ItkImageType_2D::SizeType size;
118 ItkImageType_2D::RegionType region;
119 region.SetSize(size);
120 region.SetIndex( start);
121 ItkImageType_2D::SpacingType spacing;
125 itkImage->SetRegions( region );
126 itkImage->SetSpacing ( spacing );
127 itkImage->Allocate();
131 imageIterator.GoToBegin();
132 itk::Statistics::MersenneTwisterRandomVariateGenerator::Pointer randomGenerator = itk::Statistics::MersenneTwisterRandomVariateGenerator::New();
135 while (!imageIterator.IsAtEnd())
137 ToFScalarType pixelValue = randomGenerator->GetUniformVariate(0.0,1000.0);
138 imageIterator.Set(pixelValue);
142 mitk::CastToMitkImage(itkImage,mitkImage);
148bool CreateRandomDistanceImageStack(
unsigned int dimX,
unsigned int dimY,
unsigned int nbSlices, ItkImageType_3D::Pointer& itkImage, mitk::Image::Pointer& mitkImage)
151 ItkImageType_3D::IndexType start;
155 ItkImageType_3D::SizeType size;
159 ItkImageType_3D::RegionType region;
160 region.SetSize(size);
161 region.SetIndex( start);
162 ItkImageType_3D::SpacingType spacing;
167 itkImage->SetRegions( region );
168 itkImage->SetSpacing ( spacing );
169 itkImage->Allocate();
174 imageIterator.GoToBegin();
175 itk::Statistics::MersenneTwisterRandomVariateGenerator::Pointer randomGenerator = itk::Statistics::MersenneTwisterRandomVariateGenerator::New();
178 while (!imageIterator.IsAtEnd())
180 ToFScalarType pixelValue = randomGenerator->GetUniformVariate(0.0,1000.0);
181 imageIterator.Set(pixelValue);
186 mitk::CastToMitkImage(itkImage,mitkImage);
194 MITK_TEST_BEGIN(
"ToFCompositeFilter");
197 mitk::ToFCompositeFilter::Pointer compositeFilter = mitk::ToFCompositeFilter::New();
200 ThresholdFilterType::Pointer thresholdFilter = ThresholdFilterType::New();
201 int threshold_min = 5;
202 int threshold_max = 100;
203 thresholdFilter->SetOutsideValue(0.0);
204 thresholdFilter->SetLower(threshold_min);
205 thresholdFilter->SetUpper(threshold_max);
206 compositeFilter->SetThresholdFilterParameter(threshold_min, threshold_max);
209 MedianFilterType::Pointer medianFilter = MedianFilterType::New();
212 BilateralImageFilterType::Pointer bilateralFilter = BilateralImageFilterType::New();
213 float domainSigma = 4;
214 float rangeSigma = 50;
215 float kernelRadius = 3;
216 bilateralFilter->SetDomainSigma(domainSigma);
217 bilateralFilter->SetRangeSigma(rangeSigma);
218 bilateralFilter->SetRadius(kernelRadius);
219 compositeFilter->SetBilateralFilterParameter(domainSigma,rangeSigma,kernelRadius);
222 ItkImageType_2D::Pointer itkInputImage = ItkImageType_2D::New();
223 mitk::Image::Pointer mitkInputImage = mitk::Image::New();
225 ItkImageType_2D::Pointer itkOutputImage;
226 compositeFilter->SetInput(mitkInputImage);
227 mitk::Image::Pointer mitkOutputImage = compositeFilter->GetOutput();
235 thresholdFilter->SetInput(itkInputImage);
236 itkOutputImage = thresholdFilter->GetOutput();
237 itkOutputImage->Update();
240 compositeFilter->SetApplyThresholdFilter(
true);
241 compositeFilter->SetApplyMedianFilter(
false);
242 compositeFilter->SetApplyTemporalMedianFilter(
false);
243 compositeFilter->SetApplyBilateralFilter(
false);
244 mitkOutputImage->Update();
247 mitk::Image::Pointer itkOutputImageConverted;
248 mitk::CastToMitkImage(itkOutputImage,itkOutputImageConverted);
250 MITK_TEST_CONDITION_REQUIRED(
mitk::Equal(*itkOutputImageConverted, *mitkOutputImage, mitk::eps,
true),
251 "Test threshold filter in pipeline");
258 medianFilter->SetInput(thresholdFilter->GetOutput());
259 itkOutputImage = medianFilter->GetOutput();
260 itkOutputImage->Update();
263 compositeFilter->SetApplyMedianFilter(
true);
264 mitkOutputImage->Update();
267 mitk::CastToMitkImage(itkOutputImage,itkOutputImageConverted);
269 MITK_TEST_CONDITION_REQUIRED(
mitk::Equal(*itkOutputImageConverted, *mitkOutputImage, mitk::eps,
true),
270 "Test threshold and median filter in pipeline");
278 bilateralFilter->SetInput(medianFilter->GetOutput());
279 itkOutputImage = bilateralFilter->GetOutput();
280 itkOutputImage->Update();
283 compositeFilter->SetApplyBilateralFilter(
true);
284 mitkOutputImage->Update();
287 mitk::CastToMitkImage(itkOutputImage,itkOutputImageConverted);
289 MITK_TEST_CONDITION_REQUIRED(
mitk::Equal(*itkOutputImageConverted, *mitkOutputImage, mitk::eps,
true),
290 "Test threshold filter, bilateral filter and temporal median filter in pipeline");
324 mitk::Image::Pointer newImage = mitk::Image::New();
325 mitk::Image::Pointer returnedImage;
326 compositeFilter->SetInput(newImage);
327 returnedImage = compositeFilter->GetInput();
328 MITK_TEST_CONDITION_REQUIRED(newImage == returnedImage,
"Get/Set empty image");
330 compositeFilter->SetApplyTemporalMedianFilter(
false);
331 MITK_TEST_CONDITION_REQUIRED(compositeFilter->GetApplyTemporalMedianFilter()==
false,
"Get/Set ApplyTemporalMedianFilter");
333 compositeFilter->SetApplyMedianFilter(
false);
334 MITK_TEST_CONDITION_REQUIRED(compositeFilter->GetApplyMedianFilter()==
false,
"Get/Set ApplyMedianFilter");
336 compositeFilter->SetApplyThresholdFilter(
false);
337 MITK_TEST_CONDITION_REQUIRED(compositeFilter->GetApplyThresholdFilter()==
false,
"Get/Set ApplyThresholdFilter");
339 compositeFilter->SetApplyBilateralFilter(
false);
340 MITK_TEST_CONDITION_REQUIRED(compositeFilter->GetApplyBilateralFilter()==
false,
"Get/Set ApplyBilateralFilter");