A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/python/python-background-subtraction-using-opencv/ below:

Python | Background subtraction using OpenCV

Python | Background subtraction using OpenCV

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 Subtraction

Shadows 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.

Popular Background Subtraction Algorithms Example

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