공부를 함시다/Python

[Python] 웹캠 출력하기

갈룩시노테7 2024. 8. 4. 20:32
반응형

- 본 내용은 teachable machine과 python 3.10 버전을 이용하여 진행하였습니다.

 

가장 먼저 웹캠으로 얼굴을 출력하기 위해 cvzone 라이브러리를 사용할 예정입니다.

pip install opencv-python

 

명령어를 통해 opencv를 설치해주도록 합시다.

 

다음은 웹캠 출력 코드입니다.

import cv2

# 웹캠 캡처 객체 생성
cap = cv2.VideoCapture(0)

 

cv2 라이브러리를 추가한 뒤, 웹캠으로 받아온 객체값을 가진 변수를 하나 만듭니다.

# 웹캠이 열려있을 경우
while cap.isOpened :
    
    # 웹캠에서 프레임 읽기
    ret, img = cap.read()

    # 결과 이미지 출력
    cv2.imshow('Result', img)

 

cap 변수를 확인하여 웹캠이 열려있을 경우, ret와 img를 받습니다.

여기서 ret은 영상 데이터를 잘 받아왔는지 확인하는 boolean 값이고, img는 numpy 배열의 형태로 반환됩니다.

이후 가져온 img 값을 이용하여 cv2 창으로 띄워 영상을 출력합니다.

    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 리소스 해제
cap.release()
cv2.destroyAllWindows()

 

cv2 창 사용중에는 따로 종료 키가 없기 때문에, 키보드 버튼 q를 누를 경우 루프를 종료하는 코드를 작성합니다.

루프에서 탈출하면 cap 에 할당된 리소스를 해제해주고, 열려있는 cv2창을 모두 종료합니다.

 

 

아래는 전체 코드입니다.

더보기
import cv2

# 웹캠 캡처 객체 생성
cap = cv2.VideoCapture(0)

# 웹캠이 열려있을 경우
while cap.isOpened :
    
    # 웹캠에서 프레임 읽기
    ret, img = cap.read()

    # 결과 이미지 출력
    cv2.imshow('Result', img)
    
    # 'q' 키를 누르면 종료
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 리소스 해제
cap.release()
cv2.destroyAllWindows()
반응형