【问题标题】:OpenCV-Python cv2.CV_CAP_PROP_POS_FRAMES errorOpenCV-Python cv2.CV_CAP_PROP_POS_FRAMES 错误
【发布时间】:2016-11-28 12:28:31
【问题描述】:

目前我使用的是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:“模块”对象没有属性“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 子模块在 opencv3.0 中被删除,一些常量也被改变了

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

【问题讨论】:

    标签: python opencv image-processing constants video-capture


    【解决方案1】:

    尝试输入以下内容:

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

    【讨论】:

      【解决方案2】:

      应该在 /usr/include/opencv2 或 /usr/local/include 等中搜索 CV_CAP_PROP_POS_FRAMES,无论哪个在您的 makefile 包含路径中。它将位于 videoio/videoio_c.h 或 /videoio/legacy/constants_c.h 中。在您的包含路径中使用它 #include 。这是正确的方法。

      【讨论】:

        【解决方案3】:

        你正在寻找这个:

        post_frame = cap.get(cv2.CAP_PROP_POS_FRAMES)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-20
          • 1970-01-01
          • 1970-01-01
          • 2016-10-13
          • 2019-02-28
          • 1970-01-01
          相关资源
          最近更新 更多