Search code examples
pythonopencvimage-processingconstantsvideo-capture

OpenCV-Python cv2.CV_CAP_PROP_POS_FRAMES error


Currently, I am using opencv 3.1.0, and I encountered the following error when executing the following code:

post_frame = cap.get(cv2.CV_CAP_PROP_POS_FRAMES)

I got the following error Message:

File "videoOperation.py", line 37, in pos_frame = cap.get(cv2.CV_CAP_PROP_POS_FRAMES) AttributeError: 'module' object has no attribute 'CV_CAP_PROP_POS_FRAMES'

The code should be written in the following format when using OpenCV 2.x:

post_frame = cap.get(cv2.cv.CV_CAP_PROP_POS_FRAMES)

From opencv 3.0.0-dev python bindings not working properly, I know that

the cv2.cv submodule got removed in opencv3.0, also some constants were changed

But the cv2.CV_CAP_PROP_POS_FRAMES didn't work for me, So what am I supposed to do?


Solution

  • Try typing this instead:

    post_frame = cap.get(1) #CAP_PROP_POS_FRAMES = 1
    

    If you type help('cv2') in the Python shell, you will find some modifications to the syntax.

    output truncated
    
    ...
    CAP_PROP_PAN = 33
    CAP_PROP_POS_AVI_RATIO = 2
    CAP_PROP_POS_FRAMES = 1
    CAP_PROP_POS_MSEC = 0
    CAP_PROP_PVAPI_BINNINGX = 304
    CAP_PROP_PVAPI_BINNINGY = 305
    CAP_PROP_PVAPI_DECIMATIONHORIZONTAL = 302
    ...