Укажите многомодальные изображения MRI

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

Шаг 1: загрузите изображения

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

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

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: Настройте Первичную регистрацию

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

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.

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.

'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 отсоединяет скрытые детали. (Это не всегда имеет место.)

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

| | | | | | |