学习简单的Python opencv视频读入。
#coding=utf-8
import cv2.cv as cv
#获取视频,capture
capture = cv.CaptureFromFile('myvideo.mp4')
#获取视频的帧集合对象个数
frames = int(cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FRAME_COUNT))
#CV_CAP_PROP_FRAME_WIDTH Width of the frames in the video stream 视频流帧的宽度
#CV_CAP_PROP_FRAME_HEIGHT Height of the frames in the video stream 视频流帧的高度
#获取帧率
fps = cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_FPS)
#两帧间的间隔时间
wait = int(1/fps * 1000/1)
#视频的时间长度
duration = (frames * fps) / 1000
print 'Num. Frames = ', frames
print 'Frame Rate = ', fps, 'fps'
print 'Duration = ', duration, 'sec'
#遍历所有的帧
for f in xrange( frames ):
#抓取后,capture被指向下一帧
frameImg = cv.QueryFrame(capture)
#获取当前帧的位置,并且写入图片中
num= cv.GetCaptureProperty(capture, cv.CV_CAP_PROP_POS_FRAMES)
#创建一个矩形,来让我们在图片上写文字,参数依次定义了文字类型,高,宽,字体厚度等。。
font=cv.InitFont(cv.CV_FONT_HERSHEY_SCRIPT_SIMPLEX, 1, 1, 0, 3, 8)
text='%d' %num;
cv.PutText(frameImg, text, (30,30), font, (0,255,0))
#显示当前帧
cv.ShowImage("The Video", frameImg)
cv.WaitKey(wait)