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)