Обратное преобразование радона

Определение обратного преобразования радона

iradon функция инвертирует преобразование Радона и, следовательно, может использоваться для восстановления изображений.

Как описано в Radon Transform, задано изображение I и набор углов theta, radon функция может использоваться, чтобы вычислить преобразование Радона.

R = radon(I,theta);

Функция iradon можно затем вызвать, чтобы восстановить изображение I из данных проекции.

IR = iradon(R,theta);

В приведенном выше примере проекции вычисляются из оригинального изображения I.

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

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

Следующий рисунок иллюстрирует, как параллельная геометрия применяется в рентгеновской абсорбционной томографии. Обратите внимание, что существует равное количество n излучателей и n датчиков. Каждый датчик измеряет излучение, излучаемое его соответствующим эмиттером, и ослабление в излучении дает меру интегрированной плотности, или массы, объекта. Это соответствует интегралу линии, который вычисляется в преобразовании Радона.

Параллельная геометрия, используемая на рисунке, совпадает с геометрией, которая была описана в Radon Transform. f(x,y) обозначает яркость изображения и Rθ(x) - проекция под углом theta.

Параллельные проекции через объект

Другой геометрией, которая обычно используется, является геометрия вентилятора-луча, в которой есть один источник и n датчиков. Для получения дополнительной информации см. Раздел «Проекция вентилятора-балки» Чтобы преобразовать данные проекции параллельного луча в данные проекции вентилятора-луча, используйте para2fan функция.

Улучшение результатов

iradon использует отфильтрованный алгоритм проекции назад, чтобы вычислить обратное преобразование Радона. Этот алгоритм формирует приближение изображения I на основе проекций в столбцах R. Более точный результат может быть получен при помощи большего количества проекций в реконструкции. Количество проекций (длина theta) увеличивает, восстановленное изображение IR более точно аппроксимирует оригинальное изображение I. Векторная theta должен содержать монотонно увеличивающиеся угловые значения с постоянным наклонным углом Dtheta. Когда скаляр Dtheta известно, оно может быть передано в iradon вместо массива theta. Вот пример.

IR = iradon(R,Dtheta);

Отфильтрованный алгоритм проекции назад фильтрует проекции в R а затем восстанавливает изображение с помощью отфильтрованных проекций. В некоторых случаях в проекциях может присутствовать шум. Чтобы удалить шум высокой частоты, приложите окно к фильтру, чтобы ослабить шум. Многие такие оконные фильтры доступны в iradon. Пример вызова iradon ниже применяется окно Хэмминга к фильтру. См. iradon Страница с описанием для получения дополнительной информации. Чтобы получить нефильтрованные данные проекции назад, задайте 'none' для параметра фильтра.

IR = iradon(R,theta,'Hamming');

iradon также позволяет вам задать нормированную частоту, D, над которым фильтр имеет нулевую характеристику. D должен быть скаляром в области значений [0,1]. При помощи этой опции ось частоты переформулируется так, чтобы весь фильтр был сжат, чтобы вписаться в область значений [0,D]. Это может быть полезно в случаях, когда проекции содержат мало высокочастотной информации, но существует высокочастотный шум. В этом случае шум может быть полностью подавлен без ущерба для реконструкции. Следующий вызов для iradon задает нормированное значение частоты 0,85.

IR = iradon(R,theta,0.85);

Восстановление изображения из данных параллельной проекции

Команды ниже иллюстрируют, как восстановить изображение из данных параллельной проекции. Тестовым изображением является фантом головы Shepp-Logan, который можно сгенерировать с помощью phantom функция. Фантомное изображение иллюстрирует многие качества, которые встречаются в реальной томографической визуализации человеческих голов. Яркий эллиптический интерпретатор вдоль экстерьера аналогичен черепу, а множество эллипсов внутри аналогичны функциям мозга.

  1. Создайте фантомное изображение головы Shepp-Logan.

    P = phantom(256);
    imshow(P)

  2. Вычислите преобразование Радона фантомного мозга для трех различных наборов theta значений. R1 имеет 18 проекций, R2 имеет 36 проекций и R3 имеет 90 проекций.

    theta1 = 0:10:170; [R1,xp] = radon(P,theta1);
    theta2 = 0:5:175;  [R2,xp] = radon(P,theta2);
    theta3 = 0:2:178;  [R3,xp] = radon(P,theta3);
  3. Отобразите график одного из преобразований Радона фантома головы Шеппа-Логана. Следующий рисунок показывает R3, преобразование с 90 проекциями.

    figure, imagesc(theta3,xp,R3); colormap(hot); colorbar
    xlabel('\theta'); ylabel('x\prime');

    Радоновое преобразование фантома головы с использованием 90 проекций

    Обратите внимание, как некоторые функции входа изображения появляются в этом изображении преобразования. Первый столбец в преобразовании Радона соответствует проекции на 0 °, которая интегрируется в вертикальном направлении. Самый центральный столбец соответствует проекции на 90º, которая интегрируется в горизонтальном направлении. Проекция на 90с имеет более широкий профиль, чем проекция на 0с из-за большей вертикальной полуоси крайнего эллипса фантома.

  4. Восстановите фантомное изображение головы из данных проекции, созданных на шаге 2, и отобразите результаты.

    I1 = iradon(R1,10);
    I2 = iradon(R2,5);
    I3 = iradon(R3,2);
    imshow(I1)
    figure, imshow(I2)
    figure, imshow(I3)

    Следующий рисунок показывает результаты всех трех реконструкций. Заметьте, как I1 изображения, который был реконструирован только из 18 проекций, является наименее точной реконструкцией. Графическое I2, который был реконструирован из 36 проекций, лучше, но все еще недостаточно ясно, чтобы четко различить небольшие эллипсы в нижнем фрагменте изображения. I3, реконструированный с помощью 90 проекций, наиболее близко напоминает оригинальное изображение. Заметьте, что, когда количество проекций относительно мало (как в I1 и I2), реконструкция может включать некоторые программные продукты из задней проекции.

    Обратные преобразования радона фантома головы Шеппа-Логана

Для просмотра документации необходимо авторизоваться на сайте