Mercurial > hg > orthanc-tests
comparison Tests/Toolbox.py @ 304:b8399213b840
fix
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 19 May 2020 18:25:38 +0200 |
parents | cfa785074c64 |
children | bac7cc80f240 |
comparison
equal
deleted
inserted
replaced
303:cb56f56c98fb | 304:b8399213b840 |
---|---|
30 import threading | 30 import threading |
31 import sys | 31 import sys |
32 import time | 32 import time |
33 import zipfile | 33 import zipfile |
34 | 34 |
35 from PIL import Image | 35 from PIL import Image, ImageChops |
36 import math | |
37 import operator | |
38 | |
36 | 39 |
37 if (sys.version_info >= (3, 0)): | 40 if (sys.version_info >= (3, 0)): |
38 from urllib.parse import urlencode | 41 from urllib.parse import urlencode |
39 from io import StringIO | 42 from io import StringIO |
40 from io import BytesIO | 43 from io import BytesIO |
387 f.write(dicom) | 390 f.write(dicom) |
388 f.flush() | 391 f.flush() |
389 data = subprocess.check_output([ FindExecutable('dcm2xml'), f.name ]) | 392 data = subprocess.check_output([ FindExecutable('dcm2xml'), f.name ]) |
390 | 393 |
391 return re.search('<data-set xfer="(.*?)"', data).group(1) | 394 return re.search('<data-set xfer="(.*?)"', data).group(1) |
395 | |
396 | |
397 def HasGdcmPlugin(orthanc): | |
398 plugins = DoGet(orthanc, '/plugins') | |
399 return ('gdcm' in plugins) | |
400 | |
401 | |
402 def _GetMaxImageDifference(im1, im2): | |
403 h = ImageChops.difference(im1, im2).histogram() | |
404 | |
405 if len(h) < 256: | |
406 raise Exception() | |
407 | |
408 i = len(h) - 1 | |
409 while h[i] == 0: | |
410 i -= 1 | |
411 | |
412 return i | |
413 | |
414 | |
415 def GetMaxImageDifference(im1, im2): | |
416 if im1.mode != im2.mode: | |
417 raise Exception('Incompatible image modes') | |
418 | |
419 if im1.mode == 'RGB': | |
420 red1, green1, blue1 = im1.split() | |
421 red2, green2, blue2 = im2.split() | |
422 return max([ _GetMaxImageDifference(red1, red2), | |
423 _GetMaxImageDifference(green1, green2), | |
424 _GetMaxImageDifference(blue1, blue2) ]) | |
425 else: | |
426 return _GetMaxImageDifference(im1, im2) |