提示:python-opencv背景分离(BS)
例如:
- 一看就会,一做就废
学习内容:
提示:python-opencv背景分离(BS)
背景分离(BS)是一种通过使用静态相机来生成前景掩码(即包含属于场景中的移动对象像素的二进制图像)的常用技术
学习时间:
提示:1s
学习产出:
BS计算前景掩码,在当前帧与背景模型之间执行剑法运算,其中包含场景的静态部分,或者更一般而言,考虑到所观察场景的特征,可以将其视为背景的所有内容。
背景建模包括两个主要步骤:
1.背景初始化
2.背景更新
opencv给出两个函数实现
- cv2.BackgroundSubtractorMOG2
- cv2.BackgroundSubtractorKNN
大家可以分别试试
# 导入亲爱的opencv
import cv2 as cv
# 调用函数
backSub = cv.createBackgroundSubtractorMOG2()
#backSub = cv.createBackgroundSubtractorKNN()
# 看看美丽的自己
capture = cv.VideoCapture(0)
if not capture.isOpened:
exit(0)
while True:
ret,frame = capture.read()
if frame is None:
break
fgMask = backSub.apply(frame)
cv.rectangle(frame,(10,2),(100,20),(255,255,255),-1)
cv.putText(frame,str(capture.get(cv.CAP_PROP_POS_FRAMES)),(15,15),
cv.FONT_HERSHEY_SIMPLEX,0.5,(0,0,0))
cv.imshow('Frame',frame)
cv.imshow('FG_Mask',fgMask)
keyboard = cv.waitKey(30)
if keyboard == ord('q') or keyboard == 27:
break
输出效果截图:
欢迎大家点赞哦



