Initialize video frame and points to track
initializes points to track and sets the initial video frame. The function sets the
points array of [x y] coordinates
with the points to track, and sets the initial video frame,
If you want to use the point tracker as a persistent variable, you must call
initialize only during creation. If you call
initialize in a loop, the previous state is lost and therefore,
the tracker cannot maintain tracking.
Track a Face in Scene
Create System objects for reading and displaying video and for drawing a bounding box of the object.
videoReader = VideoReader('visionface.avi'); videoPlayer = vision.VideoPlayer('Position',[100,100,680,520]);
Read the first video frame, which contains the object, define the region.
objectFrame = readFrame(videoReader); objectRegion = [264,122,93,93];
As an alternative, you can use the following commands to select the object region using a mouse. The object must occupy the majority of the region:
Show initial frame with a red bounding box.
objectImage = insertShape(objectFrame,'Rectangle',objectRegion,'Color','red'); figure; imshow(objectImage); title('Red box shows object region');
Detect interest points in the object region.
points = detectMinEigenFeatures(im2gray(objectFrame),'ROI',objectRegion);
Display the detected points.
pointImage = insertMarker(objectFrame,points.Location,'+','Color','white'); figure; imshow(pointImage); title('Detected interest points');
Create a tracker object.
tracker = vision.PointTracker('MaxBidirectionalError',1);
Initialize the tracker.
Read, track, display points, and results in each video frame.
while hasFrame(videoReader) frame = readFrame(videoReader); [points,validity] = tracker(frame); out = insertMarker(frame,points(validity, :),'+'); videoPlayer(out); end
Release the video player.
pointTracker — Point tracker
Point tracker, specified as a
points — Points
Points, specified as an M-by-2 array of [x y]
coordinates that correspond to the locations of the points in the input
I — Video frame
grayscale | truecolor (RGB)
Video frame, specified as grayscale or truecolor (RGB) and must be the same size as the images read into the tracker.