2022-07-01 20:35:36

안녕하세요. 비스카이비전입니다. 

 

파이썬에서 이미지 또는 비디오를 소스로 삼아 작업을 해야하는 경우에는 opencv 라이브러리를 주로 사용합니다. 오늘은 웹캠 영상으로 작업시 필요한 기본 코드에 대해서 정리해보고자 합니다. 이 기본 코드를 베이스로 삼아 원하시는 기능을 적재적소에 추가하시면 됩니다. 일단 웹캠이 내장되어 있는 노트북 또는 별도의 웹캠을 연결한 데스크탑을 준비해주세요. 그리고 opencv 패키지를 설치하지 않으신 분들은 설치해주세요.

 

pip install opencv-python

 

웹캠 영상 출력하기

우선 전체 코드를 올려놓고 설명드리겠습니다.

 

import cv2

webcam = cv2.VideoCapture(0)

if not webcam.isOpened():
    print("Could not open webcam")
    exit()

while webcam.isOpened():
    status, frame = webcam.read()

    if status:
        cv2.imshow("test", frame)

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

webcam.release()
cv2.destroyAllWindows()

 

 

해피해킹과 함께 하는 즐거운 코딩

 

 

1) 우선 opencv 라이브러리를 import 합니다. 

 

import cv2

 

2) 웹캠 영상을 캡쳐하기 위해 VideoCapture 객체를 생성합니다. 인수(argument)로 들어간 0은 첫번째 웹캠을 뜻합니다. PC에 여러 개의 웹캠이 연결되어 있을 수 있기 때문에 몇 번째로 연결된 카메라인지에 대한 정보를 제공해줘야 합니다. 

 

webcam = cv2.VideoCapture(0)

 

 

 

3) 웹캠이 제대로 연결되어 있는지 확인합니다. 제대로 연결되어 있다면 webcam.isOpened()가 True이고, 그렇지 않다면 False 입니다. 제대로 연결되어 있지 않다면 더 이상 아래 코드들을 실행할 필요가 없기 때문에, 프로그램을 종료해버립니다. 

 

if not webcam.isOpened():
    print("Could not open webcam")
    exit()

 

4) 웹캠이 제대로 연결되어 있는 동안 반복해서 웹캠으로 촬영되는 영상을 webcam.read()를 통해 읽어냅니다. status가 True이면 제대로 캡쳐에 성공한 것이기 때문에 cv2.imshow()를 통해 test라는 창에 캡쳐된 프레임을 보여줍니다. 사용자가 키보드로 q를 입력해서 반복문을 탈출할 때까지 촬영되고 있는 영상은 test 창에 계속해서 보여질 것입니다. 

 

while webcam.isOpened():
    status, frame = webcam.read()

    if status:
        cv2.imshow("test", frame)

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

 

5) 영상을 촬영하느라 고생한 웹캠을 놓아줍니다(웹캠과의 연결을 끊어줍니다).

 

webcam.release()

 

6) 웹캠 영상을 보여주기 위해 생성했던 창을 없앱니다.

 

cv2.destroyAllWindows()

 

관련 글

[ubuntu+python] 특정 사람의 얼굴만 검출하기(face_recognition+dlib+GPU)

[python] 쉽고 간단하게 마스크 착용 유무 판별기 만들기