1.代码:
import cv2
import sys
from PyQt5.QtGui import QImage, QPixmap
from PyQt5.QtWidgets import QApplication, QMainWindow
from opentest import Ui_MainWindow
class VideoPlayer(QMainWindow, Ui_MainWindow):
def __init__(self):
super(VideoPlayer, self).__init__()
# self.cap = cv2.VideoCapture('D:/video/Sample.mp4')
self.cap = cv2.VideoCapture(0)
self.setupUi(self)
self.btn_open.clicked.connect(self.show_video)
def show_video(self):
while 1:
flag, img = self.cap.read()
# CV的图像是BGR格式的,而PyQt图像格式是RGB格式的,二者需要转换
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
img = QImage(img.data, img.shape[1], img.shape[0], QImage.Format_RGB888)
self.lab_disp.setPixmap(QPixmap.fromImage(img))
self.lab_disp.show() # 刷新界面
cv2.waitKey(int(1000 / 24)) # 休眠1000 / 24秒,确保帧率
if __name__ == "__main__":
app = QApplication(sys.argv)
form = VideoPlayer()
form.show()
sys.exit(app.exec_())
2.运行: