comparison OrthancFramework/UnitTestsSources/ImageProcessingTests.cpp @ 4974:fcdf399f9fc0

fix ImageProcessing::ShiftScale2() on floating-point images
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 08 Apr 2022 11:48:54 +0200
parents 924b15d983c7
children 0ea402b4d901
comparison
equal deleted inserted replaced
4973:17c91e054636 4974:fcdf399f9fc0
1053 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 0, 0, 0)); 1053 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 0, 0, 0));
1054 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 1, 0, 2)); 1054 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 1, 0, 2));
1055 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 2, 0, 5)); 1055 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 2, 0, 5));
1056 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 3, 0, 10)); 1056 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 3, 0, 10));
1057 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 4, 0, 255)); 1057 ASSERT_TRUE(TestSignedGrayscale16Pixel(image, 4, 0, 255));
1058 }
1059
1060
1061 TEST(ImageProcessing, ShiftFloatBuggy)
1062 {
1063 // This test failed in Orthanc 1.10.1
1064
1065 Image image(PixelFormat_Float32, 3, 1, false);
1066 ImageTraits<PixelFormat_Float32>::SetFloatPixel(image, -1.0f, 0, 0);
1067 ImageTraits<PixelFormat_Float32>::SetFloatPixel(image, 0.0f, 1, 0);
1068 ImageTraits<PixelFormat_Float32>::SetFloatPixel(image, 1.0f, 2, 0);
1069
1070 std::unique_ptr<Image> cloned(Image::Clone(image));
1071
1072 ImageProcessing::ShiftScale2(image, 0, 0.000539, true);
1073 ASSERT_FLOAT_EQ(-0.000539f, ImageTraits<PixelFormat_Float32>::GetFloatPixel(image, 0, 0));
1074 ASSERT_FLOAT_EQ(0.0f, ImageTraits<PixelFormat_Float32>::GetFloatPixel(image, 1, 0));
1075 ASSERT_FLOAT_EQ(0.000539f, ImageTraits<PixelFormat_Float32>::GetFloatPixel(image, 2, 0));
1076
1077 ImageProcessing::ShiftScale2(*cloned, 0, 0.000539, false);
1078 ASSERT_FLOAT_EQ(-0.000539f, ImageTraits<PixelFormat_Float32>::GetFloatPixel(*cloned, 0, 0));
1079 ASSERT_FLOAT_EQ(0.0f, ImageTraits<PixelFormat_Float32>::GetFloatPixel(*cloned, 1, 0));
1080 ASSERT_FLOAT_EQ(0.000539f, ImageTraits<PixelFormat_Float32>::GetFloatPixel(*cloned, 2, 0));
1058 } 1081 }
1059 1082
1060 1083
1061 TEST(ImageProcessing, ShiftScale2) 1084 TEST(ImageProcessing, ShiftScale2)
1062 { 1085 {