17 #include "itkImageRegionIterator.h" 19 #include "itkBinaryFunctorImageFilter.h" 21 #include "mitkConvertToConcentrationFunctor.h" 30 double RelaxationTime = 1.2;
31 double RecoveryTime = 0.125;
32 double Relaxivity = 4.3;
37 mitk::ConvertToConcentrationFunctor<double,double,double> testFunctor;
38 testFunctor.initialize(RelaxationTime, Relaxivity, RecoveryTime);
57 typedef mitk::ConvertToConcentrationFunctor <double, double, double> ConversionFunctorType;
58 typedef itk::BinaryFunctorImageFilter<ImageType, ImageType, ImageType, ConversionFunctorType> FilterType;
61 ImageType::Pointer
image = ImageType::New();
62 ImageType::Pointer BaselineImage = ImageType::New();
63 ImageType::IndexType start;
67 ImageType::SizeType size;
71 ImageType::RegionType region;
72 region.SetSize( size );
73 region.SetIndex( start );
74 image->SetRegions( region );
76 BaselineImage->SetRegions( region );
77 BaselineImage->Allocate();
78 itk::ImageRegionIterator<ImageType> it = itk::ImageRegionIterator<ImageType>(
image,image->GetLargestPossibleRegion());
79 itk::ImageRegionIterator<ImageType> Bit = itk::ImageRegionIterator<ImageType>(BaselineImage,BaselineImage->GetLargestPossibleRegion());
81 while (!it.IsAtEnd()&& !Bit.IsAtEnd())
90 FilterType::Pointer ConversionFilter = FilterType::New();
91 ConversionFilter->SetFunctor(testFunctor);
92 ConversionFilter->SetInput1(image);
93 ConversionFilter->SetInput2(BaselineImage);
95 ConversionFilter->Update();
96 ImageType::Pointer convertedImage = ImageType::New();
97 convertedImage = ConversionFilter->GetOutput();
99 MITK_TEST_EQUAL(image->GetImageDimension(),convertedImage->GetImageDimension(),
"Check dimensions of result image");
105 MITK_TEST_EQUAL(0,convertedImage->GetPixel(idx),
"Check pixel of converted image index <0,0,0>");
109 MITK_TEST_EQUAL(0.0072,convertedImage->GetPixel(idx),
"Check pixel of converted image index <1,0,0>");
113 MITK_TEST_EQUAL(0.0147,convertedImage->GetPixel(idx),
"Check pixel of converted image index <0,1,0>");
117 MITK_TEST_EQUAL(0.0225,convertedImage->GetPixel(idx),
"Check pixel of converted image index <1,1,0>");
121 MITK_TEST_EQUAL(0.0307 ,convertedImage->GetPixel(idx),
"Check pixel of converted image index <0,0,1>");
125 MITK_TEST_EQUAL(0.0392,convertedImage->GetPixel(idx),
"Check pixel of converted image index <1,0,1>");
129 MITK_TEST_EQUAL(0.0480,convertedImage->GetPixel(idx),
"Check pixel of converted image index <0,1,1>");
133 MITK_TEST_EQUAL(0.0574,convertedImage->GetPixel(idx),
"Check pixel of converted image index <1,1,1>");
itk::Image< unsigned char, 3 > ImageType
#define MITK_TEST_CONDITION_REQUIRED(COND, MSG)
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
int ConvertToConcentrationTest(int argc, char *argv[])
mitk::Image::Pointer image
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.