Functions

mitkBoundingObjectCutterTest.cpp File Reference

#include <mitkImage.h>
#include <mitkImageDataItem.h>
#include <mitkImageCast.h>
#include <mitkBoundingObject.h>
#include <mitkCuboid.h>
#include <mitkBoundingObjectCutter.h>
#include <itkImage.h>
#include <fstream>
#include <itkSmartPointerForwardReference.txx>
#include <mitkDataNodeFactory.h>
#include <vtkImageData.h>
#include <mitkTestingMacros.h>

Go to the source code of this file.

Functions

int mitkBoundingObjectCutterTest (int, char *[])

Function Documentation

int mitkBoundingObjectCutterTest ( int  ,
char *  [] 
)

Definition at line 38 of file mitkBoundingObjectCutterTest.cpp.

References EXIT_SUCCESS, MITK_TEST_BEGIN, MITK_TEST_CONDITION_REQUIRED, MITK_TEST_END, MITK_TEST_OUTPUT, mitkBoundingObjectCutterTest(), mitk::BoundingObjectCutter::New(), mitk::Cuboid::New(), and mitk::Image::New().

Referenced by mitkBoundingObjectCutterTest().

{
  MITK_TEST_BEGIN(mitkBoundingObjectCutterTest);

  //Create Image out of nowhere
  mitk::Image::Pointer image;
  mitk::PixelType pt(typeid(int));
  unsigned int dim[]={100,100,20};

  MITK_TEST_OUTPUT(<< "Creating Image as imput for cutting: ");
  image=mitk::Image::New();
  image->Initialize(mitk::PixelType(typeid(int)), 3, dim);
  int *p = (int*)image->GetData();
  unsigned int i;
  unsigned int size = dim[0]*dim[1]*dim[2];
  for(i=0; i<size; ++i, ++p)
    *p= (signed int)i;
  std::cout<<"[PASSED]"<<std::endl;

  MITK_TEST_OUTPUT(<< "Testing mitk::BoundingObject::FitGeometry(image->GetGeometry()) with an mitk::Cuboid (sub-class of mitk::BoundingObject): ");
  mitk::Cuboid::Pointer cuboid = mitk::Cuboid::New();
  cuboid->FitGeometry(image->GetGeometry());
  std::cout<<"[PASSED]"<<std::endl;

  MITK_TEST_OUTPUT(<< "Testing whether corners of the cuboid are identical to corners of the image: ");
  int c;
  for(c=0; c<6; ++c)
  {
    MITK_TEST_OUTPUT(<< " Testing GetCornerPoint(" << c << "): ");
    MITK_TEST_CONDITION_REQUIRED( mitk::Equal(image->GetGeometry()->GetCornerPoint(c),cuboid->GetGeometry()->GetCornerPoint(c)), "");
  }

  MITK_TEST_OUTPUT(<< "Testing whether diagonal^2 of fitted mitk::Cuboid is identical to diagonal^2 of image: ");
  MITK_TEST_CONDITION_REQUIRED( mitk::Equal(image->GetGeometry()->GetDiagonalLength2(),cuboid->GetGeometry()->GetDiagonalLength2()), "");


  MITK_TEST_OUTPUT(<< "Testing mitk::BoundingObjectCutter: ");
  mitk::BoundingObjectCutter::Pointer boCutter = mitk::BoundingObjectCutter::New();
  boCutter->SetInput(image);
  boCutter->SetBoundingObject(cuboid);
  MITK_TEST_OUTPUT(<< " Testing mitk::BoundingObjectCutter::UpdateLargestPossibleRegion():: ");
  boCutter->UpdateLargestPossibleRegion();
  std::cout<<"[PASSED]"<<std::endl;

  mitk::Image::Pointer cuttedImage = boCutter->GetOutput();

  MITK_TEST_OUTPUT(<< " Testing whether origin of cutted image is identical to origin of original image: ");
  MITK_TEST_CONDITION_REQUIRED( mitk::Equal(image->GetGeometry()->GetOrigin(),cuttedImage->GetGeometry()->GetOrigin()), "");

  MITK_TEST_OUTPUT(<< " Testing whether spacing of cutted image is identical to spacing of original image: ");
  MITK_TEST_CONDITION_REQUIRED( mitk::Equal(image->GetGeometry()->GetSpacing(),cuttedImage->GetGeometry()->GetSpacing()), "");

  MITK_TEST_OUTPUT(<< " Testing whether center of cutted image is identical to center of original image: ");
  MITK_TEST_CONDITION_REQUIRED( mitk::Equal(image->GetGeometry()->GetCenter(),cuttedImage->GetGeometry()->GetCenter()), "");

  MITK_TEST_OUTPUT(<< " Testing whether diagonal^2 of cutted image is identical to diagonal^2 of original image: ");
  MITK_TEST_CONDITION_REQUIRED( mitk::Equal(image->GetGeometry()->GetDiagonalLength2(),cuttedImage->GetGeometry()->GetDiagonalLength2()), "");

  MITK_TEST_OUTPUT(<< " Testing whether corners of cutted image are identical to corners of original image: ");
  for(c=0; c<6; ++c)
  {
    MITK_TEST_OUTPUT(<< "  Testing GetCornerPoint(" << c << "): ");
    MITK_TEST_CONDITION_REQUIRED( mitk::Equal(image->GetGeometry()->GetCornerPoint(c),cuttedImage->GetGeometry()->GetCornerPoint(c)), "");
  }

  MITK_TEST_OUTPUT(<< " Testing whether pixel data of cutted image are identical to pixel data of original image: ");
  p = (int*)image->GetData();
  int *pCutted = (int*)cuttedImage->GetData();
  for(i=0; i<size; ++i, ++p, ++pCutted)
  {
    if(*p!=*pCutted)
      break;
  }
  MITK_TEST_CONDITION_REQUIRED(i==size, "");

  MITK_TEST_OUTPUT(<< " Testing whether geometry of cutted image has ImageGeometry==true: ");
  MITK_TEST_CONDITION_REQUIRED(cuttedImage->GetGeometry()->GetImageGeometry(), "");

  MITK_TEST_END();

  return EXIT_SUCCESS;
}
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines