반응형
목차
OpenCV 동영상 파일 재생하기
앞서 포스트에서 비디오(Video) 파일(mp4)의 영상 정보를 가져오는 방법에 대해 알아보 았습니다. 이번 포스트는 영상 파일의 사이즈 정보를 가져와서 크기를 변경하고 재생하는 코드를 작성하고 설명하겠습니다.
순서는 아래와 같습니다.
- 동영상 불러오기(VideoCapture)
- 동영상 정보가져오기(cv2.get)
- 동영상 읽기(cv2.read)
- 프레임(Frame) 크기 변경하기(cv2.resize)
- 프레임(Frame) 출력 하기(imshow)
코드는 위 순서대로 진행 되고 각 순서에서 사용되는 파이썬 openCV 함수(Function)은 괄호안에 넣었습니다.
OpenCV 동영상 파일 재생하기 실습
예제 코드>>
import cv2
Vid = cv2.VideoCapture('car.mp4')
if Vid.isOpened():
fps = Vid.get(cv2.CAP_PROP_FPS)
f_count = Vid.get(cv2.CAP_PROP_FRAME_COUNT)
f_width = Vid.get(cv2.CAP_PROP_FRAME_WIDTH)
f_height = Vid.get(cv2.CAP_PROP_FRAME_HEIGHT)
print('Frames per second : ', fps,'FPS')
print('Frame count : ', f_count)
print('Frame width : ', f_width)
print('Frame height : ', f_height)
while Vid.isOpened():
ret, frame = Vid.read()
if ret:
re_frame = cv2.resize(frame, (round(f_width/4), round(f_height/4)))
cv2.imshow('Car_Video',re_frame)
key = cv2.waitKey(10)
if key == ord('q'):
break
else:
break
Vid.release()
cv2.destroyAllWindows()
3번 라인: 코드와 동일 폴더에 있는 mp4 동영상 파일을 Vid 객체에 저장
6~9번 라인: 비디오 파일의 정보 불러오기
17번 라인: 비디오 파일의 값을 읽고 프레임 값이 있으면 프레임과 True를 전달 받음, 없으면 False.
19번 라인: 이미지를 원본 사이즈에서 변경함. Round로 너비와 높이 값을 반올림 한 이유는 resize 함수는 정수로 값을 받기 때문임. 만일 정수(int) 처리하지 않으면 아래와 같은 에레 메세지 발생 함.
20번 라인: imshow 함수로 윈도우명(Window name)과 frame 값을 입력 함.
21번 라인: 영상 정지를 위한 키 값 "q" 값을 10ms 기다림
에러메세지>>
Frames per second : 23.976023976023978 FPS
Frame count : 360.0
Frame width : 3840.0
Frame height : 2160.0
Traceback (most recent call last):
File "d:\Python\test02\test04.py", line 19, in <module>
re_frame = cv2.resize(frame, ((f_width/4), (f_height/4)))
cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'resize'
> Overload resolution failed:
> - Can't parse 'dsize'. Sequence item with index 0 has a wrong type
> - Can't parse 'dsize'. Sequence item with index 0 has a wrong type
결과>>
반응형
'파이썬(Python) > opencv' 카테고리의 다른 글
[Python]OpenCV 이미지 픽셀로 변경하여 수정하기(Numpy array) (0) | 2022.03.22 |
---|---|
[Python]OpenCV 동영상 저장하기, 코덱 종류와 사용방법(Video, fourcc, codec) (0) | 2022.03.18 |
[OpenCV] Python 비디오 속성 값 불러오기(Video attributes) (0) | 2022.03.17 |
[Python]OpenCV imread함수 사용법, 옵션(Option), 예제 (0) | 2022.03.15 |
[Python]OpenCV waitKey 함수 사용법, 이미지/동영상 파일 열고 닫기 (0) | 2022.02.22 |