diff --git a/Examples/Filtering/DigitallyReconstructedRadiograph1.cxx b/Examples/Filtering/DigitallyReconstructedRadiograph1.cxx index 5950b151b17..b4edc76dab8 100644 --- a/Examples/Filtering/DigitallyReconstructedRadiograph1.cxx +++ b/Examples/Filtering/DigitallyReconstructedRadiograph1.cxx @@ -390,8 +390,8 @@ int main( int argc, char *argv[] ) #ifdef WRITE_CUBE_IMAGE_TO_FILE - char *filename = "cube.gipl"; - typedef itk::ImageFileWriter< OutputImageType > WriterType; + const char *filename = "cube.gipl"; + typedef itk::ImageFileWriter< InputImageType > WriterType; WriterType::Pointer writer = WriterType::New(); writer->SetFileName( filename ); diff --git a/Modules/Core/ImageFunction/include/itkRayCastInterpolateImageFunction.hxx b/Modules/Core/ImageFunction/include/itkRayCastInterpolateImageFunction.hxx index 08f1542b98a..8e980cb73de 100644 --- a/Modules/Core/ImageFunction/include/itkRayCastInterpolateImageFunction.hxx +++ b/Modules/Core/ImageFunction/include/itkRayCastInterpolateImageFunction.hxx @@ -677,14 +677,9 @@ RayCastHelper< TInputImage, TCoordRep > m_VoxelDimensionInY = spacing[1]; m_VoxelDimensionInZ = spacing[2]; - m_CurrentRayPositionInMM[0] = - rayPosition[0] + 0.5 * m_VoxelDimensionInX * (double)m_NumberOfVoxelsInX; - - m_CurrentRayPositionInMM[1] = - rayPosition[1] + 0.5 * m_VoxelDimensionInY * (double)m_NumberOfVoxelsInY; - - m_CurrentRayPositionInMM[2] = - rayPosition[2] + 0.5 * m_VoxelDimensionInZ * (double)m_NumberOfVoxelsInZ; + m_CurrentRayPositionInMM[0] = rayPosition[0]; + m_CurrentRayPositionInMM[1] = rayPosition[1]; + m_CurrentRayPositionInMM[2] = rayPosition[2]; m_RayDirectionInMM[0] = rayDirection[0]; m_RayDirectionInMM[1] = rayDirection[1]; @@ -1451,7 +1446,7 @@ RayCastInterpolateImageFunction< TInputImage, TCoordRep > ray.ZeroState(); ray.Initialise(); - ray.SetRay(point, direction); + ray.SetRay(point - this->m_Image->GetOrigin().GetVectorFromOrigin(), direction); ray.IntegrateAboveThreshold(integral, m_Threshold); return ( static_cast< OutputType >( integral ) ); diff --git a/Modules/Core/ImageFunction/test/itkRayCastInterpolateImageFunctionTest.cxx b/Modules/Core/ImageFunction/test/itkRayCastInterpolateImageFunctionTest.cxx index a8a1cf0e2db..739768da6ba 100644 --- a/Modules/Core/ImageFunction/test/itkRayCastInterpolateImageFunctionTest.cxx +++ b/Modules/Core/ImageFunction/test/itkRayCastInterpolateImageFunctionTest.cxx @@ -22,6 +22,7 @@ #include "itkRayCastInterpolateImageFunction.h" #include "itkTranslationTransform.h" #include "itkLinearInterpolateImageFunction.h" +#include "itkTestingMacros.h" int @@ -121,13 +122,15 @@ itkRayCastInterpolateImageFunctionTest( /* Evaluate the function */ double integral; PointType query; - query[0] = 15; - query[1] = 15; - query[2] = 15; + query[0] = 15.; + query[1] = 15.; + query[2] = -2.; integral = interp->Evaluate(query); std::cout << "Integral = " << integral << std::endl; + TEST_EXPECT_TRUE( itk::Math::FloatAlmostEqual( integral, 1247. ) ); + return EXIT_SUCCESS; } diff --git a/Testing/Data/Baseline/Filtering/DigitallyReconstructedRadiograph1.png.md5 b/Testing/Data/Baseline/Filtering/DigitallyReconstructedRadiograph1.png.md5 index 74827074617..5fb9f46fa19 100644 --- a/Testing/Data/Baseline/Filtering/DigitallyReconstructedRadiograph1.png.md5 +++ b/Testing/Data/Baseline/Filtering/DigitallyReconstructedRadiograph1.png.md5 @@ -1 +1 @@ -ee87a6fdee961da3da7e8bd3700fea0c +9b784ba9db935382f9ab2e133358533d diff --git a/Testing/Data/Baseline/Filtering/DigitallyReconstructedRadiograph1.png.sha512 b/Testing/Data/Baseline/Filtering/DigitallyReconstructedRadiograph1.png.sha512 deleted file mode 100644 index 472251d26cd..00000000000 --- a/Testing/Data/Baseline/Filtering/DigitallyReconstructedRadiograph1.png.sha512 +++ /dev/null @@ -1 +0,0 @@ -a29ff43ce3527940d7b028d8ab44d3b0a33348347ae4dbcb19250d9a77da1f26a934d3e22cac77a48ec52c9efdf67f131b05ab7695316c42419a91afef689d37