gpt4 book ai didi

python - “模块”对象没有属性 'BackgroundSubtractorMOG'

转载 作者:太空宇宙 更新时间:2023-11-03 21:25:30 25 4
gpt4 key购买 nike

我正在尝试使用默认函数对视频文件进行背景减法。
我正在使用 Python 2.7 和 OpenCV。
我在使用“BackgroundSubtractorMOG”模块时收到此错误:

'module' object has no attribute 'BackgroundSubtractorMOG'

现在,如果我尝试使用 createBackgroundSubtractorMOG() 模块,我会收到同样的错误。
如果我将代码更改为:

bkgnd = cv2.bgsegm.BackgroundSubtractorMOG()

稍后我收到一个错误,它试图告诉我我正在使用 OpenCV 3.1(尽管我很确定我不是)。

 img_sub_gray_image = cv2.cvtColor(img_sub, cv2.COLOR_BGR2GRAY) cv2.error:

/home/odroid/opencv-3.1.0/modules/imgproc/src/color.cpp:8000: error: (-215) scn == 3 || scn == 4 in function cvtColor

这是出错的代码段:

bkgnd = cv2.bgsegm.BackgroundSubtractorMOG() 
cap = cv2.VideoCapture('video.mp4')

while(True):
ret, frame = cap.read()

#background subtraction
img_sub = bkgnd.apply(frame)

#convert to grayscale
img_sub_gray_image = cv2.cvtColor(img_sub, cv2.COLOR_BGR2GRAY)
#thresholding, forcing to binary image
ret,threshold1 = cv2.threshold(img_sub_gray_image, LOWER_BOUND, UPPER_BOUND, cv2.THRESH_BINARY)

有什么想法吗?

最佳答案

在 opencv 3 中,他们更改了一些函数的名称,您必须更改:

bkgnd = cv2.bgsegm.BackgroundSubtractorMOG() 

到:

cv2.bgsegm.createBackgroundSubtractorMOG()

另一个观察结果是apply函数的结果是一个二值图像,所以没有必要做从RGBgray的转换。您不需要使用命令:cv2.cvtColor(img_sub, cv2.COLOR_BGR2GRAY)

关于python - “模块”对象没有属性 'BackgroundSubtractorMOG',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43620705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com