В этом примере показано, как можно использовать imregister автоматически выравнивать два изображения магнитного резонанса (МРТ) по общей системе координат с использованием регистрации изображения на основе интенсивности. В отличие от некоторых других методик, подход не находит признаков и не использует контрольных точек. Регистрация на основе интенсивности часто хорошо подходит для медицинских и дистанционно воспринимаемых изображений.
В этом примере используются два МРТ-изображения колена. Фиксированное изображение представляет собой спинное эхо-изображение, а движущееся изображение представляет собой спинное эхо-изображение с инверсионным восстановлением. Два сагиттальных фрагмента были получены одновременно, но немного не выровнены.
fixed = dicomread('knee1.dcm'); moving = dicomread('knee2.dcm');
imshowpair функция полезна для визуализации изображений во время каждого этапа процесса регистрации. Используйте его, чтобы увидеть два изображения по отдельности в режиме монтажа или отобразить их в стопке, чтобы показать количество неправильной регистрации.
imshowpair(moving,fixed,'montage') title('Unregistered')

На перекрывающемся изображении из imshowpairсерые области соответствуют областям с одинаковой интенсивностью, в то время как пурпурные и зеленые области показывают места, где одно изображение ярче другого. В некоторых парах изображений зеленые и пурпурные области не всегда указывают на неправильную регистрацию, но в этом примере легко использовать информацию о цвете, чтобы увидеть, где они делают.
imshowpair(moving,fixed)
title('Unregistered')
imregconfig функция упрощает выбор правильной конфигурации оптимизатора и метрики для использования с imregister. Переменные оптимизатора и метрики - это объекты, свойства которых управляют регистрацией. Дополнительные сведения см. в разделе Создание оптимизатора и метрики для регистрации изображений на основе интенсивности.
Эти два изображения имеют разные распределения интенсивности, что предполагает мультимодальную конфигурацию.
[optimizer,metric] = imregconfig('multimodal');Искажение между двумя изображениями включает масштабирование, поворот и, возможно, сдвиг. Используйте аффинное преобразование для регистрации изображений.
movingRegisteredDefault = imregister(moving,fixed,'affine',optimizer,metric);Просмотрите результат. Это очень редко, что imregister обеспечивает полное выравнивание изображений с настройками по умолчанию. Тем не менее, их использование - полезный способ решить, какие свойства настраивать первыми.
imshowpair(movingRegisteredDefault,fixed)
title('A: Default Registration')
Первоначальная регистрация не очень хорошая. По-прежнему существуют значительные области плохого выравнивания, особенно вдоль правого края. Попробуйте улучшить регистрацию, настроив свойства конфигурации оптимизатора и метрики.
disp(optimizer)
registration.optimizer.OnePlusOneEvolutionary
Properties:
GrowthFactor: 1.050000e+00
Epsilon: 1.500000e-06
InitialRadius: 6.250000e-03
MaximumIterations: 100
disp(metric)
registration.metric.MattesMutualInformation
Properties:
NumberOfSpatialSamples: 500
NumberOfHistogramBins: 50
UseAllPixels: 1
InitialRadius свойство оптимизатора управляет начальным размером шага, используемым в пространстве параметров для уточнения геометрического преобразования. Когда проблемы мультимодальной регистрации не сходятся с параметрами по умолчанию, InitialRadius является хорошим первым параметром для корректировки. Начните с уменьшения значения по умолчанию InitialRadius масштабным коэффициентом 3,5.
optimizer.InitialRadius = optimizer.InitialRadius/3.5;
movingRegisteredAdjustedInitialRadius = imregister(moving,fixed,'affine',optimizer,metric);Просмотрите результат. Наладка InitialRadius оказывает положительное влияние. Заметно улучшилось выравнивание изображений по верхнему и правому краям.
imshowpair(movingRegisteredAdjustedInitialRadius,fixed)
title('B: Adjusted InitialRadius')
MaximumIterations свойство оптимизатора управляет максимальным количеством итераций, которые оптимизатору будет разрешено выполнять. Увеличение MaximumIterations позволяет выполнять поиск регистрации дольше и потенциально находить лучшие результаты регистрации. Продолжает ли регистрация улучшаться, если InitialRadius с последнего шага используется с большим количеством итераций?
optimizer.MaximumIterations = 300;
movingRegisteredAdjustedInitialRadius300 = imregister(moving,fixed,'affine',optimizer,metric);Просмотрите результаты. Дальнейшее улучшение регистрации было достигнуто путем повторного использования InitialRadius параметр оптимизатора из предыдущей регистрации и позволяет оптимизатору выполнять большое количество итераций.
imshowpair(movingRegisteredAdjustedInitialRadius300,fixed)
title('C: Adjusted InitialRadius, MaximumIterations = 300')
Регистрация на основе оптимизации лучше всего работает, когда для регистрации, связанной с движущимися и фиксированными изображениями, может быть задано хорошее начальное условие. Полезный метод получения улучшенных результатов регистрации - начать с более простых типов преобразования, таких как 'rigid', а затем использовать результирующее преобразование в качестве начального условия для более сложных типов преобразования, таких как 'affine'.
Функция imregtform использует тот же алгоритм, что и imregister, но возвращает объект геометрического преобразования в качестве выходного вместо зарегистрированного выходного изображения. Использовать imregtform получить начальную оценку преобразования на основе 'similarity' модель (перемещение, поворот и масштаб).
Предыдущие результаты регистрации показали улучшение после изменения MaximumIterations и InitialRadius свойств оптимизатора. Сохранить эти параметры оптимизатора при использовании начальных условий при попытке дальнейшего уточнения регистрации.
tformSimilarity = imregtform(moving,fixed,'similarity',optimizer,metric);Поскольку регистрация решается в системе координат по умолчанию, также известной как внутренняя система координат, получите объект пространственной привязки по умолчанию, который определяет местоположение и разрешение фиксированного изображения.
Rfixed = imref2d(size(fixed));
Использовать imwarp для применения выходных данных геометрического преобразования imregtform к движущемуся изображению, чтобы выровнять его по фиксированному изображению. Используйте 'OutputView' опция в imwarp для задания мировых пределов и разрешения выходного повторно дискретизированного изображения. Определение Rfixed в качестве 'OutputView' заставляет повторно дискретизированное движущееся изображение иметь такое же разрешение и мировые пределы, что и фиксированное изображение.
movingRegisteredRigid = imwarp(moving,tformSimilarity,'OutputView',Rfixed);Просмотрите результат.
imshowpair(movingRegisteredRigid, fixed)
title('D: Registration Based on Similarity Transformation Model')
'T' свойство выходного геометрического преобразования определяет матрицу преобразования, которая отображает точки при перемещении в соответствующие точки в фиксированном.
tformSimilarity.T
ans = 3×3
1.0331 -0.1110 0
0.1110 1.0331 0
-51.1491 6.9891 1.0000
Используйте 'InitialTransformation' Имя/значение в imregister для уточнения этой регистрации с помощью 'affine' модель преобразования с помощью 'similarity' результаты, используемые в качестве начального условия для геометрического преобразования. Эта уточненная оценка для регистрации включает возможность сдвига.
movingRegisteredAffineWithIC = imregister(moving,fixed,'affine',optimizer,metric,... 'InitialTransformation',tformSimilarity);
Просмотрите результат. Использование 'InitialTransformation' для уточнения 'similarity' результат imregtform с полной аффинной моделью дает хороший результат регистрации.
imshowpair(movingRegisteredAffineWithIC,fixed)
title('E: Registration from Affine Model Based on Similarity Initial Condition')
Сравнение результатов выполнения imregister при различных конфигурациях и исходных условиях становится очевидным, что имеется большое количество входных параметров, которые могут изменяться в регистраторе, каждый из которых может приводить к различным результатам регистрации.
Количественное сравнение результатов регистрации может быть затруднено, поскольку нет одной метрики качества, точно описывающей выравнивание двух изображений. Часто результаты регистрации должны оцениваться качественно путем визуализации результатов. В результатах, приведенных выше, результаты регистрации в C) и E) являются очень хорошими и трудно различимы визуально.
Зачастую по мере улучшения качества мультимодальных регистраций становится все труднее судить о качестве регистрации визуально. Это связано с тем, что различия в интенсивности могут скрывать области рассогласования. Иногда переключение в другой режим отображения для imshowpair раскрывает скрытые детали. (Это не всегда так.)
imref2d | imregconfig | imregister | imwarp | MattesMutualInformation | MeanSquares | OnePlusOneEvolutionary | RegularStepGradientDescent