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.
Create System objects for reading and displaying video and for drawing a bounding box of the object.
videoFileReader = vision.VideoFileReader('visionface.avi'); videoPlayer = vision.VideoPlayer('Position',[100,100,680,520]);
Read the first video frame, which contains the object, define the region.
objectFrame = videoFileReader(); 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(rgb2gray(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 ~isDone(videoFileReader) frame = videoFileReader(); [points,validity] = tracker(frame); out = insertMarker(frame,points(validity, :),'+'); videoPlayer(out); end
Release the video reader and player.
pointTracker— Point tracker
Point tracker, specified as a
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
Video frame, specified as grayscale or truecolor (RGB) and must be the same size as the images read into the tracker.