ich folgende Python-Code verwendet, um eine DICOM-Datei mit GDCM zu komprimieren:Handle C Behauptungen von Python
import gdcm
reader = gdcm.PixmapReader()
reader.SetFileName(str(source))
if not reader.Read():
raise BaseException("Could not read (pixmap) %s" % source)
image = reader.GetPixmap()
change = gdcm.ImageChangeTransferSyntax()
change.SetForce(False)
change.SetCompressIconImage(False)
transfer_syntax = gdcm.TransferSyntax(gdcm.TransferSyntax.JPEG2000Lossless)
change.SetTransferSyntax(transfer_syntax)
change.SetInput(image)
if not change.Change():
raise BaseException("Could not change the Transfer Syntax: ")
....
In der Zeile change.Change()
, gibt es eine Behauptung in GDCM Quelle die möglicherweise faile:
Assertion `((fragment_size + 1)/2) * 2 == ((image_height * image_width * numcomps * (bitsallocated/8) + 1)/ 2)* 2' failed.
Leider würde der Python-Prozess im Falle eines Assertionsfehlers bei GDCM beendet werden. Gibt es eine Möglichkeit, solche Behauptungen zu behandeln (ohne die Bedingungen bei Python vor dem Aufruf von change.Change()
überprüft zu haben)?
Haben Sie versucht, mit einem Exception-Handler: so etwas wie: 'versuchen: change.Change(); außer Assertion: ... ' –
@LaurentLAPORTE: C-Behauptungen funktionieren nicht so. – user2357112
Dieses 'assert' wird für einen Programmierfehler ausgelöst, können Sie das Problem mit einem öffentlich verfügbaren DICOM-Datensatz reproduzieren? – malat