Main Content


Set initial search window



initializeSearchWindow(hbtracker,R) sets the initial search window region,R. The tracker uses this region as the initial window to search for the object. You can also use this function when the tracker loses track of the object. Use the function to reinitialize an object's initial location and size.


collapse all

Track and display a face in each frame of an input video.

Create System objects for reading and displaying video.

videoReader = VideoReader("vipcolorsegmentation.avi");
videoPlayer = vision.VideoPlayer();

Read the first video frame, which contains the object. Convert the image to HSV color space. Then define and display the object region.

objectFrame = im2single(readFrame(videoReader));
objectHSV = rgb2hsv(objectFrame);
objectRegion = [40, 45, 25, 25];
objectImage = insertShape(objectFrame,"rectangle",objectRegion,Color=[1 0 0]);

title("Red box shows object region")

(Optionally, you can select the object region using your mouse. The object must occupy the majority of the region. Use the following command.)

figure; imshow(objectFrame); objectRegion=round(getPosition(imrect))

Set the object, based on the hue channel of the first video frame.

tracker = vision.HistogramBasedTracker;
initializeObject(tracker, objectHSV(:,:,1) , objectRegion);

Track and display the object in each video frame. The while loop reads each image frame, converts the image to HSV color space, then tracks the object in the hue channel where it is distinct from the background. Finally, the example draws a box around the object and displays the results.

while hasFrame(videoReader)
  frame = im2single(readFrame(videoReader));
  hsv = rgb2hsv(frame);
  bbox = tracker(hsv(:,:,1));
  out = insertShape(frame,"rectangle",bbox,Color=[1 0 0]);

Release the video player.


Input Arguments

collapse all

Histogram based tracker, specified as a vision.HistogramBasedTracker object.

Initial search window, specified in the format [x y width height].

Version History

Introduced in R2012a