You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.3 KiB
41 lines
1.3 KiB
import numpy as np |
|
import cv2 as cv |
|
import argparse |
|
import os |
|
|
|
|
|
def main(): |
|
argparser = argparse.ArgumentParser(description='Vizualization of the LSBP/GSOC background subtraction algorithm.') |
|
|
|
argparser.add_argument('-g', '--gt', help='Directory with ground-truth frames', required=True) |
|
argparser.add_argument('-f', '--frames', help='Directory with input frames', required=True) |
|
argparser.add_argument('-l', '--lsbp', help='Display LSBP instead of GSOC', default=False) |
|
args = argparser.parse_args() |
|
|
|
gt = map(lambda x: os.path.join(args.gt, x), os.listdir(args.gt)) |
|
gt.sort() |
|
f = map(lambda x: os.path.join(args.frames, x), os.listdir(args.frames)) |
|
f.sort() |
|
|
|
gt = np.uint8(map(lambda x: cv.imread(x, cv.IMREAD_GRAYSCALE), gt)) |
|
f = np.uint8(map(lambda x: cv.imread(x, cv.IMREAD_COLOR), f)) |
|
|
|
if not args.lsbp: |
|
bgs = cv.bgsegm.createBackgroundSubtractorGSOC() |
|
else: |
|
bgs = cv.bgsegm.createBackgroundSubtractorLSBP() |
|
|
|
for i in xrange(f.shape[0]): |
|
cv.imshow('Frame', f[i]) |
|
cv.imshow('Ground-truth', gt[i]) |
|
mask = bgs.apply(f[i]) |
|
bg = bgs.getBackgroundImage() |
|
cv.imshow('BG', bg) |
|
cv.imshow('Output mask', mask) |
|
k = cv.waitKey(0) |
|
if k == 27: |
|
break |
|
|
|
|
|
if __name__ == '__main__': |
|
main()
|
|
|