exponenta event banner

инициализировать

Инициализация видеокадра и точек для отслеживания

Описание

пример

initialize(pointTracker,points,I) инициализирует точки для отслеживания и устанавливает начальный видеокадр. Функция устанавливает M-by-2 points массив координат [x y] с точками для отслеживания и устанавливает начальный видеокадр, I.

При необходимости использования точечного трекера в качестве постоянной переменной необходимо вызвать initialize только во время создания. При звонке initialize в цикле предыдущее состояние теряется и, следовательно, трекер не может поддерживать отслеживание.

Примеры

свернуть все

Создание системных объектов для чтения и отображения видео, а также для рисования ограничивающей рамки объекта.

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);

Входные аргументы

свернуть все

Трассировщик точек, указанный как vision.PointTracker объект.

Точки, указанные как M-by-2 массив координат [x y], которые соответствуют местоположениям точек во входном кадре, I.

Видеокадр, указанный в градациях серого или цветного цвета (RGB) и должен быть того же размера, что и изображения, считанные в трекер.

Представлен в R2012b