def __init__(self, parent=None): super(QVolumeViewWidget, self).__init__(parent) # set up vtk pipeline and create vtkWidget self.renw = vtk.vtkRenderWindow() self.iren = vtk.vtkGenericRenderWindowInteractor() self.iren.SetRenderWindow(self.renw) kw = {'rw': self.renw, 'iren': self.iren} self.vtkWidget = QVTKRenderWindowInteractor(parent, **kw) self.MainLayout = QVBoxLayout() self.MainLayout.addWidget(self.vtkWidget) self.setLayout(self.MainLayout) # self.vtkWidget = QVTKRenderWindowInteractor() self.ren = vtk.vtkRenderer() self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) # add the orientation marker widget self.axes = vtk.vtkAxesActor() self.widget = vtk.vtkOrientationMarkerWidget() xyzLabels = ['R', 'A', 'S'] self.axes.SetXAxisLabelText(xyzLabels[0]) self.axes.SetYAxisLabelText(xyzLabels[1]) self.axes.SetZAxisLabelText(xyzLabels[2]) self.widget.SetOrientationMarker(self.axes) self.widget.SetInteractor(self.vtkWidget) self.widget.SetViewport(0.8, 0.0, 1, 0.3) self.widget.SetEnabled(True) self.widget.InteractiveOn() self.picker = vtk.vtkVolumePicker()
def __init__(self, orientation='transverse', parent=None): super(QSliceViewWidget, self).__init__(parent) # set up vtk pipeline and create vtkWidget colors = vtk.vtkNamedColors() self.orientation = orientation self.viewer = vtk.vtkImageViewer2() self.orientations = {'coronal': 0, 'sagittal': 1, 'transverse': 2} self.viewer.SetSliceOrientation(self.orientations[self.orientation]) # get&set the camera self.camera = self.viewer.GetRenderer().GetActiveCamera() ras = [[-1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, -1.0]] self.camera.SetPosition(ras[self.orientations[self.orientation]]) self.camera.ParallelProjectionOn() self.iren = vtk.vtkGenericRenderWindowInteractor() self.iren.SetRenderWindow(self.viewer.GetRenderWindow()) kw = {'rw': self.viewer.GetRenderWindow(), 'iren': self.iren} self.vtkWidget = QVTKRenderWindowInteractor(parent, **kw) # create QSlider self.sliderWidget = QSlider(Qt.Horizontal) # create the MainLayout of the whole widget self.MainLayout = QVBoxLayout() self.MainLayout.addWidget(self.sliderWidget) self.MainLayout.addWidget(self.vtkWidget) self.setLayout(self.MainLayout) # set the signal and slot self.sliderWidget.valueChanged.connect(self.slider_changed)
def __init__(self): super(MyWindow, self).__init__() os.chdir(functionPath) uic.loadUi("registration_gui.ui", self) os.chdir(startPath) # Connect buttons to functions # import moving data self.ptcldMovingButton.clicked.connect(self.import_data) # import fixed data self.ptcldFixedButton.clicked.connect(self.import_data) # execute qr_register function self.registrationButton.clicked.connect(self.register) self.vl = QtGui.QVBoxLayout() self.vtkWidget = QVTKRenderWindowInteractor(self.vtkFrame) self.vl.addWidget(self.vtkWidget) self.ren = vtk.vtkRenderer() self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) self.iren = self.vtkWidget.GetRenderWindow().GetInteractor() self.actor_moving = vtk.vtkActor() self.moving_color = (0, 0.2) self.actor_fixed = vtk.vtkActor() self.fixed_color = (.8, 1) self.ren.AddActor(self.actor_moving) self.ren.AddActor(self.actor_fixed) self.ren.ResetCamera() self.vtkFrame.setLayout(self.vl) self.show() self.iren.Initialize() self.iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera())
def keyPressEvent(self, ev): QVTKRenderWindowInteractor.keyPressEvent(self, ev) if ev.key() < 256: key = str(ev.text()) else: # Has modifiers, but an ASCII key code. #key = chr(ev.key()) key = chr(0)
def keyPressEvent(self, ev): QVTKRenderWindowInteractor.keyPressEvent(self, ev) if ev.key() < 256: key = str(ev.text()) else: # Has modifiers, but an ASCII key code. #key = chr(ev.key()) key = chr(0)
def __set_tab3d_layout(self): frame = QFrame() # add a vtk-based window for interaction self.__vtkWidget = QVTKRenderWindowInteractor(frame) # add a label and a text box for input of the object id self.__lbl_3d_idx = QLabel('ID:', self) self.__txt_box_3d_idx = QLineEdit(self) # add a button to save 3D images self.__btn_save_3d_img = QPushButton('Save Image', self) self.__btn_save_3d_img.setToolTip('Save 3D image to the file.') self.__btn_save_3d_img.clicked.connect(self.save_3d_image) # set the layout of the tab which holds the 3D cameras self.__tab3D.setLayout(self.__create_3d_cams_grid_layout())
def mrMeshVTKWindow(parentUI, theMeshInstance, data): _translate = QtCore.QCoreApplication.translate #create a new vtkWidget, appending to the list of exisitng widgets if debug: print(parentUI) newVTKWidgetInstance = QVTKRenderWindowInteractor(parentUI.centralwidget) parentUI.vtkInstances.append(newVTKWidgetInstance) currMeshCount = (len(parentUI.vtkInstances)) # we have to make a new tab and layout for it to go to. parentUI.newTab = QtWidgets.QWidget() sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding) sizePolicy.setHorizontalStretch(0) sizePolicy.setVerticalStretch(0) sizePolicy.setHeightForWidth( parentUI.newTab.sizePolicy().hasHeightForWidth()) parentUI.newTab.setSizePolicy(sizePolicy) parentUI.newTab.setObjectName("tab%s" % currMeshCount) parentUI.gridLayoutTabNew = QtWidgets.QGridLayout(parentUI.newTab) parentUI.gridLayoutTabNew.setContentsMargins(0, 0, 0, 0) parentUI.gridLayoutTabNew.setObjectName("gridLayoutTab%s" % currMeshCount) parentUI.gridLayoutVTKWinNew = QtWidgets.QGridLayout() parentUI.gridLayoutVTKWinNew.setObjectName("gridLayoutVTKWin%s" % currMeshCount) parentUI.gridLayoutTabNew.addLayout(parentUI.gridLayoutVTKWinNew, 0, 0, 1, 1) parentUI.gridLayoutVTKWinNew.addWidget(newVTKWidgetInstance, 0, 0, 1, 1) parentUI.tabWidget.addTab(parentUI.newTab, "Mesh-%s" % theMeshInstance) # have to set the resize policy now sizePolicy = QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.MinimumExpanding, QtWidgets.QSizePolicy.MinimumExpanding) parentUI.vtkInstances[-1].setSizePolicy(sizePolicy) parentUI.vtkInstances[-1].ren = vtk.vtkRenderer() parentUI.vtkInstances[-1].GetRenderWindow().AddRenderer( parentUI.vtkInstances[-1].ren) parentUI.vtkInstances[-1].iren = parentUI.vtkInstances[-1].GetRenderWindow( ).GetInteractor() parentUI.gridLayoutVTKWinNew.addWidget(parentUI.vtkInstances[-1], 0, 0, 1, 1) parentUI.tabWidget.setCurrentIndex(len(parentUI.vtkInstances) - 1) #zero index parentUI.tabWidget.update() style = vtk.vtkInteractorStyleTrackballCamera() parentUI.vtkInstances[-1].SetInteractorStyle(style) # flip the camera parentUI.vtkInstances[-1].ren.GetActiveCamera().SetViewUp(0, -1, 0) if data == 'debug': loadTestVTKWindow(parentUI) else: initializeEmptyVTKWindowInstance(parentUI) print('Finished setting up new VTK window instance ...')
class QVolumeViewWidget(QWidget): def __init__(self, parent=None): super(QVolumeViewWidget, self).__init__(parent) # set up vtk pipeline and create vtkWidget self.renw = vtk.vtkRenderWindow() self.iren = vtk.vtkGenericRenderWindowInteractor() self.iren.SetRenderWindow(self.renw) kw = {'rw': self.renw, 'iren': self.iren} self.vtkWidget = QVTKRenderWindowInteractor(parent, **kw) self.MainLayout = QVBoxLayout() self.MainLayout.addWidget(self.vtkWidget) self.setLayout(self.MainLayout) # self.vtkWidget = QVTKRenderWindowInteractor() self.ren = vtk.vtkRenderer() self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) # add the orientation marker widget self.axes = vtk.vtkAxesActor() self.widget = vtk.vtkOrientationMarkerWidget() xyzLabels = ['R', 'A', 'S'] self.axes.SetXAxisLabelText(xyzLabels[0]) self.axes.SetYAxisLabelText(xyzLabels[1]) self.axes.SetZAxisLabelText(xyzLabels[2]) self.widget.SetOrientationMarker(self.axes) self.widget.SetInteractor(self.vtkWidget) self.widget.SetViewport(0.8, 0.0, 1, 0.3) self.widget.SetEnabled(True) self.widget.InteractiveOn() self.picker = vtk.vtkVolumePicker() def set_data_reader(self, reader): volumeMapper = vtk.vtkFixedPointVolumeRayCastMapper() # volumeMapper.SetBlendModeToMaximumIntensity() volumeMapper.SetInputData(reader.GetOutput()) volume = vtk.vtkVolume() volume.SetMapper(volumeMapper) self.ren.AddVolume(volume) def start_render(self): # start render and interactor self.vtkWidget.Initialize() self.vtkWidget.Start() self.ren.SetBackground(1, 1, 1) self.ren.ResetCamera()
def paintEvent(self, e): """ Reimplemented to create the light manager only when needed. This is necessary because it makes sense to create the light manager only when the widget is realized. Only when the widget is realized is the VTK render window created and only then are the default lights all setup correctly. """ QVTKRenderWindowInteractor.paintEvent(self, e) scene = self._scene if scene.light_manager is None: scene.light_manager = light_manager.LightManager(scene) renwin = scene._renwin renwin.update_traits() vtk_rw = tvtk.to_vtk(renwin) renwin.add_observer('StartEvent', messenger.send) messenger.connect(vtk_rw, 'StartEvent', self._start_event_callback) renwin.add_observer('EndEvent', messenger.send) messenger.connect(vtk_rw, 'EndEvent', self._end_event_callback)
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1270, 715) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(0, 40, 121, 21)) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtGui.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(0, 220, 121, 21)) self.pushButton_2.setObjectName("pushButton_2") self.pushButton_3 = QtGui.QPushButton(self.centralwidget) self.pushButton_3.setGeometry(QtCore.QRect(0, 200, 121, 21)) self.pushButton_3.setObjectName("pushButton_3") self.pushButton_4 = QtGui.QPushButton(self.centralwidget) self.pushButton_4.setGeometry(QtCore.QRect(0, 80, 121, 21)) self.pushButton_4.setObjectName("pushButton_4") self.pushButton_5 = QtGui.QPushButton(self.centralwidget) self.pushButton_5.setGeometry(QtCore.QRect(0, 60, 121, 21)) self.pushButton_5.setObjectName("pushButton_5") self.pushButton_7 = QtGui.QPushButton(self.centralwidget) self.pushButton_7.setGeometry(QtCore.QRect(0, 100, 121, 21)) self.pushButton_7.setObjectName("pushButton_7") self.pushButton_8 = QtGui.QPushButton(self.centralwidget) self.pushButton_8.setGeometry(QtCore.QRect(0, 20, 121, 21)) self.pushButton_8.setObjectName("pushButton_8") self.label = QtGui.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(1150, 10, 81, 16)) self.label.setObjectName("label") self.scrollArea = QtGui.QScrollArea(self.centralwidget) self.scrollArea.setGeometry(QtCore.QRect(1100, 190, 171, 211)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtGui.QWidget(self.scrollArea) self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 169, 209)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.listWidget = QtGui.QListWidget(self.scrollAreaWidgetContents) self.listWidget.setGeometry(QtCore.QRect(0, 20, 171, 191)) self.listWidget.setObjectName("listWidget") self.label_2 = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_2.setGeometry(QtCore.QRect(40, 0, 101, 16)) self.label_2.setObjectName("label_2") self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.frame = QtGui.QFrame(self.centralwidget) self.frame.setGeometry(QtCore.QRect(1100, 440, 171, 231)) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName("frame") self.label_3 = QtGui.QLabel(self.frame) self.label_3.setGeometry(QtCore.QRect(30, 0, 121, 20)) self.label_3.setObjectName("label_3") self.frame_2 = QtGui.QFrame(self.centralwidget) self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331)) self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_2.setFrameShadow(QtGui.QFrame.Raised) self.frame_2.setObjectName("frame_2") self.label_4 = QtGui.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(0, 320, 111, 16)) self.label_4.setObjectName("label_4") self.label_5 = QtGui.QLabel(self.centralwidget) self.label_5.setGeometry(QtCore.QRect(0, 0, 131, 16)) self.label_5.setObjectName("label_5") self.pushButton_13 = QtGui.QPushButton(self.centralwidget) self.pushButton_13.setGeometry(QtCore.QRect(0, 140, 121, 21)) self.pushButton_13.setObjectName("pushButton_13") self.pushButton_14 = QtGui.QPushButton(self.centralwidget) self.pushButton_14.setGeometry(QtCore.QRect(0, 120, 121, 21)) self.pushButton_14.setObjectName("pushButton_14") self.pushButton_16 = QtGui.QPushButton(self.centralwidget) self.pushButton_16.setGeometry(QtCore.QRect(1100, 80, 171, 20)) self.pushButton_16.setObjectName("pushButton_16") self.pushButton_17 = QtGui.QPushButton(self.centralwidget) self.pushButton_17.setGeometry(QtCore.QRect(1180, 420, 91, 21)) self.pushButton_17.setObjectName("pushButton_17") self.pushButton_18 = QtGui.QPushButton(self.centralwidget) self.pushButton_18.setGeometry(QtCore.QRect(1180, 400, 51, 21)) self.pushButton_18.setObjectName("pushButton_18") self.pushButton_19 = QtGui.QPushButton(self.centralwidget) self.pushButton_19.setGeometry(QtCore.QRect(1230, 400, 41, 21)) self.pushButton_19.setObjectName("pushButton_19") self.pushButton_20 = QtGui.QPushButton(self.centralwidget) self.pushButton_20.setGeometry(QtCore.QRect(1100, 420, 81, 21)) self.pushButton_20.setObjectName("pushButton_20") self.pushButton_21 = QtGui.QPushButton(self.centralwidget) self.pushButton_21.setGeometry(QtCore.QRect(1100, 400, 81, 21)) self.pushButton_21.setObjectName("pushButton_21") self.frame_3 = QtGui.QFrame(self.centralwidget) self.frame_3.setGeometry(QtCore.QRect(350, 0, 601, 31)) self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_3.setFrameShadow(QtGui.QFrame.Raised) self.frame_3.setObjectName("frame_3") self.pushButton_10 = QtGui.QPushButton(self.frame_3) self.pushButton_10.setGeometry(QtCore.QRect(50, 0, 61, 31)) self.pushButton_10.setObjectName("pushButton_10") self.textEdit = QtGui.QTextEdit(self.frame_3) self.textEdit.setGeometry(QtCore.QRect(110, 0, 61, 31)) self.textEdit.setObjectName("textEdit") self.label_6 = QtGui.QLabel(self.frame_3) self.label_6.setGeometry(QtCore.QRect(0, 0, 41, 31)) self.label_6.setObjectName("label_6") self.pushButton_9 = QtGui.QPushButton(self.frame_3) self.pushButton_9.setGeometry(QtCore.QRect(290, 0, 85, 31)) self.pushButton_9.setObjectName("pushButton_9") self.horizontalSlider = QtGui.QSlider(self.frame_3) self.horizontalSlider.setGeometry(QtCore.QRect(450, 10, 101, 19)) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setObjectName("horizontalSlider") self.pushButton_11 = QtGui.QPushButton(self.frame_3) self.pushButton_11.setGeometry(QtCore.QRect(550, 0, 51, 31)) self.pushButton_11.setObjectName("pushButton_11") self.label_7 = QtGui.QLabel(self.frame_3) self.label_7.setGeometry(QtCore.QRect(390, 10, 41, 16)) self.label_7.setObjectName("label_7") self.pushButton_26 = QtGui.QPushButton(self.frame_3) self.pushButton_26.setGeometry(QtCore.QRect(170, 0, 41, 31)) self.pushButton_26.setObjectName("pushButton_26") self.pushButton_27 = QtGui.QPushButton(self.frame_3) self.pushButton_27.setGeometry(QtCore.QRect(210, 0, 41, 31)) self.pushButton_27.setObjectName("pushButton_27") self.pushButton_28 = QtGui.QPushButton(self.frame_3) self.pushButton_28.setGeometry(QtCore.QRect(250, 0, 41, 31)) self.pushButton_28.setObjectName("pushButton_28") self.frame_4 = QtGui.QFrame(self.centralwidget) self.frame_4.setGeometry(QtCore.QRect(950, 0, 151, 31)) self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_4.setFrameShadow(QtGui.QFrame.Raised) self.frame_4.setObjectName("frame_4") self.label_9 = QtGui.QLabel(self.frame_4) self.label_9.setGeometry(QtCore.QRect(0, 0, 81, 31)) self.label_9.setObjectName("label_9") self.plainTextEdit_2 = QtGui.QPlainTextEdit(self.frame_4) self.plainTextEdit_2.setGeometry(QtCore.QRect(80, 0, 31, 31)) self.plainTextEdit_2.setObjectName("plainTextEdit_2") self.pushButton_12 = QtGui.QPushButton(self.frame_4) self.pushButton_12.setGeometry(QtCore.QRect(110, 0, 41, 31)) self.pushButton_12.setObjectName("pushButton_12") self.pushButton_22 = QtGui.QPushButton(self.centralwidget) self.pushButton_22.setGeometry(QtCore.QRect(0, 240, 121, 21)) self.pushButton_22.setObjectName("pushButton_22") self.pushButton_23 = QtGui.QPushButton(self.centralwidget) self.pushButton_23.setGeometry(QtCore.QRect(0, 260, 121, 21)) self.pushButton_23.setObjectName("pushButton_23") self.pushButton_24 = QtGui.QPushButton(self.centralwidget) self.pushButton_24.setGeometry(QtCore.QRect(0, 280, 121, 21)) self.pushButton_24.setObjectName("pushButton_24") self.pushButton_25 = QtGui.QPushButton(self.centralwidget) self.pushButton_25.setGeometry(QtCore.QRect(0, 300, 121, 21)) self.pushButton_25.setObjectName("pushButton_25") self.qvtkWidget = QVTKRenderWindowInteractor(self.centralwidget) self.qvtkWidget.setGeometry(QtCore.QRect(130, 30, 971, 641)) self.qvtkWidget.setObjectName("qvtkWidget") self.kurlrequester = KUrlRequester(self.centralwidget) self.kurlrequester.setGeometry(QtCore.QRect(130, 0, 201, 31)) self.kurlrequester.setObjectName("kurlrequester") self.listWidget_2 = QtGui.QListWidget(self.centralwidget) self.listWidget_2.setGeometry(QtCore.QRect(1100, 30, 171, 51)) self.listWidget_2.setObjectName("listWidget_2") self.pushButton_29 = QtGui.QPushButton(self.centralwidget) self.pushButton_29.setGeometry(QtCore.QRect(1220, 160, 51, 31)) self.pushButton_29.setObjectName("pushButton_29") self.label_10 = QtGui.QLabel(self.centralwidget) self.label_10.setGeometry(QtCore.QRect(1110, 100, 121, 20)) self.label_10.setObjectName("label_10") self.kintnuminput = KIntNumInput(self.centralwidget) self.kintnuminput.setGeometry(QtCore.QRect(1160, 120, 31, 21)) self.kintnuminput.setObjectName("kintnuminput") self.kintnuminput_2 = KIntNumInput(self.centralwidget) self.kintnuminput_2.setGeometry(QtCore.QRect(1190, 120, 31, 21)) self.kintnuminput_2.setObjectName("kintnuminput_2") self.kintnuminput_4 = KIntNumInput(self.centralwidget) self.kintnuminput_4.setGeometry(QtCore.QRect(1160, 140, 31, 21)) self.kintnuminput_4.setObjectName("kintnuminput_4") self.kintnuminput_5 = KIntNumInput(self.centralwidget) self.kintnuminput_5.setGeometry(QtCore.QRect(1190, 140, 31, 21)) self.kintnuminput_5.setObjectName("kintnuminput_5") self.kintnuminput_7 = KIntNumInput(self.centralwidget) self.kintnuminput_7.setGeometry(QtCore.QRect(1160, 160, 31, 21)) self.kintnuminput_7.setObjectName("kintnuminput_7") self.kintnuminput_8 = KIntNumInput(self.centralwidget) self.kintnuminput_8.setGeometry(QtCore.QRect(1190, 160, 31, 21)) self.kintnuminput_8.setObjectName("kintnuminput_8") self.label_8 = QtGui.QLabel(self.centralwidget) self.label_8.setGeometry(QtCore.QRect(1130, 120, 21, 16)) self.label_8.setObjectName("label_8") self.label_11 = QtGui.QLabel(self.centralwidget) self.label_11.setGeometry(QtCore.QRect(1130, 140, 21, 16)) self.label_11.setObjectName("label_11") self.label_12 = QtGui.QLabel(self.centralwidget) self.label_12.setGeometry(QtCore.QRect(1130, 160, 21, 16)) self.label_12.setObjectName("label_12") self.pushButton_6 = QtGui.QPushButton(self.centralwidget) self.pushButton_6.setGeometry(QtCore.QRect(0, 160, 121, 21)) self.pushButton_6.setObjectName("pushButton_6") self.pushButton_15 = QtGui.QPushButton(self.centralwidget) self.pushButton_15.setGeometry(QtCore.QRect(0, 180, 121, 21)) self.pushButton_15.setObjectName("pushButton_15") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1270, 23)) self.menubar.setObjectName("menubar") self.menuInput = QtGui.QMenu(self.menubar) self.menuInput.setObjectName("menuInput") self.menuOutput = QtGui.QMenu(self.menubar) self.menuOutput.setObjectName("menuOutput") self.menuSettings = QtGui.QMenu(self.menubar) self.menuSettings.setObjectName("menuSettings") self.menuHelp = QtGui.QMenu(self.menubar) self.menuHelp.setObjectName("menuHelp") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionImport_vtk_file = QtGui.QAction(MainWindow) self.actionImport_vtk_file.setObjectName("actionImport_vtk_file") self.actionImport_dat_file = QtGui.QAction(MainWindow) self.actionImport_dat_file.setObjectName("actionImport_dat_file") self.actionSave_as_JPEG = QtGui.QAction(MainWindow) self.actionSave_as_JPEG.setObjectName("actionSave_as_JPEG") self.actionAutor = QtGui.QAction(MainWindow) self.actionAutor.setObjectName("actionAutor") self.actionWersja = QtGui.QAction(MainWindow) self.actionWersja.setObjectName("actionWersja") self.actionLinki = QtGui.QAction(MainWindow) self.actionLinki.setObjectName("actionLinki") self.actionBackground_color = QtGui.QAction(MainWindow) self.actionBackground_color.setObjectName("actionBackground_color") self.actionWork_space = QtGui.QAction(MainWindow) self.actionWork_space.setObjectName("actionWork_space") self.actionExport_properties = QtGui.QAction(MainWindow) self.actionExport_properties.setObjectName("actionExport_properties") self.actionExit = QtGui.QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionSave_Session = QtGui.QAction(MainWindow) self.actionSave_Session.setObjectName("actionSave_Session") self.actionExport_directory = QtGui.QAction(MainWindow) self.actionExport_directory.setObjectName("actionExport_directory") self.actionTutorials = QtGui.QAction(MainWindow) self.actionTutorials.setObjectName("actionTutorials") self.menuInput.addAction(self.actionSave_Session) self.menuInput.addAction(self.actionExit) self.menuOutput.addAction(self.actionSave_as_JPEG) self.menuOutput.addAction(self.actionExport_directory) self.menuSettings.addAction(self.actionBackground_color) self.menuSettings.addAction(self.actionWork_space) self.menuHelp.addAction(self.actionAutor) self.menuHelp.addAction(self.actionTutorials) self.menubar.addAction(self.menuInput.menuAction()) self.menubar.addAction(self.menuOutput.menuAction()) self.menubar.addAction(self.menuSettings.menuAction()) self.menubar.addAction(self.menuHelp.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.connections()
class Ui_MainWindow(object,GUI_AKCJE): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1270, 715) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(0, 40, 121, 21)) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtGui.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(0, 220, 121, 21)) self.pushButton_2.setObjectName("pushButton_2") self.pushButton_3 = QtGui.QPushButton(self.centralwidget) self.pushButton_3.setGeometry(QtCore.QRect(0, 200, 121, 21)) self.pushButton_3.setObjectName("pushButton_3") self.pushButton_4 = QtGui.QPushButton(self.centralwidget) self.pushButton_4.setGeometry(QtCore.QRect(0, 80, 121, 21)) self.pushButton_4.setObjectName("pushButton_4") self.pushButton_5 = QtGui.QPushButton(self.centralwidget) self.pushButton_5.setGeometry(QtCore.QRect(0, 60, 121, 21)) self.pushButton_5.setObjectName("pushButton_5") self.pushButton_7 = QtGui.QPushButton(self.centralwidget) self.pushButton_7.setGeometry(QtCore.QRect(0, 100, 121, 21)) self.pushButton_7.setObjectName("pushButton_7") self.pushButton_8 = QtGui.QPushButton(self.centralwidget) self.pushButton_8.setGeometry(QtCore.QRect(0, 20, 121, 21)) self.pushButton_8.setObjectName("pushButton_8") self.label = QtGui.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(1150, 10, 81, 16)) self.label.setObjectName("label") self.scrollArea = QtGui.QScrollArea(self.centralwidget) self.scrollArea.setGeometry(QtCore.QRect(1100, 190, 171, 211)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtGui.QWidget(self.scrollArea) self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 169, 209)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.listWidget = QtGui.QListWidget(self.scrollAreaWidgetContents) self.listWidget.setGeometry(QtCore.QRect(0, 20, 171, 191)) self.listWidget.setObjectName("listWidget") self.label_2 = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_2.setGeometry(QtCore.QRect(40, 0, 101, 16)) self.label_2.setObjectName("label_2") self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.frame = QtGui.QFrame(self.centralwidget) self.frame.setGeometry(QtCore.QRect(1100, 440, 171, 231)) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName("frame") self.label_3 = QtGui.QLabel(self.frame) self.label_3.setGeometry(QtCore.QRect(30, 0, 121, 20)) self.label_3.setObjectName("label_3") self.frame_2 = QtGui.QFrame(self.centralwidget) self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331)) self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_2.setFrameShadow(QtGui.QFrame.Raised) self.frame_2.setObjectName("frame_2") self.label_4 = QtGui.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(0, 320, 111, 16)) self.label_4.setObjectName("label_4") self.label_5 = QtGui.QLabel(self.centralwidget) self.label_5.setGeometry(QtCore.QRect(0, 0, 131, 16)) self.label_5.setObjectName("label_5") self.pushButton_13 = QtGui.QPushButton(self.centralwidget) self.pushButton_13.setGeometry(QtCore.QRect(0, 140, 121, 21)) self.pushButton_13.setObjectName("pushButton_13") self.pushButton_14 = QtGui.QPushButton(self.centralwidget) self.pushButton_14.setGeometry(QtCore.QRect(0, 120, 121, 21)) self.pushButton_14.setObjectName("pushButton_14") self.pushButton_16 = QtGui.QPushButton(self.centralwidget) self.pushButton_16.setGeometry(QtCore.QRect(1100, 80, 171, 20)) self.pushButton_16.setObjectName("pushButton_16") self.pushButton_17 = QtGui.QPushButton(self.centralwidget) self.pushButton_17.setGeometry(QtCore.QRect(1180, 420, 91, 21)) self.pushButton_17.setObjectName("pushButton_17") self.pushButton_18 = QtGui.QPushButton(self.centralwidget) self.pushButton_18.setGeometry(QtCore.QRect(1180, 400, 51, 21)) self.pushButton_18.setObjectName("pushButton_18") self.pushButton_19 = QtGui.QPushButton(self.centralwidget) self.pushButton_19.setGeometry(QtCore.QRect(1230, 400, 41, 21)) self.pushButton_19.setObjectName("pushButton_19") self.pushButton_20 = QtGui.QPushButton(self.centralwidget) self.pushButton_20.setGeometry(QtCore.QRect(1100, 420, 81, 21)) self.pushButton_20.setObjectName("pushButton_20") self.pushButton_21 = QtGui.QPushButton(self.centralwidget) self.pushButton_21.setGeometry(QtCore.QRect(1100, 400, 81, 21)) self.pushButton_21.setObjectName("pushButton_21") self.frame_3 = QtGui.QFrame(self.centralwidget) self.frame_3.setGeometry(QtCore.QRect(350, 0, 601, 31)) self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_3.setFrameShadow(QtGui.QFrame.Raised) self.frame_3.setObjectName("frame_3") self.pushButton_10 = QtGui.QPushButton(self.frame_3) self.pushButton_10.setGeometry(QtCore.QRect(50, 0, 61, 31)) self.pushButton_10.setObjectName("pushButton_10") self.textEdit = QtGui.QTextEdit(self.frame_3) self.textEdit.setGeometry(QtCore.QRect(110, 0, 61, 31)) self.textEdit.setObjectName("textEdit") self.label_6 = QtGui.QLabel(self.frame_3) self.label_6.setGeometry(QtCore.QRect(0, 0, 41, 31)) self.label_6.setObjectName("label_6") self.pushButton_9 = QtGui.QPushButton(self.frame_3) self.pushButton_9.setGeometry(QtCore.QRect(290, 0, 85, 31)) self.pushButton_9.setObjectName("pushButton_9") self.horizontalSlider = QtGui.QSlider(self.frame_3) self.horizontalSlider.setGeometry(QtCore.QRect(450, 10, 101, 19)) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setObjectName("horizontalSlider") self.pushButton_11 = QtGui.QPushButton(self.frame_3) self.pushButton_11.setGeometry(QtCore.QRect(550, 0, 51, 31)) self.pushButton_11.setObjectName("pushButton_11") self.label_7 = QtGui.QLabel(self.frame_3) self.label_7.setGeometry(QtCore.QRect(390, 10, 41, 16)) self.label_7.setObjectName("label_7") self.pushButton_26 = QtGui.QPushButton(self.frame_3) self.pushButton_26.setGeometry(QtCore.QRect(170, 0, 41, 31)) self.pushButton_26.setObjectName("pushButton_26") self.pushButton_27 = QtGui.QPushButton(self.frame_3) self.pushButton_27.setGeometry(QtCore.QRect(210, 0, 41, 31)) self.pushButton_27.setObjectName("pushButton_27") self.pushButton_28 = QtGui.QPushButton(self.frame_3) self.pushButton_28.setGeometry(QtCore.QRect(250, 0, 41, 31)) self.pushButton_28.setObjectName("pushButton_28") self.frame_4 = QtGui.QFrame(self.centralwidget) self.frame_4.setGeometry(QtCore.QRect(950, 0, 151, 31)) self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_4.setFrameShadow(QtGui.QFrame.Raised) self.frame_4.setObjectName("frame_4") self.label_9 = QtGui.QLabel(self.frame_4) self.label_9.setGeometry(QtCore.QRect(0, 0, 81, 31)) self.label_9.setObjectName("label_9") self.plainTextEdit_2 = QtGui.QPlainTextEdit(self.frame_4) self.plainTextEdit_2.setGeometry(QtCore.QRect(80, 0, 31, 31)) self.plainTextEdit_2.setObjectName("plainTextEdit_2") self.pushButton_12 = QtGui.QPushButton(self.frame_4) self.pushButton_12.setGeometry(QtCore.QRect(110, 0, 41, 31)) self.pushButton_12.setObjectName("pushButton_12") self.pushButton_22 = QtGui.QPushButton(self.centralwidget) self.pushButton_22.setGeometry(QtCore.QRect(0, 240, 121, 21)) self.pushButton_22.setObjectName("pushButton_22") self.pushButton_23 = QtGui.QPushButton(self.centralwidget) self.pushButton_23.setGeometry(QtCore.QRect(0, 260, 121, 21)) self.pushButton_23.setObjectName("pushButton_23") self.pushButton_24 = QtGui.QPushButton(self.centralwidget) self.pushButton_24.setGeometry(QtCore.QRect(0, 280, 121, 21)) self.pushButton_24.setObjectName("pushButton_24") self.pushButton_25 = QtGui.QPushButton(self.centralwidget) self.pushButton_25.setGeometry(QtCore.QRect(0, 300, 121, 21)) self.pushButton_25.setObjectName("pushButton_25") self.qvtkWidget = QVTKRenderWindowInteractor(self.centralwidget) self.qvtkWidget.setGeometry(QtCore.QRect(130, 30, 971, 641)) self.qvtkWidget.setObjectName("qvtkWidget") self.kurlrequester = KUrlRequester(self.centralwidget) self.kurlrequester.setGeometry(QtCore.QRect(130, 0, 201, 31)) self.kurlrequester.setObjectName("kurlrequester") self.listWidget_2 = QtGui.QListWidget(self.centralwidget) self.listWidget_2.setGeometry(QtCore.QRect(1100, 30, 171, 51)) self.listWidget_2.setObjectName("listWidget_2") self.pushButton_29 = QtGui.QPushButton(self.centralwidget) self.pushButton_29.setGeometry(QtCore.QRect(1220, 160, 51, 31)) self.pushButton_29.setObjectName("pushButton_29") self.label_10 = QtGui.QLabel(self.centralwidget) self.label_10.setGeometry(QtCore.QRect(1110, 100, 121, 20)) self.label_10.setObjectName("label_10") self.kintnuminput = KIntNumInput(self.centralwidget) self.kintnuminput.setGeometry(QtCore.QRect(1160, 120, 31, 21)) self.kintnuminput.setObjectName("kintnuminput") self.kintnuminput_2 = KIntNumInput(self.centralwidget) self.kintnuminput_2.setGeometry(QtCore.QRect(1190, 120, 31, 21)) self.kintnuminput_2.setObjectName("kintnuminput_2") self.kintnuminput_4 = KIntNumInput(self.centralwidget) self.kintnuminput_4.setGeometry(QtCore.QRect(1160, 140, 31, 21)) self.kintnuminput_4.setObjectName("kintnuminput_4") self.kintnuminput_5 = KIntNumInput(self.centralwidget) self.kintnuminput_5.setGeometry(QtCore.QRect(1190, 140, 31, 21)) self.kintnuminput_5.setObjectName("kintnuminput_5") self.kintnuminput_7 = KIntNumInput(self.centralwidget) self.kintnuminput_7.setGeometry(QtCore.QRect(1160, 160, 31, 21)) self.kintnuminput_7.setObjectName("kintnuminput_7") self.kintnuminput_8 = KIntNumInput(self.centralwidget) self.kintnuminput_8.setGeometry(QtCore.QRect(1190, 160, 31, 21)) self.kintnuminput_8.setObjectName("kintnuminput_8") self.label_8 = QtGui.QLabel(self.centralwidget) self.label_8.setGeometry(QtCore.QRect(1130, 120, 21, 16)) self.label_8.setObjectName("label_8") self.label_11 = QtGui.QLabel(self.centralwidget) self.label_11.setGeometry(QtCore.QRect(1130, 140, 21, 16)) self.label_11.setObjectName("label_11") self.label_12 = QtGui.QLabel(self.centralwidget) self.label_12.setGeometry(QtCore.QRect(1130, 160, 21, 16)) self.label_12.setObjectName("label_12") self.pushButton_6 = QtGui.QPushButton(self.centralwidget) self.pushButton_6.setGeometry(QtCore.QRect(0, 160, 121, 21)) self.pushButton_6.setObjectName("pushButton_6") self.pushButton_15 = QtGui.QPushButton(self.centralwidget) self.pushButton_15.setGeometry(QtCore.QRect(0, 180, 121, 21)) self.pushButton_15.setObjectName("pushButton_15") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1270, 23)) self.menubar.setObjectName("menubar") self.menuInput = QtGui.QMenu(self.menubar) self.menuInput.setObjectName("menuInput") self.menuOutput = QtGui.QMenu(self.menubar) self.menuOutput.setObjectName("menuOutput") self.menuSettings = QtGui.QMenu(self.menubar) self.menuSettings.setObjectName("menuSettings") self.menuHelp = QtGui.QMenu(self.menubar) self.menuHelp.setObjectName("menuHelp") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionImport_vtk_file = QtGui.QAction(MainWindow) self.actionImport_vtk_file.setObjectName("actionImport_vtk_file") self.actionImport_dat_file = QtGui.QAction(MainWindow) self.actionImport_dat_file.setObjectName("actionImport_dat_file") self.actionSave_as_JPEG = QtGui.QAction(MainWindow) self.actionSave_as_JPEG.setObjectName("actionSave_as_JPEG") self.actionAutor = QtGui.QAction(MainWindow) self.actionAutor.setObjectName("actionAutor") self.actionWersja = QtGui.QAction(MainWindow) self.actionWersja.setObjectName("actionWersja") self.actionLinki = QtGui.QAction(MainWindow) self.actionLinki.setObjectName("actionLinki") self.actionBackground_color = QtGui.QAction(MainWindow) self.actionBackground_color.setObjectName("actionBackground_color") self.actionWork_space = QtGui.QAction(MainWindow) self.actionWork_space.setObjectName("actionWork_space") self.actionExport_properties = QtGui.QAction(MainWindow) self.actionExport_properties.setObjectName("actionExport_properties") self.actionExit = QtGui.QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionSave_Session = QtGui.QAction(MainWindow) self.actionSave_Session.setObjectName("actionSave_Session") self.actionExport_directory = QtGui.QAction(MainWindow) self.actionExport_directory.setObjectName("actionExport_directory") self.actionTutorials = QtGui.QAction(MainWindow) self.actionTutorials.setObjectName("actionTutorials") self.menuInput.addAction(self.actionSave_Session) self.menuInput.addAction(self.actionExit) self.menuOutput.addAction(self.actionSave_as_JPEG) self.menuOutput.addAction(self.actionExport_directory) self.menuSettings.addAction(self.actionBackground_color) self.menuSettings.addAction(self.actionWork_space) self.menuHelp.addAction(self.actionAutor) self.menuHelp.addAction(self.actionTutorials) self.menubar.addAction(self.menuInput.menuAction()) self.menubar.addAction(self.menuOutput.menuAction()) self.menubar.addAction(self.menuSettings.menuAction()) self.menubar.addAction(self.menuHelp.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.connections() def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton.setText(QtGui.QApplication.translate("MainWindow", "Isosurface", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_2.setText(QtGui.QApplication.translate("MainWindow", "XYZ Plot", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_3.setText(QtGui.QApplication.translate("MainWindow", "XY Plot", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_4.setText(QtGui.QApplication.translate("MainWindow", "Mat Plot 3D", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_5.setText(QtGui.QApplication.translate("MainWindow", "Layers, Dots", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_7.setText(QtGui.QApplication.translate("MainWindow", "Outline", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_8.setText(QtGui.QApplication.translate("MainWindow", "Axes", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText(QtGui.QApplication.translate("MainWindow", "Data Objects", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText(QtGui.QApplication.translate("MainWindow", "Rendered Objects", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText(QtGui.QApplication.translate("MainWindow", "Object Options", None, QtGui.QApplication.UnicodeUTF8)) self.label_4.setText(QtGui.QApplication.translate("MainWindow", "Function options", None, QtGui.QApplication.UnicodeUTF8)) self.label_5.setText(QtGui.QApplication.translate("MainWindow", "Visualization functions", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_13.setText(QtGui.QApplication.translate("MainWindow", "Sphere Volume", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_14.setText(QtGui.QApplication.translate("MainWindow", "Scalar Bar", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_16.setText(QtGui.QApplication.translate("MainWindow", "Delete Data Object", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_17.setText(QtGui.QApplication.translate("MainWindow", "Delete", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_18.setText(QtGui.QApplication.translate("MainWindow", "Hide", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_19.setText(QtGui.QApplication.translate("MainWindow", "Show", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_20.setText(QtGui.QApplication.translate("MainWindow", "Delete All", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_21.setText(QtGui.QApplication.translate("MainWindow", "New window", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_10.setText(QtGui.QApplication.translate("MainWindow", "Set View", None, QtGui.QApplication.UnicodeUTF8)) self.label_6.setText(QtGui.QApplication.translate("MainWindow", "View", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_9.setText(QtGui.QApplication.translate("MainWindow", "Reset Camera", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_11.setText(QtGui.QApplication.translate("MainWindow", "Apply", None, QtGui.QApplication.UnicodeUTF8)) self.label_7.setText(QtGui.QApplication.translate("MainWindow", "Zoom", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_26.setText(QtGui.QApplication.translate("MainWindow", "XView", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_27.setText(QtGui.QApplication.translate("MainWindow", "YView", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_28.setText(QtGui.QApplication.translate("MainWindow", "ZView", None, QtGui.QApplication.UnicodeUTF8)) self.label_9.setText(QtGui.QApplication.translate("MainWindow", "Magnification", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_12.setText(QtGui.QApplication.translate("MainWindow", "Photo", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_22.setText(QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_23.setText(QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_24.setText(QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_25.setText(QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_29.setText(QtGui.QApplication.translate("MainWindow", "Cut", None, QtGui.QApplication.UnicodeUTF8)) self.label_10.setText(QtGui.QApplication.translate("MainWindow", "Shrink numerical box", None, QtGui.QApplication.UnicodeUTF8)) self.label_8.setText(QtGui.QApplication.translate("MainWindow", "Nx", None, QtGui.QApplication.UnicodeUTF8)) self.label_11.setText(QtGui.QApplication.translate("MainWindow", "Ny", None, QtGui.QApplication.UnicodeUTF8)) self.label_12.setText(QtGui.QApplication.translate("MainWindow", "Nz", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_6.setText(QtGui.QApplication.translate("MainWindow", "Vector Field", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_15.setText(QtGui.QApplication.translate("MainWindow", "Volume", None, QtGui.QApplication.UnicodeUTF8)) self.menuInput.setTitle(QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) self.menuOutput.setTitle(QtGui.QApplication.translate("MainWindow", "Output", None, QtGui.QApplication.UnicodeUTF8)) self.menuSettings.setTitle(QtGui.QApplication.translate("MainWindow", "Settings", None, QtGui.QApplication.UnicodeUTF8)) self.menuHelp.setTitle(QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.actionImport_vtk_file.setText(QtGui.QApplication.translate("MainWindow", "Open vtk file", None, QtGui.QApplication.UnicodeUTF8)) self.actionImport_dat_file.setText(QtGui.QApplication.translate("MainWindow", "Open dat file", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_as_JPEG.setText(QtGui.QApplication.translate("MainWindow", "Export format", None, QtGui.QApplication.UnicodeUTF8)) self.actionAutor.setText(QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8)) self.actionWersja.setText(QtGui.QApplication.translate("MainWindow", "Wersja", None, QtGui.QApplication.UnicodeUTF8)) self.actionLinki.setText(QtGui.QApplication.translate("MainWindow", "Linki", None, QtGui.QApplication.UnicodeUTF8)) self.actionBackground_color.setText(QtGui.QApplication.translate("MainWindow", "Background color", None, QtGui.QApplication.UnicodeUTF8)) self.actionWork_space.setText(QtGui.QApplication.translate("MainWindow", "Work space", None, QtGui.QApplication.UnicodeUTF8)) self.actionExport_properties.setText(QtGui.QApplication.translate("MainWindow", "Export properties", None, QtGui.QApplication.UnicodeUTF8)) self.actionExit.setText(QtGui.QApplication.translate("MainWindow", "Exit", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Session.setText(QtGui.QApplication.translate("MainWindow", "Save Session", None, QtGui.QApplication.UnicodeUTF8)) self.actionExport_directory.setText(QtGui.QApplication.translate("MainWindow", "Export directory", None, QtGui.QApplication.UnicodeUTF8)) self.actionTutorials.setText(QtGui.QApplication.translate("MainWindow", "Tutorials", None, QtGui.QApplication.UnicodeUTF8))
def __init__(self, parent=None): Qt.QMainWindow.__init__(self, parent) self.__counter = 0 self.__prefix = "/home/adriano/PycharmProjects/realsense_multicam/pics/" self.frame = Qt.QFrame() self.vtkWidget = QVTKRenderWindowInteractor(self.frame) self.pd_collection = [] self.mapper_collection = [] self.actor_collection = [] self.np_array = [] self.cells_npy = [] self.timer_count = 0 self._n_coordinates = 0 self.align = rs.align(rs.stream.color) self._iren = self.vtkWidget.GetRenderWindow().GetInteractor() self._iren.GetInteractorStyle().SetCurrentStyleToTrackballActor() self._iren.GetInteractorStyle().SetCurrentStyleToTrackballCamera() print(type(self._iren.GetInteractorStyle())) self._timer = QTimer(self) self.__label_idx = QLabel('ID:', self) self.__txt_box_idx = QLineEdit(self) self.__button = QPushButton('Save Image', self) self.__button.setToolTip('Save 3D image.') self.__button.clicked.connect(self.save_image) self._timer.timeout.connect(self.timer_event) self.view_coordinates = [[0., .5, .5, 1.], [.5, .5, 1., 1.], [0., 0., .5, .5], [.5, 0., 1., .5]] cam_counter = 0 for pipe in pipelines: frame_set = pipe.wait_for_frames() # Wait for a coherent color frame # frames = None # real_sense_cam.get_pipeline().wait_for_frames() # Align the depth frame to color frame aligned_frames = self.align.process(frame_set) depth_frame = aligned_frames.get_depth_frame() color_frame = aligned_frames.get_color_frame() color_image = np.asanyarray(color_frame.get_data()) color_image = color_image.reshape( (color_image.shape[0] * color_image.shape[1], 3)) # self._colors.SetNumberOfTuples(color_image.shape[0]) colors = vtk.vtkUnsignedCharArray() colors.SetNumberOfComponents(3) # colors.SetName("Colors") current_pd = vtk.vtkPolyData() self.pd_collection.append(current_pd) colors.SetArray(vtk_np.numpy_to_vtk(color_image), color_image.shape[0] * color_image.shape[1], 1) current_pd.GetPointData().SetScalars(colors) pc = rs.pointcloud() point_cloud = pc.calculate(depth_frame) pc.map_to(color_frame) v, t = point_cloud.get_vertices( ), point_cloud.get_texture_coordinates() vertices = np.asanyarray(v).view(np.float32).reshape(-1, 3) # xyz self._n_coordinates = vertices.shape[0] points = vtk.vtkPoints() cells = vtk.vtkCellArray() points.SetData(vtk_np.numpy_to_vtk(vertices)) cells_npy = np.vstack([ np.ones(self._n_coordinates, dtype=np.int64), np.arange(self._n_coordinates, dtype=np.int64) ]).T.flatten() cells.SetCells(self._n_coordinates, vtk_np.numpy_to_vtkIdTypeArray(cells_npy)) self.pd_collection[cam_counter].SetPoints(points) self.pd_collection[cam_counter].SetVerts(cells) mapper = vtk.vtkPolyDataMapper() self.mapper_collection.append(mapper) self.mapper_collection[cam_counter].SetInputData( self.pd_collection[cam_counter]) transform = vtk.vtkTransform() transform.SetMatrix(flip_transform) actor = vtk.vtkActor() self.actor_collection.append(actor) self.actor_collection[cam_counter].SetMapper( self.mapper_collection[cam_counter]) self.actor_collection[cam_counter].GetProperty( ).SetRepresentationToPoints() self.actor_collection[cam_counter].SetUserTransform(transform) current_ren = vtk.vtkRenderer() current_ren.GetActiveCamera() # set viewports if the number of cams ara greater than one if len(pipelines) > 1: current_ren.SetViewport(self.view_coordinates[cam_counter]) current_ren.AddActor(self.actor_collection[cam_counter]) self.vtkWidget.GetRenderWindow().AddRenderer(current_ren) cam_counter += 1 self._iren.AddObserver('TimerEvent', self.update_poly_data) dt = 30 # ms ide = self._iren.CreateRepeatingTimer(dt) self.frame.setLayout(self.__create_grid_layout()) self.setCentralWidget(self.frame) self.setWindowTitle("SmartUS Image Collector") self.__txt_box_idx.setFocus() self.show() self._iren.Initialize() self._iren.Start()
def keyPressEvent(self, e): """ This method is overridden to prevent the 's'/'w'/'e'/'q' keys from doing the default thing which is generally useless. It also handles the 'p' and 'l' keys so the picker and light manager are called. """ key = e.key() modifiers = e.modifiers() scene = self._scene camera = scene.camera if key in [QtCore.Qt.Key_Minus]: camera.zoom(0.8) scene.render() scene._record_methods('camera.zoom(0.8)\nrender()') return if key in [QtCore.Qt.Key_Equal, QtCore.Qt.Key_Plus]: camera.zoom(1.25) scene.render() scene._record_methods('camera.zoom(1.25)\nrender()') return if key in [QtCore.Qt.Key_E, QtCore.Qt.Key_Q, QtCore.Qt.Key_Escape]: scene._disable_fullscreen() return if key in [QtCore.Qt.Key_W]: return if key in [QtCore.Qt.Key_R]: scene._record_methods('reset_zoom()') return if key in [QtCore.Qt.Key_P] and modifiers == QtCore.Qt.NoModifier: pos = self.mapFromGlobal(QtGui.QCursor.pos()) x = pos.x() y = self.height() - pos.y() scene.picker.pick(x, y) return if key in [QtCore.Qt.Key_F] and modifiers == QtCore.Qt.NoModifier: pos = self.mapFromGlobal(QtGui.QCursor.pos()) x = pos.x() y = self.height() - pos.y() data = scene.picker.pick_world(x, y) coord = data.coordinate if coord is not None: camera.focal_point = coord scene.render() scene._record_methods('camera.focal_point = %r\n'\ 'render()'%list(coord)) return if key in [QtCore.Qt.Key_L] and modifiers == QtCore.Qt.NoModifier: scene.light_manager.configure() return if key in [QtCore.Qt.Key_S] and modifiers == QtCore.Qt.NoModifier: fname = popup_save(self.parent()) if len(fname) != 0: self.save(fname) return shift = ((modifiers & QtCore.Qt.ShiftModifier) == QtCore.Qt.ShiftModifier) if key == QtCore.Qt.Key_Left: if shift: camera.yaw(-5) scene._record_methods('camera.yaw(-5)') else: camera.azimuth(5) scene._record_methods('camera.azimuth(5)') scene.render() scene._record_methods('render()') return if key == QtCore.Qt.Key_Right: if shift: camera.yaw(5) scene._record_methods('camera.yaw(5)') else: camera.azimuth(-5) scene._record_methods('camera.azimuth(-5)') scene.render() scene._record_methods('render()') return if key == QtCore.Qt.Key_Up: if shift: camera.pitch(-5) scene._record_methods('camera.pitch(-5)') else: camera.elevation(-5) scene._record_methods('camera.elevation(-5)') camera.orthogonalize_view_up() scene.render() scene._record_methods('camera.orthogonalize_view_up()\nrender()') return if key == QtCore.Qt.Key_Down: if shift: camera.pitch(5) scene._record_methods('camera.pitch(5)') else: camera.elevation(5) scene._record_methods('camera.elevation(5)') camera.orthogonalize_view_up() scene.render() scene._record_methods('camera.orthogonalize_view_up()\nrender()') return QVTKRenderWindowInteractor.keyPressEvent(self, e)
def __init__(self, scene, parent, **kwargs): QVTKRenderWindowInteractor.__init__(self, parent, **kwargs) self._scene = scene self._interacting = False
def resizeEvent(self, e): """ Reimplemented to refresh the traits of the render window. """ QVTKRenderWindowInteractor.resizeEvent(self, e) self._scene._renwin.update_traits()
def mousePressEvent(self, ev): """Override for mouse presses.""" self._interacting = True QVTKRenderWindowInteractor.mousePressEvent(self, ev)
def mouseReleaseEvent(self, ev): """Override for mouse releases.""" self._interacting = False QVTKRenderWindowInteractor.mouseReleaseEvent(self, ev)
def __init__(self, parent=None): parent.resize(765, 545) parent.setWindowTitle('Render scene') self.qvtkWidget = QVTKRenderWindowInteractor(parent) self.qvtkWidget.setGeometry(QtCore.QRect(0, 0, 761, 521)) self.qvtkWidget.setObjectName("qvtkWidget") self.PhotoButton = QtGui.QPushButton(parent) self.PhotoButton.setGeometry(QtCore.QRect(0, 523, 50, 20)) self.Label = QtGui.QLabel(parent) self.Label.setGeometry(QtCore.QRect(55, 523, 100, 20)) self.plainTextEdit = QtGui.QPlainTextEdit(parent) self.plainTextEdit.setGeometry(QtCore.QRect(160, 523, 50, 20)) self.XviewButton = QtGui.QPushButton(parent) self.XviewButton.setGeometry(QtCore.QRect(215, 523, 50, 20)) self.YviewButton = QtGui.QPushButton(parent) self.YviewButton.setGeometry(QtCore.QRect(270, 523, 50, 20)) self.ZviewButton = QtGui.QPushButton(parent) self.ZviewButton.setGeometry(QtCore.QRect(325, 523, 50, 20)) self.ResetCameraButton = QtGui.QPushButton(parent) self.ResetCameraButton.setGeometry(QtCore.QRect(380, 523, 80, 20)) self.BackgroundColorButton = QtGui.QPushButton(parent) self.BackgroundColorButton.setGeometry(QtCore.QRect(465, 523, 150, 20)) self.PhotoButton.setText( QtGui.QApplication.translate("SubWindow", "Photo !", None, QtGui.QApplication.UnicodeUTF8)) self.Label.setText( QtGui.QApplication.translate("MainWindow", "Set magnification", None, QtGui.QApplication.UnicodeUTF8)) self.XviewButton.setText( QtGui.QApplication.translate("MainWindow", "Xview", None, QtGui.QApplication.UnicodeUTF8)) self.YviewButton.setText( QtGui.QApplication.translate("MainWindow", "Yview", None, QtGui.QApplication.UnicodeUTF8)) self.ZviewButton.setText( QtGui.QApplication.translate("MainWindow", "Zview", None, QtGui.QApplication.UnicodeUTF8)) self.ResetCameraButton.setText( QtGui.QApplication.translate("MainWindow", "Reset Camera", None, QtGui.QApplication.UnicodeUTF8)) self.BackgroundColorButton.setText( QtGui.QApplication.translate("MainWindow", "Change background color", None, QtGui.QApplication.UnicodeUTF8)) self.renderer = vtk.vtkRenderer() self.renderer.SetBackground(1, 1, 1) self.renderer.ResetCamera() self.qvtkWidget.GetRenderWindow().AddRenderer(self.renderer) QtCore.QObject.connect(self.PhotoButton, QtCore.SIGNAL('clicked()'), self.photo) QtCore.QObject.connect(self.XviewButton, QtCore.SIGNAL('clicked()'), self.x_view) QtCore.QObject.connect(self.YviewButton, QtCore.SIGNAL('clicked()'), self.y_view) QtCore.QObject.connect(self.ZviewButton, QtCore.SIGNAL('clicked()'), self.z_view) QtCore.QObject.connect(self.ResetCameraButton, QtCore.SIGNAL('clicked()'), self.reset_camera) QtCore.QObject.connect(self.BackgroundColorButton, QtCore.SIGNAL('clicked()'), self.change_background_color)
class New_Render_Widget(QtGui.QWidget): def __init__(self, parent=None): parent.resize(765, 545) parent.setWindowTitle('Render scene') self.qvtkWidget = QVTKRenderWindowInteractor(parent) self.qvtkWidget.setGeometry(QtCore.QRect(0, 0, 761, 521)) self.qvtkWidget.setObjectName("qvtkWidget") self.PhotoButton = QtGui.QPushButton(parent) self.PhotoButton.setGeometry(QtCore.QRect(0, 523, 50, 20)) self.Label = QtGui.QLabel(parent) self.Label.setGeometry(QtCore.QRect(55, 523, 100, 20)) self.plainTextEdit = QtGui.QPlainTextEdit(parent) self.plainTextEdit.setGeometry(QtCore.QRect(160, 523, 50, 20)) self.XviewButton = QtGui.QPushButton(parent) self.XviewButton.setGeometry(QtCore.QRect(215, 523, 50, 20)) self.YviewButton = QtGui.QPushButton(parent) self.YviewButton.setGeometry(QtCore.QRect(270, 523, 50, 20)) self.ZviewButton = QtGui.QPushButton(parent) self.ZviewButton.setGeometry(QtCore.QRect(325, 523, 50, 20)) self.ResetCameraButton = QtGui.QPushButton(parent) self.ResetCameraButton.setGeometry(QtCore.QRect(380, 523, 80, 20)) self.BackgroundColorButton = QtGui.QPushButton(parent) self.BackgroundColorButton.setGeometry(QtCore.QRect(465, 523, 150, 20)) self.PhotoButton.setText( QtGui.QApplication.translate("SubWindow", "Photo !", None, QtGui.QApplication.UnicodeUTF8)) self.Label.setText( QtGui.QApplication.translate("MainWindow", "Set magnification", None, QtGui.QApplication.UnicodeUTF8)) self.XviewButton.setText( QtGui.QApplication.translate("MainWindow", "Xview", None, QtGui.QApplication.UnicodeUTF8)) self.YviewButton.setText( QtGui.QApplication.translate("MainWindow", "Yview", None, QtGui.QApplication.UnicodeUTF8)) self.ZviewButton.setText( QtGui.QApplication.translate("MainWindow", "Zview", None, QtGui.QApplication.UnicodeUTF8)) self.ResetCameraButton.setText( QtGui.QApplication.translate("MainWindow", "Reset Camera", None, QtGui.QApplication.UnicodeUTF8)) self.BackgroundColorButton.setText( QtGui.QApplication.translate("MainWindow", "Change background color", None, QtGui.QApplication.UnicodeUTF8)) self.renderer = vtk.vtkRenderer() self.renderer.SetBackground(1, 1, 1) self.renderer.ResetCamera() self.qvtkWidget.GetRenderWindow().AddRenderer(self.renderer) QtCore.QObject.connect(self.PhotoButton, QtCore.SIGNAL('clicked()'), self.photo) QtCore.QObject.connect(self.XviewButton, QtCore.SIGNAL('clicked()'), self.x_view) QtCore.QObject.connect(self.YviewButton, QtCore.SIGNAL('clicked()'), self.y_view) QtCore.QObject.connect(self.ZviewButton, QtCore.SIGNAL('clicked()'), self.z_view) QtCore.QObject.connect(self.ResetCameraButton, QtCore.SIGNAL('clicked()'), self.reset_camera) QtCore.QObject.connect(self.BackgroundColorButton, QtCore.SIGNAL('clicked()'), self.change_background_color) def add_actor(self, actor): try: self.renderer.AddActor(actor) except: self.renderer.AddVolume(actor) self.renderer.Render() def photo(self): magnif = str(self.plainTextEdit.toPlainText()) if magnif == "": magnif = 1 else: magnif = int(magnif) w2if = vtk.vtkWindowToImageFilter() w2if.Update() renderLarge = vtk.vtkRenderLargeImage() renderer = self.qvtkWidget.GetRenderWindow().GetRenderers( ).GetFirstRenderer() renderLarge.SetInput(renderer) renderLarge.SetMagnification(magnif) writer = vtk.vtkPNGWriter() writer.SetInputConnection(renderLarge.GetOutputPort()) writer.SetFileName( str(QtGui.QFileDialog.getOpenFileName(directory="./output"))) writer.Write() def x_view(self): try: self.renderer.GetActiveCamera().SetViewUp(1, 0, 0) self.renderer.ResetCamera() except: print "x_view" def y_view(self): try: self.renderer.GetActiveCamera().SetViewUp(0, 1, 0) self.renderer.ResetCamera() except: print "y_view" def z_view(self): try: self.renderer.GetActiveCamera().SetViewUp(0, 0, 1) self.renderer.ResetCamera() except: print "z_view" def reset_camera(self): try: self.renderer.ResetCamera() except: print "reset_camera" def change_background_color(self): try: self.renderer.SetBackground( self.qcolor2rgb(QtGui.QColorDialog.getColor())) except: print "change background color" def qcolor2rgb(self, qcolor): return [ qcolor.red() / 255.0, qcolor.green() / 255.0, qcolor.blue() / 255.0 ]
class MainWindow(QtWidgets.QMainWindow): def __init__(self, stlScale = 0.001, parent = None): QtWidgets.QMainWindow.__init__(self, parent) self.frame = QtWidgets.QFrame() self.vl = QtWidgets.QVBoxLayout() self.vtkWidget = QVTKRenderWindowInteractor(self.frame) self.vl.addWidget(self.vtkWidget) self.ren = vtk.vtkRenderer() self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) self.iren = self.vtkWidget.GetRenderWindow().GetInteractor() # Create sphere source = vtk.vtkSphereSource() source.SetCenter(0, 0, 0) source.SetRadius(0.003) sphereMapper = vtk.vtkPolyDataMapper() sphereMapper.SetInputConnection(source.GetOutputPort()) self.sphereActor = vtk.vtkActor() self.sphereActor.SetMapper(sphereMapper) self.sphereActor.GetProperty().SetColor(1, 0, 0) self.ren.AddActor(self.sphereActor) # Read in STL reader = vtk.vtkSTLReader() reader.SetFileName('/home/biomed/october_15_ws/src/dvrk_vision/defaults/femur.stl') scaler = vtk.vtkTransformFilter() if vtk.VTK_MAJOR_VERSION <= 5: scaler.SetInputConnection(reader.GetOutput()) else: scaler.SetInputConnection(reader.GetOutputPort()) scaleTransform = vtk.vtkTransform() scaleTransform.Identity() scaleTransform.Scale(stlScale, stlScale, stlScale) scaler.SetTransform(scaleTransform) # Create a mapper mapper = vtk.vtkPolyDataMapper() if vtk.VTK_MAJOR_VERSION <= 5: mapper.SetInput(scaler.GetOutput()) else: mapper.SetInputConnection(scaler.GetOutputPort()) # Create an actor self.actor = vtk.vtkActor() self.actor.SetMapper(mapper) # Read in camera registration scriptDirectory = os.path.dirname(os.path.abspath(__file__)) filePath = os.path.join(scriptDirectory, '..', '..', 'defaults', 'registration_params.yaml') with open(filePath, 'r') as f: data = yaml.load(f) self.camTransform = np.array(data['transform']) # Add point cloud self.pointCloud = VtkPointCloud() tf = np.linalg.inv(self.camTransform) transform = vtk.vtkTransform() transform.SetMatrix(tf.ravel()) self.pointCloud.vtkActor.SetPosition(transform.GetPosition()) self.pointCloud.vtkActor.SetOrientation(transform.GetOrientation()) self.ren.AddActor(self.pointCloud.vtkActor) self.ren.AddActor(self.actor) poseSub = rospy.Subscriber("/stereo/registration_pose", PoseStamped, self.poseCallback) self.ren.ResetCamera() self.frame.setLayout(self.vl) self.setCentralWidget(self.frame) self.vtkThread = QThread() self.actorMat = np.eye(4) self.thread = QThread() robot = psm('PSM2') self.worker = Worker(robot) self.worker.intReady.connect(self.onIntReady) self.worker.moveToThread(self.thread) self.worker.finished.connect(self.thread.quit) self.thread.started.connect(self.worker.procCounter) self.thread.start() self.started = False self.show() self.iren.Initialize() def saveData(self): print("Saving data in") np.savetxt("probed_points.txt", self.worker.probedPoints) np.savetxt("bone_transform.txt", self.actorMat) np.savetxt("camera_transform.txt", np.linalg.inv(self.camTransform)) def poseCallback(self, data): pos = data.pose.position rot = data.pose.orientation self.actorMat = transformations.quaternion_matrix([rot.x,rot.y,rot.z,rot.w]) self.actorMat[0:3,3] = [pos.x,pos.y,pos.z] transform = vtk.vtkTransform() transform.Identity() transform.SetMatrix(self.actorMat.ravel()) self.actor.SetPosition(transform.GetPosition()) self.actor.SetOrientation(transform.GetOrientation()) self.actor.VisibilityOn() if not self.started: self.ren.ResetCamera() self.started = True def onIntReady(self): mat = np.eye(4) mat[0:3,3] = self.worker.pos tf = np.linalg.inv(self.camTransform) mat = np.dot(tf, mat) transform = vtk.vtkTransform() transform.Identity() transform.SetMatrix(mat.ravel()) self.sphereActor.SetPosition(transform.GetPosition()) self.sphereActor.SetOrientation(transform.GetOrientation()) # Modify probedPoints self.pointCloud.clearPoints() for point in self.worker.probedPoints: self.pointCloud.addPoint(point) self.vtkWidget.GetRenderWindow().Render()
class QSliceViewWidget(QWidget): """ sagittal coronal transverse """ def __init__(self, orientation='transverse', parent=None): super(QSliceViewWidget, self).__init__(parent) # set up vtk pipeline and create vtkWidget colors = vtk.vtkNamedColors() self.orientation = orientation self.viewer = vtk.vtkImageViewer2() self.orientations = {'coronal': 0, 'sagittal': 1, 'transverse': 2} self.viewer.SetSliceOrientation(self.orientations[self.orientation]) # get&set the camera self.camera = self.viewer.GetRenderer().GetActiveCamera() ras = [[-1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, -1.0]] self.camera.SetPosition(ras[self.orientations[self.orientation]]) self.camera.ParallelProjectionOn() self.iren = vtk.vtkGenericRenderWindowInteractor() self.iren.SetRenderWindow(self.viewer.GetRenderWindow()) kw = {'rw': self.viewer.GetRenderWindow(), 'iren': self.iren} self.vtkWidget = QVTKRenderWindowInteractor(parent, **kw) # create QSlider self.sliderWidget = QSlider(Qt.Horizontal) # create the MainLayout of the whole widget self.MainLayout = QVBoxLayout() self.MainLayout.addWidget(self.sliderWidget) self.MainLayout.addWidget(self.vtkWidget) self.setLayout(self.MainLayout) # set the signal and slot self.sliderWidget.valueChanged.connect(self.slider_changed) def set_data_reader(self, reader, use_port=False): self.viewer.SetInputData(reader.GetOutput()) matrix = reader.GetSFormMatrix() self.viewer.GetImageActor().PokeMatrix(matrix) def slider_offset(self, offset): self.sliderWidget.setMaximum(self.viewer.GetSliceMax()) self.sliderWidget.setMinimum(self.viewer.GetSliceMin()) mid = (self.viewer.GetSliceMax() - self.viewer.GetSliceMin()) / 2 self.sliderWidget.setValue(mid) def start_render(self): # initiate slider self._init_slider() # set InteractorStyle interactor_style = vtk.vtkInteractorStyleImage() self.vtkWidget.SetInteractorStyle(interactor_style) # start render and interactor self.vtkWidget.Initialize() self.vtkWidget.Start() # set camera self.viewer.GetRenderer().ResetCamera() def _init_slider(self): self.sliderWidget.setMaximum(self.viewer.GetSliceMax()) self.sliderWidget.setMinimum(self.viewer.GetSliceMin()) mid = (self.viewer.GetSliceMax() - self.viewer.GetSliceMin()) / 2 self.sliderWidget.setValue(mid) # signal and slot def slider_changed(self): self.viewer.SetSlice(self.sliderWidget.value())
class Ui_MainWindow(object, GUI_AKCJE): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1270, 715) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(0, 40, 121, 21)) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtGui.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(0, 220, 121, 21)) self.pushButton_2.setObjectName("pushButton_2") self.pushButton_3 = QtGui.QPushButton(self.centralwidget) self.pushButton_3.setGeometry(QtCore.QRect(0, 200, 121, 21)) self.pushButton_3.setObjectName("pushButton_3") self.pushButton_4 = QtGui.QPushButton(self.centralwidget) self.pushButton_4.setGeometry(QtCore.QRect(0, 80, 121, 21)) self.pushButton_4.setObjectName("pushButton_4") self.pushButton_5 = QtGui.QPushButton(self.centralwidget) self.pushButton_5.setGeometry(QtCore.QRect(0, 60, 121, 21)) self.pushButton_5.setObjectName("pushButton_5") self.pushButton_7 = QtGui.QPushButton(self.centralwidget) self.pushButton_7.setGeometry(QtCore.QRect(0, 100, 121, 21)) self.pushButton_7.setObjectName("pushButton_7") self.pushButton_8 = QtGui.QPushButton(self.centralwidget) self.pushButton_8.setGeometry(QtCore.QRect(0, 20, 121, 21)) self.pushButton_8.setObjectName("pushButton_8") self.label = QtGui.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(1150, 10, 81, 16)) self.label.setObjectName("label") self.scrollArea = QtGui.QScrollArea(self.centralwidget) self.scrollArea.setGeometry(QtCore.QRect(1100, 190, 171, 211)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtGui.QWidget(self.scrollArea) self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 169, 209)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.listWidget = QtGui.QListWidget(self.scrollAreaWidgetContents) self.listWidget.setGeometry(QtCore.QRect(0, 20, 171, 191)) self.listWidget.setObjectName("listWidget") self.label_2 = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_2.setGeometry(QtCore.QRect(40, 0, 101, 16)) self.label_2.setObjectName("label_2") self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.frame = QtGui.QFrame(self.centralwidget) self.frame.setGeometry(QtCore.QRect(1100, 440, 171, 231)) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName("frame") self.label_3 = QtGui.QLabel(self.frame) self.label_3.setGeometry(QtCore.QRect(30, 0, 121, 20)) self.label_3.setObjectName("label_3") self.frame_2 = QtGui.QFrame(self.centralwidget) self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331)) self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_2.setFrameShadow(QtGui.QFrame.Raised) self.frame_2.setObjectName("frame_2") self.label_4 = QtGui.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(0, 320, 111, 16)) self.label_4.setObjectName("label_4") self.label_5 = QtGui.QLabel(self.centralwidget) self.label_5.setGeometry(QtCore.QRect(0, 0, 131, 16)) self.label_5.setObjectName("label_5") self.pushButton_13 = QtGui.QPushButton(self.centralwidget) self.pushButton_13.setGeometry(QtCore.QRect(0, 140, 121, 21)) self.pushButton_13.setObjectName("pushButton_13") self.pushButton_14 = QtGui.QPushButton(self.centralwidget) self.pushButton_14.setGeometry(QtCore.QRect(0, 120, 121, 21)) self.pushButton_14.setObjectName("pushButton_14") self.pushButton_16 = QtGui.QPushButton(self.centralwidget) self.pushButton_16.setGeometry(QtCore.QRect(1100, 80, 171, 20)) self.pushButton_16.setObjectName("pushButton_16") self.pushButton_17 = QtGui.QPushButton(self.centralwidget) self.pushButton_17.setGeometry(QtCore.QRect(1180, 420, 91, 21)) self.pushButton_17.setObjectName("pushButton_17") self.pushButton_18 = QtGui.QPushButton(self.centralwidget) self.pushButton_18.setGeometry(QtCore.QRect(1180, 400, 51, 21)) self.pushButton_18.setObjectName("pushButton_18") self.pushButton_19 = QtGui.QPushButton(self.centralwidget) self.pushButton_19.setGeometry(QtCore.QRect(1230, 400, 41, 21)) self.pushButton_19.setObjectName("pushButton_19") self.pushButton_20 = QtGui.QPushButton(self.centralwidget) self.pushButton_20.setGeometry(QtCore.QRect(1100, 420, 81, 21)) self.pushButton_20.setObjectName("pushButton_20") self.pushButton_21 = QtGui.QPushButton(self.centralwidget) self.pushButton_21.setGeometry(QtCore.QRect(1100, 400, 81, 21)) self.pushButton_21.setObjectName("pushButton_21") self.frame_3 = QtGui.QFrame(self.centralwidget) self.frame_3.setGeometry(QtCore.QRect(350, 0, 601, 31)) self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_3.setFrameShadow(QtGui.QFrame.Raised) self.frame_3.setObjectName("frame_3") self.pushButton_10 = QtGui.QPushButton(self.frame_3) self.pushButton_10.setGeometry(QtCore.QRect(50, 0, 61, 31)) self.pushButton_10.setObjectName("pushButton_10") self.textEdit = QtGui.QTextEdit(self.frame_3) self.textEdit.setGeometry(QtCore.QRect(110, 0, 61, 31)) self.textEdit.setObjectName("textEdit") self.label_6 = QtGui.QLabel(self.frame_3) self.label_6.setGeometry(QtCore.QRect(0, 0, 41, 31)) self.label_6.setObjectName("label_6") self.pushButton_9 = QtGui.QPushButton(self.frame_3) self.pushButton_9.setGeometry(QtCore.QRect(290, 0, 85, 31)) self.pushButton_9.setObjectName("pushButton_9") self.horizontalSlider = QtGui.QSlider(self.frame_3) self.horizontalSlider.setGeometry(QtCore.QRect(450, 10, 101, 19)) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setObjectName("horizontalSlider") self.pushButton_11 = QtGui.QPushButton(self.frame_3) self.pushButton_11.setGeometry(QtCore.QRect(550, 0, 51, 31)) self.pushButton_11.setObjectName("pushButton_11") self.label_7 = QtGui.QLabel(self.frame_3) self.label_7.setGeometry(QtCore.QRect(390, 10, 41, 16)) self.label_7.setObjectName("label_7") self.pushButton_26 = QtGui.QPushButton(self.frame_3) self.pushButton_26.setGeometry(QtCore.QRect(170, 0, 41, 31)) self.pushButton_26.setObjectName("pushButton_26") self.pushButton_27 = QtGui.QPushButton(self.frame_3) self.pushButton_27.setGeometry(QtCore.QRect(210, 0, 41, 31)) self.pushButton_27.setObjectName("pushButton_27") self.pushButton_28 = QtGui.QPushButton(self.frame_3) self.pushButton_28.setGeometry(QtCore.QRect(250, 0, 41, 31)) self.pushButton_28.setObjectName("pushButton_28") self.frame_4 = QtGui.QFrame(self.centralwidget) self.frame_4.setGeometry(QtCore.QRect(950, 0, 151, 31)) self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_4.setFrameShadow(QtGui.QFrame.Raised) self.frame_4.setObjectName("frame_4") self.label_9 = QtGui.QLabel(self.frame_4) self.label_9.setGeometry(QtCore.QRect(0, 0, 81, 31)) self.label_9.setObjectName("label_9") self.plainTextEdit_2 = QtGui.QPlainTextEdit(self.frame_4) self.plainTextEdit_2.setGeometry(QtCore.QRect(80, 0, 31, 31)) self.plainTextEdit_2.setObjectName("plainTextEdit_2") self.pushButton_12 = QtGui.QPushButton(self.frame_4) self.pushButton_12.setGeometry(QtCore.QRect(110, 0, 41, 31)) self.pushButton_12.setObjectName("pushButton_12") self.pushButton_22 = QtGui.QPushButton(self.centralwidget) self.pushButton_22.setGeometry(QtCore.QRect(0, 240, 121, 21)) self.pushButton_22.setObjectName("pushButton_22") self.pushButton_23 = QtGui.QPushButton(self.centralwidget) self.pushButton_23.setGeometry(QtCore.QRect(0, 260, 121, 21)) self.pushButton_23.setObjectName("pushButton_23") self.pushButton_24 = QtGui.QPushButton(self.centralwidget) self.pushButton_24.setGeometry(QtCore.QRect(0, 280, 121, 21)) self.pushButton_24.setObjectName("pushButton_24") self.pushButton_25 = QtGui.QPushButton(self.centralwidget) self.pushButton_25.setGeometry(QtCore.QRect(0, 300, 121, 21)) self.pushButton_25.setObjectName("pushButton_25") self.qvtkWidget = QVTKRenderWindowInteractor(self.centralwidget) self.qvtkWidget.setGeometry(QtCore.QRect(130, 30, 971, 641)) self.qvtkWidget.setObjectName("qvtkWidget") self.kurlrequester = KUrlRequester(self.centralwidget) self.kurlrequester.setGeometry(QtCore.QRect(130, 0, 201, 31)) self.kurlrequester.setObjectName("kurlrequester") self.listWidget_2 = QtGui.QListWidget(self.centralwidget) self.listWidget_2.setGeometry(QtCore.QRect(1100, 30, 171, 51)) self.listWidget_2.setObjectName("listWidget_2") self.pushButton_29 = QtGui.QPushButton(self.centralwidget) self.pushButton_29.setGeometry(QtCore.QRect(1220, 160, 51, 31)) self.pushButton_29.setObjectName("pushButton_29") self.label_10 = QtGui.QLabel(self.centralwidget) self.label_10.setGeometry(QtCore.QRect(1110, 100, 121, 20)) self.label_10.setObjectName("label_10") self.kintnuminput = KIntNumInput(self.centralwidget) self.kintnuminput.setGeometry(QtCore.QRect(1160, 120, 31, 21)) self.kintnuminput.setObjectName("kintnuminput") self.kintnuminput_2 = KIntNumInput(self.centralwidget) self.kintnuminput_2.setGeometry(QtCore.QRect(1190, 120, 31, 21)) self.kintnuminput_2.setObjectName("kintnuminput_2") self.kintnuminput_4 = KIntNumInput(self.centralwidget) self.kintnuminput_4.setGeometry(QtCore.QRect(1160, 140, 31, 21)) self.kintnuminput_4.setObjectName("kintnuminput_4") self.kintnuminput_5 = KIntNumInput(self.centralwidget) self.kintnuminput_5.setGeometry(QtCore.QRect(1190, 140, 31, 21)) self.kintnuminput_5.setObjectName("kintnuminput_5") self.kintnuminput_7 = KIntNumInput(self.centralwidget) self.kintnuminput_7.setGeometry(QtCore.QRect(1160, 160, 31, 21)) self.kintnuminput_7.setObjectName("kintnuminput_7") self.kintnuminput_8 = KIntNumInput(self.centralwidget) self.kintnuminput_8.setGeometry(QtCore.QRect(1190, 160, 31, 21)) self.kintnuminput_8.setObjectName("kintnuminput_8") self.label_8 = QtGui.QLabel(self.centralwidget) self.label_8.setGeometry(QtCore.QRect(1130, 120, 21, 16)) self.label_8.setObjectName("label_8") self.label_11 = QtGui.QLabel(self.centralwidget) self.label_11.setGeometry(QtCore.QRect(1130, 140, 21, 16)) self.label_11.setObjectName("label_11") self.label_12 = QtGui.QLabel(self.centralwidget) self.label_12.setGeometry(QtCore.QRect(1130, 160, 21, 16)) self.label_12.setObjectName("label_12") self.pushButton_6 = QtGui.QPushButton(self.centralwidget) self.pushButton_6.setGeometry(QtCore.QRect(0, 160, 121, 21)) self.pushButton_6.setObjectName("pushButton_6") self.pushButton_15 = QtGui.QPushButton(self.centralwidget) self.pushButton_15.setGeometry(QtCore.QRect(0, 180, 121, 21)) self.pushButton_15.setObjectName("pushButton_15") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1270, 23)) self.menubar.setObjectName("menubar") self.menuInput = QtGui.QMenu(self.menubar) self.menuInput.setObjectName("menuInput") self.menuOutput = QtGui.QMenu(self.menubar) self.menuOutput.setObjectName("menuOutput") self.menuSettings = QtGui.QMenu(self.menubar) self.menuSettings.setObjectName("menuSettings") self.menuHelp = QtGui.QMenu(self.menubar) self.menuHelp.setObjectName("menuHelp") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionImport_vtk_file = QtGui.QAction(MainWindow) self.actionImport_vtk_file.setObjectName("actionImport_vtk_file") self.actionImport_dat_file = QtGui.QAction(MainWindow) self.actionImport_dat_file.setObjectName("actionImport_dat_file") self.actionSave_as_JPEG = QtGui.QAction(MainWindow) self.actionSave_as_JPEG.setObjectName("actionSave_as_JPEG") self.actionAutor = QtGui.QAction(MainWindow) self.actionAutor.setObjectName("actionAutor") self.actionWersja = QtGui.QAction(MainWindow) self.actionWersja.setObjectName("actionWersja") self.actionLinki = QtGui.QAction(MainWindow) self.actionLinki.setObjectName("actionLinki") self.actionBackground_color = QtGui.QAction(MainWindow) self.actionBackground_color.setObjectName("actionBackground_color") self.actionWork_space = QtGui.QAction(MainWindow) self.actionWork_space.setObjectName("actionWork_space") self.actionExport_properties = QtGui.QAction(MainWindow) self.actionExport_properties.setObjectName("actionExport_properties") self.actionExit = QtGui.QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionSave_Session = QtGui.QAction(MainWindow) self.actionSave_Session.setObjectName("actionSave_Session") self.actionExport_directory = QtGui.QAction(MainWindow) self.actionExport_directory.setObjectName("actionExport_directory") self.actionTutorials = QtGui.QAction(MainWindow) self.actionTutorials.setObjectName("actionTutorials") self.menuInput.addAction(self.actionSave_Session) self.menuInput.addAction(self.actionExit) self.menuOutput.addAction(self.actionSave_as_JPEG) self.menuOutput.addAction(self.actionExport_directory) self.menuSettings.addAction(self.actionBackground_color) self.menuSettings.addAction(self.actionWork_space) self.menuHelp.addAction(self.actionAutor) self.menuHelp.addAction(self.actionTutorials) self.menubar.addAction(self.menuInput.menuAction()) self.menubar.addAction(self.menuOutput.menuAction()) self.menubar.addAction(self.menuSettings.menuAction()) self.menubar.addAction(self.menuHelp.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.connections() def retranslateUi(self, MainWindow): MainWindow.setWindowTitle( QtGui.QApplication.translate("MainWindow", "MainWindow", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton.setText( QtGui.QApplication.translate("MainWindow", "Isosurface", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_2.setText( QtGui.QApplication.translate("MainWindow", "XYZ Plot", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_3.setText( QtGui.QApplication.translate("MainWindow", "XY Plot", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_4.setText( QtGui.QApplication.translate("MainWindow", "Mat Plot 3D", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_5.setText( QtGui.QApplication.translate("MainWindow", "Layers, Dots", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_7.setText( QtGui.QApplication.translate("MainWindow", "Outline", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_8.setText( QtGui.QApplication.translate("MainWindow", "Axes", None, QtGui.QApplication.UnicodeUTF8)) self.label.setText( QtGui.QApplication.translate("MainWindow", "Data Objects", None, QtGui.QApplication.UnicodeUTF8)) self.label_2.setText( QtGui.QApplication.translate("MainWindow", "Rendered Objects", None, QtGui.QApplication.UnicodeUTF8)) self.label_3.setText( QtGui.QApplication.translate("MainWindow", "Object Options", None, QtGui.QApplication.UnicodeUTF8)) self.label_4.setText( QtGui.QApplication.translate("MainWindow", "Function options", None, QtGui.QApplication.UnicodeUTF8)) self.label_5.setText( QtGui.QApplication.translate("MainWindow", "Visualization functions", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_13.setText( QtGui.QApplication.translate("MainWindow", "Sphere Volume", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_14.setText( QtGui.QApplication.translate("MainWindow", "Scalar Bar", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_16.setText( QtGui.QApplication.translate("MainWindow", "Delete Data Object", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_17.setText( QtGui.QApplication.translate("MainWindow", "Delete", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_18.setText( QtGui.QApplication.translate("MainWindow", "Hide", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_19.setText( QtGui.QApplication.translate("MainWindow", "Show", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_20.setText( QtGui.QApplication.translate("MainWindow", "Delete All", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_21.setText( QtGui.QApplication.translate("MainWindow", "New window", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_10.setText( QtGui.QApplication.translate("MainWindow", "Set View", None, QtGui.QApplication.UnicodeUTF8)) self.label_6.setText( QtGui.QApplication.translate("MainWindow", "View", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_9.setText( QtGui.QApplication.translate("MainWindow", "Reset Camera", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_11.setText( QtGui.QApplication.translate("MainWindow", "Apply", None, QtGui.QApplication.UnicodeUTF8)) self.label_7.setText( QtGui.QApplication.translate("MainWindow", "Zoom", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_26.setText( QtGui.QApplication.translate("MainWindow", "XView", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_27.setText( QtGui.QApplication.translate("MainWindow", "YView", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_28.setText( QtGui.QApplication.translate("MainWindow", "ZView", None, QtGui.QApplication.UnicodeUTF8)) self.label_9.setText( QtGui.QApplication.translate("MainWindow", "Magnification", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_12.setText( QtGui.QApplication.translate("MainWindow", "Photo", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_22.setText( QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_23.setText( QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_24.setText( QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_25.setText( QtGui.QApplication.translate("MainWindow", "PushButton", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_29.setText( QtGui.QApplication.translate("MainWindow", "Cut", None, QtGui.QApplication.UnicodeUTF8)) self.label_10.setText( QtGui.QApplication.translate("MainWindow", "Shrink numerical box", None, QtGui.QApplication.UnicodeUTF8)) self.label_8.setText( QtGui.QApplication.translate("MainWindow", "Nx", None, QtGui.QApplication.UnicodeUTF8)) self.label_11.setText( QtGui.QApplication.translate("MainWindow", "Ny", None, QtGui.QApplication.UnicodeUTF8)) self.label_12.setText( QtGui.QApplication.translate("MainWindow", "Nz", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_6.setText( QtGui.QApplication.translate("MainWindow", "Vector Field", None, QtGui.QApplication.UnicodeUTF8)) self.pushButton_15.setText( QtGui.QApplication.translate("MainWindow", "Volume", None, QtGui.QApplication.UnicodeUTF8)) self.menuInput.setTitle( QtGui.QApplication.translate("MainWindow", "File", None, QtGui.QApplication.UnicodeUTF8)) self.menuOutput.setTitle( QtGui.QApplication.translate("MainWindow", "Output", None, QtGui.QApplication.UnicodeUTF8)) self.menuSettings.setTitle( QtGui.QApplication.translate("MainWindow", "Settings", None, QtGui.QApplication.UnicodeUTF8)) self.menuHelp.setTitle( QtGui.QApplication.translate("MainWindow", "Help", None, QtGui.QApplication.UnicodeUTF8)) self.actionImport_vtk_file.setText( QtGui.QApplication.translate("MainWindow", "Open vtk file", None, QtGui.QApplication.UnicodeUTF8)) self.actionImport_dat_file.setText( QtGui.QApplication.translate("MainWindow", "Open dat file", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_as_JPEG.setText( QtGui.QApplication.translate("MainWindow", "Export format", None, QtGui.QApplication.UnicodeUTF8)) self.actionAutor.setText( QtGui.QApplication.translate("MainWindow", "About", None, QtGui.QApplication.UnicodeUTF8)) self.actionWersja.setText( QtGui.QApplication.translate("MainWindow", "Wersja", None, QtGui.QApplication.UnicodeUTF8)) self.actionLinki.setText( QtGui.QApplication.translate("MainWindow", "Linki", None, QtGui.QApplication.UnicodeUTF8)) self.actionBackground_color.setText( QtGui.QApplication.translate("MainWindow", "Background color", None, QtGui.QApplication.UnicodeUTF8)) self.actionWork_space.setText( QtGui.QApplication.translate("MainWindow", "Work space", None, QtGui.QApplication.UnicodeUTF8)) self.actionExport_properties.setText( QtGui.QApplication.translate("MainWindow", "Export properties", None, QtGui.QApplication.UnicodeUTF8)) self.actionExit.setText( QtGui.QApplication.translate("MainWindow", "Exit", None, QtGui.QApplication.UnicodeUTF8)) self.actionSave_Session.setText( QtGui.QApplication.translate("MainWindow", "Save Session", None, QtGui.QApplication.UnicodeUTF8)) self.actionExport_directory.setText( QtGui.QApplication.translate("MainWindow", "Export directory", None, QtGui.QApplication.UnicodeUTF8)) self.actionTutorials.setText( QtGui.QApplication.translate("MainWindow", "Tutorials", None, QtGui.QApplication.UnicodeUTF8))
def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.resize(1270, 715) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.pushButton = QtGui.QPushButton(self.centralwidget) self.pushButton.setGeometry(QtCore.QRect(0, 40, 121, 21)) self.pushButton.setObjectName("pushButton") self.pushButton_2 = QtGui.QPushButton(self.centralwidget) self.pushButton_2.setGeometry(QtCore.QRect(0, 220, 121, 21)) self.pushButton_2.setObjectName("pushButton_2") self.pushButton_3 = QtGui.QPushButton(self.centralwidget) self.pushButton_3.setGeometry(QtCore.QRect(0, 200, 121, 21)) self.pushButton_3.setObjectName("pushButton_3") self.pushButton_4 = QtGui.QPushButton(self.centralwidget) self.pushButton_4.setGeometry(QtCore.QRect(0, 80, 121, 21)) self.pushButton_4.setObjectName("pushButton_4") self.pushButton_5 = QtGui.QPushButton(self.centralwidget) self.pushButton_5.setGeometry(QtCore.QRect(0, 60, 121, 21)) self.pushButton_5.setObjectName("pushButton_5") self.pushButton_7 = QtGui.QPushButton(self.centralwidget) self.pushButton_7.setGeometry(QtCore.QRect(0, 100, 121, 21)) self.pushButton_7.setObjectName("pushButton_7") self.pushButton_8 = QtGui.QPushButton(self.centralwidget) self.pushButton_8.setGeometry(QtCore.QRect(0, 20, 121, 21)) self.pushButton_8.setObjectName("pushButton_8") self.label = QtGui.QLabel(self.centralwidget) self.label.setGeometry(QtCore.QRect(1150, 10, 81, 16)) self.label.setObjectName("label") self.scrollArea = QtGui.QScrollArea(self.centralwidget) self.scrollArea.setGeometry(QtCore.QRect(1100, 190, 171, 211)) self.scrollArea.setWidgetResizable(True) self.scrollArea.setObjectName("scrollArea") self.scrollAreaWidgetContents = QtGui.QWidget(self.scrollArea) self.scrollAreaWidgetContents.setGeometry(QtCore.QRect(0, 0, 169, 209)) self.scrollAreaWidgetContents.setObjectName("scrollAreaWidgetContents") self.listWidget = QtGui.QListWidget(self.scrollAreaWidgetContents) self.listWidget.setGeometry(QtCore.QRect(0, 20, 171, 191)) self.listWidget.setObjectName("listWidget") self.label_2 = QtGui.QLabel(self.scrollAreaWidgetContents) self.label_2.setGeometry(QtCore.QRect(40, 0, 101, 16)) self.label_2.setObjectName("label_2") self.scrollArea.setWidget(self.scrollAreaWidgetContents) self.frame = QtGui.QFrame(self.centralwidget) self.frame.setGeometry(QtCore.QRect(1100, 440, 171, 231)) self.frame.setFrameShape(QtGui.QFrame.StyledPanel) self.frame.setFrameShadow(QtGui.QFrame.Raised) self.frame.setObjectName("frame") self.label_3 = QtGui.QLabel(self.frame) self.label_3.setGeometry(QtCore.QRect(30, 0, 121, 20)) self.label_3.setObjectName("label_3") self.frame_2 = QtGui.QFrame(self.centralwidget) self.frame_2.setGeometry(QtCore.QRect(0, 340, 120, 331)) self.frame_2.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_2.setFrameShadow(QtGui.QFrame.Raised) self.frame_2.setObjectName("frame_2") self.label_4 = QtGui.QLabel(self.centralwidget) self.label_4.setGeometry(QtCore.QRect(0, 320, 111, 16)) self.label_4.setObjectName("label_4") self.label_5 = QtGui.QLabel(self.centralwidget) self.label_5.setGeometry(QtCore.QRect(0, 0, 131, 16)) self.label_5.setObjectName("label_5") self.pushButton_13 = QtGui.QPushButton(self.centralwidget) self.pushButton_13.setGeometry(QtCore.QRect(0, 140, 121, 21)) self.pushButton_13.setObjectName("pushButton_13") self.pushButton_14 = QtGui.QPushButton(self.centralwidget) self.pushButton_14.setGeometry(QtCore.QRect(0, 120, 121, 21)) self.pushButton_14.setObjectName("pushButton_14") self.pushButton_16 = QtGui.QPushButton(self.centralwidget) self.pushButton_16.setGeometry(QtCore.QRect(1100, 80, 171, 20)) self.pushButton_16.setObjectName("pushButton_16") self.pushButton_17 = QtGui.QPushButton(self.centralwidget) self.pushButton_17.setGeometry(QtCore.QRect(1180, 420, 91, 21)) self.pushButton_17.setObjectName("pushButton_17") self.pushButton_18 = QtGui.QPushButton(self.centralwidget) self.pushButton_18.setGeometry(QtCore.QRect(1180, 400, 51, 21)) self.pushButton_18.setObjectName("pushButton_18") self.pushButton_19 = QtGui.QPushButton(self.centralwidget) self.pushButton_19.setGeometry(QtCore.QRect(1230, 400, 41, 21)) self.pushButton_19.setObjectName("pushButton_19") self.pushButton_20 = QtGui.QPushButton(self.centralwidget) self.pushButton_20.setGeometry(QtCore.QRect(1100, 420, 81, 21)) self.pushButton_20.setObjectName("pushButton_20") self.pushButton_21 = QtGui.QPushButton(self.centralwidget) self.pushButton_21.setGeometry(QtCore.QRect(1100, 400, 81, 21)) self.pushButton_21.setObjectName("pushButton_21") self.frame_3 = QtGui.QFrame(self.centralwidget) self.frame_3.setGeometry(QtCore.QRect(350, 0, 601, 31)) self.frame_3.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_3.setFrameShadow(QtGui.QFrame.Raised) self.frame_3.setObjectName("frame_3") self.pushButton_10 = QtGui.QPushButton(self.frame_3) self.pushButton_10.setGeometry(QtCore.QRect(50, 0, 61, 31)) self.pushButton_10.setObjectName("pushButton_10") self.textEdit = QtGui.QTextEdit(self.frame_3) self.textEdit.setGeometry(QtCore.QRect(110, 0, 61, 31)) self.textEdit.setObjectName("textEdit") self.label_6 = QtGui.QLabel(self.frame_3) self.label_6.setGeometry(QtCore.QRect(0, 0, 41, 31)) self.label_6.setObjectName("label_6") self.pushButton_9 = QtGui.QPushButton(self.frame_3) self.pushButton_9.setGeometry(QtCore.QRect(290, 0, 85, 31)) self.pushButton_9.setObjectName("pushButton_9") self.horizontalSlider = QtGui.QSlider(self.frame_3) self.horizontalSlider.setGeometry(QtCore.QRect(450, 10, 101, 19)) self.horizontalSlider.setOrientation(QtCore.Qt.Horizontal) self.horizontalSlider.setObjectName("horizontalSlider") self.pushButton_11 = QtGui.QPushButton(self.frame_3) self.pushButton_11.setGeometry(QtCore.QRect(550, 0, 51, 31)) self.pushButton_11.setObjectName("pushButton_11") self.label_7 = QtGui.QLabel(self.frame_3) self.label_7.setGeometry(QtCore.QRect(390, 10, 41, 16)) self.label_7.setObjectName("label_7") self.pushButton_26 = QtGui.QPushButton(self.frame_3) self.pushButton_26.setGeometry(QtCore.QRect(170, 0, 41, 31)) self.pushButton_26.setObjectName("pushButton_26") self.pushButton_27 = QtGui.QPushButton(self.frame_3) self.pushButton_27.setGeometry(QtCore.QRect(210, 0, 41, 31)) self.pushButton_27.setObjectName("pushButton_27") self.pushButton_28 = QtGui.QPushButton(self.frame_3) self.pushButton_28.setGeometry(QtCore.QRect(250, 0, 41, 31)) self.pushButton_28.setObjectName("pushButton_28") self.frame_4 = QtGui.QFrame(self.centralwidget) self.frame_4.setGeometry(QtCore.QRect(950, 0, 151, 31)) self.frame_4.setFrameShape(QtGui.QFrame.StyledPanel) self.frame_4.setFrameShadow(QtGui.QFrame.Raised) self.frame_4.setObjectName("frame_4") self.label_9 = QtGui.QLabel(self.frame_4) self.label_9.setGeometry(QtCore.QRect(0, 0, 81, 31)) self.label_9.setObjectName("label_9") self.plainTextEdit_2 = QtGui.QPlainTextEdit(self.frame_4) self.plainTextEdit_2.setGeometry(QtCore.QRect(80, 0, 31, 31)) self.plainTextEdit_2.setObjectName("plainTextEdit_2") self.pushButton_12 = QtGui.QPushButton(self.frame_4) self.pushButton_12.setGeometry(QtCore.QRect(110, 0, 41, 31)) self.pushButton_12.setObjectName("pushButton_12") self.pushButton_22 = QtGui.QPushButton(self.centralwidget) self.pushButton_22.setGeometry(QtCore.QRect(0, 240, 121, 21)) self.pushButton_22.setObjectName("pushButton_22") self.pushButton_23 = QtGui.QPushButton(self.centralwidget) self.pushButton_23.setGeometry(QtCore.QRect(0, 260, 121, 21)) self.pushButton_23.setObjectName("pushButton_23") self.pushButton_24 = QtGui.QPushButton(self.centralwidget) self.pushButton_24.setGeometry(QtCore.QRect(0, 280, 121, 21)) self.pushButton_24.setObjectName("pushButton_24") self.pushButton_25 = QtGui.QPushButton(self.centralwidget) self.pushButton_25.setGeometry(QtCore.QRect(0, 300, 121, 21)) self.pushButton_25.setObjectName("pushButton_25") self.qvtkWidget = QVTKRenderWindowInteractor(self.centralwidget) self.qvtkWidget.setGeometry(QtCore.QRect(130, 30, 971, 641)) self.qvtkWidget.setObjectName("qvtkWidget") self.kurlrequester = KUrlRequester(self.centralwidget) self.kurlrequester.setGeometry(QtCore.QRect(130, 0, 201, 31)) self.kurlrequester.setObjectName("kurlrequester") self.listWidget_2 = QtGui.QListWidget(self.centralwidget) self.listWidget_2.setGeometry(QtCore.QRect(1100, 30, 171, 51)) self.listWidget_2.setObjectName("listWidget_2") self.pushButton_29 = QtGui.QPushButton(self.centralwidget) self.pushButton_29.setGeometry(QtCore.QRect(1220, 160, 51, 31)) self.pushButton_29.setObjectName("pushButton_29") self.label_10 = QtGui.QLabel(self.centralwidget) self.label_10.setGeometry(QtCore.QRect(1110, 100, 121, 20)) self.label_10.setObjectName("label_10") self.kintnuminput = KIntNumInput(self.centralwidget) self.kintnuminput.setGeometry(QtCore.QRect(1160, 120, 31, 21)) self.kintnuminput.setObjectName("kintnuminput") self.kintnuminput_2 = KIntNumInput(self.centralwidget) self.kintnuminput_2.setGeometry(QtCore.QRect(1190, 120, 31, 21)) self.kintnuminput_2.setObjectName("kintnuminput_2") self.kintnuminput_4 = KIntNumInput(self.centralwidget) self.kintnuminput_4.setGeometry(QtCore.QRect(1160, 140, 31, 21)) self.kintnuminput_4.setObjectName("kintnuminput_4") self.kintnuminput_5 = KIntNumInput(self.centralwidget) self.kintnuminput_5.setGeometry(QtCore.QRect(1190, 140, 31, 21)) self.kintnuminput_5.setObjectName("kintnuminput_5") self.kintnuminput_7 = KIntNumInput(self.centralwidget) self.kintnuminput_7.setGeometry(QtCore.QRect(1160, 160, 31, 21)) self.kintnuminput_7.setObjectName("kintnuminput_7") self.kintnuminput_8 = KIntNumInput(self.centralwidget) self.kintnuminput_8.setGeometry(QtCore.QRect(1190, 160, 31, 21)) self.kintnuminput_8.setObjectName("kintnuminput_8") self.label_8 = QtGui.QLabel(self.centralwidget) self.label_8.setGeometry(QtCore.QRect(1130, 120, 21, 16)) self.label_8.setObjectName("label_8") self.label_11 = QtGui.QLabel(self.centralwidget) self.label_11.setGeometry(QtCore.QRect(1130, 140, 21, 16)) self.label_11.setObjectName("label_11") self.label_12 = QtGui.QLabel(self.centralwidget) self.label_12.setGeometry(QtCore.QRect(1130, 160, 21, 16)) self.label_12.setObjectName("label_12") self.pushButton_6 = QtGui.QPushButton(self.centralwidget) self.pushButton_6.setGeometry(QtCore.QRect(0, 160, 121, 21)) self.pushButton_6.setObjectName("pushButton_6") self.pushButton_15 = QtGui.QPushButton(self.centralwidget) self.pushButton_15.setGeometry(QtCore.QRect(0, 180, 121, 21)) self.pushButton_15.setObjectName("pushButton_15") MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) self.menubar.setGeometry(QtCore.QRect(0, 0, 1270, 23)) self.menubar.setObjectName("menubar") self.menuInput = QtGui.QMenu(self.menubar) self.menuInput.setObjectName("menuInput") self.menuOutput = QtGui.QMenu(self.menubar) self.menuOutput.setObjectName("menuOutput") self.menuSettings = QtGui.QMenu(self.menubar) self.menuSettings.setObjectName("menuSettings") self.menuHelp = QtGui.QMenu(self.menubar) self.menuHelp.setObjectName("menuHelp") MainWindow.setMenuBar(self.menubar) self.statusbar = QtGui.QStatusBar(MainWindow) self.statusbar.setObjectName("statusbar") MainWindow.setStatusBar(self.statusbar) self.actionImport_vtk_file = QtGui.QAction(MainWindow) self.actionImport_vtk_file.setObjectName("actionImport_vtk_file") self.actionImport_dat_file = QtGui.QAction(MainWindow) self.actionImport_dat_file.setObjectName("actionImport_dat_file") self.actionSave_as_JPEG = QtGui.QAction(MainWindow) self.actionSave_as_JPEG.setObjectName("actionSave_as_JPEG") self.actionAutor = QtGui.QAction(MainWindow) self.actionAutor.setObjectName("actionAutor") self.actionWersja = QtGui.QAction(MainWindow) self.actionWersja.setObjectName("actionWersja") self.actionLinki = QtGui.QAction(MainWindow) self.actionLinki.setObjectName("actionLinki") self.actionBackground_color = QtGui.QAction(MainWindow) self.actionBackground_color.setObjectName("actionBackground_color") self.actionWork_space = QtGui.QAction(MainWindow) self.actionWork_space.setObjectName("actionWork_space") self.actionExport_properties = QtGui.QAction(MainWindow) self.actionExport_properties.setObjectName("actionExport_properties") self.actionExit = QtGui.QAction(MainWindow) self.actionExit.setObjectName("actionExit") self.actionSave_Session = QtGui.QAction(MainWindow) self.actionSave_Session.setObjectName("actionSave_Session") self.actionExport_directory = QtGui.QAction(MainWindow) self.actionExport_directory.setObjectName("actionExport_directory") self.actionTutorials = QtGui.QAction(MainWindow) self.actionTutorials.setObjectName("actionTutorials") self.menuInput.addAction(self.actionSave_Session) self.menuInput.addAction(self.actionExit) self.menuOutput.addAction(self.actionSave_as_JPEG) self.menuOutput.addAction(self.actionExport_directory) self.menuSettings.addAction(self.actionBackground_color) self.menuSettings.addAction(self.actionWork_space) self.menuHelp.addAction(self.actionAutor) self.menuHelp.addAction(self.actionTutorials) self.menubar.addAction(self.menuInput.menuAction()) self.menubar.addAction(self.menuOutput.menuAction()) self.menubar.addAction(self.menuSettings.menuAction()) self.menubar.addAction(self.menuHelp.menuAction()) self.retranslateUi(MainWindow) QtCore.QMetaObject.connectSlotsByName(MainWindow) self.connections()
class MyWindow(QtGui.QMainWindow): def __init__(self): super(MyWindow, self).__init__() os.chdir(functionPath) uic.loadUi("registration_gui.ui", self) os.chdir(startPath) # Connect buttons to functions # import moving data self.ptcldMovingButton.clicked.connect(self.import_data) # import fixed data self.ptcldFixedButton.clicked.connect(self.import_data) # execute qr_register function self.registrationButton.clicked.connect(self.register) self.vl = QtGui.QVBoxLayout() self.vtkWidget = QVTKRenderWindowInteractor(self.vtkFrame) self.vl.addWidget(self.vtkWidget) self.ren = vtk.vtkRenderer() self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) self.iren = self.vtkWidget.GetRenderWindow().GetInteractor() self.actor_moving = vtk.vtkActor() self.moving_color = (0, 0.2) self.actor_fixed = vtk.vtkActor() self.fixed_color = (.8, 1) self.ren.AddActor(self.actor_moving) self.ren.AddActor(self.actor_fixed) self.ren.ResetCamera() self.vtkFrame.setLayout(self.vl) self.show() self.iren.Initialize() self.iren.SetInteractorStyle(vtk.vtkInteractorStyleTrackballCamera()) def _readFile(self, filename): # Takes filename as string and returns polyData extension = os.path.splitext(filename)[1].lower() print filename # # Read PLY into vtkPoints # if extension == ".ply" or extension == ".obj" or extension == ".stl": # if (extension == ".ply"): # reader = vtk.vtkPLYReader() # if (extension == ".obj"): # reader = vtk.vtkOBJReader() # if (extension == ".stl"): # reader = vtk.vtkSTLReader() # reader.SetFileName(filename) # reader.Update() # points = reader.GetOutput().GetPoints() # vertices = vtk.vtkCellArray() # for i in range(0,reader.GetOutput().GetNumberOfPoints()): # vertices.InsertNextCell(1) # vertices.InsertCellPoint(i) # # Add all generated data to polydata # polydata = vtk.vtkPolyData() # polydata.SetPoints(points) # polydata.SetVerts(vertices) # Read TXT into vtkPoints if extension == ".txt": textReader = vtk.vtkSimplePointsReader() textReader.SetFileName(filename) textReader.Update() polydata = textReader.GetOutput() else: print("input must be a .txt file") return None # raise InputError("file must be ply, stl, obj or txt") print("Bounds: ", polydata.GetBounds()) return polydata def _updateActorPolydata(self, actor, polydata, color): # Modifies an actor with new polydata bounds = polydata.GetBounds() # Generate colors colors = vtk.vtkElevationFilter() #colors.SetInputData(polydata) if vtk.VTK_MAJOR_VERSION <= 5: colors.SetInputConnection(polydata.GetProducerPort()) else: colors.SetInputData(polydata) colors.SetLowPoint(0, 0, bounds[5]) colors.SetHighPoint(0, 0, bounds[4]) colors.SetScalarRange(color) # Visualization mapper = actor.GetMapper() if mapper == None: mapper = vtk.vtkPolyDataMapper() if vtk.VTK_MAJOR_VERSION <= 5: mapper.SetInput(colors.GetOutput()) else: colors.Update() mapper.SetInputData(colors.GetOutput()) actor.SetMapper(mapper) transform = vtk.vtkTransform() actor.SetPosition(transform.GetPosition()) actor.SetOrientation(transform.GetOrientation()) size = 4 / len(str(polydata.GetNumberOfPoints())) + 1 actor.GetProperty().SetPointSize(size) # Function for opening .txt file and import the file path into the lineEdit def import_data(self): cwd = os.getcwd() fname = QtGui.QFileDialog.getOpenFileName(self, "Open file", cwd) if (_QT_VERSION >= 5): # QT5 stores filename in a tuple instead of just a string fname = fname[0] filename = str(fname) if fname == "": print("Using previous file") return sending_button = str(self.sender().objectName()) polydata = self._readFile(filename) if polydata == None: print "File not readable" return if sending_button == "ptcldMovingButton": self.ptcldMovingText.setText(filename) self._updateActorPolydata(self.actor_moving, polydata, self.moving_color) elif sending_button == "ptcldFixedButton": self.ptcldFixedText.setText(filename) self._updateActorPolydata(self.actor_fixed, polydata, self.fixed_color) self.ren.ResetCamera() self.iren.Render() # Take file path from the lineEdit and perform registration using those dataset def register(self): transform = vtk.vtkTransform() self.actor_moving.SetPosition(transform.GetPosition()) self.actor_moving.SetOrientation(transform.GetOrientation()) self.iren.Render() print("Registration starts\n") print(str(self.ptcldMovingText.text())) print(str(self.ptcldFixedText.text())) maxIter = self.maxIterations.value() inlierRatio = self.inlierRatio.value() windowSize = self.windowSize.value() rotTolerance = self.rotationTolerance.value() transTolerance = self.translationTolerance.value() b_string1 = str(self.ptcldMovingText.text()).encode("utf-8") b_string2 = str(self.ptcldFixedText.text()).encode("utf-8") output, error = register_txt(b_string1, b_string2, inlierRatio, maxIter, windowSize, rotTolerance, transTolerance) matrix = npMatrixToVtkMatrix( reg_params_to_transformation_matrix(output)) transform.SetMatrix(matrix) self.actor_moving.SetPosition(transform.GetPosition()) self.actor_moving.SetOrientation(transform.GetOrientation()) self.iren.Render()
def __init__(self, stlScale = 0.001, parent = None): QtWidgets.QMainWindow.__init__(self, parent) self.frame = QtWidgets.QFrame() self.vl = QtWidgets.QVBoxLayout() self.vtkWidget = QVTKRenderWindowInteractor(self.frame) self.vl.addWidget(self.vtkWidget) self.ren = vtk.vtkRenderer() self.vtkWidget.GetRenderWindow().AddRenderer(self.ren) self.iren = self.vtkWidget.GetRenderWindow().GetInteractor() # Create sphere source = vtk.vtkSphereSource() source.SetCenter(0, 0, 0) source.SetRadius(0.003) sphereMapper = vtk.vtkPolyDataMapper() sphereMapper.SetInputConnection(source.GetOutputPort()) self.sphereActor = vtk.vtkActor() self.sphereActor.SetMapper(sphereMapper) self.sphereActor.GetProperty().SetColor(1, 0, 0) self.ren.AddActor(self.sphereActor) # Read in STL reader = vtk.vtkSTLReader() reader.SetFileName('/home/biomed/october_15_ws/src/dvrk_vision/defaults/femur.stl') scaler = vtk.vtkTransformFilter() if vtk.VTK_MAJOR_VERSION <= 5: scaler.SetInputConnection(reader.GetOutput()) else: scaler.SetInputConnection(reader.GetOutputPort()) scaleTransform = vtk.vtkTransform() scaleTransform.Identity() scaleTransform.Scale(stlScale, stlScale, stlScale) scaler.SetTransform(scaleTransform) # Create a mapper mapper = vtk.vtkPolyDataMapper() if vtk.VTK_MAJOR_VERSION <= 5: mapper.SetInput(scaler.GetOutput()) else: mapper.SetInputConnection(scaler.GetOutputPort()) # Create an actor self.actor = vtk.vtkActor() self.actor.SetMapper(mapper) # Read in camera registration scriptDirectory = os.path.dirname(os.path.abspath(__file__)) filePath = os.path.join(scriptDirectory, '..', '..', 'defaults', 'registration_params.yaml') with open(filePath, 'r') as f: data = yaml.load(f) self.camTransform = np.array(data['transform']) # Add point cloud self.pointCloud = VtkPointCloud() tf = np.linalg.inv(self.camTransform) transform = vtk.vtkTransform() transform.SetMatrix(tf.ravel()) self.pointCloud.vtkActor.SetPosition(transform.GetPosition()) self.pointCloud.vtkActor.SetOrientation(transform.GetOrientation()) self.ren.AddActor(self.pointCloud.vtkActor) self.ren.AddActor(self.actor) poseSub = rospy.Subscriber("/stereo/registration_pose", PoseStamped, self.poseCallback) self.ren.ResetCamera() self.frame.setLayout(self.vl) self.setCentralWidget(self.frame) self.vtkThread = QThread() self.actorMat = np.eye(4) self.thread = QThread() robot = psm('PSM2') self.worker = Worker(robot) self.worker.intReady.connect(self.onIntReady) self.worker.moveToThread(self.thread) self.worker.finished.connect(self.thread.quit) self.thread.started.connect(self.worker.procCounter) self.thread.start() self.started = False self.show() self.iren.Initialize()
class CamTabsWidget(QWidget): frames_ready = pyqtSignal(QImage, QImage, QImage) def __init__(self, parent, path): super(QWidget, self).__init__(parent) self.__path = path self.__counter = 0 self.layout = QVBoxLayout(self) # initialize tab screen self.__tabs = QTabWidget() self.__tabs.blockSignals(True) # just for not showing the initial message self.__tabs.currentChanged.connect(self.on_change) self.__tab3D = QWidget() self.__tab2D = QWidget() # add tabs self.__tabs.addTab(self.__tab3D, "3D") self.__tabs.addTab(self.__tab2D, "2D") # create the content and layout of the tab with 3D cameras self.__set_tab3d_layout() # create the content and layout of the tab with 2D cameras self.__set_tab2d_layout() # set all objects that support the pipeline to create 3D images self.__set_3d_supporting_objects() # capture the cameras' frames to create a movie self.layout.addWidget(self.__tabs) self.__run_movie() self.__tabs.blockSignals(False) def __set_3d_supporting_objects(self): self.pd_collection = [] self.mapper_collection = [] self.actor_collection = [] self.np_array = [] self.cells_npy = [] self.timer_count = 0 self._n_coordinates = 0 self.align = rs.align(rs.stream.color) self.__iren = self.__vtkWidget.GetRenderWindow().GetInteractor() self.__iren.GetInteractorStyle().SetCurrentStyleToTrackballActor() self.__iren.GetInteractorStyle().SetCurrentStyleToTrackballCamera() self._timer = QTimer(self) self._timer.timeout.connect(self.timer_event) self.view_coordinates = [[0., .5, .5, 1.], [.5, .5, 1., 1.], [0., 0., .5, .5], [.5, 0., 1., .5]] def __set_tab3d_layout(self): frame = QFrame() # add a vtk-based window for interaction self.__vtkWidget = QVTKRenderWindowInteractor(frame) # add a label and a text box for input of the object id self.__lbl_3d_idx = QLabel('ID:', self) self.__txt_box_3d_idx = QLineEdit(self) # add a button to save 3D images self.__btn_save_3d_img = QPushButton('Save Image', self) self.__btn_save_3d_img.setToolTip('Save 3D image to the file.') self.__btn_save_3d_img.clicked.connect(self.save_3d_image) # set the layout of the tab which holds the 3D cameras self.__tab3D.setLayout(self.__create_3d_cams_grid_layout()) def __set_tab2d_layout(self): self.__lbl_2d_cam_1 = QLabel() self.__lbl_2d_cam_2 = QLabel() self.__lbl_2d_cam_3 = QLabel() self.__lbl_2d_cam_4 = QLabel() # add a label and a text box for input of the object id self.__lbl_2d_idx = QLabel('ID:', self) self.__txt_box_2d_idx = QLineEdit(self) # add a button to save 3D images self.__btn_save_2d_img = QPushButton('Save Image', self) self.__btn_save_2d_img.setToolTip('Save 2D image to the file.') self.__btn_save_2d_img.clicked.connect(self.save_2d_image) # set the layout of the tab which holds the 2D cameras self.__tab2D.setLayout(self.__create_2d_cams_grid_layout()) def get_txt_box_2d_idx(self): return self.__txt_box_2d_idx def get_txt_box_3d_idx(self): return self.__txt_box_3d_idx def __run_movie(self): cam_counter = 0 for pipe in pipelines: frame_set = pipe.wait_for_frames() # Wait for a coherent color frame # frames = None # real_sense_cam.get_pipeline().wait_for_frames() # Align the depth frame to color frame aligned_frames = self.align.process(frame_set) depth_frame = aligned_frames.get_depth_frame() color_frame = aligned_frames.get_color_frame() color_image = np.asanyarray(color_frame.get_data()) color_image = color_image.reshape((color_image.shape[0] * color_image.shape[1], 3)) # self._colors.SetNumberOfTuples(color_image.shape[0]) colors = vtk.vtkUnsignedCharArray() colors.SetNumberOfComponents(3) # colors.SetName("Colors") current_pd = vtk.vtkPolyData() self.pd_collection.append(current_pd) colors.SetArray(vtk_np.numpy_to_vtk(color_image), color_image.shape[0] * color_image.shape[1], 1) current_pd.GetPointData().SetScalars(colors) pc = rs.pointcloud() point_cloud = pc.calculate(depth_frame) pc.map_to(color_frame) v, t = point_cloud.get_vertices(), point_cloud.get_texture_coordinates() vertices = np.asanyarray(v).view(np.float32).reshape(-1, 3) # xyz self._n_coordinates = vertices.shape[0] points = vtk.vtkPoints() cells = vtk.vtkCellArray() points.SetData(vtk_np.numpy_to_vtk(vertices)) cells_npy = np.vstack([np.ones(self._n_coordinates, dtype=np.int64), np.arange(self._n_coordinates, dtype=np.int64)]).T.flatten() cells.SetCells(self._n_coordinates, vtk_np.numpy_to_vtkIdTypeArray(cells_npy)) self.pd_collection[cam_counter].SetPoints(points) self.pd_collection[cam_counter].SetVerts(cells) mapper = vtk.vtkPolyDataMapper() self.mapper_collection.append(mapper) self.mapper_collection[cam_counter].SetInputData(self.pd_collection[cam_counter]) transform = vtk.vtkTransform() transform.SetMatrix(flip_transform) actor = vtk.vtkActor() self.actor_collection.append(actor) self.actor_collection[cam_counter].SetMapper(self.mapper_collection[cam_counter]) self.actor_collection[cam_counter].GetProperty().SetRepresentationToPoints() self.actor_collection[cam_counter].SetUserTransform(transform) current_ren = vtk.vtkRenderer() current_ren.GetActiveCamera() # set viewports if the number of cams ara greater than one if len(pipelines) > 1: current_ren.SetViewport(self.view_coordinates[cam_counter]) current_ren.AddActor(self.actor_collection[cam_counter]) self.__vtkWidget.GetRenderWindow().AddRenderer(current_ren) cam_counter += 1 self.__iren.AddObserver('TimerEvent', self.update_poly_data) dt = 30 # ms self.__iren.CreateRepeatingTimer(dt) def update_poly_data(self, obj=None, event=None): cam_counter = 0 rgb_cam_images = [] for pipe in pipelines: frame_set = pipe.wait_for_frames() # Wait for a coherent color frame # frames = real_sense_cam.get_pipeline().wait_for_frames() # Align the depth frame to color frame aligned_frames = self.align.process(frame_set) depth_frame = aligned_frames.get_depth_frame() color_frame = aligned_frames.get_color_frame() pc = rs.pointcloud() point_cloud = pc.calculate(depth_frame) pc.map_to(color_frame) v, t = point_cloud.get_vertices(), point_cloud.get_texture_coordinates() vertices = np.asanyarray(v).view(np.float32).reshape(-1, 3) # xyz color_image = np.asanyarray(color_frame.get_data()) rgb_cam_images.append(np_color_img_to_q_image(color_image)) color_image = color_image.reshape((color_image.shape[0] * color_image.shape[1], 3)) colors = vtk.vtkUnsignedCharArray() colors.SetNumberOfComponents(3) colors.SetArray(vtk_np.numpy_to_vtk(color_image), color_image.shape[0] * color_image.shape[1], 1) self.pd_collection[cam_counter].GetPointData().SetScalars(colors) points = vtk.vtkPoints() cells = vtk.vtkCellArray() points.SetData(vtk_np.numpy_to_vtk(vertices)) cells_npy = np.vstack([np.ones(self._n_coordinates, dtype=np.int64), np.arange(self._n_coordinates, dtype=np.int64)]).T.flatten() cells.SetCells(self._n_coordinates, vtk_np.numpy_to_vtkIdTypeArray(cells_npy)) self.pd_collection[cam_counter].SetPoints(points) self.pd_collection[cam_counter].SetVerts(cells) self.pd_collection[cam_counter].Modified() cam_counter += 1 self.frames_ready.emit(rgb_cam_images[0], rgb_cam_images[1], rgb_cam_images[2]) self.__iren.GetRenderWindow().Render() # print(self.timer_count) self.timer_count += 1 def __create_2d_cams_grid_layout(self): layout = QGridLayout() layout_idx = QHBoxLayout() layout_idx.addWidget(self.__lbl_2d_idx) layout_idx.addWidget(self.__txt_box_2d_idx) # add all widgets to the layout # add four labels of images, one for each camera layout.addWidget(self.__lbl_2d_cam_1, 0, 0, 1, 1) layout.addWidget(self.__lbl_2d_cam_2, 0, 1, 1, 1) layout.addWidget(self.__lbl_2d_cam_3, 1, 0, 1, 1) layout.addWidget(self.__lbl_2d_cam_4, 1, 1, 1, 1) # add a label and a text box to input the object id # layout.addWidget(self.__lbl_2d_idx, 2, 0, 1, 1) # layout.addWidget(self.__txt_box_2d_idx, 2, 1, 1, 1) layout.addLayout(layout_idx, 2, 0, 1, 2) # add a save button layout.addWidget(self.__btn_save_2d_img, 3, 0, 1, 2) # could we create a shared button to save all images at once? return layout def __create_3d_cams_grid_layout(self): layout = QGridLayout() layout.addWidget(self.__vtkWidget, 0, 0, 1, 2) # add a label and a text box to input the object id layout.addWidget(self.__lbl_3d_idx, 1, 0, 1, 1) layout.addWidget(self.__txt_box_3d_idx, 1, 1, 1, 1) # add a save button layout.addWidget(self.__btn_save_3d_img, 2, 0, 1, 2) return layout def timer_event(self): self.__iren.TimerEvent() def create_timer(self, obj, evt): self._timer.start(0) def destroy_timer(self, obj, evt): self._timer.stop() return 1 def get_iren(self): return self.__iren @QtCore.pyqtSlot(QImage, QImage, QImage) def receive_frame(self, rgb_1, rgb_2, rgb_3): ratio = 1. p_cam1 = QPixmap.fromImage(rgb_1) p_cam2 = QPixmap.fromImage(rgb_2) p_cam3 = QPixmap.fromImage(rgb_3) # p_cam4 = QPixmap.fromImage(rgb_4) w_cam1, h_cam1 = p_cam1.width() * ratio, p_cam1.height() * ratio w_cam2, h_cam2 = p_cam1.width() * ratio, p_cam1.height() * ratio w_cam3, h_cam3 = p_cam1.width() * ratio, p_cam1.height() * ratio # w_cam4 = self.__lbl_2d_cam_1.width() # h_cam4 = self.__lbl_2d_cam_1.height() self.__lbl_2d_cam_1.setPixmap(p_cam1.scaled(h_cam1, w_cam1, PyQt5.QtCore.Qt.KeepAspectRatio)) self.__lbl_2d_cam_2.setPixmap(p_cam2.scaled(h_cam1, w_cam1, PyQt5.QtCore.Qt.KeepAspectRatio)) self.__lbl_2d_cam_3.setPixmap(p_cam3.scaled(h_cam1, w_cam1, PyQt5.QtCore.Qt.KeepAspectRatio)) # self.__lbl_2d_cam_4.setPixmap(QPixmap.fromImage(rgb_4)) def on_change(self, i): if i == 0: # 3d tab self.__txt_box_3d_idx.setText(self.__txt_box_2d_idx.text()) else: self.__txt_box_2d_idx.setText(self.__txt_box_3d_idx.text()) # QMessageBox.information(self, # "Tab Index Changed!", # "Current Tab Index: %d" % i) # changed! def save_2d_image(self): cam_1_pixmap = self.__lbl_2d_cam_1.pixmap() cam_2_pixmap = self.__lbl_2d_cam_2.pixmap() cam_3_pixmap = self.__lbl_2d_cam_3.pixmap() # cam_4_pixmap = self.__lbl_2d_cam_4.pixmap() # set the correct path to save the images files cam_1_pixmap.save("") cam_2_pixmap.save("") cam_3_pixmap.save("") # cam_4_pixmap.save("") def save_3d_image(self): for i in range(nr_devices): writer = vtkXMLPolyDataWriter() path_cam = self.__path + serial_numbers[i] + "/3D/" path_exists = os.path.isdir(path_cam) today_str = datetime.now().strftime("%H:%M:%S.%f") if not path_exists: os.makedirs(path_cam) f_name = path_cam + self.__txt_box_3d_idx.text() + "_img_" + str(self.__counter) + "_" + today_str + ".vtp" writer.SetFileName(f_name) writer.SetInputData(self.pd_collection[i]) writer.Write() self.__counter += 1