본문 바로가기

& 프로그래밍/& openCV

openCV 프로그래밍 기초(영상 읽기)

이전까지 배운부분은 이미지파일에 대한 편집과 수정을 했다면

이번엔 영상 읽어오는 방법을 알아보겠다

 

영상을 읽어오는 방법은 여러가지가 존재하는데

- 저장되어있는 영상파일을 불러오는 방법

- 연결되어있는 카메라에서 영상소스를 바로 (녹화)받아오는 방법

두가지를 모두 해보겠지만 오늘은 첫번째 방법을 연습해보려한다

 

1. openCV 라이브러리 임포트

import cv2

2. 영상파일이 저장된 경로 불러오기

cap = cv2.VideoCapture('data/videos/chaplin.mp4')

#카메라를 실행하여 바로 객체를 생성하는 방법은 아래주석코드이다
# cap = cv2.VideoCapture(0)
#괄호 안 숫자는 카메라의 개수이다. 1개일때는 0부터 시작하여 순서를 매긴다

여기서 이전에 배운 이미지파일 불러오는 방식과 차이점이 있다면,

이미지파일은 cv2.imread를 사용했고, 영상파일은 cv2.VideoCapture라는 함수를 활용했다는것!

영상파일은 단일 이미지가 아닌 이미지가 프레임형식으로 겹쳐지는 시퀀스이기 때문에 영상파일 또는 카메라를 통한 비디오 획득 개체 생성에는 videoCapture 함수를 사용해야 한다

 

3. 영상파일이 정상적으로 열리는지 확인

if cap.isOpened() == False :
    print('Error opening video stream or file')
    
# 해석하자면, 영상파일이 정상적으로 열리지 않는다면 아래문구를 print해라~

else : 
    while cap.isOpened(): 
        ret, frame = cap.read() 

        if ret == True :
            cv2.imshow('Frame',frame)
            
            if cv2.waitKey(25) & 0xFF == 27:
                break

        else :
            break

cap.release()
cv2.destroyAllWindows()

이미지파일을 읽어올때 창을 고정시켜두는 코드로 cv2.waitKey()를 사용했었는데 영상파일 같은 경우 재생이 되어야 하는 차이가 존재하기 때문에 waitKey가 아닌 release로 고정시켜 재생시켜준다