15 #ifndef itkBasicImageComparisonFunctions_h
16 #define itkBasicImageComparisonFunctions_h
27 template <
class TInputImage1,
class TInputImage2>
28 ITK_EXPORT
bool IsSameRegionSize(
typename TInputImage1::Pointer image1,
typename TInputImage2::Pointer image2)
33 if (image1->GetLargestPossibleRegion().GetSize() == image2->GetLargestPossibleRegion().GetSize())
45 template <
class TInputImage1,
class TInputImage2>
46 ITK_EXPORT
bool IsSameVoxelSize(
typename TInputImage1::Pointer image1,
typename TInputImage2::Pointer image2)
51 typename TInputImage1::SpacingType samplingSpacing1 = image1->GetSpacing();
52 typename TInputImage1::SpacingType::ConstIterator samplingSpacingIterator1 = samplingSpacing1.Begin();
53 typename TInputImage2::SpacingType samplingSpacing2 = image2->GetSpacing();
54 typename TInputImage2::SpacingType::ConstIterator samplingSpacingIterator2 = samplingSpacing2.Begin();
57 const double maxRelativeError = 0.00005;
59 if (samplingSpacing1.Size() != samplingSpacing2.Size())
62 for (samplingSpacingIterator1 = samplingSpacing1.Begin(), samplingSpacingIterator2 = samplingSpacing2.Begin();
63 samplingSpacingIterator1 != samplingSpacing1.End();
64 ++samplingSpacingIterator1, ++samplingSpacingIterator2)
66 double spacing1 =
static_cast<double>(*samplingSpacingIterator1);
67 double spacing2 =
static_cast<double>(*samplingSpacingIterator2);
69 if (spacing1 != spacing2)
71 double relativeError = fabs(spacing1-spacing2)/
72 std::max(fabs(spacing1), fabs(spacing2));
74 if (relativeError > maxRelativeError)
Definition: niftkITKAffineResampleImage.cxx:74
ITK_EXPORT bool IsSameVoxelSize(typename TInputImage1::Pointer image1, typename TInputImage2::Pointer image2)
Definition: itkBasicImageComparisonFunctions.h:46
ITK_EXPORT bool IsSameRegionSize(typename TInputImage1::Pointer image1, typename TInputImage2::Pointer image2)
Definition: itkBasicImageComparisonFunctions.h:28