Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get video dimension in python-opencv

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?

like image 360
karavanjo Avatar asked Oct 10 '16 07:10

karavanjo


People also ask

What is cv2 VideoCapture in Python?

cv2.VideoCapture(1): Means second camera or webcam. cv2.VideoCapture("file name.mp4"): Means video file. After this, we can start reading a Video from the camera frame by frame. We do this by calling the read method on the VideoCapture object. This method takes no arguments and returns a tuple.


2 Answers

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

like image 187
furas Avatar answered Sep 29 '22 09:09

furas


width = vcap.get(cv2.CAP_PROP_FRAME_WIDTH ) height = vcap.get(cv2.CAP_PROP_FRAME_HEIGHT ) fps =  vcap.get(cv2.CAP_PROP_FPS) 

or

width = vcap.get(3) height = vcap.get(4) fps = vcap.get(5) 
like image 29
GGEv Avatar answered Sep 29 '22 08:09

GGEv