티스토리 뷰

안녕하세요, OpenCV 공부 2일차입니다!

Computer Vision은 실시간으로 영상을 처리하는 것이 굉장히 중요한데, 오늘은 화면을 통해 영상을 받아 보는 코드를 작성해보았습니다.

먼저, 전체 코드 입니다.

import cv2

# Camera
capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FRAME_WIDTH,640)
capture.set(cv2.CAP_PROP_FRAME_WIDTH,480)

while cv2.waitKey(33) < 0 :
    # 33ms마다 반복문을 실행
    ret, frame = capture.read() # ret:camera 이상 여부, frame : 현재 시점의 frame
    cv2.imshow("VideoFrame", frame)
    print(cv2.waitKey(33))

capture.release()
cv2.destroyAllWindows()

코드를 천천히 분석해보면,

capture = cv2.VideoCapture(0)
capture.set(cv2.CAP_PROP_FRAME_WIDTH,640)
capture.set(cv2.CAP_PROP_FRAME_WIDTH,480)

이 세 줄은 카메라를 불러오는 과정입니다.

cv2.VideoCapture(Camer Number) :  이 명령어는 카메라를 불러오는 과정입니다. 대부분의 노트북에는 웹캠이 0번으로 설정되어있습니다. 만약에 카메라를 추가한다면, 1번 카메라,2번 카메라... 으로 되겠죠

capture.set(cv2.CAP_PROP_FRAME_WIDTH,640)
capture.set(cv2.CAP_PROP_FRAME_WIDTH,480)

: 이 두 명령어는 프래임의 높이와 너비를 설정해주는 함수입니다.

cv2.waitKey(33) : 이 명령어는 33ms(1초당 33번의 프레임을받는다)속도로 -1을 반환합니다. 이 때, 키보드에서 아무 키나 입력을 받으면 양수를 반환합니다. 따라서 while문은 33ms 속도로 계속해서 반복하다가 다른 키를 누르면 종료가 됩니다.

ret, frame = capture.read()  : 화면을 읽습니다. 이 함수는 두 개의 변수를 반환하는데, ret은 카메라가 정상작동한다면 1을 반환합니다. frame은 말 대로 frame을 반환합니다.

cv2.imshow("VideoFrame", frame) : "VideoFrame"이라는 창 이름으로 frame을 출력합니다.

capture.release() : 카메라의 리소스를 해제합니다. 카메라를 정상적으로 종료시키는 역할을 수행합니다.
cv2.destroyAllWindows() : 모든 OpenCV 창을 닫습니다.

'Computer Vision > OpenCV' 카테고리의 다른 글

[OpenCV] 이미지 출력하기  (0) 2024.01.09
[OpenCV] Python을 이용하여 OpenCV 다루기  (0) 2024.01.06