imregdemons

Оцените поле переноса, которое выравнивает два 2-D или 3-D изображения

Описание

пример

[D,moving_reg] = imregdemons(moving,fixed) оценивает поле смещения D который выравнивает изображение, которое должно быть зарегистрировано, moving, с ссылкой изображением, fixed. Векторы смещения в каждом пиксельном местоположении отображают местоположения из fixed сетка изображений в соответствующее место в moving изображение. moving_reg является деформированной версией moving изображение, которое деформируется в соответствии с полем перемещения D и повторная дискретизация с использованием линейной интерполяции.

[D,moving_reg] = imregdemons(moving,fixed,N) задает количество итераций, которые будут вычисляться. Эта функция не использует критерий сходимости и, следовательно, всегда гарантированно запускается для заданного или заданного по умолчанию количества итераций.

пример

[D,moving_reg] = imregdemons(___,Name,Value) регистрирует движущееся изображение с помощью пар "имя-значение", чтобы контролировать аспекты расчета веса.

Примеры

свернуть все

Этот пример показывает, как решить проблему регистрации, в которой одна и та же рука была сфотографирована в двух разных положениях. Расхождение изображений изменяется локально на всем изображении. Поэтому это является проблемой нежесткой регистрации.

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

fixed  = imread('hands1.jpg');
moving = imread('hands2.jpg');

Преобразуйте изображения в полутоновые для обработки.

fixed  = im2gray(fixed);
moving = im2gray(moving);

Наблюдайте начальное расхождение. Пальцы находятся в разных положениях.

imshowpair(fixed,moving,'montage')

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

Наложите два изображения, чтобы было легко увидеть, где изображения отличаются. Различия выделены зеленым и пурпурным цветом.

imshowpair(fixed,moving)

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

Правильные различия освещенности между moving и fixed изображения с использованием соответствия гистограммы. Это обычный этап предварительной обработки.

moving = imhistmatch(moving,fixed);

Оцените преобразование, необходимое для выравнивания двух изображений.

[~,movingReg] = imregdemons(moving,fixed,[500 400 200],...
    'AccumulatedFieldSmoothing',1.3);

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

imshowpair(fixed,movingReg)

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

imshowpair(fixed,movingReg,'montage')

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

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

свернуть все

Изображение для регистрации, заданное как 2-D или 3-D полутоновое изображение.

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

Эталонное изображение в целевой ориентации, заданное как 2-D или 3-D полутоновое изображение.

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

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

Когда вы задаете вектор, N количество итераций на уровень пирамиды (уровень разрешения). Например, если существует 3 уровня пирамиды, то можно задать вектор [100,50,25], где imregdemons выполняет 100 итераций на самом низком уровне разрешения, 50 итераций на следующем уровне пирамиды и 25 итераций на последнем уровне итерации - уровне с полным разрешением. Поскольку для обработки более низких уровней разрешения требуется меньше времени, выполнение большего количества итераций при низком разрешении и меньшего количества итераций при более высоких разрешениях пирамиды может помочь эффективности.

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

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [D,movingReg] = imregdemons(moving,fixed,[500 400 200],'AccumulatedFieldSmoothing',1.5);

Сглаживание, применяемое при каждой итерации, задается как разделенная разделенными запятой парами, состоящая из 'AccumulatedFieldSmoothing' и числовое значение. Этот параметр контролирует количество диффузионоподобной регуляризации imregdemons. применяет стандартное отклонение Гауссова сглаживания для упорядочивания накопленного поля при каждой итерации. Большие значения приводят к сглаживанию выходных полей перемещения. Меньшие значения приводят к более локализованной деформации в выходном поле перемещения. Значения обычно находятся в области значений [0,5, 3,0]. Когда вы задаете несколько PyramidLevelsстандартное отклонение, используемое при сглаживании Гауссова, остается неизменным на каждом уровне пирамиды.

Типы данных: double

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

Типы данных: double

Отобразите waitbar, чтобы указать прогресс, заданный как разделенная разделенными запятой парами, состоящая из 'DisplayWaitbar' и значение true или false. Когда установлено значение true, imregdemons отображает панель ожидания, указывающую на прогресс в длительных операциях. Чтобы предотвратить imregdemons от отображения официантной панели задайте DisplayWaitbar на false.

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

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

свернуть все

Поле перемещения, заданное как числовой массив. Значения смещения указаны в единицах измерения пикселей.

  • Если fixed является 2-D полутоновым изображением размера m -by- n, тогда массив поля переноса m -by- n -by-2. D(:,:,1) содержит перемещения вдоль оси x и D(:,:,2) содержит перемещения вдоль оси y.

  • Если fixed 3D изображение оттенков серого размера m n p, тогда массив области смещения m n <reservedrangesplaceholder1>-by-3. D(:,:,:,1) содержит перемещения вдоль оси x, D(:,:,:,2) содержит перемещения вдоль оси y. и D(:,:,:,3) содержит перемещения вдоль оси z.

Типы данных: double

Зарегистрированное изображение, возвращенное как 2-D или 3-D полутоновое изображение. Изображение деформируется в соответствии с полем перемещения D и повторная дискретизация с использованием линейной интерполяции.

Совет

  • Чтобы преобразовать изображение с помощью поля переноса D, использование imwarp.

Ссылки

[1] Тирион, Ж.-П. «Совпадение изображений как процесс диффузии: аналогия с демонами Максвелла». Анализ медицинских изображений. Том 2, № 3, 1998, стр. 243-260.

[2] Vercauteren, T., X. Pennec, A. Perchant, N. Ayache, «Diffeomorphic Demons: Effective Non-Parametric Image Registration», Нейроизображение. Том 45, № 1, Дополнение 1, март 2009 года, стр. 61-72.

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

См. также

Приложения

Функции

Введенный в R2014b