vision.BlockMatcher

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

Описание

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

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

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

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

Создание

Описание

пример

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

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

Свойства

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

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

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

Для получения дополнительной информации об изменении значений свойств смотрите Разработку системы в MATLAB Используя Системные объекты (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 объект. Это свойство применяется только, когда вы устанавливаете AccumulatorDataType свойство к 'Custom'.

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

Слово аккумулятора и дробные длины, заданные как масштабированный numerictype объект. Это свойство применяется только, когда вы устанавливаете 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(rgb2gray(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

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