示例#1
0
    def __init__(self, parent=None):
        super(ExampleApp, self).__init__(parent)
        self.setupUi(self)

        #Initialize Variables
        self.popup = None
        self.wd = os.getcwd()
        self.h5_file = ""
        self.json = ""
        self.imList = []
        self.horizontalSlider.setMaximum(len(self.imList))
        self.horizontalSlider.setMinimum(0)
        self.ref_img = np.array([])
        self.norm_img = np.array([])
        self.normBox = False
        self.alignBox = False
        self.data_list = []

        # Set tri-state false for all checkboxes
        self.checkBox.setTristate(False)
        self.checkBox_2.setTristate(False)
        self.checkBox_3.setTristate(False)
        self.checkBox_4.setTristate(False)
        self.checkBox_5.setTristate(False)
        self.checkBox_6.setTristate(False)

        #Setup Dock Widgets as Tabs (can't be done in qt designer)
        self.tabifyDockWidget(self.dockWidget_4, self.dockWidget)

        #Create blank Images and display as placeholders
        self.canvas = MplCanvas(width=9, height=7)
        tmpLayout = QtGui.QHBoxLayout()
        #self.rlist = roiPop.RoiList()
        self.roiList = roiPop.RoiList(self.canvas.axes)
        tmpLayout.addWidget(self.roiList)
        blank = np.zeros((100, 100))
        tmp = mpimg.imread('numpy.png')
        self.blank_img = func.Im(blank)
        self.ref_canvas = MplCanvas()
        self.image = self.canvas.axes.imshow(tmp, cmap='jet')
        self.navi_toolbar = NavigationToolbar(self.canvas, self)
        #self.gridLayout_8.addWidget(self.navi_toolbar)
        self.image2 = self.ref_canvas.axes.imshow(tmp)
        tmpLayout.insertWidget(1, self.canvas)
        self.verticalLayout_4.insertWidget(0, self.navi_toolbar)
        #self.verticalLayout_4.insertWidget(1, self.canvas)
        self.verticalLayout_4.insertLayout(1, tmpLayout)
        self.verticalLayout_6.insertWidget(0, self.ref_canvas)
        divider = make_axes_locatable(self.canvas.axes)
        cax = divider.append_axes('right', size='5%',
                                  pad=0.05)  # Set colorbar to right of image
        self.cb = self.canvas.fig.colorbar(self.image, cax=cax)
        #self.lman = lasso.LassoManager(self.canvas.axes, tmp)

        #Begin with no images displayed
        self.lineEdit_9.setText(str(0) + "/" + str(0))

        #Buttons for choosing ROI and deleting images from imList
        self.pushButton_21.clicked.connect(lambda: func.delete_im(self))

        #Data acquisition tab
        self.pushButton.clicked.connect(lambda: func.choose_wd(self))
        self.pushButton_2.clicked.connect(lambda: func.create_h5(self))
        self.pushButton_3.clicked.connect(
            lambda: func.create_h5_from_file(self))
        self.pushButton_4.clicked.connect(lambda: func.choose_json(self))
        self.pushButton_5.clicked.connect(lambda: func.fit_h5(self))

        #Image operation tab
        self.pushButton_6.clicked.connect(lambda: func.choose_im(self))
        self.pushButton_9.clicked.connect(lambda: func.plot_crnt_im(self))
        self.pushButton_8.clicked.connect(lambda: func.choose_norm(self))
        self.pushButton_13.clicked.connect(lambda: func.choose_ref(self))
        self.pushButton_14.clicked.connect(lambda: func.plot_reference(self))
        self.pushButton_7.clicked.connect(lambda: func.choose_img_dir(self))
        self.pushButton_11.clicked.connect(lambda: func.plot_imgs(self))

        #Chemical analysis tab
        self.pushButton_19.clicked.connect(
            lambda: func.batch_registration(self))
        self.pushButton_20.clicked.connect(
            lambda: func.generate_roi_data(self))
        self.pushButton_15.clicked.connect(lambda: func.get_data(self))
        self.pushButton_25.clicked.connect(lambda: func.plot_all_data(self))

        #Primary Dock Widget
        self.horizontalSlider.valueChanged.connect(
            lambda: func.slider_change(self))
        self.checkBox_5.clicked.connect(lambda: func.make_ref_align_box(self))
        self.checkBox_6.clicked.connect(lambda: func.make_ref_norm_box(self))
        self.pushButton_22.clicked.connect(lambda: func.delete_all(self))
        self.pushButton_17.clicked.connect(lambda: func.remove_data(self))

        #Image Augmentation
        self.checkBox.clicked.connect(lambda: func.align_check(self))
        self.checkBox_2.clicked.connect(lambda: func.normalize_check(self))

        # Roi stuff
        self.pushButton_10.clicked.connect(
            lambda: func.compute_roiList_intensity(self))