私は圧縮されたDICOM画像で働いている私は解凍しthis exampleを使用していthis link(sudo apt-get install python-gdcm
)圧縮されたDICOMイメージをgdcmとPythonで解凍するには?
次インストールしたUbuntuの私はgdcmを使用している14、上のPython 2.7で、解凍したいと思います(少なくともImageJはそれを開こうとすると "圧縮されたdicomイメージ"と呼ばれますが)私は解決できないエラーが発生します。コードはprint dims
マークプログラムで
import gdcm
import sys
if __name__ == "__main__":
file1 = sys.argv[1]
file2 = sys.argv[2]
r = gdcm.ImageReader()
r.SetFileName(cin)
if not r.Read():
sys.exit(1)
image = gdcm.Image()
ir = r.GetImage()
image.SetNumberOfDimensions(ir.GetNumberOfDimensions());
dims = ir.GetDimensions();
print ir.GetDimension(0);
print ir.GetDimension(1);
print "Dims:",dims
image.SetDimension(0, ir.GetDimension(0));
image.SetDimension(1, ir.GetDimension(1));
pixeltype = ir.GetPixelFormat();
image.SetPixelFormat(pixeltype);
pi = ir.GetPhotometricInterpretation();
image.SetPhotometricInterpretation(pi);
pixeldata = gdcm.DataElement(gdcm.Tag(0x7fe0,0x0010))
str1 = ir.GetBuffer()
#print ir.GetBufferLength()
pixeldata.SetByteValue(str1, gdcm.VL(len(str1)))
image.SetDataElement(pixeldata)
w = gdcm.ImageWriter()
w.SetFileName(path_save+"uncompressed.png")
w.SetFile(r.GetFile())
w.SetImage(image)
if not w.Write():
sys.exit(1)
が実際に画像の正しい寸法を印刷する(それは単にリンクの例である)に従います。それはw.SetImage(image)
に達した場合でも、私はエラーを取得し、私はまた、警告の束を得る:
Warning: In /build/gdcm-uIgnvq/gdcm-2.6.3/Source/MediaStorageAndFileFormat/gdcmOverlay.cxx, line 205, function void gdcm::Overlay::Update(const gdcm::DataElement&)
Warning: In /build/gdcm-uIgnvq/gdcm-2.6.3/Source/MediaStorageAndFileFormat/gdcmPixmapReader.cxx, line 544, function bool gdcm::DoOverlays(const gdcm::DataSet&, gdcm::Pixmap&)
Bits Allocated are wrong. Correcting.
Error: In /build/gdcm-uIgnvq/gdcm-2.6.3/Source/MediaStorageAndFileFormat/gdcmOverlay.cxx, line 265, function bool gdcm::Overlay::GrabOverlayFromPixelData(const gdcm::DataSet&)
Could not find Pixel Data. Cannot extract Overlay.
Warning: In /build/gdcm-uIgnvq/gdcm-2.6.3/Source/MediaStorageAndFileFormat/gdcmPixmapReader.cxx, line 550, function bool gdcm::DoOverlays(const gdcm::DataSet&, gdcm::Pixmap&)
Could not extract Overlay from Pixel Data
Warning: In /build/gdcm-uIgnvq/gdcm-2.6.3/Source/MediaStorageAndFileFormat/gdcmPixmapReader.cxx, line 575, function bool gdcm::DoOverlays(const gdcm::DataSet&, gdcm::Pixmap&)
Invalid BitPosition: 0 for overlay #0 removing it.
python2.7: /build/gdcm-uIgnvq/gdcm-2.6.3/Source/Common/gdcmObject.h:58: virtual gdcm::Object::~Object(): Assertion `ReferenceCount == 0' failed.
は、画像の特定の種類に対してのみ有効で、この例でますか?または私は何かを逃していますか?
グレート、おかげでたくさん!上流の問題を解決するための小道具 – Soltius