728x90

OpenCV (Computer Vision)란?

  - 다양한 영상 (이미지) / 동영상 처리에 사용되는 오픈소스 라이브러리

    => ex) 이미지를 흑백으로 변경, 이미지의 특정 영역을 잘라내기

  - OpenCV의 기능을 이용하여 여러 응용 프로젝트를 제작할 수 있다

    => ex) 문서 스캐너, 얼굴 인식, 모션 인식

 

1. OpenCV 설치

  - 파이썬을 실행하는 에디터에 맞는 프롬프트에서 해당 명령어를 입력한다. (Jupyter Notebook: Anaconda Prompt, PyCharm: 에디터 터미널)

 

2. OpenCV 라이브러리 Import

  - OpenCV를 설치 했으면 파이썬 코드 내에서 cv2라는 이름으로 OpenCV를 임포트 할 수 있다.

import cv2

 

3. 동영상 파일 읽어오기

  1) cv2.VideoCapture() 함수를 사용하여 읽어올 수 있다.

  2) 읽어온 영상 자체를 cap이라는 변수에 저장한다.

cap = cv2.VideoCapture('video.mp4')

  

4. 동영상 출력

  1) cap.isOpened() 함수를 사용하여 동영상 파일 업로드 성공 여부를 판단하여 반복문을 시작한다.

    => 동영상을 출력하기 위해 영상 내 프레임 단위의 이미지를 순차적으로 출력해야 하므로 반복문을 사용한다.

  2) cap.read() 함수를 사용하여 영상의 프레임 존재 여부와 프레임 자체를 가져온다.

  3) cv2.imshow() 함수 내 프레임을 삽입하여 해당 프레임 이미지를 출력한다.

  - 위 3단계가 프레임이 존재하지 않을 때까지 반복되어 연속된 프레임을 출력, 결국 영상이 출력된다.

while cap.isOpened(): # 동영상 파일이 올바르게 열렸는지?
    ret, frame = cap.read() # ret: 프레임 존재 여부, frame: 받아온 이미지 (프레임)
    if not ret:
        print('더 이상 가져올 프레임이 없어요')
        break
        
    cv2.imshow('video', frame) # 'video' 라는 이름의 창에 영상이 출력된다

 

5. 동영상 종료

   - 영상이 종료되었으므로 영상을 재생하는 메모리를 해제하여 자원을 반납하고, 해당 영상 창을 닫는다.

cap.release() #자원 해제
cv2.destroyAllWindows()

 

※ 전체 코드

import cv2
cap = cv2.VideoCapture('video.mp4')

while cap.isOpened(): # 동영상 파일이 올바르게 열렸는지?
    ret, frame = cap.read() # ret: 성공 여부, frame: 받아온 이미지 (프레임)
    if not ret:
        print('더 이상 가져올 프레임이 없어요')
        break
        
    cv2.imshow('video', frame)
        
cap.release() #자원 해제
cv2.destroyAllWindows()
728x90