在python-opencv中获取视频维度

时间:2016-10-10 07:30:53

标签: python opencv video

我可以获得图像大小,如下所示:

import cv2

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

视频怎么样?

6 个答案:

答案 0 :(得分:18)

它将文件或相机的widthheight设为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)但我只在一个文件上检查过它。

答案 1 :(得分:10)

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

width = vcap.get(3)
height = vcap.get(4)
fps = vcap.get(5)

答案 2 :(得分:7)

对于3.3.1版本,方法已更改。请在此链接中查看更改:https://docs.opencv.org/3.3.1/d4/d15/group__videoio__flags__base.html#ga023786be1ee68a9105bf2e48c700294d

而不是cv2.cv.CV_CAP_PROP_FRAME_WIDTH在上面的链接中使用cv2.CAP_PROP_FRAME_WIDTH和其他必要的内容。

答案 3 :(得分:2)

cv2.__version__
'3.4.3' 

w = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
h = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = int(cap.get(cv2.CAP_PROP_FPS))
n_frames = int(cap.get(cv2.CAP_PROP_FRAME_COUNT))

答案 4 :(得分:0)

根据OpenCV docs,您可以使用 vcap.get(i)方法,其中 i 可以在0到21之间。

答案 5 :(得分:0)

对于 OpenCV versions = 4.x.x

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