当前,我使用的是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)
从opencv 3.0.0-dev python绑定无法正常工作,我知道
opencv3.0中删除了cv2.cv子模块,同时改变了中的一些常数
但是cv2.CV_CAP_PROP_POS_FRAMES对我不起作用,那么我该怎么办?
尝试键入以下内容:
post_frame = cap.get(1) #CAP_PROP_POS_FRAMES = 1
如果您在Python外壳中键入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
...
您正在寻找这个:
post_frame = cap.get(cv2.CAP_PROP_POS_FRAMES)
应在/usr/include/opencv2或/usr/local/include等中搜索CV_CAP_PROP_POS_FRAMES,以makefile include路径中的路径为准。它将位于videoio/videio_c.h或/videio/legate/contents_c.h中。请在include路径#include中使用它。这是正确的方式。