파이썬(Python)/opencv

[Python]OpenCV waitKey 함수 사용법, 이미지/동영상 파일 열고 닫기

끄적끄적아무거나 2022. 2. 22. 19:27
반응형

 

목차

     

     

     

     

     

     

     

    파이썬 OpenCV waitKey 함수란?

     

    OpenCV에서 제공하는 함수 중에 waitKey라는 함수가 있습니다. Syntax 는 아래와 같습니다.

     

    cv2.waitKey(time)

     

    time에는 지연 시키고 싶은 시간 값을 입력합니다. 단위는 밀리세컨드(millisecond)입니다.

     

    사용 방법은 크게 두가지가 있습니다. 단순 시간 Delay 로 사용하는 방법과 키 입력 이벤트(Keyboard event)와 함께 진행하게 만드는 방법입니다. 

     

    아래 3개의 예제를 통해 이해해 보겠습니다.

     

     

     

    waitKey 시간 지연 예제

     

    이번 예제는 단순히 1초 마다 카운팅하는 코드를 작성해보겠습니다.

     

    예제 코드>>

    import cv2
    
    for _ in range (5):
        print("Counting : ", _)
        cv2.waitKey(1000)

     

    결과>>

    Counting :  0
    Counting :  1
    Counting :  2
    Counting :  3
    Counting :  4

    결과 카운팅이 1초 단위로 발생하였습니다.

     

     

     

    waitKey 이미지 파일 키입력으로 닫기

     

    예제 코드>>

    import cv2
    
    img=cv2.imread("bird.jpg")
    cv2.imshow('bird_img',img)
    
    while(True):       
        if cv2.waitKey(1) & 0xFF == ord('x'):
            cv2.destroyAllWindows()
            break

    3번 라인: 동일 폴더에 bird.jpg 파일 넣습니다.

    7번 라인: 이미지 파일을 클릭하고 x를 입력하면 8번라인이 실행됩니다.

    8번 라인: 이미지 파일을 종료 합니다.

     

     

    결과>>

    코드 실행 후 x 클릭

     

     

    waitKey 동영상 파일 키입력으로 닫기

     

    예제 코드>>

    import cv2
    
    vid=cv2.VideoCapture("bird.mp4")
    
    while vid.isOpened():
        ret, frame = vid.read()
        if not ret:
            vid=cv2.VideoCapture("bird.mp4")
            ret, frame = vid.read()
        cv2.imshow("bird_vid", frame)
    
        if cv2.waitKey(10) & 0xFF == ord('x'):
            vid.release()
            cv2.destroyAllWindows()
            break

    5번 라인: mp4 파일이 제대로 열렸는지 확인

    6번 라인: 동영상 파일의 frame을 읽고 return과 frame 값을 받는다.

    7번 라인: return 할 값이 없다면 다시 읽어서 반복 한다.

     

     

    결과>>

    동영상 파일을 반복하면서 키 값 x를 입력해서 종료 함

     

     

     

     

    반응형