Video

정승균·2021년 1월 19일
0

OpenCV

목록 보기
4/7
post-thumbnail

Ⅰ. videoCapture


1. videoCapture 객체 생성

  • video = cv.VideoCapture(file_name or index)
    • file_name 인 경우 동영상을 open
    • index인 경우 카메라를 open

2. open

  • retval = cv.VideoCapture.open(filename or index) : 동영상 혹은 디바이스 열기
    • 열기전에 자동으로 release를 함
    • open이 성공적이면 true를 return함

3. close

  • cv.VideoCapture.release() : 동영상 혹은 디바이스 닫기

4. 확인

  • retval = cv.VideoCapture.isOpened()
    • VideoCapture 객체가 open된 상태이면 true를 return

Ⅱ. frame 불러오기


1. grab

  • retval = cv.VideoCapture.grab() : 다음 프레임을 준비

    • 다음 프레임이 존재하면 true를 return
  • read 대신 grab을 사용하는 경우는 여러 카메라가 있을시 동기화를 비교적 빠른 연산인 grab를 먼저 실행해 최대한 같은 시간대의 프레임을 준비시킨 뒤 느린 retreive를 실행시키기 위함이다

2. retrieve

  • retval, image = cv.VideoCapture.retrieve() : grab된 프레임을 decode한 후 image에 저장
    • grab된 프레임이 없는 경우, false를 return하고 image는 None이 됨

3. read

  • retval, image = cv.VideoCapture.read() : grab + retrieve

Ⅲ. Properties


1. get

  • retval = cv.VideoCapture.get(property) : Property를 읽어옴

2. set

  • retval = cv.VideoCapture.set(propId, value) : Property 설정

Ⅳ. 예제

import cv2

vid = cv2.VideoCapture('small.avi')
r, f = True, None
while r:
    r, f = vid.read()
    if r :
        cv2.imshow("window", f)
        if cv2.waitKey(33) > 0:
            break
else:
    cv2.waitKey()
vid.release()
cv2.destroyAllWindows()

0개의 댓글