Exemplo n.º 1
0
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()
Exemplo n.º 2
0
 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
Exemplo n.º 4
0
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()
Exemplo n.º 7
0
 def __init__(self):
     self.bgsubstractor = cv2.createBackgroundSubtractorGMG()
Exemplo n.º 8
0
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()
Exemplo n.º 9
0
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