20 #define TestImageType(type, dim) \ 21 MITK_TEST_CONDITION(typeid(type) == typeid(TPixel) && dim == VDimension, \ 22 "Checking for correct type itk::Image<" #type "," #dim ">") 24 #define TestVectorImageType(type, dim) \ 25 MITK_TEST_CONDITION(typeid(type) == typeid(TPixel) && dim == VDimension && \ 26 typeid(itk::VariableLengthVector<type>) == typeid(typename ImageType::PixelType), \ 27 "Checking for correct type itk::VectorImage<" #type "," #dim ">") 32 typedef AccessByItkTest Self;
34 typedef itk::Image<int, 2> IntImage2D;
35 typedef itk::Image<int, 3> IntImage3D;
36 typedef itk::Image<float, 2> FloatImage2D;
37 typedef itk::Image<float, 3> FloatImage3D;
39 typedef itk::VectorImage<int, 3> IntVectorImage3D;
50 void testAccessByItk()
64 AccessByItk_n(mitkFloatImage2D, AccessItkImage, (Float2D, 2));
65 AccessByItk_n(mitkFloatImage3D, AccessItkImage, (Float3D, 2));
80 void testAccessFixedDimensionByItk()
107 void testAccessFixedPixelTypeByItk()
134 void testAccessFixedTypeByItk()
170 void testAccessTwoImagesFixedDimensionByItk()
178 template <
typename TPixel,
unsigned int VDimension>
179 void AccessItkImage(
const itk::Image<TPixel, VDimension> *,
180 EImageType param1 = Unknown,
208 template <
typename TPixel,
unsigned int VDimension>
209 void AccessItkImage(itk::VectorImage<TPixel, VDimension> *,
210 EImageType param1 = Unknown,
214 typedef itk::VectorImage<TPixel, VDimension>
ImageType;
240 template <
typename TPixel1,
unsigned int VDimension1,
typename TPixel2,
unsigned int VDimension2>
241 void AccessTwoItkImages(itk::Image<TPixel1, VDimension1> * ,
242 itk::Image<TPixel2, VDimension2> * )
244 if (!(
typeid(
int) ==
typeid(TPixel1) &&
typeid(
float) ==
typeid(TPixel2) && VDimension1 == 2 && VDimension2 == 2))
246 throw std::runtime_error(
"Image type mismatch");
250 template <
typename ImageType>
253 typename ImageType::Pointer itkImage = ImageType::New();
254 typename ImageType::IndexType start;
256 typename ImageType::SizeType size;
258 typename ImageType::RegionType region;
259 region.SetSize(size);
260 region.SetIndex(start);
261 itkImage->SetRegions(region);
262 itkImage->Allocate();
266 template <
typename ImageType>
269 typename ImageType::Pointer itkImage = ImageType::New();
270 typename ImageType::IndexType start;
272 typename ImageType::SizeType size;
274 typename ImageType::RegionType region;
275 region.SetSize(size);
276 region.SetIndex(start);
277 itkImage->SetRegions(region);
278 itkImage->SetVectorLength(vectorLength);
279 itkImage->Allocate();
288 AccessByItkTest accessTest;
291 accessTest.testAccessByItk();
294 accessTest.testAccessFixedDimensionByItk();
297 accessTest.testAccessFixedTypeByItk();
300 accessTest.testAccessFixedPixelTypeByItk();
303 accessTest.testAccessTwoImagesFixedDimensionByItk();
#define AccessFixedTypeByItk_n(mitkImage, itkImageTypeFunction, pixelTypeSeq, dimSeq, va_tuple)
Access a mitk-image with known type (pixel type and dimension) by an itk-image with one or more param...
#define MITK_TEST_FOR_EXCEPTION_END(EXCEPTIONCLASS)
#define AccessFixedDimensionByItk(mitkImage, itkImageTypeFunction, dimension)
Access a mitk-image with known dimension by an itk-image.
itk::Image< unsigned char, 3 > ImageType
#define AccessFixedDimensionByItk_n(mitkImage, itkImageTypeFunction, dimension, va_tuple)
Access a mitk-image with known dimension by an itk-image with one or more parameters.
#define AccessFixedPixelTypeByItk_n(mitkImage, itkImageTypeFunction, pixelTypeSeq, va_tuple)
Access a mitk-image with known pixeltype (but unknown dimension) by an itk-image with one or more par...
section GeneralTestsDeprecatedOldTestingStyle Deprecated macros All tests with MITK_TEST_BEGIN()
#define AccessByItk_n(mitkImage, itkImageTypeFunction, va_tuple)
Access a MITK image by an ITK image with one or more parameters.
#define TestImageType(type, dim)
int mitkAccessByItkTest(int, char *[])
Image::Pointer GrabItkImageMemory(itk::SmartPointer< ItkOutputImageType > &itkimage, mitk::Image *mitkImage=nullptr, const BaseGeometry *geometry=nullptr, bool update=true)
Grabs the memory of an itk::Image (with a specific type) and puts it into an mitk::Image.The memory is managed by the mitk::Image after calling this function. The itk::Image remains valid until the mitk::Image decides to free the memory.
#define MITK_TEST_OUTPUT(x)
Output some text.
#define AccessFixedTypeByItk(mitkImage, itkImageTypeFunction, pixelTypeSeq, dimSeq)
Access a mitk-image with known type (pixel type and dimension) by an itk-image.
#define AccessVectorPixelTypeByItk_n(mitkImage, itkImageTypeFunction, va_tuple)
Access a vector mitk::Image by an ITK vector image with one or more parameters.
#define TestVectorImageType(type, dim)
#define MITK_TEST_CONDITION(COND, MSG)
#define MITK_TEST_FOR_EXCEPTION_BEGIN(EXCEPTIONCLASS)
Begin block which should be checked for exceptions.
#define AccessByItk(mitkImage, itkImageTypeFunction)
Access a MITK image by an ITK image.
#define AccessFixedPixelTypeByItk(mitkImage, itkImageTypeFunction, pixelTypeSeq)
Access a mitk-image with known pixeltype (but unknown dimension) by an itk-image. ...
Exception class thrown in AccessByItk macros.
#define AccessVectorPixelTypeByItk(mitkImage, itkImageTypeFunction)
#define AccessTwoImagesFixedDimensionByItk(mitkImage1, mitkImage2, itkImageTypeFunction, dimension)
Access two mitk-images with known dimension by itk-images.