import numpy as np
import cv2
cap = cv2.VideoCapture(0)
# 核函数 方式一 核函数:3*3 5*5 7*7 都可以
# kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
# 核函数 方式二
kernel = np.ones((3, 3), np.uint8)
# 静态背景去除(注意:光照会影响判断)
fgbg = cv2.createBackgroundSubtractorMOG2()
while True:
ret, frame = cap.read()
# 静态背景去除,返回二值化图像
fgmask = fgbg.apply(frame)
# 开运算
fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)
cv2.imshow('frame', fgmask)
# 按q退出
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
opencv去除静态背景
于 2022-02-27 18:27:06 首次发布
本文介绍了如何使用OpenCV进行实时视频处理,通过静态背景减除和动态背景检测算法(如MORPH_ELLIPSE和MOG2),实现视频中目标物体的清晰分离。读者将学习到如何创建背景减除器并应用开运算操作来增强边缘效果。
摘要由CSDN通过智能技术生成