vision.BlockMatcher

Оцените движение между изображениями или видеокадрами

Описание

Оценить движение между изображениями или видеокадрами.

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

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

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

Создание

Описание

пример

blkMatcher = vision.BlockMatcher возвращает объект, blkMatcher, это оценивает движение между двумя изображениями или двумя видеокадрами. Объект выполняет эту оценку с помощью метода сопоставления блока путем перемещения блока пикселей по поисковой области.

blkMatcher = vision.BlockMatcher(Name,Value) свойства наборов с помощью одной или нескольких пар "имя-значение". Заключите каждое имя свойства в кавычки. Например, blkMatcher = vision.BlockMatcher('ReferenceFrameSource','Input port')

Свойства

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

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

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

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

Источник системы координат в виде 'Input port' или 'Property'. Когда вы устанавливаете ReferenceFrameSource свойство к 'Input port', вход системы координат должен быть задан к step метод блока matcher объект.

Количество систем координат между ссылкой и текущих систем координат в виде скалярного целого числа, больше, чем или равный нулю. Это свойство применяется, когда вы устанавливаете ReferenceFrameSource свойство к 'Property'.

Метод поиска по наилучшему совпадению в виде 'Exhaustive' или 'Three-step'. Задайте, как определить местоположение блока пикселей в системе координат k +1 что лучшие соответствия блок пикселей в системе координат k. Если вы устанавливаете это свойство на 'Exhaustive', блок matcher объект выбирает местоположение блока пикселей в системе координат k +1. Блок matcher делает так путем перемещения блока через поисковую область один пиксель за один раз, который является в вычислительном отношении дорогим.

Если вы устанавливаете это свойство на 'Three-step', блок matcher поиски объектов блока пикселей в системе координат k +1, что лучшие соответствия блок пикселей в системе координат k с помощью постоянно уменьшающегося размера шага. Объект начинается с размера шага, приблизительно равняются половине максимальной поисковой области значений. На каждом шаге объект сравнивает центральную точку поисковой области к восьми поисковым точкам, расположенным на контурах области, и перемещает центральную точку к поисковой точке, значения которой является самым близким к той из центральной точки. Объект затем уменьшает размер шага наполовину и начинает процесс снова. Эта опция является менее в вычислительном отношении дорогой, хотя иногда она не находит оптимальное решение.

Размер блока, заданного в пикселях как двухэлементный вектор.

Максимальный поиск смещения в виде двухэлементного вектора. Задайте максимальное количество пикселей, которые любой центральный пиксель в блоке пикселей может переместить от изображения до изображения или от системы координат до системы координат. Блок matcher объект использует это свойство определить размер поисковой области.

Совпадайте с критериями между блоками в виде 'Mean square error (MSE)' или 'Mean absolute difference (MAD').

Движение выходная форма в виде 'Magnitude-squared' или 'Horizontal and vertical components in complex form'.

Введите перекрытие подразделения изображений, заданное в пикселях как двухэлементный вектор.

Свойства фиксированной точки

Округление метода для операций фиксированной точки в виде 'Floor', 'Ceiling', 'Convergent'самый близкий вокруг , 'Simplest' , или 'Zero'.

Действие, чтобы взять, когда целочисленный вход из области значений в виде 'Wrap' или 'Saturate'.

Тип данных продукта в виде 'Same as input' или 'Custom'.

Слово продукта и дробные длины в виде масштабированного numerictype Объект (Fixed-Point Designer). Это свойство применяется только, когда вы устанавливаете AccumulatorDataType свойство к 'Custom'.

Тип данных аккумулятора в виде 'Same as product', 'Same as input', или 'Custom'.

Слово аккумулятора и дробные длины в виде масштабированного numerictype Объект (Fixed-Point Designer). Это свойство применяется только, когда вы устанавливаете AccumulatorDataType свойство к 'Custom'.

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

Описание

пример

V = blkMatcher(I) вычисляет движение входного изображения I от одного видеокадра до другого, и возвращает V как матрица величин скорости.

C = blkMatcher(I) вычисляет движение входного изображения I от одного видеокадра до другого, и возвращает C как комплексная матрица горизонтальных и вертикальных составляющих, когда вы устанавливаете OutputValue свойство к Horizontal and vertical components in complex form.

Y = blkMatcher(I,iref) вычисляет движение между входным изображением I и ссылка отображает iref когда вы устанавливаете ReferenceFrameSource свойство к Input port.

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

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

Входные данные в виде скаляра, вектора или матрицы значений интенсивности.

Введите справочные данные в виде скаляра, вектора или матрицы значений интенсивности.

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

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

Величины скорости, возвращенные как матрица.

Горизонтальные и вертикальные составляющие, возвращенные как комплексная матрица.

Движение между изображением и ссылочным изображением, возвращенным как матрица.

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

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

release(obj)

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

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

Примеры

свернуть все

Считайте и преобразуйте изображение RGB в шкалу полутонов.

img1 = im2double(im2gray(imread('onion.png')));

Создайте блок matcher и альфа-объект блендера.

hbm = vision.BlockMatcher('ReferenceFrameSource',...
        'Input port','BlockSize',[35 35]);
hbm.OutputValue = 'Horizontal and vertical components in complex form';
halphablend = vision.AlphaBlender;

Возместите первое изображение [5 5] пиксели, чтобы создать второе изображение.

img2 = imtranslate(img1,[5,5]);

Вычислите движение для двух изображений.

motion = hbm(img1,img2);

Смешайте два изображения.

img12 = halphablend(img2,img1);

Используйте график полей градиента показать направление движения на изображениях.

[X,Y] = meshgrid(1:35:size(img1,2),1:35:size(img1,1));         
imshow(img12)
hold on
quiver(X(:),Y(:),real(motion(:)),imag(motion(:)),0)
hold off

Figure contains an axes. The axes contains 2 objects of type image, quiver.

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