简体   繁体   中英

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?

你正在寻找这个:

post_frame = cap.get(cv2.CAP_PROP_POS_FRAMES)

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
...

Should search for CV_CAP_PROP_POS_FRAMES in /usr/include/opencv2 or /usr/local/include etc. ,whichever is in your makefile include path . It would be in videoio/videoio_c.h or /videoio/legacy/constants_c.h . Use this in your include path #include . This is the right way .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM