Last Updated : 11 Aug, 2025
Imagine you’re watching CCTV footage and want to track only moving people or cars not the walls, buildings or parked vehicles. This is where Background Subtraction comes in.
Background Subtraction is a computer vision technique used to separate moving objects (foreground) from static scenes (background) in a video. The result is usually a binary mask (black-and-white image) that highlights moving parts.
Use Case of Background SubtractionPopular Background Subtraction AlgorithmsShadows of moving objects can also move and sometimes algorithm mistakenly marks them as part of the foreground. Some background subtraction methods handle shadows better than others.
It demonstrates background subtraction using OpenCV’s MOG2 algorithm. It reads a video, applies background subtraction to separate moving objects (foreground) from background and displays both original video and processed mask in real time.
Python
import numpy as np
import cv2
# Load video file
cap = cv2.VideoCapture('/home/sourabh/Downloads/people-walking.mp4')
# Create background subtractor (MOG2 handles shadows well)
fgbg = cv2.createBackgroundSubtractorMOG2()
while True:
ret, frame = cap.read()
if not ret:
break # Stop if video ends
# Apply background subtraction
fgmask = fgbg.apply(frame)
# Show original and foreground mask side by side
cv2.imshow('Original Frame', frame)
cv2.imshow('Foreground Mask', fgmask)
# Press 'Esc' to exit
if cv2.waitKey(30) & 0xFF == 27:
break
# Release resources
cap.release()
cv2.destroyAllWindows()
Original Frame:
Foreground Mask:
Explanation:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4