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)
Exemplo n.º 3
0
    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())
Exemplo n.º 4
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)
Exemplo n.º 5
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())
Exemplo n.º 7
0
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()
Exemplo n.º 9
0
    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))
Exemplo n.º 12
0
    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()
Exemplo n.º 13
0
    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)
Exemplo n.º 14
0
    def __init__(self, scene, parent, **kwargs):
        QVTKRenderWindowInteractor.__init__(self, parent, **kwargs)

        self._scene = scene
        self._interacting = False
Exemplo n.º 15
0
    def resizeEvent(self, e):
        """ Reimplemented to refresh the traits of the render window.
        """
        QVTKRenderWindowInteractor.resizeEvent(self, e)

        self._scene._renwin.update_traits()
Exemplo n.º 16
0
 def mousePressEvent(self, ev):
     """Override for mouse presses."""
     self._interacting = True
     QVTKRenderWindowInteractor.mousePressEvent(self, ev)
Exemplo n.º 17
0
 def mouseReleaseEvent(self, ev):
     """Override for mouse releases."""
     self._interacting = False
     QVTKRenderWindowInteractor.mouseReleaseEvent(self, ev)
Exemplo n.º 18
0
    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)
Exemplo n.º 19
0
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
        ]
Exemplo n.º 20
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()
Exemplo n.º 24
0
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()
Exemplo n.º 25
0
    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