From e4353cf48a498b530ee917a423fae39c61b274ef Mon Sep 17 00:00:00 2001 From: paulojamorim Date: Fri, 28 Aug 2009 16:47:18 +0000 Subject: [PATCH] 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 | 3 ++- invesalius/control.py | 2 +- invesalius/data/viewer_slice.py | 4 ++-- invesalius/gui/widgets/slice_menu.py | 43 ++++++++++++++++++++++++++++++------------- 4 files changed, 35 insertions(+), 17 deletions(-) diff --git a/invesalius/constants.py b/invesalius/constants.py index d6bf070..9c28f5d 100644 --- a/invesalius/constants.py +++ b/invesalius/constants.py @@ -37,7 +37,7 @@ SLICE_POSITION = {AXIAL:[AXIAL_SLICE_CAM_VIEW_UP, AXIAL_SLICE_CAM_POSITION], #Color Table from Slice #NumberOfColors, SaturationRange, HueRange, ValueRange -SLICE_COLOR_TABLE = {"Gray":(None,(0,0),(0,0),(0,1)), +SLICE_COLOR_TABLE = {"Default (Gray)":(None,(0,0),(0,0),(0,1)), "Hue":(None,(1,1),(0,1),(1,1)), "Saturation":(None,(0,1),(0.6,0.6),(1,1)), "Desert":(256, (1,1), (0, 0.1), (1,1)), @@ -146,6 +146,7 @@ WINDOW_LEVEL = {"Abdomen":(350,50), "Bone":(2000, 300), "Brain Posterior Fossa":(120,40), "Brain":(80,40), + "Default":(None, None), #Control class set window and level from DICOM "Emphysema":(500,-850), "Ischemia - Hard Non Contrast":(15,32), "Ischemia - Soft Non Contrast":(80,20), diff --git a/invesalius/control.py b/invesalius/control.py index 3cf34a8..c365a7d 100755 --- a/invesalius/control.py +++ b/invesalius/control.py @@ -91,7 +91,7 @@ class Controller(): proj.original_orientation = orientation proj.window = window = float(window) proj.level = level = float(level) - + const.WINDOW_LEVEL['Default'] = (window, level) threshold_range = proj.imagedata.GetScalarRange() const.THRESHOLD_OUTVALUE = threshold_range[0] diff --git a/invesalius/data/viewer_slice.py b/invesalius/data/viewer_slice.py index 4fe7b49..48ec2ff 100755 --- a/invesalius/data/viewer_slice.py +++ b/invesalius/data/viewer_slice.py @@ -230,8 +230,8 @@ class Viewer(wx.Panel): (self.acum_achange_window, self.acum_achange_level)) ps.Publisher().sendMessage('Update window and level text',\ - "WL: %d WW: %d"%(self.acum_achange_window,\ - self.acum_achange_level)) + "WL: %d WW: %d"%(self.acum_achange_level,\ + self.acum_achange_window)) self.interactor.Render() diff --git a/invesalius/gui/widgets/slice_menu.py b/invesalius/gui/widgets/slice_menu.py index 8ad02f8..751d6ef 100644 --- a/invesalius/gui/widgets/slice_menu.py +++ b/invesalius/gui/widgets/slice_menu.py @@ -29,23 +29,36 @@ class SliceMenu(wx.Menu): def __init__(self): wx.Menu.__init__(self) self.ID_TO_TOOL_ITEM = {} - - + submenu_wl = wx.Menu() - for name in sorted(const.WINDOW_LEVEL): - new_id = wx.NewId() - wl_item = wx.MenuItem(submenu_wl, new_id,\ - name, kind=wx.ITEM_RADIO) - submenu_wl.AppendItem(wl_item) - self.ID_TO_TOOL_ITEM[new_id] = name + new_id = wx.NewId() + wl_item = wx.MenuItem(submenu_wl, new_id,\ + 'Default', kind=wx.ITEM_RADIO) + submenu_wl.AppendItem(wl_item) + self.ID_TO_TOOL_ITEM[new_id] = 'Default' + for name in sorted(const.WINDOW_LEVEL): + if not(name == 'Default'): + new_id = wx.NewId() + wl_item = wx.MenuItem(submenu_wl, new_id,\ + name, kind=wx.ITEM_RADIO) + submenu_wl.AppendItem(wl_item) + self.ID_TO_TOOL_ITEM[new_id] = name + + submenu_pseudo_colors = wx.Menu() + new_id = wx.NewId() + color_item = wx.MenuItem(submenu_pseudo_colors, new_id,\ + 'Default (Gray)', kind=wx.ITEM_RADIO) + submenu_pseudo_colors.AppendItem(color_item) + self.ID_TO_TOOL_ITEM[new_id] = 'Default (Gray)' for name in sorted(const.SLICE_COLOR_TABLE): - new_id = wx.NewId() - color_item = wx.MenuItem(submenu_wl, new_id,\ - name, kind=wx.ITEM_RADIO) - submenu_pseudo_colors.AppendItem(color_item) - self.ID_TO_TOOL_ITEM[new_id] = name + if not(name == 'Default (Gray)'): + new_id = wx.NewId() + color_item = wx.MenuItem(submenu_wl, new_id,\ + name, kind=wx.ITEM_RADIO) + submenu_pseudo_colors.AppendItem(color_item) + self.ID_TO_TOOL_ITEM[new_id] = name self.AppendMenu(-1, "Window Width & Level", submenu_wl) self.AppendMenu(-1, "Pseudo Colors", submenu_pseudo_colors) @@ -66,6 +79,10 @@ class SliceMenu(wx.Menu): window, level = const.WINDOW_LEVEL[key] ps.Publisher().sendMessage('Bright and contrast adjustment image', (window, level)) + ps.Publisher().sendMessage('Update window level value',\ + (window, level)) + ps.Publisher().sendMessage('Update window and level text',\ + "WL: %d WW: %d"%(level, window)) ps.Publisher().sendMessage('Update slice viewer') elif(key in const.SLICE_COLOR_TABLE.keys()): -- libgit2 0.21.2