pyqt5实现两个摄像头监控
时间: 2023-06-29 16:04:59 浏览: 122
要实现两个摄像头监控,可以使用PyQt5中的QCamera和QCameraViewfinder模块。下面是一个简单的示例代码:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayout, QLabel
from PyQt5.QtMultimedia import QCamera, QCameraViewfinder, QCameraInfo
class CameraWidget(QWidget):
def __init__(self, camera):
super().__init__()
self.camera = camera
self.viewfinder = QCameraViewfinder()
self.viewfinder.setAspectRatioMode(Qt.KeepAspectRatio)
self.viewfinder.setMinimumSize(640, 480)
layout = QVBoxLayout(self)
layout.addWidget(self.viewfinder)
self.setLayout(layout)
self.camera.setViewfinder(self.viewfinder)
self.camera.start()
class MainWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle('Camera Monitor')
cameras = QCameraInfo.availableCameras()
if len(cameras) < 2:
self.errorMessage = QLabel(self)
self.errorMessage.setText('Two cameras are required to run this application.')
return
self.camera1 = QCamera(cameras[0])
self.camera2 = QCamera(cameras[1])
self.camera1Widget = CameraWidget(self.camera1)
self.camera2Widget = CameraWidget(self.camera2)
layout = QHBoxLayout(self)
layout.addWidget(self.camera1Widget)
layout.addWidget(self.camera2Widget)
self.setLayout(layout)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
这个示例代码会打开两个摄像头,并将它们实时监控的画面显示在两个QCameraViewfinder中。如果你只有一个摄像头,可以将代码中的`len(cameras) < 2`改为`len(cameras) < 1`,并使用一个QCamera对象即可。