我正在尝试将cv2.createBackgroundSubtractorMOG()
应用于此图像:
消除所有背景亮度,只留下中间两个明亮的物体以供进一步分析。2这是这个任务的正确方法吗?3如果不是,我会怎么做?
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)
输出图像:
我试着使用文档中MOG2方法的args,但没有任何变化。
2条答案
按热度按时间2uluyalo1#
从docs,尝试以下操作:
或
kxeu7u2r2#
我个人认为这种方法是一个很好的起点,因为你有两个明亮的峰值,你想从噪音中分离出来。一旦你确定了所需的阈值限制。你应该能够从背景噪音中分离出这两个斑点。如果需要,你可以进一步使用cv2.erode和cv2.dilate来进一步去除噪音。