def GMG(cap): 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()
def test_414(self): #41.4BackgroundSubtractorGMG # 此算法结合了静态背景图像估计和每个像素的贝叶斯分割 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() print("")
def bg_separation(frames, t): if (FLAGS.bgs == "MOG"): separator = cv2.createBackgroundSubtractorMOG() elif (FLAGS.bgs == "MOG2"): separator = cv2.createBackgroundSubtractorMOG2() elif (FLAGS.bgs == "GMG"): separator = cv2.createBackgroundSubtractorGMG() kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) else: print FLAGS.bgs, "method not supported" sys.exit(0) n, h, w, _ = frames.shape output_frames = np.zeros((n, h, w), dtype=np.uint8) for i in range(n): output_frames[i] = separator.apply(frames[i]) return output_frames
def setupof(U: dict, P): xpix = U['xpix'] ypix = U['ypix'] gmm = None lastflow = None #if it stays None, signals to use GMM if U['ofmethod'] == 'hs': pass elif U['ofmethod'] == 'farneback': lastflow = np.zeros((ypix, xpix, 2)) # %% GMM elif U['ofmethod'] == 'mog': # http://docs.opencv.org/3.2.0/d7/d7b/classcv_1_1BackgroundSubtractorMOG2.html gmm = cv2.createBackgroundSubtractorMOG2( history=P.getint('gmm', 'nhistory'), varThreshold=P.getfloat('gmm', 'varThreshold'), detectShadows=False) gmm.setNMixtures(P.getint('gmm', 'nmixtures')) gmm.setComplexityReductionThreshold(P.getfloat('gmm', 'CompResThres')) elif U['ofmethod'] == 'knn': gmm = cv2.createBackgroundSubtractorKNN(history=P.getint( 'gmm', 'nhistory'), detectShadows=True) elif U['ofmethod'] == 'gmg': try: gmm = cv2.createBackgroundSubtractorGMG( initializationFrames=P.getint('gmm', 'nhistory')) except AttributeError as e: raise ImportError( f'GMG is for OpenCV3, part of opencv_contrib. {e}') else: raise TypeError(f'unknown method {U["ofmethod"]}') return lastflow, gmm
def background_subtractor(video_link, method="MOG"): cap = cv2.VideoCapture(video_link) if method == "MOG": fgbg = cv2.createBackgroundSubtractorMOG() elif method == "MOG2": fgbg = cv2.createBackgroundSubtractorMOG2() elif method == "GMG": kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) fgbg = cv2.createBackgroundSubtractorGMG() while (1): ret, frame = cap.read() fgmask = fgbg.apply(frame) if method == "GMG": fgmask = cv2.morphologyEx(fgmask, cv2.MORPH_OPEN, kernel) cv2.imshow('frame', fgmask) print(fgmask) k = cv2.waitKey(30) & 0xff if k == 27: break cap.release() cv2.destroyAllWindows()
# -*- coding: utf-8 -*- import numpy as np import cv2 cap = cv2.VideoCapture('../assets/test.avi') kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(3,3)) # 沒有這個 attribute 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()
def __init__(self): self.bgsubstractor = cv2.createBackgroundSubtractorGMG()
import numpy as np import cv2 cap = cv2.VideoCapture(0) fgbg = cv2.createBackgroundSubtractorGMG() 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()
pt4 = [w, line_up] pts_L2 = np.array([pt3, pt4], np.int32) pts_L2 = pts_L2.reshape((-1, 1, 2)) pt5 = [0, up_limit] pt6 = [w, up_limit] pts_L3 = np.array([pt5, pt6], np.int32) pts_L3 = pts_L3.reshape((-1, 1, 2)) pt7 = [0, down_limit] pt8 = [w, down_limit] pts_L4 = np.array([pt7, pt8], np.int32) pts_L4 = pts_L4.reshape((-1, 1, 2)) #fgbg = cv2.createBackgroundSubtractorMOG2(detectShadows = False) #Create the background substractor kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) fgbg = cv2.createBackgroundSubtractorGMG() #Create the background substractor kernelOp = np.ones((3, 3), np.uint8) kernelCl = np.ones((11, 11), np.uint8) #Variables font = cv2.FONT_HERSHEY_SIMPLEX persons = [] max_p_age = 5 pid = 1 # Start the frame count frame_count = 0 while True: _, frame = cap.read() #read a frame