【问题标题】:python-opencv AttributeError: 'module' object has no attribute 'createBackgroundSubtractorGMG'python-opencv AttributeError:“模块”对象没有属性“createBackgroundSubtractorGMG”
【发布时间】:2019-02-13 14:18:01
【问题描述】:

我正在尝试按照以下教程进行操作: https://opencv-python-tutroals.readthedocs.org/en/latest/py_tutorials/py_video/py_bg_subtraction/py_bg_subtraction.html

在尝试第三个示例 (BackgroundSubtractorGMG) 时,我收到此错误:

AttributeError: 'module' object has no attribute 'createBackgroundSubtractorGMG'

我在前面的示例中遇到了同样的错误。但我遵循了this post 中给出的解释。不知何故,同样的技巧在这里不起作用。

如果有哪位大神解决了,请帮帮我。

在 Ubuntu 12.04 上使用 Python 2.7.3 和 opencv 2.4.6.1

【问题讨论】:

  • 该教程适用于 OpenCV 3.x。所以从github master分支编译opencv..
  • 感谢您提供的信息,我现在将使用 Open CV3!

标签: python opencv


【解决方案1】:

在 OpenCV 3.0.0-dev 中,您必须使用 contrib repos 进行编译,然后它位于 bgsegm 子模块中。 IE。只需调用 cv2.bgsegm.createBackgroundSubtractorGMG()

【讨论】:

  • Pokerfaced 他们在哪里提到它?我在文档中看不到它,我错过了什么吗?太好了,再重新编译 20 分钟。
  • 我有 3.3 AttributeError: 'module' object has no attribute 'bgsegm'
  • @Maximilian 你确定你的版本是用opencv_contrib编译的吗?
  • 不!这就是为什么!谢谢
  • 这对我有用。使用 3.3.1 dev python-opencv
【解决方案2】:
cv2.bgsegm.createBackgroundSubtractorGMG()
cv2.createBackgroundSubtractorMOG2()
cv2.bgsegm.createBackgroundSubtractorMOG(),

**这对我有用**

【讨论】:

    【解决方案3】:

    哦,天哪,这是那些故事中的另一个……

    在 2.4.6 中,您只能使用 Python 中的 BackgroundSubtractorMOG。 (句号)

    从 2.4.8 开始,BackgroundSubtractorMOG2 problem 似乎已修复,但 BackgroundSubtractorGMG 仍然缺失。

    对于这两个版本,您都可以使用普通构造函数来创建一个。

    在 3.0(主)中,他们更改了语法,您现在必须调用“createBackgroundSubtractorGMG”、“createBackgroundSubtractorMOG2”等(这就是您的教程可能所指的内容)。但现在您至少可以使用所有 3 个版本。

    所以无论如何,如果你想使用 BackgroundSubtractorMOG2 ,你必须更新到 2.4.8,如果你需要 BackgroundSubtractorGMG,你将需要 3.0(这在某种程度上是“前沿”,但新的界面对所需的参数有更好的控制,恕我直言)。

    【讨论】:

    • 感谢您的澄清!
    • 实际上,我的 3.0.0-dev 版本(今天的 git master)确实包含 createBackgroundSubtractorMOGcreateBackgroundSubtractorMOG2,但不包含 createBackgroundSubtractorGMG(在 Python3 上)。还在找那个。
    • 以防万一有人在寻找这个:我更深入地研究了为什么缺少createBackgroundSubtractorGMG,并在上面发布了一个新问题:stackoverflow.com/questions/29429863/…
    【解决方案4】:

    bgsegm 在 opencv 的 contrib 模块中,但更新后我不确定。

    但是, 如果你还没有构建 contrib 模块:

    pip install opencv-contrib-python
    

    确保在执行安装过程时没有运行已导入 cv2 的控制台。 以管理员身份运行cmd

    它对我有用。

    【讨论】:

      猜你喜欢
      • 2018-02-14
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      • 2013-07-05
      • 2011-10-25
      相关资源
      最近更新 更多