42 lines
1.3 KiB
Python
42 lines
1.3 KiB
Python
|
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()
|