#include <mitkCompareImageSliceTestHelper.h>

Static Public Member Functions | |
| template<typename TPixel1 , unsigned int VImageDimension1, typename TPixel2 , unsigned int VImageDimension2> | |
| static void | ItkImageCompare (itk::Image< TPixel1, VImageDimension1 > *inputImage, itk::Image< TPixel2, VImageDimension2 > *outputImage) |
| template<typename TPixel , unsigned int VImageDimension> | |
| static void | ItkImageSwitch (itk::Image< TPixel, VImageDimension > *itkImage) |
| static bool | CompareSlice (mitk::Image *image, unsigned int sliceDimension, unsigned int sliceIndex, mitk::Image *slice) |
Definition at line 52 of file mitkCompareImageSliceTestHelper.h.
| static bool CompareImageSliceTestHelper::CompareSlice | ( | mitk::Image * | image, |
| unsigned int | sliceDimension, | ||
| unsigned int | sliceIndex, | ||
| mitk::Image * | slice | ||
| ) | [inline, static] |
Definition at line 118 of file mitkCompareImageSliceTestHelper.h.
References AccessFixedDimensionByItk, mitk::Image::GetDimension(), and ItkImageSwitch().
Referenced by mitkSegmentationInterpolationTestClass::CompareInterpolationsToDefinedReference(), mitkOverwriteSliceImageFilterTestClass::Test3D(), mitkExtractImageFilterTestClass::Test3D(), and mitkExtractImageFilterTestClass::Test4D().
{
if ( !image || ! slice ) return false;
switch (sliceDimension)
{
default:
case 2:
m_Dimension0 = 0;
m_Dimension1 = 1;
break;
case 1:
m_Dimension0 = 0;
m_Dimension1 = 2;
break;
case 0:
m_Dimension0 = 1;
m_Dimension1 = 2;
break;
}
if ( slice->GetDimension() != 2 || image->GetDimension() != 3 ||
slice->GetDimension(0) != image->GetDimension(m_Dimension0) ||
slice->GetDimension(1) != image->GetDimension(m_Dimension1) )
{
std::cerr << "Slice and image dimensions differ. Sorry, cannot work like this." << std::endl;
return false;
}
// this will do a long long if/else to find out both pixel typesA
m_SliceImage = slice;
m_SliceIndex = sliceIndex;
m_SliceDimension = sliceDimension;
m_ComparisonResult = false;
AccessFixedDimensionByItk( image, ItkImageSwitch, 3 );
return m_ComparisonResult;
}
| static void CompareImageSliceTestHelper::ItkImageCompare | ( | itk::Image< TPixel1, VImageDimension1 > * | inputImage, |
| itk::Image< TPixel2, VImageDimension2 > * | outputImage | ||
| ) | [inline, static] |
Definition at line 67 of file mitkCompareImageSliceTestHelper.h.
Referenced by ItkImageSwitch().
{
m_ComparisonResult = false;
typedef itk::Image<TPixel1, VImageDimension1> SliceImageType;
typedef itk::Image<TPixel2, VImageDimension2> VolumeImageType;
typedef itk::ImageSliceConstIteratorWithIndex< VolumeImageType > OutputSliceIteratorType;
typedef itk::ImageRegionConstIterator< SliceImageType > InputSliceIteratorType;
typename VolumeImageType::RegionType sliceInVolumeRegion;
sliceInVolumeRegion = outputImage->GetLargestPossibleRegion();
sliceInVolumeRegion.SetSize( m_SliceDimension, 1 ); // just one slice
sliceInVolumeRegion.SetIndex( m_SliceDimension, m_SliceIndex ); // exactly this slice, please
OutputSliceIteratorType outputIterator( outputImage, sliceInVolumeRegion );
outputIterator.SetFirstDirection(m_Dimension0);
outputIterator.SetSecondDirection(m_Dimension1);
InputSliceIteratorType inputIterator( inputImage, inputImage->GetLargestPossibleRegion() );
// iterate over output slice (and over input slice simultaneously)
outputIterator.GoToBegin();
inputIterator.GoToBegin();
while ( !outputIterator.IsAtEnd() )
{
while ( !outputIterator.IsAtEndOfSlice() )
{
while ( !outputIterator.IsAtEndOfLine() )
{
m_ComparisonResult = outputIterator.Get() == (TPixel2) inputIterator.Get();
if (!m_ComparisonResult) return; // return on first mismatch
++outputIterator;
++inputIterator;
}
outputIterator.NextLine();
}
outputIterator.NextSlice();
}
}
| static void CompareImageSliceTestHelper::ItkImageSwitch | ( | itk::Image< TPixel, VImageDimension > * | itkImage ) | [inline, static] |
Definition at line 110 of file mitkCompareImageSliceTestHelper.h.
References mitk::Image::GetPixelType(), mitk::PixelType::GetTypeId(), ItkImageCompare(), and myMITKOverwriteSliceImageFilterAccessAllTypesByItk.
Referenced by CompareSlice().
{
const std::type_info& typeId=*(m_SliceImage->GetPixelType().GetTypeId());
myMITKOverwriteSliceImageFilterAccessAllTypesByItk( m_SliceImage, ItkImageCompare, 2, itkImage );
}
1.7.2