imregcorr

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

Описание

пример

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 (false). Когда true, imregcorr функция выполняет оконную обработку с помощью фильтра Блэкмана.

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

свернуть все

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

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

Совет

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

Ссылки

[1] Reddy, B. S. and Chatterji, B. N., An FFT- Метода для перевода, ротации и регистрации инвариантных Изображений шкал, транзакции IEEE по обработке Изображение, том 5, № 8, август 1996

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

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

.

См. также

Приложения

Функции

Введенный в R2014a