我有一个代码,我想从相机捕捉视频。我想使用Python的日志库来获取shell上的消息或将其导出到文本文件。
下面是我的代码的一部分,在while循环中我想打印 Camera Opened Successfully
import numpy as np
import cv2
import logging as log
cap = cv2.VideoCapture('5.mpg')
while True:
ret, image = cap.read()
if ret == True:
log.warning('Camera Opened Successfully')
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
clahe = cv2.createCLAHE(clipLimit = 15.0, tileGridSize=(8,8))
gray1 = clahe.apply(gray)
但我在壳里得到的是这样的
直到我终止了运行脚本。有什么想法如何使它只打印一次。
7条答案
按热度按时间q43xntqr1#
你必须打破这个循环
ajsxfq5m2#
您需要中断while循环,同样由于您希望在
ret
为True时立即中断循环,因此可以用途:oxiaedzo3#
设置一个标志以触发日志,然后将其设置为false。当准备退出循环时,将ret设置为False,以便它退出
anauzrmj4#
另一种可能性是利用Python中默认的可变参数:
smdnsysy5#
假设你想用你的主循环来处理你的应用程序逻辑,并且用一个循环来检测它是否被打开,用另一个循环来处理它是没有意义的,那么我认为你想做的是设置一个变量来确定状态是否已经改变。
6ie5vjzr6#
如果您想在打印后跳出循环,请按照Matt的答案操作。此选项将在循环中继续,并且只打印一次。
62o28rlo7#
添加一个额外的布尔值来跟踪您以前是否打印过它: