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?
解决方案
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
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)
It seems it can works fps = vcap.get(7) but I checked this only on one file.
EDIT 2019: Current cv2 uses little different names (but they have the same values: 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