Commit e4353cf48a498b530ee917a423fae39c61b274ef

Authored by Paulo Henrique Junqueira Amorim
1 parent 674a7e05

ENH: Add default window and level in pop-up menu and changed label of the pseudo…

… colors of gray to Default (Gray)
invesalius/constants.py
... ... @@ -37,7 +37,7 @@ SLICE_POSITION = {AXIAL:[AXIAL_SLICE_CAM_VIEW_UP, AXIAL_SLICE_CAM_POSITION],
37 37  
38 38 #Color Table from Slice
39 39 #NumberOfColors, SaturationRange, HueRange, ValueRange
40   -SLICE_COLOR_TABLE = {"Gray":(None,(0,0),(0,0),(0,1)),
  40 +SLICE_COLOR_TABLE = {"Default (Gray)":(None,(0,0),(0,0),(0,1)),
41 41 "Hue":(None,(1,1),(0,1),(1,1)),
42 42 "Saturation":(None,(0,1),(0.6,0.6),(1,1)),
43 43 "Desert":(256, (1,1), (0, 0.1), (1,1)),
... ... @@ -146,6 +146,7 @@ WINDOW_LEVEL = {"Abdomen":(350,50),
146 146 "Bone":(2000, 300),
147 147 "Brain Posterior Fossa":(120,40),
148 148 "Brain":(80,40),
  149 + "Default":(None, None), #Control class set window and level from DICOM
149 150 "Emphysema":(500,-850),
150 151 "Ischemia - Hard Non Contrast":(15,32),
151 152 "Ischemia - Soft Non Contrast":(80,20),
... ...
invesalius/control.py
... ... @@ -91,7 +91,7 @@ class Controller():
91 91 proj.original_orientation = orientation
92 92 proj.window = window = float(window)
93 93 proj.level = level = float(level)
94   -
  94 + const.WINDOW_LEVEL['Default'] = (window, level)
95 95  
96 96 threshold_range = proj.imagedata.GetScalarRange()
97 97 const.THRESHOLD_OUTVALUE = threshold_range[0]
... ...
invesalius/data/viewer_slice.py
... ... @@ -230,8 +230,8 @@ class Viewer(wx.Panel):
230 230 (self.acum_achange_window, self.acum_achange_level))
231 231  
232 232 ps.Publisher().sendMessage('Update window and level text',\
233   - "WL: %d WW: %d"%(self.acum_achange_window,\
234   - self.acum_achange_level))
  233 + "WL: %d WW: %d"%(self.acum_achange_level,\
  234 + self.acum_achange_window))
235 235 self.interactor.Render()
236 236  
237 237  
... ...
invesalius/gui/widgets/slice_menu.py
... ... @@ -29,23 +29,36 @@ class SliceMenu(wx.Menu):
29 29 def __init__(self):
30 30 wx.Menu.__init__(self)
31 31 self.ID_TO_TOOL_ITEM = {}
32   -
33   -
  32 +
34 33 submenu_wl = wx.Menu()
35   - for name in sorted(const.WINDOW_LEVEL):
36   - new_id = wx.NewId()
37   - wl_item = wx.MenuItem(submenu_wl, new_id,\
38   - name, kind=wx.ITEM_RADIO)
39   - submenu_wl.AppendItem(wl_item)
40   - self.ID_TO_TOOL_ITEM[new_id] = name
41 34  
  35 + new_id = wx.NewId()
  36 + wl_item = wx.MenuItem(submenu_wl, new_id,\
  37 + 'Default', kind=wx.ITEM_RADIO)
  38 + submenu_wl.AppendItem(wl_item)
  39 + self.ID_TO_TOOL_ITEM[new_id] = 'Default'
  40 + for name in sorted(const.WINDOW_LEVEL):
  41 + if not(name == 'Default'):
  42 + new_id = wx.NewId()
  43 + wl_item = wx.MenuItem(submenu_wl, new_id,\
  44 + name, kind=wx.ITEM_RADIO)
  45 + submenu_wl.AppendItem(wl_item)
  46 + self.ID_TO_TOOL_ITEM[new_id] = name
  47 +
  48 +
42 49 submenu_pseudo_colors = wx.Menu()
  50 + new_id = wx.NewId()
  51 + color_item = wx.MenuItem(submenu_pseudo_colors, new_id,\
  52 + 'Default (Gray)', kind=wx.ITEM_RADIO)
  53 + submenu_pseudo_colors.AppendItem(color_item)
  54 + self.ID_TO_TOOL_ITEM[new_id] = 'Default (Gray)'
43 55 for name in sorted(const.SLICE_COLOR_TABLE):
44   - new_id = wx.NewId()
45   - color_item = wx.MenuItem(submenu_wl, new_id,\
46   - name, kind=wx.ITEM_RADIO)
47   - submenu_pseudo_colors.AppendItem(color_item)
48   - self.ID_TO_TOOL_ITEM[new_id] = name
  56 + if not(name == 'Default (Gray)'):
  57 + new_id = wx.NewId()
  58 + color_item = wx.MenuItem(submenu_wl, new_id,\
  59 + name, kind=wx.ITEM_RADIO)
  60 + submenu_pseudo_colors.AppendItem(color_item)
  61 + self.ID_TO_TOOL_ITEM[new_id] = name
49 62  
50 63 self.AppendMenu(-1, "Window Width & Level", submenu_wl)
51 64 self.AppendMenu(-1, "Pseudo Colors", submenu_pseudo_colors)
... ... @@ -66,6 +79,10 @@ class SliceMenu(wx.Menu):
66 79 window, level = const.WINDOW_LEVEL[key]
67 80 ps.Publisher().sendMessage('Bright and contrast adjustment image',
68 81 (window, level))
  82 + ps.Publisher().sendMessage('Update window level value',\
  83 + (window, level))
  84 + ps.Publisher().sendMessage('Update window and level text',\
  85 + "WL: %d WW: %d"%(level, window))
69 86 ps.Publisher().sendMessage('Update slice viewer')
70 87  
71 88 elif(key in const.SLICE_COLOR_TABLE.keys()):
... ...