Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Шаг 1: Считывание и просмотр магниторезонансных изображений (горизонтальные срезы)




В этом примере используются магниторезонансные данные, которые представлены в MATLAB и используются при описании функций montage и immovie. Считывание магниторезонансных изображений добавляет две переменные в рабочее пространство: D (128x128x1x27, в формате uint8) и полутоновую палитру map (89x3, в формате double).

Переменная D включает 27 горизонтальных срезов магниторезонансных данных сканирования человеческого черепа с размерностью 128x128. Значения элементов D находятся в диапазоне от 0 до 88. Таким образом, палитра обеспечивает генерацию изображения в диапазоне, пригодном для визуального анализа. Размерность данных в D должна быть согласована с функцией immovie. Первых две размерности являются пространственными. Третья размерность представляет собой размерность цвета. Числа третьей размерности указывают на индексы в палитре, например, size(D, 3) и используются для описания RGB-составляющих цвета. Четвертая размерность является временной и только в очень редких случаях используется в качестве пространственной координаты. Приведенные выше пространственные размерности в D используются в функциях imtransform или tformarray для преобразования слайдов горизонтальных срезов в сагиттальные данные. Пространственные размерности D размещены в такой последовательности:

  • Размерность 1: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части)
  • Размерность 2: С левой части головы на правую
  • Размерность 4: От верхней части головы к нижней (inferior и superior).

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

truesizewarning=iptgetpref('TruesizeWarning');iptsetpref('TruesizeWarning', 'off');load mri;figure;immovie(D, map);montage(D, map);title('Horizontal Slices');

Шаг 2: Получение сагиттальных данных на основе горизонтальных срезов с использованием функции imtransform.
Существует возможность создания среднесагиттальных срезов, полученных на основе магниторезонансных данных, взятых из D и преобразованных с учетом анализа разных интервалов среза и пространственной ориентации.

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

M1=D(:, 64,:,:); size(M1)

Также существует возможность просмотра M1 как изображения с размерностью 128x1x1x27. С использованием функции reshape данные M1 можно преобразовать в изображение с размерностью 128x27, с дальнейшим просмотром с помощью imshow.

M2=reshape(M1, [128 27]); size(M2)
figure, imshow(M2, map);
title('Sagittal - Raw Data');

Размерности в M2 следующие:

  • Размерность 1: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части)
  • Размерность 2: От верхней части головы к нижней (inferior и superior).

Качество визуального просмотра можно улучшить, изменив пространственное расположение (ориентацию) изображения и изменив масштаб вдоль одной из осей с коэффициентом 2.5. Для улучшения визуального просмотра также используются аффинные преобразования.

T0=maketform('affine', [0 -2.5; 1 0; 0 0]);

Параметр, который применяется при реализации функции maketform и представляет собой блок 2x2

[ 0 -2.5
1 0 ]

характеризует описанные выше преобразования поворота и масштабирования. После преобразований получим:

  • Размерность 1: От верхней части головы к нижней (inferior и superior).
  • Размерность 2: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части)

Выражение

imtransform(M2, T0, 'cubic')

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

R2=makeresampler({'cubic', 'nearest'}, 'fill');
M3=imtransform(M2, T0, R2);
figure, imshow(M3, map);
title('Sagittal - IMTRANSFORM')

Шаг 3: Получение сагиттальных данных на основе горизонтальных срезов с использованием функции tformarray.
В этом пункте мы получим результаты аналогичные результатам, полученным в пункте 2. Только теперь для преобразования трехмерных данных в двухмерные, а также для других операций будем использовать функцию tformarray. В шаге 2 начальные данные представляют собой трехмерный массив, а результат обработки представлен в виде двумерного массива. При преобразованиях используется функция imtransform, которая создает массив М3, а также промежуточные двумерные массивы M1 и M2.
При использовании аргумента типа TDIMS_A в функции tformarray существует возможность проведения определенных преобразований для исходного массива. В результате этих преобразований получится изображение с такими размерностями:

  • Размерность 1: Сверху вниз (исходная размерность)
  • Размерность 2: От передней до задней части головы (ростральная (rostral) и каудальная (caudal) части, исходная размерность)

Таким образом, получим примерный сагиттальный вид с исходной размерностью 2 при параметре tdims_a=[4 1 2]. Параметр tform можно получить, проводя двухмерные аффинные преобразования, которые заключаются в масштабировании размерности 1 с коэффициентом 2.5 и прибавлении к массиву значения 68.5. Вторая часть преобразований, которые заключаются в получении 64-го сагиттального плана, описывается функцией INVERSE_FCN:

Инверсная функция: ipex003.m
function U=ipex003(X, t) U=[X repmat(t.tdata, [size(X, 1) 1])];

Определение коэффициентов T2 и Tc.

T1=maketform('affine', [-2.5 0; 0 1; 68.5 0]);
T2=maketform('custom', 3, 2, [], @ipex003, 64);
Tc=maketform('composite', T1, T2);

Проведем некоторые преобразования для определения третьей размерности.
R3=makeresampler({'cubic', 'nearest', 'nearest'}, 'fill');
Функция tformarray преобразовывает третью пространственную размерность и массив D трансформируется в двумерные данные. Таким образом, исходное изображение с размерами 66x128 с 27 видов растягивается до 66 в вертикальном направлении.

M4=tformarray(D, Tc, R3, [4 1 2], [1 2], [66 128], [], 0);

Полученный результат идентичен результату, полученному при обработке функцией imtransform.
figure, imshow(M4, map);
title('Sagittal - TFORMARRAY');





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 646 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Есть только один способ избежать критики: ничего не делайте, ничего не говорите и будьте никем. © Аристотель
==> читать все изречения...

4328 - | 4239 -


© 2015-2026 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.