Setting up the app
In order to run our app, we will need to execute a main function routine that reads a frame of a video stream, generates a saliency map, extracts the location of the proto-objects, and tracks these locations from one frame to the next.
The main function routine
The main process flow is handled by the main function in chapter5.py
, which instantiates the two classes (Saliency
and MultipleObjectTracker
) and opens a video file showing the number of soccer players on the field:
import cv2 import numpy as np from os import path from saliency import Saliency from tracking import MultipleObjectsTracker def main(video_file='soccer.avi', roi=((140, 100), (500, 600))): if path.isfile(video_file): video = cv2.VideoCapture(video_file) else: print 'File "' + video_file + '" does not exist.' raise SystemExit # initialize tracker mot = MultipleObjectsTracker()
The function will then read the video frame by frame, extract some meaningful region of...