OpenCV-Python中cv2.CV_CAP_PROP_POS_FRAMES错误

7

目前我正在使用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' object has no attribute 'CV_CAP_PROP_POS_FRAMES'

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

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

opencv 3.0.0-dev python bindings not working properly得知,cv2.cv的子模块已被移除,同时一些常量也发生了改变。但是,对于我来说,cv2.CV_CAP_PROP_POS_FRAMES并没有起作用。那么我该怎么办呢?
3个回答

12

你在找这个:

post_frame = cap.get(cv2.CAP_PROP_POS_FRAMES)

12

尝试键入这个:

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

0
应该在 /usr/include/opencv2 或 /usr/local/include 等路径中搜索 CV_CAP_PROP_POS_FRAMES,具体取决于您的 makefile 包含路径。它应该在 videoio/videoio_c.h 或 /videoio/legacy/constants_c.h 中。在您的包含路径中使用 #include 。这是正确的方法。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接