python - 使用 GSOC 进行 openCV 背景扣除

标签 python opencv background-subtraction

我正在尝试实现 GSOC background subtractor from openCV.

fgbg = cv.bgsegm_BackgroundSubtractorGSOC()
fgmask = fgbg.apply(frame)

但这给了我以下错误:

fgmask = fgbg.apply(frame)
TypeError: Incorrect type of self (must be 'bgsegm_BackgroundSubtractorGSOC' or its derivative)

fgmask = cv.bgsegm_BackgroundSubtractorGSOC.apply(frame)

给我这个错误:

fgmask = cv.bgsegm_BackgroundSubtractorGSOC.apply(frame)
TypeError: descriptor 'apply' requires a 'cv2.bgsegm_BackgroundSubtractorGSOC' object but received a 'numpy.ndarray'

.apply() 的文档说我只需要提供一个输入数组(框架)、输出位置和学习率。将 .apply(frame) 更改为 .apply(frame, output, -1) 并不能修复错误

如何正确实现 bgsegm_BackgroundSubtractorGSOC 对象并将其用于我的图像?

i read this post但似乎我已经失败了一步

最佳答案

GSOC 和其他背景扣除方法(MOG2 和 KNN 除外)位于 in the extra modules并需要安装 opencv-contrib 库。 安装后,可以通过编写以下内容来使用该模块:

backSub = cv.bgsegm.createBackgroundSubtractorGSOC()

关于python - 使用 GSOC 进行 openCV 背景扣除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57672256/

相关文章:

python - 当外部模块已经导入到其他导入模块中时,是否必须重新导入外部模块?

python - Selenium IEDriver 接受下载

c++ - cv::erode 导致错误:OpenCV 错误:Mat 中的断言失败(m.dims >= 2)

c++ - 检测静态摄像机图像中人物的最佳方法(不使用视频流)-OpenCV 中的 HOG、Haar、BackgroundSubtract?

c++ - 从小图像 Mat [opencv, background subtraction] 创建更大的图像

python - 如何使用 Python 的日志记录模块写入日志文件的前一行?

python - OpenCV 给出了不正确的视频 FPS 和帧数

image-processing - 填充二进制对象内的孔

c++ - 低对比度图像分割

c++ - 如何使 openCV 背景减法 KNN 算法持续更长时间,跟踪不动的前景对象