Регистрация мультимодальных изображений МРТ

В этом примере показано, как вы можете использовать imregister автоматическое выравнивание двух магнитно-резонансных (МРТ) изображений к общей системе координат с помощью регистрации изображений на основе интенсивности. В отличие от некоторых других методов, подход не находит функций или не использует контрольные точки. Регистрация на основе интенсивности часто хорошо подходит для медицинских и дистанционно измеренных изображений.

Шаг 1: Загрузка изображений

Этот пример использует два изображений МРТ колена. Фиксированное изображение является спин-эхо-изображением, в то время как движущееся изображение является спин-эхо-изображением с восстановлением инверсии. Два сагиттальных среза были получены одновременно, но немного не совпадают.

fixed = dicomread('knee1.dcm');
moving = dicomread('knee2.dcm');

The imshowpair функция полезна для визуализации изображений во время каждой части процесса регистрации. Используйте его, чтобы увидеть два изображения по отдельности в режиме монтажа или отобразить их в стопке, чтобы показать количество неправильного регистрации.

imshowpair(moving,fixed,'montage')
title('Unregistered')

Figure contains an axes. The axes with title Unregistered contains an object of type image.

На перекрывающемся изображении из imshowpairсерые области соответствуют областям, которые имеют сходную интенсивность, в то время как пурпурные и зеленые зоны показывают места, где одно изображение ярче другого. В некоторых парах изображений зеленые и пурпурные области не всегда указывают на неправильную регистрацию, но в этом примере легко использовать информацию о цвете, чтобы увидеть, где они делают.

imshowpair(moving,fixed)
title('Unregistered')

Figure contains an axes. The axes with title Unregistered contains an object of type image.

Шаг 2: Настройка начальной регистрации

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

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

[optimizer,metric] = imregconfig('multimodal');

Искажение между этими двумя изображениями включает масштабирование, вращение и, возможно, сдвиг. Используйте аффинное преобразование для регистрации изображений.

movingRegisteredDefault = imregister(moving,fixed,'affine',optimizer,metric);

Отобразите результат. Очень редко, что imregister идеально выравнивает изображения с настройками по умолчанию. Тем не менее, использование их является полезным способом решить, какие свойства настраивать в первую очередь.

imshowpair(movingRegisteredDefault,fixed)
title('A: Default Registration')

Figure contains an axes. The axes with title A: Default Registration contains an object of type image.

Шаг 3: Улучшите регистрацию

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

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

The 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')

Figure contains an axes. The axes with title B: Adjusted InitialRadius contains an object of type image.

The MaximumIterations свойство оптимизатора управляет максимальным количеством итераций, которые оптимизатору позволят взять. Увеличение MaximumIterations позволяет выполнять поиск регистрации дольше и потенциально находить лучшие результаты регистрации. Продолжает ли регистрация улучшаться, если InitialRadius с последнего шага используется с большим количеством итераций?

optimizer.MaximumIterations = 300;
movingRegisteredAdjustedInitialRadius300 = imregister(moving,fixed,'affine',optimizer,metric);

Отображение результатов. Дальнейшее улучшение регистрации было достигнуто путем переиспользования InitialRadius настройка оптимизатора от предыдущей регистрации и разрешение оптимизатору принимать большое количество итераций.

imshowpair(movingRegisteredAdjustedInitialRadius300,fixed)
title('C: Adjusted InitialRadius, MaximumIterations = 300')

Figure contains an axes. The axes with title C: Adjusted InitialRadius, MaximumIterations = 300 contains an object of type image.

Шаг 4: Используйте начальные условия для улучшения регистрации

Регистрация на основе оптимизации работает лучше всего, когда хорошее начальное условие может быть дано для регистрации, которая связывает движущиеся и фиксированные изображения. Полезным методом для получения улучшенных результатов регистрации является начало с более простых типов преобразований, таких как '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')

Figure contains an axes. The axes with title D: Registration Based on Similarity Transformation Model contains an object of type image.

The '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')

Figure contains an axes. The axes with title E: Registration from Affine Model Based on Similarity Initial Condition contains an object of type image.

Шаг 5: Решение, Когда Хватит

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

Может быть трудно количественно сравнить результаты регистрации, потому что нет одной метрики качества, которая точно описывает выравнивание двух изображений. Часто результаты регистрации должны быть оценены качественно путем визуализации результатов. В вышеприведенных результатах результаты регистрации C) и E) являются очень хорошими и трудно различить визуально.

Шаг 6: Альтернативные визуализации

Зачастую по мере улучшения качества мультимодальных регистраций становится сложнее судить о качестве регистрации визуально. Это связано с тем, что различия интенсивности могут затенять области расхождения. Иногда переключение в другой режим отображения для imshowpair раскрывает скрытые детали. (Это не всегда так.)

См. также

| | | | | | |