видение. HistogramBasedTracker

Основанное на гистограмме объектное отслеживание

Описание

Основанное на гистограмме средство отслеживания включает постоянно адаптивный средний сдвиг (CAMShift) алгоритм для объектного отслеживания. Это использует гистограмму пиксельных значений, чтобы идентифицировать отслеживаемый объект.

Отслеживать объект:

  1. Создайте объект vision.HistogramBasedTracker и установите его свойства.

  2. Вызовите объект с аргументами, как будто это была функция.

Чтобы узнать больше, как Системные объекты работают, смотрите то, Что Системные объекты? MATLAB.

Создание

Синтаксис

hbtracker = vision.HistogramBasedTracker
hbtracker = vision.HistogramBasedTracker(Name,Value)

Описание

пример

hbtracker = vision.HistogramBasedTracker возвращает средство отслеживания, которое отслеживает объект при помощи алгоритма CAMShift. Это использует гистограмму пиксельных значений, чтобы идентифицировать отслеживаемый объект. Чтобы инициализировать процесс отслеживания, необходимо использовать функцию initializeObject, чтобы задать изображение образца объекта.

hbtracker = vision.HistogramBasedTracker(Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Например, hbtracker = vision.HistogramBasedTracker('ObjectHistogram',[])

Свойства

развернуть все

Если в противном случае не обозначено, свойства являются ненастраиваемыми, что означает, что вы не можете изменить их значения после вызова объекта. Объекты блокируют, когда вы вызываете их, и функция release разблокировала их.

Если свойство является настраиваемым, можно изменить его значение в любое время.

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (MATLAB).

Нормированная гистограмма пиксельного значения, заданная как N - вектор элемента. Этот вектор задает нормированную гистограмму пиксельных значений объекта. Значения гистограммы должны быть нормированы к значению между 0 и 1. Можно использовать метод initializeObject, чтобы установить свойство.

Настраиваемый: да

Использование

Для версий ранее, чем R2016b, используйте функцию step, чтобы запустить Систему object™ алгоритм. Аргументы к step являются объектом, который вы создали, сопровождаемый аргументами, показанными в этом разделе.

Например, y = step(obj,x) и y = obj(x) выполняют эквивалентные операции.

Синтаксис

bbox = hbtracker(I)
[bbox,orientation] = hbtracker(I)
[bbox,orientation,score] = hbtracker(I)

Описание

bbox = hbtracker(I) возвращает ограничительную рамку, отслеживаемого объекта. Перед использованием средства отслеживания необходимо идентифицировать объект отследить, и установить начальное окно поиска. Используйте функцию initializeObject, чтобы сделать это.

[bbox,orientation] = hbtracker(I) дополнительно возвращает угол между x - ось и главной осью эллипса, который имеет те же моменты второго порядка как объект. Возвращенный угол между –pi/2 и пи/2.

[bbox,orientation,score] = hbtracker(I) дополнительно возвращает счет уверенности к возвращенной ограничительной рамке, которая содержит отслеживаемый объект.

Входные параметры

развернуть все

Кадр видео, заданный как полутоновый или истинный цвет (RGB).

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

развернуть все

Ограничительная рамка, возвращенная как четырехэлементный вектор в формате, [x y width height].

Ориентация, возвращенная как угол между –pi/2 и пи/2. Угол измеряется от x - ось и главная ось эллипса, который имеет те же моменты второго порядка как объект.

Выиграйте, возвращенный как скаляр в области значений [0 1]. Значение 1 соответствует максимальной уверенности. 1.

Функции объекта

Чтобы использовать объектную функцию, задайте Системный объект как первый входной параметр. Например, чтобы выпустить системные ресурсы Системного объекта под названием obj, используйте этот синтаксис:

release(obj)

развернуть все

initializeObjectУстановите объект отследить
initializeSearchWindowУстановите объект отследить
stepЗапустите алгоритм Системного объекта
releaseВысвободите средства и позвольте изменения в значениях свойств Системного объекта и введите характеристики
resetСбросьте внутренние состояния Системного объекта

Примеры

развернуть все

Отследите и отобразите поверхность в каждом кадре входного видео.

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

videoFileReader = vision.VideoFileReader('vipcolorsegmentation.avi');
videoPlayer = vision.VideoPlayer();
shapeInserter = vision.ShapeInserter('BorderColor','Custom', ...
    'CustomBorderColor',[1 0 0]);

Считайте первый кадр видео, который содержит объект. Преобразуйте изображение в цветовое пространство HSV. Затем задайте и отобразите объектную область.

objectFrame = videoFileReader();
objectHSV = rgb2hsv(objectFrame);
objectRegion = [40, 45, 25, 25];
objectImage = shapeInserter(objectFrame, objectRegion);

figure
imshow(objectImage)
title('Red box shows object region')

(Опционально, можно выбрать объектную область с помощью мыши. Объект должен занять большинство области. Используйте следующую команду.)

фигура; imshow (objectFrame); objectRegion=round (getPosition (imrect))

Установите объект, на основе канала оттенка первого кадра видео.

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

Отследите и отобразите объект в каждом кадре видео. Цикл с условием продолжения читает каждый фрейм изображения, преобразовывает изображение в цветовое пространство HSV, затем отслеживает объект в канале оттенка, где это отлично от фона. Наконец, пример чертит поле вокруг объекта и отображает результаты.

while ~isDone(videoFileReader)
  frame = videoFileReader();
  hsv = rgb2hsv(frame);
  bbox = tracker(hsv(:,:,1));

  out = shapeInserter(frame,bbox);
  videoPlayer(out);
end

Выпустите видео читателя и проигрыватель.

release(videoPlayer);
release(videoFileReader);

Расширенные возможности

Смотрите также

| |

Представленный в R2012a