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)