1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
/*=========================================================================
Program: Insight Segmentation & Registration Toolkit
Module: itkImageTransformTest.cxx
Language: C++
Date: $Date$
Version: $Revision$
Copyright (c) Insight Software Consortium. All rights reserved.
See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#if defined(_MSC_VER)
#pragma warning ( disable : 4786 )
#endif
#include "itkImage.h"
#include "itkOrientedImage.h"
#include "itkImageRegion.h"
#include "itkIndex.h"
#include "itkSize.h"
#include <iostream>
#include <fstream>
template <unsigned int Dimension>
void TestTransform()
{
typedef itk::Image<float,Dimension> ImageType;
typedef itk::OrientedImage<float,Dimension> OrientedImageType;
typename ImageType::Pointer image = ImageType::New();
typename OrientedImageType::Pointer orientedImage = OrientedImageType::New();
typename ImageType::PointType origin;
for (unsigned int i=0; i < Dimension; i++)
{
origin[i] = static_cast<double>(i*100);
}
image->SetOrigin(origin);
orientedImage->SetOrigin(origin);
typedef itk::ImageRegion< Dimension > RegionType;
typedef typename RegionType::IndexType IndexType;
typedef typename RegionType::SizeType SizeType;
typename ImageType::PointType point;
RegionType region;
SizeType size;
size.Fill(10);
region.SetSize( size );
IndexType index;
index.Fill(5);
std::cout << "TransformIndexToPhysicalPoint..." << std::endl;
orientedImage->TransformIndexToPhysicalPoint(index, point);
std::cout << " OrientedImage: " << index << " -> " << point << std::endl;
image->TransformIndexToPhysicalPoint(index, point);
std::cout << " Image: " << index << " -> " << point << std::endl;
std::cout << "TransformPhysicalPointToIndex..." << std::endl;
orientedImage->TransformPhysicalPointToIndex(point, index);
std::cout << " OrientedImage: " << point << " -> " << index << std::endl;
image->TransformPhysicalPointToIndex(point, index);
std::cout << " Image: " << point << " -> " << index << std::endl;
}
int itkImageTransformTest(int, char* [] )
{
TestTransform<8>();
TestTransform<3>();
TestTransform<2>();
TestTransform<1>();
return EXIT_SUCCESS;
}
|