You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行cv2代码创建掩码时报builtin_function_or_method无apply属性错误

错误根因
  • cv2.createBackgroundSubtractorMOG2是背景分割器的构造函数,你没有加括号执行实例化操作,直接把函数对象本身赋值给了object_detector,因此调用apply方法时会触发属性不存在的报错。
修复代码

仅需修改实例化背景分割器的行即可,以下是完整可运行代码:

import cv2
import numpy as np

cap = cv2.VideoCapture('file_name.mp4')
# 新增括号调用构造函数生成实例,可自定义括号内参数
object_detector = cv2.createBackgroundSubtractorMOG2()

while True:
    ret, frame = cap.read()
    # 额外添加视频读取结束的判断,避免视频播放完后触发报错
    if not ret:
        break

    mask = object_detector.apply(frame)

    cv2.imshow('Cam Footage' , frame)
    cv2.imshow('Mask', mask)

    key = cv2.waitKey(30)
    if key == 27:
        break

cap.release()
cv2.destroyAllWindows()
可选参数说明

你可以根据需求调整构造函数的三个常用参数:

  • history:用于计算背景模型的历史帧数量,默认值为500
  • varThreshold:像素与背景模型的差值阈值,超过阈值会被判定为前景,默认值为16
  • detectShadows:是否检测阴影,开启后阴影会被标记为灰色,默认值为True

内容的提问来源于stack exchange,提问作者Drxj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 06:24:03