[英]How to use OpenCV VideoWriter properly?
我想裁剪视频的一个区域并保存它。 我使用下面的代码来做到这一点。
import cv2
cap = cv2.VideoCapture('input.avi')
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter('output.avi', fourcc, 25, (1280, 720))
while True:
ret, image_np = cap.read()
if not ret:
break;
roi = image_np[300:1020, 0:1280]
out.write(roi)
cap.release()
out.release()
视频文件已创建,我可以在媒体播放器中观看,但如果想在 python 中读取此文件,我会收到一条错误消息。
import cv2
cap = cv2.VideoCapture('output.avi')
_, image_np = cap.read()
进程以退出代码 -1073741819 (0xC0000005) 结束
我认为问题出在我制作的视频上,但我不确定。
cv2.VideoWriter
期望帧的大小与您写入的帧相同。 roi
形状不是(1280, 720)
。
import cv2
cap = cv2.VideoCapture('input.avi')
fourcc = cv2.VideoWriter_fourcc(*'MJPG')
out = cv2.VideoWriter('output.avi', fourcc, 25, (1280, 720))
writerInit = False
while True:
ret, image_np = cap.read()
if not ret:
break;
roi = image_np[300:1020, 0:1280]
if(not writerInit):
h,w,_ = roi.shape
out = cv2.VideoWriter('output.avi', fourcc, 25, (w, h))
writerInit = True
out.write(roi)
cap.release()
out.release()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.