在OpenCV中应用背景减除技术需要使用BackgroundSubtractor类。该类提供了几种不同的背景建模算法,例如MOG(高斯混合模型)和KNN(K近邻)等。以下是一个简单的示例代码,演示如何使用MOG算法进行背景减除:
import cv2
cap = cv2.VideoCapture('input_video.mp4')
fgbg = cv2.createBackgroundSubtractorMOG2()
while True:
ret, frame = cap.read()
if not ret:
break
fgmask = fgbg.apply(frame)
cv2.imshow('Frame', frame)
cv2.imshow('Foreground Mask', fgmask)
if cv2.waitKey(30) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
在上面的代码中,我们首先创建一个VideoCapture对象用于读取输入视频,然后创建一个BackgroundSubtractorMOG2对象用于背景建模。在每个循环迭代中,我们使用apply方法来获取前景掩模,并将其显示在屏幕上。按下键盘上的’q’键即可退出循环。
这只是一个简单的示例,实际应用中可能需要根据具体情况进行调整和优化。希望这可以帮助到你。