class mywindow(QTabWidget, Ui_TabWidget):  #这个窗口继承了用QtDesignner 绘制的窗口
    def __init__(self, opt):
        super(mywindow, self).__init__()
        self.setupUi(self)
        self.setFixedSize(self.width(), self.height())
        self.opt = opt
        self.detector = Detector(cfg=opt.cfg,
                                 data_cfg=opt.data_cfg,
                                 weights=opt.weights,
                                 img_size=opt.img_size,
                                 conf_thres=opt.conf_thres,
                                 nms_thres=opt.nms_thres)

    def videoprocessing(self):
        global videoName  #在这里设置全局变量以便在线程中使用
        videoName, videoType = QFileDialog.getOpenFileName(
            self, "打开视频", "", " *.MOV;;*.mp4;;*.avi;;All Files (*)")
        th = Thread(self)
        th.changePixmap.connect(self.setImage)
        th.start()

    def setImage(self, image):
        self.label.setPixmap(QPixmap.fromImage(image))

    def imageprocessing(self):
        self.imgName, imgType = QFileDialog.getOpenFileName(
            self,
            "打开图片",
            "",
            #" *.jpg;;*.png;;*.jpeg;;*.bmp")
            " *.jpg;;*.png;;*.jpeg;;*.bmp;;All Files (*)")
        #利用qlabel显示图片
        # print(str(self.imgName))
        png = QtGui.QPixmap(self.imgName).scaled(
            self.label1.width(), self.label1.height())  #适应设计label时的大小
        self.label1.setPixmap(png)

    def imageprocessing2(self):
        opt = self.opt
        with torch.no_grad():
            start = time.time()
            savepath = self.detector.detect_one_image(self.imgName)
            # savepath = detect_one_image(opt.cfg,
            #                             opt.data_cfg,
            #                             opt.weights,
            #                             image_path=self.imgName,
            #                             output='output',  # output folder
            #                             img_size=416,
            #                             conf_thres=0.5,
            #                             nms_thres=0.5)
            print('cost time is {}s'.format(round(time.time() - start, 2)))
        savepath = osp.abspath(savepath)
        #利用qlabel显示图片
        print(str(savepath))
        png = QtGui.QPixmap(savepath).scaled(
            self.label1.width(), self.label1.height())  #适应设计label时的大小
        self.label1.setPixmap(png)