محاسبه پس زمینه یکی از مراحل اولیه پیش پردازش در بسیاری از برنامه های مبتنی بر بینایی است. به عنوان مثال مواردی مانند شمارنده بازدید کننده را در نظر بگیرید که در آن یک دوربین استاتیک تعداد بازدیدکنندگانی را که وارد یا خارج از اتاق می شوند یا یک دوربین ترافیک اطلاعاتی را در مورد وسایل نقلیه و غیره استخراج می کند. در همه این موارد ابتدا باید فرد یا وسایل نقلیه را تنها استخراج کنید . از لحاظ فنی، شما باید پیش زمینه حرکت را از پس زمینه استاتیک استخراج کنید.
چندین الگوریتم برای این منظور معرفی شدند. OpenCV سه الگوریتم را اجرا کرده است که بسیار آسان است. ما آنها را توسط فیلم زیر، یک به یک می بینیم.
https://github.com/opencv/opencv/blob/master/samples/data/vtest.avi
import numpy as np
import cv2
cap = cv2.VideoCapture('vtest.avi')
fgbg = cv2.createBackgroundSubtractorMOG()
while(1):
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
cv2.imshow('frame',fgmask)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
import numpy as np
import cv2
cap = cv2.VideoCapture('vtest.avi')
fgbg = cv2.createBackgroundSubtractorMOG2()
while(1):
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
cv2.imshow('frame',fgmask)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
import numpy as np
import cv2
cap = cv2.VideoCapture('vtest.avi')
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3))
fgbg = cv2.createBackgroundSubtractorGMG()
while(1):
ret, frame = cap.read()
fgmask = fgbg.apply(frame)
fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel)
cv2.imshow('frame',fgmask)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
۱-پردازش تصویر با پایتون-OpenCV
۲-آموزش نصب pip در پایتون
۳- کتابخانه های مورد نیاز پردازش تصویر
۴ – خواندن و نمایش فرمت تصویر در پایتون
۵- نمایش تصویرRGB با Matplotlib و تابع تبدیل ()cvtColor در OpenCv
۶-تغییر فضاهای رنگ- opencv
۷-تقسیم و ادغام کانال های تصویری با opencv
۸-بخشبندی تصویر (Image Segmentation)
۹-آستانه گذاری ساده
۱۰- هیستوگرام در پردازش تصویر