如何将OpenCV背景减法应用于图像

时间:2018-11-07 12:59:43

标签: python opencv

我正尝试将cv2.createBackgroundSubtractorMOG()应用于此图片:

enter image description here

消除所有背景亮度,仅将两个明亮的对象放在中间以进行进一步分析。这是执行此任务的正确方法吗?如果没有,我该怎么办?

import cv2

img = cv2.imread('image.png')
sharp_img = cv2.createBackgroundSubtractorMOG().apply(img)

输出:

Traceback (most recent call last):
  File "/home/artur/Desktop/test.py", line 4, in <module>
    sharp_img = cv2.createBackgroundSubtractorMOG().apply(img)
AttributeError: module 'cv2.cv2' has no attribute 'createBackgroundSubtractorMOG

修改

MOG似乎不起作用。

代码:

import cv2
img = cv2.imread('image.png')
sharp_img = cv2.bgsegm.createBackgroundSubtractorMOG().apply(img)
cv2.imwrite('image2.png', sharp_img)

输出:

Traceback (most recent call last):
  File "/home/artur/Desktop/test.py", line 4, in <module>
    sharp_img = cv2.bgsegm.createBackgroundSubtractorMOG().apply(img)
AttributeError: module 'cv2.cv2' has no attribute 'bgsegm'

MOG2似乎可以运行,但没有令人满意的结果:

代码:

import cv2
img = cv2.imread('image.png')
sharp_img = cv2.createBackgroundSubtractorMOG2().apply(img)
cv2.imwrite('image2.png', sharp_img)

输出图像:

enter image description here

我尝试使用文档中的MOG2方法的参数,但没有任何改变。

1 个答案:

答案 0 :(得分:1)

docs中尝试以下操作:

sharp_img = cv.bgsegm.createBackgroundSubtractorMOG().apply(img)

sharp_img = cv2.createBackgroundSubtractorMOG2().apply(img)