imregcorr

Оцените геометрическое преобразование, которое выравнивает две 2D корреляции фазы использования изображений

Описание

пример

tform = imregcorr(moving,fixed) оценивает геометрическое преобразование, которое выравнивает изображение, moving, со ссылочным изображением, fixed. Функция возвращает объект геометрического преобразования, tform, это сопоставляет пиксели в moving к пикселям в fixed.

tform = imregcorr(moving,Rmoving,fixed,Rfixed) оценивает геометрическое преобразование, которое выравнивает изображение, moving, со ссылочным изображением, fixed. Rmoving и Rfixed пространственные объекты привязки, которые содержат пространственную информацию о moving и fixed изображения, соответственно. Возвращенный объект преобразования, tform, задает отображение точки в системе мировой координаты.

tform = imregcorr(___,transformType) также задает тип преобразования, transformType.

tform = imregcorr(___,'Window',window) также задает, выполнить ли работу с окнами в частотном диапазоне. Чтобы увеличить устойчивость регистрационных результатов, задайте window как true. Однако, если типичные функции в ваших изображениях ориентированы вдоль ребер, то установка window к false может иногда обеспечивать превосходящие регистрационные результаты.

[tform,peakcorr] = imregcorr(___) также возвращает пиковую корреляцию, peakcorr, из разности фаз между двумя изображениями.

Примеры

свернуть все

Считайте ссылочное изображение в рабочую область.

fixed  = imread('cameraman.tif');

Создайте синтетическое движущееся изображение путем масштабирования и вращения фиксированного изображения.

theta = 20;
S = 2.3;
tform = affine2d([S.*cosd(theta) -S.*sind(theta) 0; ...
                  S.*sind(theta)  S.*cosd(theta) 0; ...
                  0 0 1]);
moving = imwarp(fixed,tform);
moving = moving + uint8(10*rand(size(moving)));

Отобразите фиксированное и движущееся изображение друг вместе с другом.

imshowpair(fixed,moving,'montage')

Figure contains an axes. The axes contains an object of type image.

Оцените, что преобразование должно было выровнять изображения с помощью imregcorr.

tformEstimate = imregcorr(moving,fixed);

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

Rfixed = imref2d(size(fixed));
movingReg = imwarp(moving,tformEstimate,'OutputView',Rfixed);

Просмотрите оригинальное изображение и зарегистрированное изображение рядом друг с другом, чтобы проверять регистрацию. Затем просмотрите зарегистрированное изображение, наложенное на исходном использовании 'falsecolor' опция, чтобы подсветить любые области, где изображения отличаются.

imshowpair(fixed,movingReg,'montage')

Figure contains an axes. The axes contains an object of type image.

imshowpair(fixed,movingReg,'falsecolor');

Figure contains an axes. The axes contains an object of type image.

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

свернуть все

Отобразите, чтобы быть указанными в виде шкалы полутонов, двоичного файла или изображения RGB. Если вы задаете изображение RGB, imregcorr преобразует его в полутоновое изображение с помощью rgb2gray перед обработкой.

Примечание

Соотношение сторон moving влияет на выход, преобразовывают tform. Для лучших результатов используйте квадратное изображение.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Ссылочное изображение в целевой ориентации в виде шкалы полутонов, двоичного файла или изображения RGB. Если вы задаете изображение RGB, imregcorr преобразует его в использование полутонового изображения rgb2gray перед обработкой.

Примечание

Соотношение сторон fixed влияет на выход, преобразовывают tform. Для лучших результатов используйте квадратное изображение.

Типы данных: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical

Тип преобразования, чтобы оценить в виде одного из следующих значений.

ЗначениеОписание
'translation'Перевод
'rigid'Перевод и вращение
'similarity'

Перевод, вращение и масштабирование

При использовании 'similarity' опция, алгоритм корреляции фазы только инвариантен к масштабу в некоторой области значений различия в шкале между фиксированными и движущимися изображениями. imregcorr ограничивает пространство поиска, чтобы масштабировать различия в области значений [1/4, 4]. imregcorr не обнаруживает различия в шкале меньше, чем 1/4 или больше, чем 4.

Типы данных: char | string

Пространственная информация о ссылке, сопоставленная с изображением, которое будет указано в виде imref2d объект.

Пространственная информация о ссылке сопоставлена со ссылкой (зафиксированное) изображение в виде imref2d объект.

Используйте работу с окнами, чтобы подавить спектральные эффекты утечки в частотном диапазоне в виде числового или логического 1 TRUE) или 0 ложь). Когда true, imregcorr функция выполняет работу с окнами с помощью фильтра Блэкмена.

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

свернуть все

Геометрическое преобразование, возвращенное как affine2d объект.

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

Советы

  • Если ваше изображение имеет тип double, можно достигнуть повышений производительности путем кастинга изображения к single с im2single перед регистрацией. Введите изображения типа double заставьте алгоритм вычислять БПФ в double.

Ссылки

[1] Reddy, B. S. и Chatterji, B. N. основанный на БПФ метод для перевода, вращения, и инвариантной к масштабу регистрации изображений, транзакций IEEE на обработке изображений, издании 5, № 8, август 1996

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

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

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

Приложения

Функции

Введенный в R2014a