본문 바로가기
파이썬

파이썬 python-opencv에서 비디오 차원 가져 오기

by º기록 2020. 10. 29.
반응형

다음과 같이 이미지 크기를 얻을 수 있습니다.

import cv2

img = cv2.imread('my_image.jpg',0)
height, width = img.shape[:2]

비디오는 어떻습니까?

 

해결 방법

 

파일 또는 카메라의 width height 를 float로 제공하므로 정수로 변환해야 할 수 있습니다.

하지만 항상 0.0 FPS 를 제공합니다.

import cv2

vcap = cv2.VideoCapture('video.avi') # 0=camera
 
if vcap.isOpened(): 
    # get vcap property 
    width  = vcap.get(cv2.cv.CV_CAP_PROP_FRAME_WIDTH)  # float
    height = vcap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT) # float
    # or
    width  = vcap.get(3) # float
    height = vcap.get(4) # float

    # it gives me 0.0 :/
    fps = vcap.get(cv2.cv.CV_CAP_PROP_FPS)

fps = vcap.get (7) 작동 할 수있는 것 같지만 한 파일에서만 확인했습니다.

2019 수정 : 현재 cv2는 약간 다른 이름을 사용합니다 (하지만 값은 3, 4, 5, 7).

import cv2

vcap = cv2.VideoCapture('video.avi') # 0=camera

if vcap.isOpened(): 
    width  = vcap.get(cv2.CAP_PROP_FRAME_WIDTH)   # float
    height = vcap.get(cv2.CAP_PROP_FRAME_HEIGHT)  # float
    #print(cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT) # 3, 4

    # or
    width  = vcap.get(3) # float
    height = vcap.get(4) # float

    print('width, height:', width, height)
    
    fps = vcap.get(cv2.CAP_PROP_FPS)
    print('fps:', fps)  # float
    #print(cv2.CAP_PROP_FPS) # 5
    
    frame_count = vcap.get(cv2.CAP_PROP_FRAME_COUNT)
    print('frames count:', frame_count)  # float
    #print(cv2.CAP_PROP_FRAME_COUNT) # 7


 

참조 페이지 https://stackoverflow.com/questions/39953263

 

 

반응형

댓글