Python先用opencv库拍照片再直接把照片传输在另一个label的屏幕上的代码
时间: 2023-12-27 12:04:50 浏览: 57
以下是一个使用OpenCV库拍照并将照片显示在PyQt的label中的示例代码:
```python
import cv2
from PyQt5.QtGui import QPixmap, QImage
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
# 创建两个label
self.label1 = QLabel(self)
self.label2 = QLabel(self)
# 创建一个按钮
button = QPushButton('拍照', self)
button.clicked.connect(self.take_photo)
def take_photo(self):
# 打开摄像头
cap = cv2.VideoCapture(0)
if not cap.isOpened():
return
# 从摄像头读取一帧图像
ret, frame = cap.read()
if not ret:
return
# 将图像转换为QPixmap格式
pixmap = QPixmap.fromImage(QImage(frame.data, frame.shape[1], frame.shape[0], QImage.Format_RGB888))
# 设置label2的背景为图片
self.label2.setPixmap(pixmap)
# 释放摄像头并关闭窗口
cap.release()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
在这个示例中,我们创建了一个按钮,当按钮被点击时,打开摄像头并从摄像头中读取一帧图像。然后,我们将图像转换为QPixmap格式并将其设置为第二个label的背景。最后,我们释放摄像头并关闭窗口。