18 #include <itkComposeImageFilter.h> 19 #include <itkEventObject.h> 20 #include <itkImageDuplicator.h> 21 #include <itkImageIterator.h> 26 CPPUNIT_TEST_SUITE(mitkLevelWindowManagerCppUnitTestSuite);
28 CPPUNIT_TEST_SUITE_END();
39 typedef itk::ImageRegionIterator<ImageType> ImageIteratorType;
40 typedef itk::ImageDuplicator<ImageType> DuplicatorType;
41 typedef itk::ComposeImageFilter<ImageType> CompositeFilterType;
44 ImageType::Pointer imageComponent1 = itk::Image<double, 3>::New();
45 ImageType::IndexType start;
47 ImageType::SizeType size;
49 ImageType::RegionType region;
51 region.SetIndex(start);
52 imageComponent1->SetRegions(region);
53 imageComponent1->Allocate();
55 DuplicatorType::Pointer duplicator = DuplicatorType::New();
56 duplicator->SetInputImage(imageComponent1);
58 ImageType::Pointer imageComponent2 = duplicator->GetOutput();
61 ImageIteratorType iterator1(imageComponent1, imageComponent1->GetLargestPossibleRegion());
62 iterator1.GoToBegin();
64 while (!iterator1.IsAtEnd())
66 iterator1.Set((
double)i);
71 ImageIteratorType iterator2(imageComponent2, imageComponent2->GetLargestPossibleRegion());
72 iterator2.GoToBegin();
74 while (!iterator2.IsAtEnd())
76 iterator2.Set((
double)i);
82 CompositeFilterType::Pointer compositeFilter = CompositeFilterType::New();
83 compositeFilter->SetInput(0, imageComponent1);
84 compositeFilter->SetInput(1, imageComponent2);
85 compositeFilter->Update();
86 itk::VectorImage<double, 3>::Pointer multiComponentImage = compositeFilter->GetOutput();
102 manager->SetDataStorage(ds);
104 catch (std::exception &e)
110 node->SetData(image);
113 node->SetBoolProperty(
"selected",
true);
114 node->SetIntProperty(
"Image.Displayed Component", component);
117 node->GetLevelWindow(levelWindow);
121 void TestMultiComponentRescaling()
124 mitk::LevelWindow imageComponent1LevelWindow = getLevelWindowForImage(m_mitkImageComponent1, 0);
125 mitk::LevelWindow imageComponent2LevelWindow = getLevelWindowForImage(m_mitkImageComponent2, 0);
127 mitk::LevelWindow multiComponentImageLevelWindow = getLevelWindowForImage(m_mitkMultiComponentImage, 1);
131 CPPUNIT_ASSERT_EQUAL_MESSAGE(
"default lower bounds equal",
135 CPPUNIT_ASSERT_EQUAL_MESSAGE(
"default upper bounds equal",
139 CPPUNIT_ASSERT_EQUAL_MESSAGE(
140 "range equal", imageComponent2LevelWindow.
GetRange(), multiComponentImageLevelWindow.
GetRange());
MITK_TEST_SUITE_REGISTRATION(mitkImageToItk)
itk::Image< unsigned char, 3 > ImageType
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
ScalarType GetDefaultUpperBound() const
ScalarType GetDefaultLowerBound() const
The LevelWindow class Class to store level/window values.
ScalarType GetRange() const
returns the size of the grey value range
Image class for storing images.
Test fixture for parameterized tests.
mitk::Image::Pointer image
void CastToMitkImage(const itk::SmartPointer< ItkOutputImageType > &itkimage, itk::SmartPointer< mitk::Image > &mitkoutputimage)
Cast an itk::Image (with a specific type) to an mitk::Image.