Change language

Python | Background subtraction using OpenCV

| | |

As the name suggests, it can subtract or exclude the background portion of an image. Its output is a binary segmented image that essentially gives information about non-stationary objects in the image. There is a problem with this concept of finding the non-stationary part, since the shadow of a moving object can move and sometimes be classified in the foreground.

Popular background subtraction algorithms:

  • BackgroundSubtractorMOG : This is a Gaussian blend based background segmentation algorithm.
  • BackgroundSubtractorMOG2 : It uses the same concept but the main advantage it provides is stability even when there is a change in brightness and better identification of shadows in frames.
  • Geometric multigrid : a statistical method is used and the pixel bayesin segmentation algorithm.

# Python code for background subtraction using OpenCV

import numpy as np

import cv2

 

cap = cv2.VideoCapture ( ’/ home / sourabh / Downloads / people-walking.mp4’ )

fgbg = cv2.createBackgroundSubtractorMOG2 ()

 

while ( 1 ):

ret, frame = cap.read ()

 

fgmask = fgbg.   apply (frame)

 

cv2.imshow ( ’fgmask’ , frame)

cv2.imshow ( ’frame’ , fgmask)

  

 

k = cv2.waitKey ( 30 ) & amp;  0xff

if k = = 27 :

break

 

 
cap.release ()
cv2.destroyAllWindows ()

Original video frame:

Background of the subtracted video frame:

Thus, we saw the application of a background subtraction algorithm that detects motion, life in video frames.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

Common xlabel/ylabel for matplotlib subplots

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

12 answers

NUMPYNUMPY

Flake8: Ignore specific warning for entire file

12 answers

NUMPYNUMPY

glob exclude pattern

12 answers

NUMPYNUMPY

How to avoid HTTP error 429 (Too Many Requests) python

12 answers

NUMPYNUMPY

Python CSV error: line contains NULL byte

12 answers

NUMPYNUMPY

csv.Error: iterator should return strings, not bytes

12 answers

News


Wiki

Python | How to copy data from one Excel sheet to another

Common xlabel/ylabel for matplotlib subplots

Check if one list is a subset of another in Python

sin

How to specify multiple return types using type-hints

exp

Printing words vertically in Python

exp

Python Extract words from a given string

Cyclic redundancy check in Python

Finding mean, median, mode in Python without libraries

cos

Python add suffix / add prefix to strings in a list

Why do I get "Pickle - EOFError: Ran out of input" reading an empty file?

Python - Move item to the end of the list

Python - Print list vertically