[英]Merge individual frame to video file using Opencv
我正在尝试使用 Opencv 将单个帧堆叠到视频文件中。 我想将两个不同的代码组合在一起来制作单独的框架。 以下代码帮助我提取单个帧,
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter('file_data.mp4',fourcc,20 (1920,1080),False)
while True:
ret, frame=cap.read()
mask = object_detector.apply(frame)
_, mask = cv2.threshold(mask,254,255,cv2.THRESH_BINARY)
contours,_ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
res = cv2.bitwise_and(frame,frame,mask=mask)
for cnt in contours:
area = cv2.contourArea(cnt)
if area>1000:
#print("Area of contour:", area)
cv2.drawContours(frame, [cnt], -1, (0,255,0),2)
cv2.imwrite("file%d.jpg"%count, frame)
out.write(frame)
if cv2.waitKey(1) and 0xFF == ord('q'):
break
我尝试将单个帧存储在数组中,但是没有用。 它没有显示任何错误,但电脑崩溃。
fps = 20, , 宽度 = 1920, 高度 = 1080
感谢罗特姆。 该问题已使用 Opencv 的 VideoWriter 解决。 工作代码如下。
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
out = cv2.VideoWriter('file_data.mp4',fourcc,20,(1920,1080), True)
while True:
ret, frame=cap.read()
if ret == True:
# frame[frame<=thresholds]=0
mask = object_detector.apply(frame)
_, mask = cv2.threshold(mask,254,255,cv2.THRESH_BINARY)
contours,_ = cv2.findContours(mask, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
res = cv2.bitwise_and(frame,frame,mask=mask)
for cnt in contours:
area = cv2.contourArea(cnt)
if area>1000:
cv2.drawContours(frame, [cnt], -1, (0,255,0),2)
out.write(frame)
break
if cv2.waitKey(20) == ord('q'):
break
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.