cv2.imwrite如何逐帧保存 C++
时间: 2023-10-27 18:19:51 浏览: 169
要逐帧保存视频,可以使用OpenCV中的VideoCapture和VideoWriter类。以下是保存视频的示例代码:
```
import cv2
# 打开视频文件
cap = cv2.VideoCapture('video.mp4')
# 获取视频帧率和大小
fps = int(cap.get(cv2.CAP_PROP_FPS))
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
# 创建VideoWriter对象
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.imwrite('frame%d.jpg' % cap.get(cv2.CAP_PROP_POS_FRAMES), frame)
# 释放资源
cap.release()
out.release()
```
在上面的代码中,我们使用VideoCapture类打开视频文件,并使用VideoWriter类创建输出视频文件。然后,我们逐帧读取视频并将每一帧写入输出文件,同时使用cv2.imwrite()函数将每一帧保存为图像。最后,我们释放资源。
阅读全文