pyqt5调用电脑摄像头拍照并显示图片的代码
时间: 2024-05-12 19:18:10 浏览: 89
以下是可以使用的PyQt5代码:
```python
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from PyQt5.QtMultimedia import *
from PyQt5.QtMultimediaWidgets import *
class CameraWidget(QWidget):
def __init__(self, parent=None):
super(CameraWidget, self).__init__(parent)
# 创建Camera对象
self.camera = QCamera(self)
# 创建显示相机画面的QCameraViewfinder对象
self.viewfinder = QCameraViewfinder(self)
self.viewfinder.show()
# 设置相机给QCameraViewfinder
self.camera.setViewfinder(self.viewfinder)
# 创建用于捕捉图像的QCameraImageCapture对象
self.imageCapture = QCameraImageCapture(self.camera)
# 定义拍照按钮
self.captureButton = QPushButton("拍照")
self.captureButton.clicked.connect(self.captureImage)
# 创建水平布局
layout = QHBoxLayout()
layout.addWidget(self.viewfinder)
layout.addWidget(self.captureButton)
self.setLayout(layout)
def captureImage(self):
# 定义用于保存照片的文件名
filename = QDateTime.currentDateTime().toString("yyyyMMddhhmmsszzz.jpg")
# 定义照片保存路径
filepath = "./" + filename
# 拍照并保存图片到指定路径
self.imageCapture.capture(filepath)
# 显示拍摄的照片
image = QImage(filepath)
pixmap = QPixmap.fromImage(image)
scaledPixmap = pixmap.scaled(self.viewfinder.size(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
self.viewfinder.setPixmap(scaledPixmap)
if __name__ == '__main__':
app = QApplication(sys.argv)
widget = CameraWidget()
widget.show()
sys.exit(app.exec_())
```
这段代码将创建一个窗口,其中包括一个显示电脑摄像头拍摄的画面的区域、一个拍照按钮和一个用于保存拍照的照片的文件名的文件路径。当用户点击拍照按钮时,程序会拍摄照片并在窗口中显示该照片。