python使用opencv录屏
时间: 2023-11-05 20:05:08 浏览: 66
要使用 OpenCV 在 Python 中录制屏幕,可以使用 `cv2.VideoWriter` 类。以下是一个示例代码段,其中将录制屏幕并将其保存为 `.avi` 文件:
```python
import numpy as np
from PIL import ImageGrab
import cv2
# 获取屏幕分辨率
screen_size = (1920, 1080)
# 设置视频编解码器和输出文件名
fourcc = cv2.VideoWriter_fourcc(*"XVID")
output_file = "output.avi"
# 创建 VideoWriter 对象以写入视频
out = cv2.VideoWriter(output_file, fourcc, 20.0, screen_size)
while True:
# 获取屏幕截图
img = ImageGrab.grab(bbox=(0, 0, screen_size[0], screen_size[1]))
# 将截图转换为 OpenCV 格式
img_np = np.array(img)
frame = cv2.cvtColor(img_np, cv2.COLOR_BGR2RGB)
# 将帧写入视频
out.write(frame)
# 显示视频
cv2.imshow("screen capture", frame)
# 按 Q 键退出循环
if cv2.waitKey(1) == ord("q"):
break
# 释放视频写入对象和窗口
out.release()
cv2.destroyAllWindows()
```
在此代码段中,我们首先获取屏幕分辨率,然后设置视频编解码器和输出文件名。然后,我们创建一个 `VideoWriter` 对象以写入视频,并在无限循环中不断获取屏幕截图,并将它们写入视频中。我们还在每次循环中显示屏幕截图,并等待按下 Q 键来退出循环。最后,我们释放视频写入对象和 OpenCV 窗口。
阅读全文