使用OpenCV计算视频中的帧。。。(Python)

使用OpenCV计算视频中的帧。。。(Python),python,opencv,video,while-loop,Python,Opencv,Video,While Loop,我使用Python和OpenCV使用循环访问视频文件的所有帧。在访问每个帧时,我将该帧的索引添加到列表中 但是,我比较了列表的大小和使用 Frames = cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT) 命令,列表的大小总是比cap.get返回的视频帧数少一个元素。。。 你知道为什么会这样吗 以下是我使用的代码: # -*- coding: utf-8 -*- import cv2 def faceExtraction(inputFile, extractio

我使用Python和OpenCV使用循环访问视频文件的所有帧。在访问每个帧时,我将该帧的索引添加到列表中

但是,我比较了列表的大小和使用

Frames = cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT)
命令,列表的大小总是比cap.get返回的视频帧数少一个元素。。。 你知道为什么会这样吗

以下是我使用的代码:

# -*- coding: utf-8 -*-
import cv2

def faceExtraction(inputFile, extractionRate):

cap = cv2.VideoCapture(inputFile)
fps = cap.get(cv2.cv.CV_CAP_PROP_FPS)
Frames = cap.get(cv2.cv.CV_CAP_PROP_FRAME_COUNT)
print 'Frames='+str(Frames)
# if not os.path.exists("registered_face"):
        # os.makedirs("registered_face")

frame_counter = 0

outputFrameIndices=[]
while(cap.isOpened()):


        frame_counter=frame_counter+1
        ret, frame = cap.read()  # read current frame
        outputFrameIndices.append(frame_counter)
        if frame is None:
                break


        if cv2.waitKey(1) & 0xFF == ord('q'):
                break

            # print 'FACE NOT FOUND: frame '+ str(frame_counter)
# When everything done, release the capture

cap.release()
cv2.destroyAllWindows()



print 'number of frames: ' + str(len(outputFrameIndices))

############## Executing Main App ###########
faceExtraction('Video Filename blah blah',5)
我的代码生成的输出是: 帧数=930.0 帧数:929

然而它应该是 帧数=930.0
帧数:930找到错误。。。Python从零开始索引计数器