파이썬 이미지 출력 시간 지연

2022.07.04 13:06 2,037 조회

파이썬에서 사람 수를 인식해서 특정 인원수 이하면 초록불 이미지를 나타내고 특정 인웡수를 넘어가면 빨간불을 나타내는 코드를 작성하였습니다.

근데 이때 이미지를 띄울 때 의도적인 지연을 약 3초를 넣고 싶어서 sleep 함수를 써봤는데 전체 코드가 일시정지가 되네요....

이럴 때 이미지 출력만 잠시 지연시키는 방법은 뭐가 있을까요?

아래는 코드입니다


import cv2

import matplotlib.pyplot as plt

import cvlib as cv

from cvlib.object_detection import draw_bbox

import numpy as np

from PIL import ImageFont, ImageDraw, Image

import time


blue_color = (255, 0, 0)


green_color = (0, 255, 0)


red_color = (0, 0, 255)


white_color = (255, 255, 255)


R, G, B = (0,0,255), (0,255,0), (255,0,0)


# open webcam (웹캠 열기)


webcam = cv2.VideoCapture(0)


s = 0


if not webcam.isOpened():

  print("Could not open webcam")

  exit()



# loop through frames

while webcam.isOpened():


  # read frame from webcam 

  status, frame = webcam.read()


  if not status:

    break


  # apply object detection (물체 검출)

  bbox, label, conf = cv.detect_common_objects(frame)


  #print(bbox, label, conf)


  # draw bounding box over detected objects (검출된 물체 가장자리에 바운딩 박스 그리기)

  out = draw_bbox(frame, bbox, label, conf, write_conf=True)


  # display output

  cv2.imshow("Real-time object detection", out)

   

  s = label.count('person')

   

  if s <=2:

    img = cv2.imread('Go.jpg') # imread로 영상을 불러온다.

    cv2.imshow("img", img)

     

  elif s>1:

    img = cv2.imread('Stop.jpg') # imread로 영상을 불러온다.

    cv2.imshow("img", img)

     


   

  # press "Q" to stop

  if cv2.waitKey(1) & 0xFF == ord('q'):

    break

   

# release resources

webcam.release()

cv2.destroyAllWindows()