인공지능/OpenCV

[OpenCV] 동영상 윈도우창에 출력하기

여니여니_ 2019. 8. 15. 02:57

디지털 비디오는 Frame이 연속되게 보여주는 구성을 가지고 있습니다.

비디오의 속도는 초당 프레임의 개수인 Frames per second (FPS) 로 표현됩니다.

 

비디오 획득 객체 생성하기

cv2.VideoCapture(filename)

 

프레임 획득 객체 해제

cv2.VideoCapture.release()

 

다음과 같이 cap이라는 비디오 획득 객체를 생성합니다.

프레임 사이즈도 출력해 보았습니다.

 

while문에서 cap에서 계속 읽어오는데 이 값이 None이 되면 while문 밖으로 나가게 됩니다.

즉, 동영상이 끝날 때까지 계속해서 cap에서 읽어와 frame에 저장하고 보여줍니다. 

 

동영상의 크기가 커서 resize로 frame의 크기를 반으로 줄였습니다.

fx, fy 에는 0~1 사이의 값이 들어갈 수 있고 fx=0.5라면, 가로 길이를 0.5배를 하는 것입니다. 

 

또, Esc키를 누르면 동영상이 중간에 중단되고 윈도우 창이 닫힙니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import cv2
 
cap = cv2.VideoCapture('dog.mp4')
 
 
print('frame_size =', frame_size)
 
while True:
    retval, frame = cap.read() 
    if not retval:
        break
 
    frame=cv2.resize(frame, dsize=None, fx=0.5, fy=0.5)
    
    cv2.imshow('frame',frame)
 
    key = cv2.waitKey(25)
 
    if key == 27# Esc
        break
 
if cap.isOpened():
    cap.release()
 
cv2.destroyAllWindows()
 
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

결과 화면