Mercurial > hg > orthanc-tests
diff Tests/Tests.py @ 433:cb579ad96a6c
test_multiframe_windowing
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 25 Aug 2021 18:56:20 +0200 |
parents | f4609c97e995 |
children | 9f87d5b2b382 |
line wrap: on
line diff
--- a/Tests/Tests.py Mon Aug 16 10:46:56 2021 +0200 +++ b/Tests/Tests.py Wed Aug 25 18:56:20 2021 +0200 @@ -8144,3 +8144,54 @@ self.assertEqual(1, len(DoGet(_REMOTE, '/instances'))) DoDelete(_REMOTE, '/studies/%s' % a) self.assertEqual(0, len(DoGet(_REMOTE, '/instances'))) + + + def test_multiframe_windowing(self): + # Fixed in Orthanc 1.9.7 + a = UploadInstance(_REMOTE, 'MultiframeWindowing.dcm') ['ID'] + + im = GetImage(_REMOTE, '/instances/%s/frames/0/rendered?window-center=127&window-width=256' % a) + self.assertEqual(0x00, im.getpixel((0, 0))) + self.assertEqual(0x10, im.getpixel((1, 0))) + self.assertEqual(0x20, im.getpixel((0, 1))) + self.assertEqual(0x30, im.getpixel((1, 1))) + + # Center the window on value "16 == 0x10", thus it has the + # mid-level value (i.e. 127) + im = GetImage(_REMOTE, '/instances/%s/frames/0/rendered?window-center=16&window-width=128' % a) + self.assertEqual(127 - 2 * 16, im.getpixel((0, 0))) + self.assertEqual(127, im.getpixel((1, 0))) + self.assertEqual(127 + 2 * 16, im.getpixel((0, 1))) + self.assertEqual(127 + 2 * 32, im.getpixel((1, 1))) + + # Window center and window width are burned in FrameVOILUTSequence for frame 0 + im = GetImage(_REMOTE, '/instances/%s/frames/0/rendered' % a) + self.assertEqual(127 - 2 * 16, im.getpixel((0, 0))) + self.assertEqual(127, im.getpixel((1, 0))) + self.assertEqual(127 + 2 * 16, im.getpixel((0, 1))) + self.assertEqual(127 + 2 * 32, im.getpixel((1, 1))) + + im = GetImage(_REMOTE, '/instances/%s/frames/1/rendered?window-center=127&window-width=256' % a) + self.assertEqual(100, im.getpixel((0, 0))) + self.assertEqual(116, im.getpixel((1, 0))) + self.assertEqual(132, im.getpixel((0, 1))) + self.assertEqual(148, im.getpixel((1, 1))) + + im = GetImage(_REMOTE, '/instances/%s/frames/2/rendered?window-center=127&window-width=256' % a) + self.assertEqual(0, im.getpixel((0, 0))) + self.assertEqual(32, im.getpixel((1, 0))) + self.assertEqual(64, im.getpixel((0, 1))) + self.assertEqual(96, im.getpixel((1, 1))) + + im = GetImage(_REMOTE, '/instances/%s/frames/3/rendered?window-center=127&window-width=256' % a) + self.assertEqual(100, im.getpixel((0, 0))) + self.assertEqual(132, im.getpixel((1, 0))) + self.assertEqual(164, im.getpixel((0, 1))) + self.assertEqual(196, im.getpixel((1, 1))) + + im = GetImage(_REMOTE, '/instances/%s/frames/0/rendered?window-center=16&window-width=128' % a) + self.assertEqual(127 - 2 * 16, im.getpixel((0, 0))) + self.assertEqual(127, im.getpixel((1, 0))) + self.assertEqual(127 + 2 * 16, im.getpixel((0, 1))) + self.assertEqual(127 + 2 * 32, im.getpixel((1, 1))) +