Get video dimension in python-opencv

karavanjo picture karavanjo · Oct 10, 2016 · Viewed 111.8k times · Source

I can get size of image, like this:

import cv2

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

How about video?

Answer

furas picture furas · Oct 10, 2016

It gives width and height of file or camera as float (so you may have to convert to integer)

But it always gives me 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 `width`
    height = vcap.get(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT)  # float `height`
    # or
    width  = vcap.get(3)  # float `width`
    height = vcap.get(4)  # float `height`

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

It seems it can works fps = vcap.get(7) but I checked this only on one file.


EDIT 2019: Currently cv2 uses little different names

cv2.CAP_PROP_FRAME_WIDTH   # 3
cv2.CAP_PROP_FRAME_HEIGHT  # 4

cv2.CAP_PROP_FPS           # 5
cv2.CAP_PROP_FRAME_COUNT   # 7

but they have the same values: 3, 4, 5, 7

import cv2

#vcap = cv2.VideoCapture(0)  # built-in webcamera

vcap = cv2.VideoCapture('video.avi')

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

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

    #print('cv2.CAP_PROP_FRAME_WIDTH :', cv2.CAP_PROP_FRAME_WIDTH)   # 3
    #print('cv2.CAP_PROP_FRAME_HEIGHT:', cv2.CAP_PROP_FRAME_HEIGHT)  # 4
    #print('cv2.CAP_PROP_FPS         :', cv2.CAP_PROP_FPS)           # 5
    #print('cv2.CAP_PROP_FRAME_COUNT :', cv2.CAP_PROP_FRAME_COUNT)   # 7

EDIT 2020: All properties in How do I get usb webcam property IDs for OpenCV