ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • waitKey 함수
    컴공지식/컴퓨터비전 2024. 8. 31. 14:04

    waitKey(int delay=0)는 OpenCV에서 자주 쓰이는 함수다.

    이 함수는 기본적으로 키보드 입력을 대기하는 역할을 한다.

    delay라는 매개변수에 따라 기다리는 시간도 달라진다.

    그 시간을 밀리초(ms) 단위로 설정할 수 있다.

     

    delay에 0을 넣으면, 무한정으로 키 입력을 기다리게 된다.

    즉, 사용자가 아무 키나 누를 때까지 프로그램이 멈춘다.

     

    delay에 0보다 큰 값을 넣으면, 지정된 시간 동안만 기다린다.

    예를 들어, waitKey(1000)이라고 하면, 1000ms(즉 1초) 동안 키 입력을 기다리다가, 아무 입력이 없으면 다음 코드로 넘어간다.

     

    이 함수가 반환하는 값은 키보드로 누른 키의 아스키 코드다.

    예를 들어, 'q'를 누르면 113을 반환한다.

    단, 반환값이 -1이면 시간 내에 아무 키도 입력되지 않았다는 뜻이다.

     

    보통 OpenCV로 이미지를 띄우고 나서 프로그램이 바로 종료되지 않게 하려고 이 함수를 쓴다.

    imshow로 이미지를 띄운 뒤에 waitKey를 사용해서 사용자가 창을 확인할 시간을 주는 거다.

     

    또한 이 함수는 영상의 프레임 레이트도 설정할 수 있다.

    원래 영상의 프레임 레이트가 fps라면, 일반적으로 waitKey() 함수는 한 프레임을 보여준 후 다음 프레임으로 넘어가기 전에 대기하는 시간을 설정해준다.

    이 대기 시간은 보통 1000 / fps 밀리초다.

    여기서 1000은 밀리초를 초로 변환해 주는 거고, fps는 초당 프레임 수니까, 한 프레임을 보여준 뒤 얼마나 기다려야 할지 계산한다.

     

    영상의 프레임 속도를 두 배로 빠르게 하고 싶다면, 프레임 간 대기 시간을 절반으로 줄여야 해. 원래는 1000 / fps 밀리초를 기다리지만, 이걸 절반으로 줄여서 500 / fps 밀리초만 기다리면 된다.

    영상을 두 배 빠르게 한다는 게 아니라, 2배 더 부드럽게 보여주는 거라고 생각하면 된다.

     

    '컴공지식 > 컴퓨터비전' 카테고리의 다른 글

    convertTo 함수  (0) 2024.08.31
    resize 함수  (0) 2024.08.31
    VideoCapture::get(int propId)  (0) 2024.08.31
    convertScaleAbs 함수  (0) 2024.08.31
    픽셀에 관하여  (0) 2024.08.30
Designed by Tistory.