我有一个奇怪的问题。我在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