我一直在寻找这样的东西,但我找不到所以就这样了。
一些背景
我使用 opencv 从视频文件中检索帧。通常人们会在一个无限循环中这样做,例如:
while (True):
s, img = cv.read()
或者
for i in xrange(10000): #just a big number
s, img = cv.read()
现在我想检索所有帧并在没有更多帧时退出循环。但是,我在 python 方面的技能还不够强大,无法做我想做的事情。
我想知道的
read
函数(或方法,我不知道它们在python中是如何调用的)返回一个元组:第一个代表操作成功,第二个代表返回的帧。当元组的第一个元素为假时,我想打破 while 循环。有 C 背景,我想也许这会起作用:
while ((success, img = capture.read())[0]):
#do sth with img
我认为当成功为假时这会打破循环。但它没有。然后我想也许这会起作用:
while ((success, img = capture.read()).success):
#do sth with img
它也没有工作。我不想做类似的事情
while(True):
s, i = capture.read()
if (s == False):
break
如果成功,如何测试条件而while
不是if
哪个中断?