Python cv2 qlabel实时显示视频帧。
时间: 2024-04-24 07:04:34 浏览: 69
基于v4l2的qt视频实时显示
5星 · 资源好评率100%
好的,这是一个常见的问题。可以使用Python的OpenCV库中的VideoCapture类读取视频帧并使用PyQt的QLabel实时显示。以下是一个简单示例代码:
```python
import cv2
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QLabel, QWidget
from PyQt5.QtCore import QTimer
class VideoPlayer(QWidget):
def __init__(self):
super().__init__()
self.label = QLabel(self)
self.timer = QTimer()
self.timer.timeout.connect(self.show_frame)
self.timer.start(1000/30) # 30 fps
self.cap = cv2.VideoCapture(0)
def show_frame(self):
ret, frame = self.cap.read()
if ret:
frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
h, w, ch = frame.shape
bytes_per_line = ch * w
qt_image = QPixmap.fromImage(QImage(frame_rgb.data, w, h, bytes_per_line, QImage.Format_RGB888))
self.label.setPixmap(qt_image)
if __name__ == '__main__':
app = QApplication([])
player = VideoPlayer()
player.show()
app.exec_()
```
请注意,这只是一个示例代码。具体实现方式可能因情况而异。希望这可以帮助你开始。
阅读全文