opencv如何将imshow显示的视频保存
时间: 2023-11-12 21:05:01 浏览: 275
海康摄像头视频显示+视频保存成文件+字符叠加+OpenCV+VS2017
要将`imshow`显示的视频保存,可以使用`cv2.VideoWriter`类。以下是一个例子:
```python
import cv2
# 打开视频文件
cap = cv2.VideoCapture('video.mp4')
# 获取视频参数
fps = cap.get(cv2.CAP_PROP_FPS)
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建视频写入对象
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter('output.mp4', fourcc, fps, (width, height))
# 读取每一帧并写入视频
while True:
ret, frame = cap.read()
if not ret:
break
out.write(frame)
# 显示视频
cv2.imshow('frame', frame)
if cv2.waitKey(1) == ord('q'):
break
# 释放资源
cap.release()
out.release()
cv2.destroyAllWindows()
```
在上面的例子中,我们首先打开视频文件并获取视频参数,然后创建一个`cv2.VideoWriter`对象,指定输出文件名、视频编码格式、帧率和视频尺寸。接着读取每一帧并写入视频,同时在窗口中显示每一帧。最后释放资源并关闭窗口。
注意,如果想保存的视频格式不是mp4,需要将fourcc参数的值修改为对应的四字码。例如,如果要保存为avi格式,可以将fourcc参数的值修改为`cv2.VideoWriter_fourcc(*'XVID')`。
阅读全文