使用以下代码捕获视频文件,并将其翻转保存:
# to save a视频文件
import numpy as np
导入cv2
cap=cv2 .视频捕获(0) )。
# definethecodecandcreatevideowriterobject
fourcc=cv2.cv.cv_fourcc(*'xvid ' ) ) )。
out=cv2 .视频写入器(' output.avi ',fourcc,20.0,(640,480 ) )
while(cap.isopened ) ) ) :
ret,frame=cap.read (
if ret==True:
帧=cv2.flip (帧,0 ) ) ) ) ) ) ) )。
#写入the flipped frame
out.write (帧)
CV2.imshow('frame ',frame ) )。
ifcv2.waitkey(1)0xff==ord ) ' q ) :
布雷克
else:
布雷克
# releaseeverythingifjobisfinished
cap.release (
out.release (
cv2.destroyAllWindows (
程序将输出保存为output.avi
现在,为了播放视频文件,我使用了以下程序
# playing视频从文件
import numpy as np
导入cv2
cap=cv2 .视频捕获(' output.avi ) ) ) ) ) ) ) )。
printcap.get(5) # to display frame rate of视频
# print cap.get (cv2.cv.cv _ cap _ prop _ fps ) )。
while(cap.isopened ) ) ) :
ret,frame=cap.read (
gray=cv2.cvtcolor(frame,cv2.COLOR_BGR2GRAY ) #convert to grayscale
CV2.imshow('frame ',gray ) )。
ifcv2.waitkey(1)0xff==ord ) ) :
布雷克
cap.release (
cv2.destroyAllWindows (
此程序将播放从第一个程序保存的视频文件output.avi。 问题是,这个视频正在快进。 因此,cv2.waitKey ) )的延迟值试图更改。 装100的时候,视频看得很清楚。 我怎么知道放在哪个值里了? 那应该和帧率有关吗? 检查了output.avi的帧率(见第二个程序的cap.get(5)行),得到了20。 但是,如果使用20作为cv2.waitKey )的延迟,则视频仍然太快。
感谢任何援助。