안녕하세요. 비스카이비전입니다.
파이썬에서 이미지 또는 비디오를 소스로 삼아 작업을 해야하는 경우에는 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] 쉽고 간단하게 마스크 착용 유무 판별기 만들기
'코딩 > python + 컴퓨터비전' 카테고리의 다른 글
[python, opencv] 이미지에 한글 텍스트 삽입하기, pillow 활용 (0) | 2022.09.04 |
---|---|
[python] pytesseract 사용중 print 안 되는 애러 해결법 (2) | 2021.04.14 |
[python] cv2 이미지를 pillow 이미지로 변경하기, Image.fromarray() (2) | 2021.04.13 |
[python+openpose] openpose 라이브러리를 사용해서 관절 포인트 검출하기 (window 10 환경) (7) | 2021.04.05 |
[python] 외장 웹캠을 사용할 때 cv2.VideoCapture(1)로 했는데 안되면? (4) | 2021.01.28 |
[ubuntu+python] 특정 사람의 얼굴만 검출하기(face_recognition+dlib+GPU) (9) | 2021.01.26 |
[ubuntu+python] 얼굴 인식하기 (face_recognition 라이브러리 설치부터 사용까지) (3) | 2021.01.19 |
[python] cv2.imread, cv2.imwrite 한글 경로 인식을 못하는 문제 해결 방법 (2) | 2021.01.08 |