Создание системных объектов для чтения и отображения видео, а также для рисования ограничивающей рамки объекта.
videoReader = VideoReader('visionface.avi'); videoPlayer = vision.VideoPlayer('Position',[100,100,680,520]);
Прочтите первый видеокадр, содержащий объект, определите область.
objectFrame = readFrame(videoReader); objectRegion = [264,122,93,93];
В качестве альтернативы можно использовать следующие команды для выбора области объекта с помощью мыши. Объект должен занимать большинство территории региона:
рисунок; imshow (objectFrame);
objectRegion = скругление (getPosition (imrect))
Показать начальный кадр с красной ограничивающей рамкой.
objectImage = insertShape(objectFrame,'Rectangle',objectRegion,'Color','red'); figure; imshow(objectImage); title('Red box shows object region');

Обнаружение процентных точек в области объекта.
points = detectMinEigenFeatures(im2gray(objectFrame),'ROI',objectRegion);
Отображение обнаруженных точек.
pointImage = insertMarker(objectFrame,points.Location,'+','Color','white'); figure; imshow(pointImage); title('Detected interest points');

Создание объекта трекера.
tracker = vision.PointTracker('MaxBidirectionalError',1);
Инициализируйте трекер.
initialize(tracker,points.Location,objectFrame);
Считывание, отслеживание, отображение точек и результатов в каждом видеокадре.
while hasFrame(videoReader) frame = readFrame(videoReader); [points,validity] = tracker(frame); out = insertMarker(frame,points(validity, :),'+'); videoPlayer(out); end

Отпустите видеоплеер.
release(videoPlayer);
