Example #1
0
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = MyLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(40, 49, 601, 288))
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.label.setText(_translate("MainWindow", "TextLabel"))
Example #2
0
class Example(QWidget):
    def __init__(self):
        super().__init__()
        i = 5
        while (i < 100):
            self.initUI()
            ++i

    def initUI(self):
        self.resize(675, 300)
        self.setWindowTitle('在label中绘制矩形')
        self.lb = MyLabel(self)  #重定义的label
        self.lb.setGeometry(QRect(30, 30, 511, 541))
        img = cv2.imread('back2.jpg')
        height, width, bytesPerComponent = img.shape
        bytesPerLine = 3 * width
        cv2.cvtColor(img, cv2.COLOR_BGR2RGB, img)
        QImg = QImage(img.data, width, height, bytesPerLine,
                      QImage.Format_RGB888)
        pixmap = QPixmap.fromImage(QImg)
        self.lb.setPixmap(pixmap)
        self.lb.setCursor(Qt.CrossCursor)
        self.show()
Example #3
0
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(629, 528)
        Form.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.lb = QtWidgets.QLabel(Form)
        self.lb.setGeometry(QtCore.QRect(3, 1, 621, 421))
        self.lb.setObjectName("lb")
        self.label = MyLabel(self.lb)
        self.label.setGeometry(QtCore.QRect(3, 1, 621, 421))
        self.label.setPixmap(QtGui.QPixmap(file_path_caijian))
        self.label.setScaledContents(True)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(50, 430, 91, 91))
        self.pushButton.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("E:/opencv_jk/添加.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton.setIcon(icon)
        self.pushButton.setIconSize(QtCore.QSize(90, 90))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(270, 430, 91, 91))
        self.pushButton_2.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("E:/opencv_jk/保存.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_2.setIcon(icon1)
        self.pushButton_2.setIconSize(QtCore.QSize(90, 90))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(Form)
        self.pushButton_3.setGeometry(QtCore.QRect(490, 430, 91, 91))
        self.pushButton_3.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("E:/opencv_jk/删除.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_3.setIcon(icon2)
        self.pushButton_3.setIconSize(QtCore.QSize(90, 90))
        self.pushButton_3.setObjectName("pushButton_3")

        self.retranslateUi(Form)
        self.pushButton.clicked.connect(self.tianjia)
        self.pushButton_2.clicked.connect(self.baocun)
        self.pushButton_3.clicked.connect(self.shanchu)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))

    def tianjia(self):
        global file_path_caijian
        root = tk.Tk()
        root.withdraw()
        file_path_caijian = filedialog.askopenfilename()
        self.label.setPixmap(QtGui.QPixmap(file_path_caijian))

    def baocun(self):
        global file_path_caijian
        root = tk.Tk()
        root.withdraw()
        file_path_baocun = filedialog.asksaveasfilename(filetypes=[("picture", ".jpg")])
        img = cv2.imread(file_path_caijian)
        # [y: y + h, x: x + w]
        dst = img[self.label.y0:self.label.y1, self.label.x0:self.label.x1]
        cv2.imwrite(file_path_baocun + ".jpg", dst)

    def shanchu(self):
        self.label.clear()
Example #4
0
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(627, 600)
        Form.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.lb = QtWidgets.QLabel(Form)
        self.lb.setGeometry(QtCore.QRect(0, 70, 621, 421))
        self.lb.setObjectName("lb")
        self.label = MyLabel(self.lb)
        self.label.setGeometry(QtCore.QRect(3, 1, 621, 421))
        self.label.setPixmap(QtGui.QPixmap(file_path_tianjiawenzi))
        self.label.setScaledContents(True)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(50, 500, 90, 90))
        self.pushButton.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("E:/opencv_jk/添加.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton.setIcon(icon)
        self.pushButton.setIconSize(QtCore.QSize(90, 90))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(260, 500, 90, 90))
        self.pushButton_2.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("E:/opencv_jk/保存.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_2.setIcon(icon1)
        self.pushButton_2.setIconSize(QtCore.QSize(90, 90))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(Form)
        self.pushButton_3.setGeometry(QtCore.QRect(490, 500, 90, 90))
        self.pushButton_3.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("E:/opencv_jk/删除.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_3.setIcon(icon2)
        self.pushButton_3.setIconSize(QtCore.QSize(90, 90))
        self.pushButton_3.setObjectName("pushButton_3")
        self.textEdit = QtWidgets.QTextEdit(Form)
        self.textEdit.setGeometry(QtCore.QRect(0, 10, 281, 51))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(22)
        font.setBold(True)
        font.setWeight(75)
        self.textEdit.setFont(font)
        self.textEdit.setStyleSheet("background-color: rgb(255, 255, 255);\n"
                                    "color: rgb(0, 0, 0);")
        self.textEdit.setObjectName("textEdit")
        self.pushButton_4 = QtWidgets.QPushButton(Form)
        self.pushButton_4.setGeometry(QtCore.QRect(550, 20, 71, 31))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(18)
        font.setBold(True)
        font.setWeight(75)
        self.pushButton_4.setFont(font)
        self.pushButton_4.setStyleSheet("color: rgb(0, 255, 255);")
        self.pushButton_4.setObjectName("pushButton_4")
        self.comboBox = QtWidgets.QComboBox(Form)
        self.comboBox.setGeometry(QtCore.QRect(340, 20, 69, 31))
        self.comboBox.setStyleSheet("color: rgb(255, 255, 255);")
        self.comboBox.setObjectName("comboBox")
        tt = [['FZSTK'], ['simhei'], ['simsunb'], ['STCAIYUN'], ['STHUPO'],
              ['STLITI'], ['STXINGKA']]
        for i in tt:
            self.comboBox.addItem(i[0])
        self.comboBox_2 = QtWidgets.QComboBox(Form)
        self.comboBox_2.setGeometry(QtCore.QRect(470, 20, 69, 31))
        self.comboBox_2.setStyleSheet("color: rgb(255, 255, 255);")
        self.comboBox_2.setObjectName("comboBox_2")
        hh = [['10'], ['12'], ['14'], ['16'], ['18'], ['20'], ['22'], ['24'],
              ['26'], ['28'], ['30'], ['32'], ['34'], ['36'], ['38'], ['40'],
              ['42'], ['44'], ['46'], ['48'], ['50']]
        for i in hh:
            self.comboBox_2.addItem(i[0])
        self.label_2 = QtWidgets.QLabel(Form)
        self.label_2.setGeometry(QtCore.QRect(290, 20, 41, 31))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.label_2.setFont(font)
        self.label_2.setStyleSheet("color: rgb(255, 255, 255);")
        self.label_2.setObjectName("label_2")
        self.label_3 = QtWidgets.QLabel(Form)
        self.label_3.setGeometry(QtCore.QRect(420, 20, 41, 31))
        font = QtGui.QFont()
        font.setFamily("Adobe Arabic")
        font.setPointSize(12)
        font.setBold(True)
        font.setWeight(75)
        self.label_3.setFont(font)
        self.label_3.setStyleSheet("color: rgb(255, 255, 255);")
        self.label_3.setObjectName("label_3")

        self.retranslateUi(Form)
        self.pushButton.clicked.connect(self.tianjia)
        self.pushButton_2.clicked.connect(self.baocun)
        self.pushButton_3.clicked.connect(self.shanchu)
        self.pushButton_4.clicked.connect(self.queding)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.textEdit.setHtml(
            _translate(
                "Form",
                "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\" \"http://www.w3.org/TR/REC-html40/strict.dtd\">\n"
                "<html><head><meta name=\"qrichtext\" content=\"1\" /><style type=\"text/css\">\n"
                "p, li { white-space: pre-wrap; }\n"
                "</style></head><body style=\" font-family:\'Adobe Arabic\'; font-size:22pt; font-weight:600; font-style:normal;\">\n"
                "<p align=\"center\" style=\"-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-size:20pt;\"><br /></p></body></html>"
            ))
        self.pushButton_4.setText(_translate("Form", "确定"))
        self.label_2.setText(_translate("Form", "字体"))
        self.label_3.setText(_translate("Form", "大小"))

    def queding(self):
        global file_path_tianjiawenzi
        ziti = self.comboBox.currentText()
        daxiao = self.comboBox_2.currentText()
        size = int(daxiao)
        x = self.label.x0
        y = self.label.y0
        wenzi = self.textEdit.toPlainText()
        font = ImageFont.truetype('E:\opencv_jk\\' + ziti + '.ttf', size)
        # 使用自定义的字体,第二个参数表示字符大小
        im = Image.open(file_path_tianjiawenzi)
        # 生成空白图像
        draw = ImageDraw.Draw(im)
        # 绘图句柄
        draw.text((x, y), wenzi, font=font)
        im.save("E:/opencv_huancun/" + "tianjiawenzi" + ".jpg")
        self.label.setPixmap(
            QtGui.QPixmap("E:/opencv_huancun/tianjiawenzi.jpg"))

    def tianjia(self):
        global file_path_tianjiawenzi
        root = tk.Tk()
        root.withdraw()
        file_path_tianjiawenzi = filedialog.askopenfilename()
        self.label.setPixmap(QtGui.QPixmap(file_path_tianjiawenzi))

    def baocun(self):
        root = tk.Tk()
        root.withdraw()
        file_path_baocun = filedialog.asksaveasfilename(filetypes=[("picture",
                                                                    ".jpg")])
        dst = cv2.imread("E:/opencv_huancun/tianjiawenzi.jpg")
        cv2.imwrite(file_path_baocun + ".jpg", dst)

    def shanchu(self):
        self.label.clear()
Example #5
0
class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(627, 527)
        Form.setMaximumSize(QtCore.QSize(16777215, 16777215))
        Form.setStyleSheet("background-color: rgb(0, 0, 0);")
        self.lb = QtWidgets.QLabel(Form)
        self.lb.setGeometry(QtCore.QRect(3, 1, 621, 421))
        self.lb.setObjectName("lb")
        self.label = MyLabel(self.lb)
        self.label.setGeometry(QtCore.QRect(3, 1, 621, 421))
        self.label.setPixmap(QtGui.QPixmap(file_path_masaike))
        self.label.setScaledContents(True)
        self.pushButton = QtWidgets.QPushButton(Form)
        self.pushButton.setGeometry(QtCore.QRect(50, 430, 90, 90))
        self.pushButton.setText("")
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("E:/opencv_jk/添加.png"),
                       QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton.setIcon(icon)
        self.pushButton.setIconSize(QtCore.QSize(90, 90))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(Form)
        self.pushButton_2.setGeometry(QtCore.QRect(500, 430, 90, 90))
        self.pushButton_2.setText("")
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("E:/opencv_jk/删除.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_2.setIcon(icon1)
        self.pushButton_2.setIconSize(QtCore.QSize(90, 90))
        self.pushButton_2.setObjectName("pushButton_2")
        self.pushButton_3 = QtWidgets.QPushButton(Form)
        self.pushButton_3.setGeometry(QtCore.QRect(270, 430, 90, 90))
        self.pushButton_3.setText("")
        icon2 = QtGui.QIcon()
        icon2.addPixmap(QtGui.QPixmap("E:/opencv_jk/保存.png"),
                        QtGui.QIcon.Normal, QtGui.QIcon.Off)
        self.pushButton_3.setIcon(icon2)
        self.pushButton_3.setIconSize(QtCore.QSize(90, 90))
        self.pushButton_3.setObjectName("pushButton_3")

        self.retranslateUi(Form)
        self.pushButton.clicked.connect(self.tianjia)
        self.pushButton_3.clicked.connect(self.baocun)
        self.pushButton_2.clicked.connect(self.shanchu)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))

    def mosaic(self, selected_image, nsize=3):
        rows = self.label.x1 - self.label.x0
        cols = self.label.y1 - self.label.y0
        dist = selected_image.copy()
        # 划分小方块,每个小方块填充随机颜色
        for y in range(0, rows, nsize):
            for x in range(0, cols, nsize):
                dist[y:(y + nsize),
                     x:(x + nsize)] = (np.random.randint(0, 255),
                                       np.random.randint(0, 255),
                                       np.random.randint(0, 255))
        return dist

    def tianjia(self):
        global file_path_masaike
        root = tk.Tk()
        root.withdraw()
        file_path_masaike = filedialog.askopenfilename()
        self.label.setPixmap(QtGui.QPixmap(file_path_masaike))

    def baocun(self):
        global file_path_masaike
        root = tk.Tk()
        root.withdraw()
        file_path_baocun = filedialog.asksaveasfilename(filetypes=[("picture",
                                                                    ".jpg")])
        rect = {}
        rect['x'] = self.label.x0
        rect['y'] = self.label.y0
        width = self.label.x1 - self.label.x0
        height = self.label.y1 - self.label.y0
        rect['width'] = width
        rect['height'] = height
        img = cv2.imread(file_path_masaike)
        img_cpy = img.copy()
        select_image = img_cpy[rect['y']:(rect['y'] + rect['height']),
                               rect['x']:(rect['x'] + rect['width'])]
        result = self.mosaic(select_image)
        # 将处理完成的区域合并回原图像
        img_cpy[rect['y']:(rect['y'] + rect['height']),
                rect['x']:(rect['x'] + rect['width'])] = cv2.addWeighted(
                    result, 0.65, select_image, 0.35, 0)
        cv2.imwrite(file_path_baocun + ".jpg", img_cpy)

    def shanchu(self):
        self.label.clear()
Example #6
0
class MainCode(QMainWindow, main_ui.Ui_MainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        main_ui.Ui_MainWindow.__init__(self)
        self.setupUi(self)
        self.initUI()

    def initUI(self):
        self.setWindowTitle("标注工具")
        self.label_log.setText("")

        from mylabel import MyLabel, SemiLabel

        # 将响应函数绑定在按钮上
        self.btn_open.clicked.connect(self.on_open_dir)
        self.btn_next.clicked.connect(self.on_next_image)
        self.btn_pre.clicked.connect(self.on_pre_image)
        self.btn_save.clicked.connect(self.on_save)

        # 目录树
        self.model = QStandardItemModel(0, 1, self)
        self.model.setHeaderData(0, Qt.Horizontal, "文件路径")
        self.treeView.setModel(self.model)
        self.treeView.clicked.connect(self.tree_clicked)

        # 全手动
        self.lb = MyLabel(self.tab_manu)
        self.lb.setGeometry(QRect(10, 10, 760, 540))
        self.radio_poly.setChecked(True)
        self.button_group = QtWidgets.QButtonGroup(self)
        self.button_group.addButton(self.radio_rect)
        self.button_group.addButton(self.radio_poly)

        # 半自动
        self.mylabel_rgb_semi = SemiLabel(self.tab_semi)
        self.mylabel_rgb_semi.setGeometry(QRect(30, 150, 320, 240))
        self.label_rgb_semi.setText("")
        self.label_mask_semi.setText("")
        self.label_curmarker_semi.setText("current_marker: " + "1")

        # 全自动
        self.label_rgbtfusion_auto.setText("")
        self.label_registered_auto.setText("")
        self.label_mask_auto.setText("")
        self.mylabel_registered_auto = SemiLabel(self.tab_auto)
        self.mylabel_registered_auto.setGeometry(QRect(40, 290, 320, 240))
        self.label_curmarker_auto.setText("current_marker: " + "1")
        self.boundary_points = []

        # self.radio_semi_auto.setChecked(True)
        # self.group_auto = QtWidgets.QButtonGroup(self)
        # self.group_auto.addButton(self.radio_semi_auto)
        # self.group_auto.addButton(self.radio_auto_auto)

        self.cur_img_ann = {}
        self.show()

    def on_open_dir(self):
        data_dir = QFileDialog.getExistingDirectory(self, "选取文件夹", "./")
        self.data_dir = data_dir

        test_data = os.listdir(data_dir)
        test_data.sort()
        self.test_data = test_data
        self.num_data = len(test_data)
        self.image_ids = list(range(self.num_data))
        self.image_id = 0
        self.label_img_info.setText("image_id: {}\nname: {}".format(
            self.image_id, self.test_data[self.image_id]))

        # 目录树显示
        path_data_name = self.model.invisibleRootItem()
        for i in range(len(test_data)):
            gos_data = QStandardItem(test_data[i])
            path_data_name.setChild(i, gos_data)

    def on_next_image(self):
        if self.image_id == self.num_data - 1:
            self.image_id = 0
        else:
            self.image_id += 1
        self.label_img_info.setText("image_id: {}\nname: {}".format(
            self.image_id, self.test_data[self.image_id]))

    def on_pre_image(self):
        if self.image_id == 0:
            self.image_id = self.num_data - 1
        else:
            self.image_id -= 1
        self.label_img_info.setText("image_id: {}\nname: {}".format(
            self.image_id, self.test_data[self.image_id]))

    def tree_clicked(self):
        index = self.treeView.currentIndex()
        self.image_id = index.row()
        self.label_img_info.setText("image_id: {}\nname: {}".format(
            self.image_id, self.test_data[self.image_id]))
        self.boundary_points = []
        if self.tabWidget.currentIndex() == 0:  # 全手动处理
            self.show_image_manu()
        elif self.tabWidget.currentIndex() == 1:  # 半自动处理
            self.show_image_semi()
        elif self.tabWidget.currentIndex() == 2:  # 全自动处理
            self.show_image_auto()

    # 全手动标注的处理函数
    def show_image_manu(self):
        self.lb.refresh()
        rgb_path = os.path.join(self.data_dir, self.test_data[self.image_id])
        rgb_image = cv.imread(rgb_path)
        # height, width = img.shape[:2]
        # max_edge_scale = min(self.lb.width() / width, self.lb.height() / height)
        # height_scale, width_scale = height * max_edge_scale, width * max_edge_scale
        # img = cv.resize(img, (int(width_scale), int(height_scale)))
        # img = image_pad(img, 540, 760)
        # img = img[..., ::-1]
        # img = PI.fromarray(img)
        # img = img.toqpixmap()
        #
        # self.lb.setPixmap(img)
        # self.lb.set_parameters(img, self.radio_rect, self.radio_poly)
        # self.lb.setAlignment(QtCore.Qt.AlignLeft | QtCore.Qt.AlignTop)
        # self.lb.setCursor(Qt.CrossCursor) # 改变鼠标箭头形式

        rgb_pix_map = display_image_on_label(rgb_image, self.lb)
        self.lb.set_parameters(rgb_pix_map, self.radio_rect, self.radio_poly,
                               self.cur_img_ann, self.boundary_points)
        self.lb.setCursor(Qt.CrossCursor)  # 改变鼠标箭头形式

    # 半自动标注的处理函数
    def show_image_semi(self):
        # 获取待显示结果的路径
        rgb_path = os.path.join(self.data_dir, self.test_data[self.image_id])
        rgb_image = cv.imread(rgb_path)
        rgb_pix_map = display_image_on_label(rgb_image, self.mylabel_rgb_semi)
        _ = display_image_on_label(rgb_image, self.label_mask_semi)
        self.mylabel_rgb_semi.set_parameters(
            rgb_image,
            rgb_pix_map,
            self.label_mask_semi,
            label_curmarker=self.label_curmarker_semi,
            mask=self.boundary_points)  # 前景分割设置

    # 全自动标注的处理函数
    def show_image_auto(self):
        # 获取待显示结果的路径
        data_dir = self.data_dir.split('/')[:-1]
        result_dir = '/'.join(data_dir) + "/registration_results/"
        rgb_t_fusion_path = result_dir + "rgb_t_fusion/" + self.test_data[
            self.image_id]
        registered_path = result_dir + "registered/" + self.test_data[
            self.image_id]

        # 显示rgb_t_fusion图像和配准后的红外图像
        rgb_t_fusion_image = cv.imread(rgb_t_fusion_path)
        registered_image = cv.imread(registered_path)
        # if self.radio_semi_auto.isChecked():
        # 	_ = display_image_on_label(rgb_t_fusion_image, self.label_rgbtfusion_auto)
        # 	registered_pix_map = display_image_on_label(registered_image, self.mylabel_registered_auto)
        # 	_ = display_image_on_label(registered_image, self.label_mask_auto)
        # 	self.mylabel_registered_auto.set_parameters(registered_image, registered_pix_map,
        #                                                 self.label_mask_auto,
        #                                                 label_curmarker=self.label_curmarker_auto,
        #                                                 mask = self.boundary_points)   # 前景分割设置
        # elif self.radio_auto_auto.isChecked():
        _ = display_image_on_label(rgb_t_fusion_image,
                                   self.label_rgbtfusion_auto)
        registered_pix_map = display_image_on_label(
            registered_image, self.mylabel_registered_auto)
        mask, self.boundary_points = watershed.App(
            registered_image.copy()).start()
        _ = display_image_on_label(mask, self.label_mask_auto)

        self.mylabel_registered_auto.set_parameters(
            registered_image,
            registered_pix_map,
            self.label_mask_auto,
            label_curmarker=self.label_curmarker_auto,
            mask=self.boundary_points)  # 前景分割设置

        # 添加先验标记和分水岭
        def pre_process():
            gray = cv.cvtColor(registered_image, cv.COLOR_BGR2GRAY)

    def on_save(self):
        # 是否进行了标注
        if self.boundary_points == []:
            print("请先进行标注")
            self.label_log.setText("Tip: " + "请先进行标注!")
            return

        # 转换标注的格式
        regions = []
        regions_item = {}
        name_shape_attributes = "polygon"
        regions_item["shape_attributes"] = {}
        regions_item["shape_attributes"]["name"] = name_shape_attributes
        regions_item["shape_attributes"][
            "all_points_x"] = self.boundary_points[0]
        regions_item["shape_attributes"][
            "all_points_y"] = self.boundary_points[1]
        category = self.test_data[self.image_id].split("_")[0]
        category_label = '0'
        if category == "box":
            category_label = '1'
        elif category == "cabinet":
            category_label = '2'
        elif category == "insulator":
            category_label = '3'
        elif category == "transformor":
            category_label = '4'
        region_attributes = {"label": category_label}
        regions_item["region_attributes"] = region_attributes
        regions.append(regions_item)

        img_name = self.test_data[self.image_id]
        self.cur_img_ann["filename"] = img_name
        self.cur_img_ann["size"] = random.randint(0, 1000)
        self.cur_img_ann["file_attributes"] = {}
        self.cur_img_ann["regions"] = regions

        # 保存标注结果
        save_path = "./results/"
        j = json_lib.JSON()
        j.JSONWrite(save_path + img_name[:-4] + ".json", self.cur_img_ann)
        log = img_name + "的标注已保存到" + save_path + img_name[:-4] + ".json"
        self.label_log.setText("Tip: " + log)
        print(log)

    def water_shed(self, img):
        self.markers_vis = watershed.App(img).run()

    def keyPressEvent(self, event):
        ch = event.key()
        cur_marker = ch - ord('0')
        if 0 < cur_marker < 7:
            if self.tabWidget.currentIndex() == 1:
                self.label_curmarker_semi.setText("current_marker: " +
                                                  str(cur_marker))
            elif self.tabWidget.currentIndex() == 2:
                self.label_curmarker_auto.setText("current_marker: " +
                                                  str(cur_marker))
Example #7
0
class Ui_Tracker(object):
    def setupUi(self, Tracker):
        Tracker.setObjectName("Tracker")
        Tracker.setWindowModality(QtCore.Qt.NonModal)
        Tracker.resize(803, 644)
        palette = QtGui.QPalette()
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush)
        brush = QtGui.QBrush(QtGui.QColor(212, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Midlight, brush)
        brush = QtGui.QBrush(QtGui.QColor(85, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush)
        brush = QtGui.QBrush(QtGui.QColor(113, 170, 170))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush)
        brush = QtGui.QBrush(QtGui.QColor(212, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush)
        brush = QtGui.QBrush(QtGui.QColor(212, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Midlight,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(85, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush)
        brush = QtGui.QBrush(QtGui.QColor(113, 170, 170))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush)
        brush = QtGui.QBrush(QtGui.QColor(212, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Inactive,
                         QtGui.QPalette.PlaceholderText, brush)
        brush = QtGui.QBrush(QtGui.QColor(85, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush)
        brush = QtGui.QBrush(QtGui.QColor(212, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Midlight,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(85, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush)
        brush = QtGui.QBrush(QtGui.QColor(113, 170, 170))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush)
        brush = QtGui.QBrush(QtGui.QColor(85, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(85, 127, 127))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush)
        brush = QtGui.QBrush(QtGui.QColor(170, 255, 255))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText,
                         brush)
        brush = QtGui.QBrush(QtGui.QColor(0, 0, 0, 128))
        brush.setStyle(QtCore.Qt.SolidPattern)
        palette.setBrush(QtGui.QPalette.Disabled,
                         QtGui.QPalette.PlaceholderText, brush)
        Tracker.setPalette(palette)
        icon = QtGui.QIcon()
        icon.addPixmap(QtGui.QPixmap("1234.png"), QtGui.QIcon.Normal,
                       QtGui.QIcon.Off)
        Tracker.setWindowIcon(icon)
        Tracker.setTabShape(QtWidgets.QTabWidget.Triangular)
        self.centralwidget = QtWidgets.QWidget(Tracker)
        self.centralwidget.setObjectName("centralwidget")
        self.btn_open = QtWidgets.QPushButton(self.centralwidget)
        self.btn_open.setGeometry(QtCore.QRect(30, 480, 90, 30))
        icon1 = QtGui.QIcon()
        icon1.addPixmap(QtGui.QPixmap("123.png"), QtGui.QIcon.Normal,
                        QtGui.QIcon.Off)
        self.btn_open.setIcon(icon1)
        self.btn_open.setObjectName("btn_open")
        self.btn_play = QtWidgets.QPushButton(self.centralwidget)
        self.btn_play.setGeometry(QtCore.QRect(220, 480, 90, 30))
        self.btn_play.setIcon(icon1)
        self.btn_play.setObjectName("btn_play")
        self.btn_gray = QtWidgets.QPushButton(self.centralwidget)
        self.btn_gray.setGeometry(QtCore.QRect(650, 480, 90, 30))
        self.btn_gray.setIcon(icon1)
        self.btn_gray.setObjectName("btn_gray")
        self.btn_cap = QtWidgets.QPushButton(self.centralwidget)
        self.btn_cap.setGeometry(QtCore.QRect(440, 480, 90, 30))
        self.btn_cap.setIcon(icon1)
        self.btn_cap.setObjectName("btn_cap")
        self.wgt_video = MyLabel(self.centralwidget)
        self.wgt_video.setGeometry(QtCore.QRect(0, 80, 400, 340))
        self.wgt_video.setLayoutDirection(QtCore.Qt.LeftToRight)
        self.wgt_video.setTextFormat(QtCore.Qt.AutoText)
        self.wgt_video.setAlignment(QtCore.Qt.AlignCenter)
        self.wgt_video.setIndent(-1)
        self.wgt_video.setObjectName("wgt_video")
        self.wgt_picture = MyLabel(self.centralwidget)
        self.wgt_picture.setGeometry(QtCore.QRect(400, 80, 401, 170))
        self.wgt_picture.setAlignment(QtCore.Qt.AlignCenter)
        self.wgt_picture.setObjectName("wgt_picture")
        self.wgt_gray = MyLabel(self.centralwidget)
        self.wgt_gray.setGeometry(QtCore.QRect(400, 250, 401, 170))
        self.wgt_gray.setAlignment(QtCore.Qt.AlignCenter)
        self.wgt_gray.setObjectName("wgt_gray")
        Tracker.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(Tracker)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 803, 26))
        self.menubar.setObjectName("menubar")
        self.menu = QtWidgets.QMenu(self.menubar)
        self.menu.setObjectName("menu")
        self.menu_2 = QtWidgets.QMenu(self.menubar)
        self.menu_2.setObjectName("menu_2")
        Tracker.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(Tracker)
        self.statusbar.setObjectName("statusbar")
        Tracker.setStatusBar(self.statusbar)
        self.action = QtWidgets.QAction(Tracker)
        self.action.setObjectName("action")
        self.action_2 = QtWidgets.QAction(Tracker)
        self.action_2.setObjectName("action_2")
        self.action_3 = QtWidgets.QAction(Tracker)
        self.action_3.setObjectName("action_3")
        self.menu.addAction(self.action_2)
        self.menu.addAction(self.action_3)
        self.menu_2.addAction(self.action)
        self.menubar.addAction(self.menu.menuAction())
        self.menubar.addAction(self.menu_2.menuAction())

        self.retranslateUi(Tracker)
        self.btn_open.clicked.connect(Tracker.btn_Open_Clicked)
        self.btn_play.clicked.connect(Tracker.btn_Play_Clicked)
        self.btn_cap.clicked.connect(Tracker.btn_Cap_Clicked)
        self.btn_gray.clicked.connect(Tracker.btn_Gray_Clicked)
        QtCore.QMetaObject.connectSlotsByName(Tracker)

    def retranslateUi(self, Tracker):
        _translate = QtCore.QCoreApplication.translate
        Tracker.setWindowTitle(_translate("Tracker", "MainWindow"))
        self.btn_open.setText(_translate("Tracker", "打开"))
        self.btn_play.setText(_translate("Tracker", "播放"))
        self.btn_gray.setText(_translate("Tracker", "灰度图"))
        self.btn_cap.setText(_translate("Tracker", "提取图片"))
        self.wgt_video.setText(_translate("Tracker", "视频"))
        self.wgt_picture.setText(_translate("Tracker", "图片"))
        self.wgt_gray.setText(_translate("Tracker", "灰度图"))
        self.menu.setTitle(_translate("Tracker", "菜单"))
        self.menu_2.setTitle(_translate("Tracker", "帮助"))
        self.action.setText(_translate("Tracker", "关于"))
        self.action_2.setText(_translate("Tracker", "开始"))
        self.action_3.setText(_translate("Tracker", "打开"))

    def paintEvent(self, event):
        painter = QPainter(self)
        painter.setBrush(Qt.green)
        painter.drawRect(self.rect())

        pixmap = QPixmap("back.jpg")
        painter.drawPixmap(self.rect(), pixmap)
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(900, 600)
        MainWindow.setStyleSheet("background-color: rgb(255, 255, 255);")
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.bottomWidget = QtWidgets.QWidget(self.centralwidget)
        self.bottomWidget.setGeometry(QtCore.QRect(60, 540, 771, 41))
        self.bottomWidget.setStyleSheet("background-color: rgb(109, 255, 93);")
        self.bottomWidget.setObjectName("bottomWidget")
        self.gridLayout = QtWidgets.QGridLayout(self.bottomWidget)
        self.gridLayout.setContentsMargins(0, 0, 0, 0)
        self.gridLayout.setObjectName("gridLayout")
        spacerItem = QtWidgets.QSpacerItem(10, 20,
                                           QtWidgets.QSizePolicy.Expanding,
                                           QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem, 0, 10, 1, 1)
        spacerItem1 = QtWidgets.QSpacerItem(10, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1)
        self.bindPhone = MyLabel(self.bottomWidget)
        self.bindPhone.setObjectName("bindPhone")
        self.gridLayout.addWidget(self.bindPhone, 0, 7, 1, 1)
        self.regOrLogin = MyLabel(self.bottomWidget)
        self.regOrLogin.setObjectName("regOrLogin")
        self.gridLayout.addWidget(self.regOrLogin, 0, 5, 1, 1)
        self.bindWechat = MyLabel(self.bottomWidget)
        self.bindWechat.setObjectName("bindWechat")
        self.gridLayout.addWidget(self.bindWechat, 0, 3, 1, 1)
        spacerItem2 = QtWidgets.QSpacerItem(206, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem2, 0, 2, 1, 1)
        spacerItem3 = QtWidgets.QSpacerItem(205, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem3, 0, 8, 1, 1)
        self.addKnowlege = MyLabel(self.bottomWidget)
        self.addKnowlege.setObjectName("addKnowlege")
        self.gridLayout.addWidget(self.addKnowlege, 0, 9, 1, 1)
        self.versionInfo = QtWidgets.QLabel(self.bottomWidget)
        self.versionInfo.setObjectName("versionInfo")
        self.gridLayout.addWidget(self.versionInfo, 0, 1, 1, 1)
        spacerItem4 = QtWidgets.QSpacerItem(20, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem4, 0, 4, 1, 1)
        spacerItem5 = QtWidgets.QSpacerItem(20, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout.addItem(spacerItem5, 0, 6, 1, 1)
        self.gridLayout.setColumnStretch(2, 1)
        self.gridLayout.setColumnStretch(8, 1)
        self.middleWidget = QtWidgets.QWidget(self.centralwidget)
        self.middleWidget.setGeometry(QtCore.QRect(130, 190, 571, 61))
        self.middleWidget.setStyleSheet("background-color: rgb(170, 85, 0);")
        self.middleWidget.setObjectName("middleWidget")
        self.gridLayout_2 = QtWidgets.QGridLayout(self.middleWidget)
        self.gridLayout_2.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_2.setObjectName("gridLayout_2")
        self.searchText = QtWidgets.QLineEdit(self.middleWidget)
        self.searchText.setObjectName("searchText")
        self.gridLayout_2.addWidget(self.searchText, 0, 0, 1, 1)
        self.searchBtn = MyLabel(self.middleWidget)
        self.searchBtn.setObjectName("searchBtn")
        self.gridLayout_2.addWidget(self.searchBtn, 0, 2, 1, 1)
        spacerItem6 = QtWidgets.QSpacerItem(10, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem6, 0, 1, 1, 1)
        spacerItem7 = QtWidgets.QSpacerItem(10, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_2.addItem(spacerItem7, 0, 3, 1, 1)
        self.gridLayout_2.setColumnStretch(0, 1)
        self.topWidget = QtWidgets.QWidget(self.centralwidget)
        self.topWidget.setGeometry(QtCore.QRect(40, 20, 801, 41))
        self.topWidget.setStyleSheet("background-color: rgb(255, 255, 127);")
        self.topWidget.setObjectName("topWidget")
        self.gridLayout_3 = QtWidgets.QGridLayout(self.topWidget)
        self.gridLayout_3.setContentsMargins(0, 0, 0, 0)
        self.gridLayout_3.setObjectName("gridLayout_3")
        spacerItem8 = QtWidgets.QSpacerItem(10, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_3.addItem(spacerItem8, 0, 0, 1, 1)
        spacerItem9 = QtWidgets.QSpacerItem(20, 20,
                                            QtWidgets.QSizePolicy.Expanding,
                                            QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_3.addItem(spacerItem9, 0, 7, 1, 1)
        spacerItem10 = QtWidgets.QSpacerItem(20, 20,
                                             QtWidgets.QSizePolicy.Expanding,
                                             QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_3.addItem(spacerItem10, 0, 5, 1, 1)
        self.orgLogo = MyLabel(self.topWidget)
        self.orgLogo.setObjectName("orgLogo")
        self.gridLayout_3.addWidget(self.orgLogo, 0, 1, 1, 1)
        spacerItem11 = QtWidgets.QSpacerItem(540, 20,
                                             QtWidgets.QSizePolicy.Expanding,
                                             QtWidgets.QSizePolicy.Minimum)
        self.gridLayout_3.addItem(spacerItem11, 0, 3, 1, 1)
        self.hiddenLab = MyLabel(self.topWidget)
        self.hiddenLab.setObjectName("hiddenLab")
        self.gridLayout_3.addWidget(self.hiddenLab, 0, 4, 1, 1)
        self.closeLab = MyLabel(self.topWidget)
        self.closeLab.setObjectName("closeLab")
        self.gridLayout_3.addWidget(self.closeLab, 0, 6, 1, 1)
        self.titleName = QtWidgets.QLabel(self.topWidget)
        self.titleName.setObjectName("titleName")
        self.gridLayout_3.addWidget(self.titleName, 0, 2, 1, 1)
        self.gridLayout_3.setColumnStretch(2, 1)
        self.org_logo = MyLabel(self.centralwidget)
        self.org_logo.setGeometry(QtCore.QRect(370, 140, 54, 12))
        self.org_logo.setObjectName("org_logo")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.bindPhone.setText(_translate("MainWindow", "TextLabel"))
        self.regOrLogin.setText(_translate("MainWindow", "TextLabel"))
        self.bindWechat.setText(_translate("MainWindow", "TextLabel"))
        self.addKnowlege.setText(_translate("MainWindow", "TextLabel"))
        self.versionInfo.setText(_translate("MainWindow", "TextLabel"))
        self.searchBtn.setText(_translate("MainWindow", "TextLabel"))
        self.orgLogo.setText(_translate("MainWindow", "TextLabel"))
        self.hiddenLab.setText(_translate("MainWindow", "TextLabel"))
        self.closeLab.setText(_translate("MainWindow", "TextLabel"))
        self.titleName.setText(_translate("MainWindow", "TextLabel"))
        self.org_logo.setText(_translate("MainWindow", "TextLabel"))