gpt4 book ai didi

python - 如何使用函数的返回值作为 while 的条件,在 python 中返回元组

转载 作者:太空狗 更新时间:2023-10-29 17:37:02 26 4
gpt4 key购买 nike

我一直在寻找类似的东西,但我找不到,所以在这里。

一些背景

我使用 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 中?

最佳答案

你可以写一个生成器函数。

def readframes(cv):
while True:
success, frame = cv.read()
if success:
yield frame
else:
return

这样您就可以使用 for 循环遍历帧。

for frame in readframes(cv):
do_something_with_frame(frame)

关于python - 如何使用函数的返回值作为 while 的条件,在 python 中返回元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15542329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com