Cómo acceder a CAP_PROP_FRAME_COUNT de opencv en python?
He intentado esto:

import cv2
cap = cv2.VideoCapture('myvideo.avi')
frames_count, fps, width, height = cap.get(cv2.CAP_PROP_FRAME_COUNT), cap.get(cv2.CAP_PROP_FPS), cap.get(cv2.CAP_PROP_FRAME_WIDTH), cap.get(cv2.CAP_PROP_FRAME_HEIGHT)

Y este:

import cv2
import cv
cap = cv2.VideoCapture('myvideo.avi')
frames_count, fps, width, height = cap.get(cv.CAP_PROP_FRAME_COUNT), cap.get(cv.CAP_PROP_FPS), cap.get(cv.CAP_PROP_FRAME_WIDTH), cap.get(cv.CAP_PROP_FRAME_HEIGHT)

y también esto:

import cv2
cap = cv2.VideoCapture('myvideo.avi')
frames_count, fps, width, height = cap.get(cv2.cv.CAP_PROP_FRAME_COUNT), cap.get(cv2.cv.CAP_PROP_FPS), cap.get(cv2.cv.CAP_PROP_FRAME_WIDTH), cap.get(cv2.cv.CAP_PROP_FRAME_HEIGHT)

Pero obtengo este error:

AttributeError: 'module' object has no attribute 'CAP_PROP_FRAME_COUNT'

Estoy usando python 2.7.5 y OpenCV 2.4.9.

opencv3.0 se tiene la adecuada cv2.CAP_PROP_FRAME_COUNT (y también descartar los obsoleto cv submódulo)

OriginalEl autor ProGM | 2014-10-25

4 Comentarios

  1. 15

    Las constantes en la primera versión de OpenCV módulo de python tienen una CV_ prefijo. Usted podría utilizar cv.CV_CAP_PROP_FRAME_COUNT o cv2.cv.CV_CAP_PROP_FRAME_COUNT.

    Parece que funciona, pero… estoy bastante desconcertado. ¿Por qué no los constantes definidas en la cv2 módulo?
    En OpenCV 2.x, parece que las constantes son de la forma cv2.cv.CV_CAP_X, mientras que en OpenCV 3.x, son cv2.CAP_X
    Mala API, mala OpenCV.

    OriginalEl autor David Zwicker

  2. 11

    Mientras se ejecuta macports en OSX (opencv @3.0.0_1+python27+tbb)

    Usted puede conseguir CAP_PROP_FRAME_HEIGHT y CAP_PROP_FRAME_WIDTH con los siguientes:

    #!/opt/local/bin/python
    import cv2 
    vcap = cv2.VideoCapture()
    # set frame width and height
    vcap.set(cv2.CAP_PROP_FRAME_WIDTH, 480)
    vcap.set(cv2.CAP_PROP_FRAME_HEIGHT, 640)
    vcap.open(0)

    OriginalEl autor extensa5620

  3. 0
    import cv2
    
    import cv2.cv as cv

    Utilizando cv2:

    stream = cv2.VideoCapture(filename)
    
    print stream.get(cv.CV_CAP_PROP_FRAME_COUNT)

    OriginalEl autor 1kkwrds

Dejar respuesta

Please enter your comment!
Please enter your name here