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