exponenta event banner

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

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

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

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

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

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

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

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

См. также

| | | | | | |