I have a code where I want capture a video from a camera. I want to use Logging library of Python to get messages on the shell or export them to a text file.
Here is a part of my code where inside the while loop I want to print 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)
but what I get in the shell is this:
until I terminated the running script. Any idea on how to make it print only once.
import numpy as np
import cv2
import logging as log
cap = cv2.VideoCapture('5.mpg')
hasOpened = False
while True:
ret, image = cap.read()
if ret and not hasOpened:
log.warning('Camera Opened Successfully')
hasOpened = True
If you want to break out of the loop after printing, follow Matt's answer. This option will continue in the loop and only print once.