Commit 9cf1b5c4cce49cb82a38f86a57ce405066686edc

Authored by tfmoraes
1 parent a5da43e3

ENH: Removing duplicated dicom reading in preview

invesalius/gui/dicom_preview_panel.py
@@ -202,9 +202,9 @@ class SingleImagePreview(wx.Panel): @@ -202,9 +202,9 @@ class SingleImagePreview(wx.Panel):
202 self.text_acquisition.SetValue(value) 202 self.text_acquisition.SetValue(value)
203 203
204 # READ FILE 204 # READ FILE
205 - filename = dicom.image.file  
206 - reader = vtkgdcm.vtkGDCMImageReader()  
207 - reader.SetFileName(filename) 205 + #filename = dicom.image.file
  206 + #reader = vtkgdcm.vtkGDCMImageReader()
  207 + #reader.SetFileName(filename)
208 208
209 # ADJUST CONTRAST 209 # ADJUST CONTRAST
210 window_level = dicom.image.level 210 window_level = dicom.image.level
@@ -214,7 +214,7 @@ class SingleImagePreview(wx.Panel): @@ -214,7 +214,7 @@ class SingleImagePreview(wx.Panel):
214 print window_level 214 print window_level
215 print window_width 215 print window_width
216 colorer = vtk.vtkImageMapToWindowLevelColors() 216 colorer = vtk.vtkImageMapToWindowLevelColors()
217 - colorer.SetInput(reader.GetOutput()) 217 + colorer.SetInput(dicom.image.imagedata)
218 colorer.SetWindow(float(window_width)) 218 colorer.SetWindow(float(window_width))
219 colorer.SetLevel(float(window_level)) 219 colorer.SetLevel(float(window_level))
220 220
@@ -223,6 +223,9 @@ class SingleImagePreview(wx.Panel): @@ -223,6 +223,9 @@ class SingleImagePreview(wx.Panel):
223 self.renderer.ResetCamera() 223 self.renderer.ResetCamera()
224 self.interactor.Render() 224 self.interactor.Render()
225 225
  226 + def __del__(self):
  227 + print "---------> morri"
  228 +
226 229
227 230
228 myEVT_SELECT = wx.NewEventType() 231 myEVT_SELECT = wx.NewEventType()
@@ -412,9 +415,11 @@ class Preview(wx.Panel): @@ -412,9 +415,11 @@ class Preview(wx.Panel):
412 415
413 self.ID = image_file[5] 416 self.ID = image_file[5]
414 417
415 - image_reader = vtkgdcm.vtkGDCMImageReader()  
416 - image_reader.SetFileName(image_file[0])  
417 - image = image_reader.GetOutput() 418 + #image_reader = vtkgdcm.vtkGDCMImageReader()
  419 + #image_reader.SetFileName(image_file[0])
  420 + #image = image_reader.GetOutput()
  421 +
  422 + image = image_file[0]
418 423
419 scale = image.GetScalarRange() 424 scale = image.GetScalarRange()
420 425
@@ -595,7 +600,7 @@ class DicomPreviewSeries(wx.Panel): @@ -595,7 +600,7 @@ class DicomPreviewSeries(wx.Panel):
595 self.group_list = group_list 600 self.group_list = group_list
596 n = 0 601 n = 0
597 for group in group_list: 602 for group in group_list:
598 - info = (group.dicom.image.file, 603 + info = (group.dicom.image.imagedata,
599 float(group.dicom.image.window), 604 float(group.dicom.image.window),
600 float(group.dicom.image.level), 605 float(group.dicom.image.level),
601 group.title, 606 group.title,
@@ -699,6 +704,7 @@ class DicomPreview(wx.Panel): @@ -699,6 +704,7 @@ class DicomPreview(wx.Panel):
699 self.Bind(wx.EVT_SCROLL, self.OnScroll) 704 self.Bind(wx.EVT_SCROLL, self.OnScroll)
700 705
701 def SetDicomDirectory(self, directory): 706 def SetDicomDirectory(self, directory):
  707 + print "Setting Dicom Directory", directory
702 self.directory = directory 708 self.directory = directory
703 self.series = dicom_reader.GetSeries(directory)[0] 709 self.series = dicom_reader.GetSeries(directory)[0]
704 710
@@ -715,7 +721,7 @@ class DicomPreview(wx.Panel): @@ -715,7 +721,7 @@ class DicomPreview(wx.Panel):
715 dicom_files = group.GetHandSortedList() 721 dicom_files = group.GetHandSortedList()
716 n = 0 722 n = 0
717 for dicom in dicom_files: 723 for dicom in dicom_files:
718 - info = (dicom.image.file, 724 + info = (dicom.image.imagedata,
719 dicom.image.window, 725 dicom.image.window,
720 dicom.image.level, 726 dicom.image.level,
721 "Image %d" % (dicom.image.number), 727 "Image %d" % (dicom.image.number),
@@ -740,7 +746,7 @@ class DicomPreview(wx.Panel): @@ -740,7 +746,7 @@ class DicomPreview(wx.Panel):
740 dicom_files = group.GetHandSortedList() 746 dicom_files = group.GetHandSortedList()
741 n = 0 747 n = 0
742 for dicom in dicom_files: 748 for dicom in dicom_files:
743 - info = (dicom.image.file, 749 + info = (dicom.image.imagedata,
744 dicom.image.window, 750 dicom.image.window,
745 dicom.image.level, 751 dicom.image.level,
746 "Image %d" % (dicom.image.number), 752 "Image %d" % (dicom.image.number),
invesalius/reader/dicom.py
@@ -207,6 +207,9 @@ class Parser(): @@ -207,6 +207,9 @@ class Parser():
207 207
208 return False 208 return False
209 209
  210 + def GetImageData(self):
  211 + return self.vtkgdcm_reader.GetOutput()
  212 +
210 def GetImageWindowLevel(self, preset=WL_PRESET, multiple=WL_MULT): 213 def GetImageWindowLevel(self, preset=WL_PRESET, multiple=WL_MULT):
211 """ 214 """
212 Return image window center / level (related to brightness). 215 Return image window center / level (related to brightness).
@@ -1820,6 +1823,7 @@ class Image(object): @@ -1820,6 +1823,7 @@ class Image(object):
1820 self.time = parser.GetImageTime() 1823 self.time = parser.GetImageTime()
1821 self.type = parser.GetImageType() 1824 self.type = parser.GetImageType()
1822 self.size = (parser.GetDimensionX(), parser.GetDimensionY()) 1825 self.size = (parser.GetDimensionX(), parser.GetDimensionY())
  1826 + self.imagedata = parser.GetImageData()
1823 1827
1824 if (parser.GetImageThickness()): 1828 if (parser.GetImageThickness()):
1825 try: 1829 try: