14

How to access to CAP_PROP_FRAME_COUNT from opencv in python? I tried this:

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)

And this:

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)

and also this:

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)

But I'm getting this error:

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

I'm using python 2.7.5 and OpenCV 2.4.9.

ProGM
  • 6,949
  • 4
  • 33
  • 52
  • 4
    opencv3.0 will have the proper cv2.CAP_PROP_FRAME_COUNT (and also will discard the deprecated cv submodule) – berak Oct 26 '14 at 08:59

5 Answers5

20

The constants in the first version of OpenCV python module have a CV_ prefix. You could thus either use cv.CV_CAP_PROP_FRAME_COUNT or cv2.cv.CV_CAP_PROP_FRAME_COUNT.

David Zwicker
  • 23,581
  • 6
  • 62
  • 77
17

While running macports on OSX (opencv @3.0.0_1+python27+tbb)

You can get CAP_PROP_FRAME_HEIGHT and CAP_PROP_FRAME_WIDTH with the following:

#!/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)
extensa5620
  • 681
  • 2
  • 8
  • 22
5

In OpenCV 2.x, these attributes are named starting with CV_... like CV_CAP_PROP_FRAME_COUNT.

In OpenCV 3.x and OpenCV 4.x, these attributes are named without CV_... like CAP_PROP_FRAME_COUNT.

Qin Heyang
  • 1,456
  • 1
  • 16
  • 18
2

http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-get

#3. CV_CAP_PROP_FRAME_WIDTH
print "\t CAP_PROP_FRAME_WIDTH:     ",cap.get(3)
#4. CV_CAP_PROP_FRAME_HEIGHT
print "\t CAP_PROP_FRAME_HEIGHT:    ",cap.get(4)

http://docs.opencv.org/2.4/modules/highgui/doc/reading_and_writing_images_and_video.html#videocapture-set

#3. CV_CAP_PROP_FRAME_WIDTH
cap.set(3,320)
#4. CV_CAP_PROP_FRAME_HEIGHT
cap.set(4,240)
Alain Vega
  • 21
  • 1
-1
import cv2

import cv2.cv as cv

Using cv2:

stream = cv2.VideoCapture(filename)

print stream.get(cv.CV_CAP_PROP_FRAME_COUNT)
lennon310
  • 12,503
  • 11
  • 43
  • 61