From 50f903c2731625fcb15222036f82c8e78918a90b Mon Sep 17 00:00:00 2001 From: Thiago Franco de Moraes Date: Tue, 22 Oct 2019 16:22:11 -0300 Subject: [PATCH] reading one slice dicom --- invesalius/reader/dicom.py | 27 ++++++++++++--------------- invesalius/reader/dicom_reader.py | 2 ++ 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/invesalius/reader/dicom.py b/invesalius/reader/dicom.py index 72586e7..799f562 100644 --- a/invesalius/reader/dicom.py +++ b/invesalius/reader/dicom.py @@ -140,7 +140,7 @@ class Parser(): def SetDataImage(self, data_image, filename, thumbnail_path): self.data_image = data_image - self.filename = self.filepath = filename + self.filename = self.filepath = filename self.thumbnail_path = thumbnail_path def __format_time(self,value): @@ -508,12 +508,15 @@ class Parser(): DICOM standard tag (0x0028, 0x0030) was used. """ try: - data = self.data_image[str(0x0028)][str(0x0030)].replace(",", ".") - except(KeyError): + return self.data_image["spacing"][:2] + except KeyError: + try: + data = self.data_image[str(0x0028)][str(0x0030)].replace(",", ".") + except(KeyError): + return "" + if (data): + return [float(value) for value in data.split('\\')] return "" - if (data): - return [eval(value) for value in data.split('\\')] - return "" def GetPatientWeight(self): """ @@ -1953,7 +1956,7 @@ class Image(object): self.position = [1, 1, 1] self.number = parser.GetImageNumber() - self.spacing = spacing = parser.GetPixelSpacing() + self.spacing = list(parser.GetPixelSpacing()) self.orientation_label = parser.GetImageOrientationLabel() self.file = parser.filename self.time = parser.GetImageTime() @@ -1966,12 +1969,6 @@ class Image(object): self.number_of_frames = parser.GetNumberOfFrames() if (parser.GetImageThickness()): - try: - spacing.append(parser.GetImageThickness()) - except(AttributeError): - spacing = [1, 1, 1] + self.spacing.append(parser.GetImageThickness()) else: - try: - spacing.append(1.5) - except(AttributeError): - spacing = [1, 1, 1] + self.spacing.append(1.0) diff --git a/invesalius/reader/dicom_reader.py b/invesalius/reader/dicom_reader.py index 5ebc6da..ecdfaeb 100644 --- a/invesalius/reader/dicom_reader.py +++ b/invesalius/reader/dicom_reader.py @@ -132,6 +132,8 @@ class LoadDicom: tag = gdcm.Tag(0x0008, 0x0005) ds = reader.GetFile().GetDataSet() + image_helper = gdcm.ImageHelper() + data_dict['spacing'] = image_helper.GetSpacingValue(reader.GetFile()) if ds.FindDataElement(tag): encoding_value = str(ds.GetDataElement(tag).GetValue()).split('\\')[0] -- libgit2 0.21.2