OpenCV中的属性标识符仅提供偶数帧

时间:2015-10-21 10:26:27

标签: python opencv

我有一个奇怪的问题。我在Python 2.7.9中有一个名为vid的视频,我使用vid.get(cv.CAP_PROP_POS_FRAMES)来获取帧编号以循环遍历帧。如果我得到第一帧,我想改变一个标志的值。但它没有检测到第一帧。

# mark the first frame
if vid.get(cv.CAP_PROP_POS_FRAMES) == 1:
   print "Found the first frame"

我打印出vid.get(cv.CAP_PROP_POS_FRAMES),结果是:

0.0
2.0
4.0
6.0
8.0

所以我把条件设置为第2帧,它给了我:

0.0
2.0
Found the first frame
4.0
6.0
8.0

为什么会这样?

这是一个MCVE:

vid = cv.VideoCapture('C:\users\username\bouncingBall.avi')
totalFrames = vid.get(cv.CAP_PROP_FRAME_COUNT)
while vid.get(cv.CAP_PROP_POS_FRAMES) < totalFrames - 1:
    print vid.get(cv.CAP_PROP_POS_FRAMES)
    # mark the first frame
    if vid.get(cv.CAP_PROP_POS_FRAMES) == 1:
        print "Found the first frame"
        first_frame = True
    else:
        first_frame = False

0 个答案:

没有答案