Mercurial > hg > orthanc-tests
comparison Tests/Tests.py @ 440:3a5222eb4c93
added test_numpy
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 26 Nov 2021 19:03:45 +0100 |
parents | 2ca9e31d582f |
children | 21a45ddc9256 |
comparison
equal
deleted
inserted
replaced
439:2ca9e31d582f | 440:3a5222eb4c93 |
---|---|
23 | 23 |
24 | 24 |
25 import base64 | 25 import base64 |
26 import bz2 | 26 import bz2 |
27 import copy | 27 import copy |
28 import io | |
28 import numpy | 29 import numpy |
29 import pprint | 30 import pprint |
30 import shutil | 31 import shutil |
31 import tempfile | 32 import tempfile |
32 import unittest | 33 import unittest |
8227 # Generated by "dcm2pnm +F 45 DicomSeg.dcm DicomSeg-Frame45.pgm" | 8228 # Generated by "dcm2pnm +F 45 DicomSeg.dcm DicomSeg-Frame45.pgm" |
8228 im2 = Image.open(GetDatabasePath('DicomSeg-Frame45.pgm')) | 8229 im2 = Image.open(GetDatabasePath('DicomSeg-Frame45.pgm')) |
8229 im2 = im2.point(lambda p: 255 if p == 128 else 0) | 8230 im2 = im2.point(lambda p: 255 if p == 128 else 0) |
8230 | 8231 |
8231 self.assertTrue(ImageChops.difference(im1, im2).getbbox() is None) | 8232 self.assertTrue(ImageChops.difference(im1, im2).getbbox() is None) |
8233 | |
8234 | |
8235 def test_numpy(self): | |
8236 # New in Orthanc 1.9.8 | |
8237 a = UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0001.dcm')['ID'] | |
8238 UploadInstance(_REMOTE, 'Brainix/Flair/IM-0001-0002.dcm') | |
8239 b = UploadInstance(_REMOTE, 'DicomSeg.dcm') ['ID'] | |
8240 | |
8241 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy' % a))) | |
8242 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8243 self.assertEqual(numpy.float32, c.dtype) | |
8244 self.assertEqual((288, 288, 1), c.shape) | |
8245 | |
8246 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy?rescale=0' % a))) | |
8247 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8248 self.assertEqual(numpy.uint16, c.dtype) | |
8249 self.assertEqual((288, 288, 1), c.shape) | |
8250 | |
8251 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/numpy?rescale=1&compress=false' % a))) | |
8252 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8253 self.assertEqual(numpy.float32, c.dtype) | |
8254 self.assertEqual((1, 288, 288, 1), c.shape) | |
8255 | |
8256 series = DoGet(_REMOTE, '/instances/%s/series' % a)['ID'] | |
8257 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/series/%s/numpy?rescale=true&compress=0' % series))) | |
8258 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8259 self.assertEqual(numpy.float32, c.dtype) | |
8260 self.assertEqual((2, 288, 288, 1), c.shape) | |
8261 | |
8262 series = DoGet(_REMOTE, '/instances/%s/series' % a)['ID'] | |
8263 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/series/%s/numpy?rescale=1' % series))) | |
8264 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8265 self.assertEqual(numpy.float32, c.dtype) | |
8266 self.assertEqual((2, 288, 288, 1), c.shape) | |
8267 | |
8268 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/numpy?compress' % a))) | |
8269 self.assertTrue(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8270 self.assertEqual(1, len(c.files)) | |
8271 self.assertEqual(numpy.float32, c['arr_0'].dtype) | |
8272 self.assertEqual((1, 288, 288, 1), c['arr_0'].shape) | |
8273 | |
8274 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/frames/0/numpy' % b))) | |
8275 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8276 self.assertEqual(numpy.float32, c.dtype) | |
8277 self.assertEqual((256, 256, 1), c.shape) | |
8278 | |
8279 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/instances/%s/numpy' % b))) | |
8280 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8281 self.assertEqual(numpy.float32, c.dtype) | |
8282 self.assertEqual((96, 256, 256, 1), c.shape) | |
8283 | |
8284 series = DoGet(_REMOTE, '/instances/%s/series' % b)['ID'] | |
8285 c = numpy.load(io.BytesIO(DoGet(_REMOTE, '/series/%s/numpy' % series))) | |
8286 self.assertFalse(isinstance(c, numpy.lib.npyio.NpzFile)) | |
8287 self.assertEqual(numpy.float32, c.dtype) | |
8288 self.assertEqual((96, 256, 256, 1), c.shape) |