def Execute(self): if self.Image == None: self.PrintError("Error: no Image.") if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) if self.Type == "freehand": self.ImageTracerWidget = vtk.vtkImageTracerWidget() elif self.Type == "contour": self.ImageTracerWidget = vtk.vtkContourWidget() self.ImageTracerWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) self.SliderWidget = vtk.vtkSliderWidget() self.SliderWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) self.ImageActor = vtk.vtkImageActor() self.vmtkRenderer.AddKeyBinding("n", "Next.", self.NextCallback) self.vmtkRenderer.AddKeyBinding("p", "Previous.", self.PreviousCallback) self.vmtkRenderer.AddKeyBinding("i", "Interact.", self.InteractCallback) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): if self.Image == None: self.PrintError('Error: no Image.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 if self.Type == 'freehand': self.ImageTracerWidget = vtk.vtkImageTracerWidget() elif self.Type == 'contour': self.ImageTracerWidget = vtk.vtkContourWidget() self.ImageTracerWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) self.SliderWidget = vtk.vtkSliderWidget() self.SliderWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) self.ImageActor = vtk.vtkImageActor() self.vmtkRenderer.RenderWindowInteractor.AddObserver("KeyPressEvent", self.Keypress) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): if self.Image == None: self.PrintError('Error: no Image.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) if self.Type == 'freehand': self.ImageTracerWidget = vtk.vtkImageTracerWidget() elif self.Type == 'contour': self.ImageTracerWidget = vtk.vtkContourWidget() self.ImageTracerWidget.SetInteractor( self.vmtkRenderer.RenderWindowInteractor) self.SliderWidget = vtk.vtkSliderWidget() self.SliderWidget.SetInteractor( self.vmtkRenderer.RenderWindowInteractor) self.ImageActor = vtk.vtkImageActor() self.vmtkRenderer.AddKeyBinding('n', 'Next.', self.NextCallback) self.vmtkRenderer.AddKeyBinding('p', 'Previous.', self.PreviousCallback) self.vmtkRenderer.AddKeyBinding('i', 'Interact.', self.InteractCallback) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): if self.Image == None: self.PrintError('Error: no Image.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 self.vmtkRenderer.RegisterScript(self) if self.Type == 'freehand': self.ImageTracerWidget = vtk.vtkImageTracerWidget() elif self.Type == 'contour': self.ImageTracerWidget = vtk.vtkContourWidget() self.ImageTracerWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) self.SliderWidget = vtk.vtkSliderWidget() self.SliderWidget.SetInteractor(self.vmtkRenderer.RenderWindowInteractor) self.ImageActor = vtk.vtkImageActor() self.vmtkRenderer.AddKeyBinding('n','Next.',self.NextCallback) self.vmtkRenderer.AddKeyBinding('p','Previous.',self.PreviousCallback) self.vmtkRenderer.AddKeyBinding('i','Interact.', self.InteractCallback) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
def Execute(self): if self.Image == None: self.PrintError('Error: no Image.') if not self.vmtkRenderer: self.vmtkRenderer = vmtkrenderer.vmtkRenderer() self.vmtkRenderer.Initialize() self.OwnRenderer = 1 if self.Type == 'freehand': self.ImageTracerWidget = vtk.vtkImageTracerWidget() elif self.Type == 'contour': self.ImageTracerWidget = vtk.vtkContourWidget() self.ImageTracerWidget.SetInteractor( self.vmtkRenderer.RenderWindowInteractor) self.SliderWidget = vtk.vtkSliderWidget() self.SliderWidget.SetInteractor( self.vmtkRenderer.RenderWindowInteractor) self.ImageActor = vtk.vtkImageActor() self.vmtkRenderer.RenderWindowInteractor.AddObserver( "KeyPressEvent", self.Keypress) self.Display() if self.OwnRenderer: self.vmtkRenderer.Deallocate()
extract.SetVOI(31, 31, 0, 63, 0, 92) extract.SetSampleRate(1, 1, 1) extract.SetInputConnection(shifter.GetOutputPort()) extract.ReleaseDataFlagOff() # imageActor2 = vtk.vtkImageActor() imageActor2.GetMapper().SetInputConnection(extract.GetOutputPort()) imageActor2.VisibilityOn() imageActor2.SetDisplayExtent(31, 31, 0, 63, 0, 92) imageActor2.InterpolateOff() # # Set up the image tracer widget # itw = vtk.vtkImageTracerWidget() # # Set the tolerance for capturing last handle when near first handle # to form closed paths. # itw.SetCaptureRadius(1.5) itw.GetGlyphSource().SetColor(1, 0, 0) # # Set the size of the glyph handle # itw.GetGlyphSource().SetScale(3.0) # # Set the initial rotation of the glyph if desired. The default glyph # set internally by the widget is a '+' so rotating 45 deg. gives a 'x' # itw.GetGlyphSource().SetRotationAngle(45.0)
extract.SetVOI(31, 31, 0, 63, 0, 92) extract.SetSampleRate(1, 1, 1) extract.SetInputConnection(shifter.GetOutputPort()) extract.ReleaseDataFlagOff() # imageActor2 = vtk.vtkImageActor() imageActor2.SetInput(extract.GetOutput()) imageActor2.VisibilityOn() imageActor2.SetDisplayExtent(31, 31, 0, 63, 0, 92) imageActor2.InterpolateOff() # # Set up the image tracer widget # itw = vtk.vtkImageTracerWidget() # # Set the tolerance for capturing last handle when near first handle # to form closed paths. # itw.SetCaptureRadius(1.5) itw.GetGlyphSource().SetColor(1, 0, 0) # # Set the size of the glyph handle # itw.GetGlyphSource().SetScale(3.0) # # Set the initial rotation of the glyph if desired. The default glyph # set internally by the widget is a '+' so rotating 45 deg. gives a 'x' # itw.GetGlyphSource().SetRotationAngle(45.0)
def __init__(self, parent, id=-1, title="", name=""): """Populates the menu and adds all required panels """ wx.Frame.__init__(self, parent, id=id, title=title, pos=wx.DefaultPosition, size=(1800, 830), name=name) #1000,875 self.menubar = wx.MenuBar() self.SetMenuBar(self.menubar) views_menu = wx.Menu() self.views_default_id = wx.NewId() views_menu.Append(self.views_default_id, "&Default\tCtrl-D", "Activate default view layout.", wx.ITEM_NORMAL) self.views_max_image_id = wx.NewId() views_menu.Append(self.views_max_image_id, "&Axial-Sagittal-Coronal View\tCtrl-M", "Activate maximum image view size layout.", wx.ITEM_NORMAL) self.views_contour_view_id = wx.NewId() views_menu.Append(self.views_contour_view_id, "&Contour Uncertainty view\tCtrl-C", "Activate contour uncertainty view size layout.", wx.ITEM_NORMAL) self.views_voxel_view_id = wx.NewId() views_menu.Append(self.views_voxel_view_id, "&Voxel Uncertainty view\tCtrl-V", "Activate voxel uncertainty view size layout.", wx.ITEM_NORMAL) self.menubar.Append(views_menu, "&Views") help_menu = wx.Menu() help_about_id = wx.NewId() help_menu.Append(help_about_id, "&About\tCtrl-0", "Info about application.", wx.ITEM_NORMAL) self.menubar.Append(help_menu, "&Help") # tell FrameManager to manage this frame self._mgr = wx.aui.AuiManager() self._mgr.SetManagedWindow(self) self._mgr.AddPane( self._create_patients_pane(), wx.aui.AuiPaneInfo().Name( "patient").Caption("Patient Data").Left().BestSize( wx.Size(600, 400)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_controls_pane(), wx.aui.AuiPaneInfo().Name( "control").Caption("Dose Plan Explorer").Bottom().BestSize( wx.Size(600, 400)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_axial_slices_pane(), wx.aui.AuiPaneInfo().Name("axial").Caption( "Axial").Center().BestSize(wx.Size( 400, 400)).CloseButton(False).MaximizeButton(True)) self._mgr.AddPane( self._create_3D_pane(), wx.aui.AuiPaneInfo().Name( "3dview").Caption("3D Dose Plan").Left().BestSize( wx.Size(1000, 800)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_sagittal_slices_pane(), wx.aui.AuiPaneInfo().Name( "sagittal").Caption("Sagittal").Right().BestSize( wx.Size(400, 400)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_coronal_slices_pane(), wx.aui.AuiPaneInfo().Name( "coronal").Caption("Coronal").Right().BestSize( wx.Size(400, 400)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_barplot_pane(), wx.aui.AuiPaneInfo().Name( "overview").Caption("Probability Overview").Bottom().BestSize( wx.Size(1000, 800)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_probs_pane(), wx.aui.AuiPaneInfo().Name("probs").Caption( "Probabilities for Dose Plans").Bottom().BestSize( wx.Size(1000, 800)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_distplot_pane(), wx.aui.AuiPaneInfo().Name("distplot").Caption( "Exploration of dose distribution").Bottom().BestSize( wx.Size(1000, 800)).MinimizeButton(True).MaximizeButton(True)) self._mgr.AddPane( self._create_scatterplot_pane(), wx.aui.AuiPaneInfo().Name("scatterplot").Caption( "Variability scatterplot").Bottom().BestSize(wx.Size( 1000, 800)).MinimizeButton(True).MaximizeButton(True)) self.SetMinSize(wx.Size(400, 300)) # first we save this default perspective with all panes # visible self._perspectives = {} self._mgr.GetPane("doseplan").Hide() self._mgr.GetPane("scatterplot").Hide() self._mgr.GetPane("3dview").Hide() self._mgr.GetPane("distplot").Hide() self._perspectives['default'] = self._mgr.SavePerspective() #------------- Show maximum image view ------------------# #Show axial,coronal and sagittal panes self._mgr.GetPane("axial").Show() self._mgr.GetPane("coronal").Show() self._mgr.GetPane("sagittal").Show() #Hide all the others self._mgr.GetPane("patient").Hide() self._mgr.GetPane("control").Hide() self._mgr.GetPane("overview").Hide() self._mgr.GetPane("probs").Hide() self._mgr.GetPane("3dview").Hide() self._mgr.GetPane("scatterplot").Hide() self._mgr.GetPane("distplot").Hide() # save the perspective again self._perspectives['max_image'] = self._mgr.SavePerspective() #------------- Show contour uncertainty view ------------------# #Show axial, coronal, sagittal, control, overview and probabilities panes self._mgr.GetPane("axial").Show() self._mgr.GetPane("coronal").Right() self._mgr.GetPane("coronal").Show() self._mgr.GetPane("sagittal").Right() self._mgr.GetPane("sagittal").Show() self._mgr.GetPane("control").Show() self._mgr.GetPane("overview").Show() self._mgr.GetPane("probs").Show() #Hide all the others self._mgr.GetPane("patient").Hide() self._mgr.GetPane("3dview").Hide() self._mgr.GetPane("scatterplot").Hide() self._mgr.GetPane("distplot").Hide() self._perspectives['contour_view'] = self._mgr.SavePerspective() #------------- Show voxel uncertainty view ------------------# #Show 3dview, scatterplot, axial and distplot panes self._mgr.GetPane("axial").Left().Center() self._mgr.GetPane("axial").Show() self._mgr.GetPane("3dview").Left().Center() self._mgr.GetPane("3dview").Show() self._mgr.GetPane("distplot").Right() self._mgr.GetPane("distplot").Show() self._mgr.GetPane("scatterplot").Right() self._mgr.GetPane("scatterplot").Show() self._mgr.GetPane("patient").Hide() self._mgr.GetPane("control").Hide() self._mgr.GetPane("coronal").Hide() self._mgr.GetPane("sagittal").Hide() self._mgr.GetPane("probs").Hide() self._mgr.GetPane("overview").Hide() self._perspectives['voxel_view'] = self._mgr.SavePerspective() # and put back the default perspective / view self._mgr.LoadPerspective(self._perspectives['default']) # finally tell the AUI manager to do everything that we've # asked self._mgr.Update() #Bind the events self.Bind(wx.EVT_MENU, self.onAbout, id=help_about_id) self.patients = {} self.contours = {} #sns.plt.close(self.figure) self.CreateStatusBar() self.SetStatusText("Status information can be find here...") self.new_pat = None self.aboutbox = None self.tracer = vtk.vtkImageTracerWidget() self.tracer.SetCaptureRadius(10.5) self.tracer.GetGlyphSource().SetColor(1, 0, 0) self.tracer.GetGlyphSource().SetScale( 1.0) # set the size of the glyph handle # Set the initial rotation of the glyph if desired. The default glyph # set internally by the widget is a '+' so rotating 45 deg. gives a 'x' self.tracer.GetGlyphSource().SetRotationAngle(90.0) self.tracer.GetGlyphSource().Modified() self.tracer.GetLineProperty().SetColor(1, 0, 0) self.tracer.SetPriority(1) self.tracer.AutoCloseOn() self.tracer.IsClosed() self.dc = None self.cursor_dist = None