Commit e4353cf48a498b530ee917a423fae39c61b274ef
1 parent
674a7e05
Exists in
master
and in
6 other branches
ENH: Add default window and level in pop-up menu and changed label of the pseudo…
… colors of gray to Default (Gray)
Showing
4 changed files
with
35 additions
and
17 deletions
Show diff stats
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()): | ... | ... |