본문 바로가기

파이썬 python/파이썬 활용

[Open CV] Open CV로 동영상, 카메라 출력하기

안녕하세용 

개발자 칭구가 블로그에 공부한 내용을 정리해보라고 조언해줬는데, 

상.당.히 도움되는것 같아요. 확실히 블로그에 한번 더 정리 하니까 머리에 남는기분.

 

각설하고, 이번 포스팅에서는 Open CV로 동영상 출력하는 법에 대해서 적어보겠습니다. 

혹시, opencv-python 설치 안하신 분들은 아나콘다 프롬프트에 pip install opencv-python 입력 !

 

1. 동영상 파일 출력 

import cv2   #cv2라이브러리 임포트 

cap = cv2.VideoCapture("경로")  #VideoCapture()함수로 cap객체 생성

 

while cap. isOpend(): #cap객체가 isOpend() 열려있을때, 무한반복

    ret, frame = cap.read() #cap객체를 read() 읽어와서, 2개의 값 반환_ret(성공여부), frame(읽어온 이미지) 

    if not ret: #만약 False라면, 즉 더 이상 읽어올 frame이 없다면, 

       print("더 이상 가져올 프레임이 없어요")

       break # while문 종료하기 

    cv2.imshow('video', frame) #imshow()함수로 'video'라는 이름의 이미지를 보여줌 

 

    if cv2.waitKey() == ord('Q'): #waitKey(), key가 눌릴때까지 기다리는데, 특히 Q가 눌렸다면, 

       print("사용자 입력에 의해 종료합니다.")  

       break #종료 

 

ord('Q') : Q의 아스키 코드를 의미, 눌린 key가 Q의 아스키 코드와 같다면 - 

 

2. 카메라 출력 

import cv2  #cv2 임포트 

cap = cv2.VideoCapture(0) # ()파라미터로 경로가 아닌, devide id를 입력 / 카메라가 1대면 0부터 시작하니까 0, 2대면 1... 

 

if not cap isOpened(): #만약 cap 객체가 열려있지 않다면, 

   exit() #exit()으로 빠져나가기 

 

While True: #cap 객체가 열려있다면, 무한 반복

     ret, frame = cap.read() #read()함수로 cap의 ret(성공여부), frame(이미지) 읽어오기 

     if not ret: #성공여부가 없다면, 더 이상 읽어올 이미지가 없는 것이므로 break 

         break

 

     cv2.imshow('camera', frame) #다 읽었으면, 'camera'라는 이름의 frame 보여주기 

     if cv2.waitKey() == ord('q'): #아스키 코드가 q와 같은 키가 입력 받았다면, 

        break #중단

 

cap.release() #cap 객체 자원 해제 

cv2.destoryAllWindows() #창 닫기 

 

위에 코드 오류 있어요 ! 카메라 출력에서, if not cap. isOpenend()고, ret, comma, frame 입니다 ~