1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| class videoWindow(Ui_videoForm,QtWidgets.QWidget): def __init__(self, parent=None): super(videoWindow, self).__init__(parent) self.setupUi(self)
def videoprocessing(self): global videoName videoName,videoType= QFileDialog.getOpenFileName(self.pushButton_choose, "选择视频", '常用路径', " All Files (*)") def playvideo(self): th = Thread(self) th.changePixmap.connect(self.setImage) th.start()
def setImage(self, image): self.label_image.setPixmap(QPixmap.fromImage(image))
class Thread(QThread):
changePixmap = pyqtSignal(QtGui.QImage) def run(self): cap = cv2.VideoCapture(videoName) print(videoName) while (cap.isOpened()==True): ret, frame = cap.read() if ret: rgbImage = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) convertToQtFormat = QtGui.QImage(rgbImage.data, rgbImage.shape[1], rgbImage.shape[0], QImage.Format_RGB888) p = convertToQtFormat.scaled(600, 600, Qt.KeepAspectRatio) self.changePixmap.emit(p) time.sleep(0.01) else: break
|