cv2目标追踪报错:'builtin_function_or_method'对象无apply属性
解决AttributeError: 'builtin_function_or_method' object has no attribute 'apply'错误
错误根源在于你没有实例化背景减除器对象:object_detector = cv2.createBackgroundSubtractorMOG2 这行代码只是把函数本身赋值给了变量,而不是调用函数创建实例。只有实例化后的对象才拥有apply方法。
修正后的代码:
# 调用函数创建背景减除器实例,括号不能少 object_detector = cv2.createBackgroundSubtractorMOG2() while True: ret, frame = cap.read() # 检查是否成功读取帧,避免后续报错 if not ret: break mask = object_detector.apply(frame) cv2.imshow("Frame", frame) cv2.imshow("Mask", mask) # 添加退出按键,避免程序卡死 if cv2.waitKey(30) & 0xFF == ord('q'): break # 释放资源 cap.release() cv2.destroyAllWindows()
额外提示:
- 加入帧读取失败的判断,防止
frame为None时调用apply引发新错误 - 补充退出逻辑和资源释放步骤,这是OpenCV程序的标准收尾操作
内容的提问来源于stack exchange,提问作者only1smokey
相关产品推荐
相关产品推荐

