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

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

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

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

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

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

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

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

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

Шаг 2: Настройте Первичную регистрацию

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

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

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

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

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

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

Шаг 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);

imshowpair(movingRegisteredAdjustedInitialRadius,fixed)
title('B: Adjusted InitialRadius')

Корректировка InitialRadius оказанный позитивное влияние. Существует значимое улучшение выравнивания изображений на верхних и правых краях.

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

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

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

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

Для получения дополнительной информации о многомодальном оптимизаторе и метрических параметрах, которые могут быть настроены, смотрите страницы с описанием для OnePlusOneEvolutionary оптимизатор и MattesMutualInformation метрика.

Шаг 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')

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

imshowpair(movingRegisteredAffineWithIC,fixed)
title('E: Registration from Affine Model Based on Similarity Initial Condition')

Используя 'InitialTransformation' совершенствовать 'similarity' результат imregtform с полной аффинной моделью также дал к хорошему регистрационному результату.

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

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

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

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

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

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

| | | | | | |