OpenCV-Pythoncv2.CV_CAP_PROP_POS_FRAMES错误

OpenCV-Python cv2.CV_CAP_PROP_POS_FRAMES error

我目前使用的是opencv 3.1.0,执行以下代码时遇到如下错误:

post_frame = cap.get(cv2.CV_CAP_PROP_POS_FRAMES)

我收到以下错误消息:

文件 "videoOperation.py",第 37 行,在 pos_frame = cap.get(cv2.CV_CAP_PROP_POS_FRAMES) AttributeError: 'module' 对象没有属性 'CV_CAP_PROP_POS_FRAMES'

使用OpenCV时,代码应按以下格式编写2.x:

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

,我知道

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

但是 cv2.CV_CAP_PROP_POS_FRAMES 对我不起作用,那我该怎么办?

您正在寻找这个:

post_frame = cap.get(cv2.CAP_PROP_POS_FRAMES)

尝试输入以下内容:

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

如果您在 Python shell 中键入 help('cv2'),您会发现语法有一些修改。

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

应在 /usr/include/opencv2 或 /usr/local/include 等中搜索 CV_CAP_PROP_POS_FRAMES,以您的 makefile 包含路径中的任何一个为准。它会在 videoio/videoio_c.h 或 /videoio/legacy/constants_c.h 中。在您的包含路径 #include 中使用它。这是正确的方法。