opencv 属性错误:模块“cv2.cv2”没有属性“bgsegm

kh212irz  于 2022-11-15  发布在  其他
关注(0)|答案(6)|浏览(587)
import numpy as np
import cv2
cap = cv2.VideoCapture('vtest.avi')
fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()
while(1):
    ret, frame = cap.read()
    fgmask = fgbg.apply(frame)
    cv2.imshow('frame',fgmask)
    k = cv2.waitKey(30) & 0xff
    if k == 27:
        break
cap.release()
cv2.destroyAllWindows()

出现以下错误:属性错误:模块'cv2.cv2'没有属性'bgsegm'。
我正在Windows机器上使用Python 3.6和OpenCV 3.6。我尝试使用pip install opencv-contrib-python命令,但问题仍然存在于我的Windows机器上。这个命令在Ubuntu系统上有帮助,但在Windows上没有。我在堆栈上搜索了类似的问题,但无法解决这个问题。有人能帮我解决这个问题吗?谢谢!

hfyxw5xn

hfyxw5xn1#

您需要安装contrib依赖项才能使其正常工作,因为它不是标准构建的一部分。

pip install opencv-contrib-python
qeeaahzv

qeeaahzv2#

安装contrib依赖项将解决您的问题:

pip install opencv-contrib-python

或者,您可以使用cv2中直接提供的较新的createBackgroundSubtractorMOG2()

fgbg = cv2.createBackgroundSubtractorMOG2()
2jcobegt

2jcobegt3#

如果您使用的是python3,请写入:

fgbg =cv2.createBackgroundSubtractorMOG2() #For python3

而不是:

fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()
5ktev3wc

5ktev3wc4#

当有人试图安装多个OpenCV软件包,甚至试图以不同的顺序安装多个OpenCV软件包时,很可能会出现此问题。
如果你阅读官方的opencv-contrib-pythoninstallation docs,你只需要安装一个OpenCV包。
例如,如果您需要一个带有额外contrib模块的基本OpenCV模块,则只需安装所需版本的opencv-contrib-python

$ pip install opencv-contrib-python

这将安装OpenCV和OpenCV contrib模块。
原因是所有OpenCV模块都使用相同的名称空间cv2,并且不使用插件架构。因此,当您安装其他模块时,它将使用正在安装的新模块库重写现有名称空间。

lztngnrs

lztngnrs5#

我用的是3.4.2.16版本的OpenCV,你可以试试这个版本的OpenCV

nqwrtyyt

nqwrtyyt6#

写入

fgbg = cv2.createBackgroundSubtractorMOG()

代替

fgbg = cv2.bgsegm.createBackgroundSubtractorMOG()

您不需要使用bgsegm。

相关问题