iradon

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

Описание

пример

I = iradon(R,theta) восстанавливает изображение I из данных проекции в R захваченный под углами проекции theta.

I = iradon(R,theta,interp,filter,frequency_scaling,output_size) задает параметры для использования в обратном преобразовании Радона. Можно задать любую комбинацию из последних четырех аргументов. iradon использует значения по умолчанию для опускаемых аргументов.

[I,H] = iradon(___) также возвращает частотную характеристику фильтра, H.

Примеры

свернуть все

Создайте изображение фантома. Отобразите изображение.

P = phantom(128); 
imshow(P)
title('Original image')

Figure contains an axes. The axes with title Original image contains an object of type image.

Выполните преобразование Radon изображения.

R = radon(P,0:179);

Выполните фильтрованную обратную проекцию.

I1 = iradon(R,0:179);

Выполните нефильтрованную обратную проекцию.

I2 = iradon(R,0:179,'linear','none');

Отобразите восстановленные изображения.

figure
subplot(1,2,1)
imshow(I1,[])
title('Filtered Backprojection')
subplot(1,2,2)
imshow(I2,[])
title('Unfiltered Backprojection')

Figure contains 2 axes. Axes 1 with title Filtered Backprojection contains an object of type image. Axes 2 with title Unfiltered Backprojection contains an object of type image.

Создайте изображение фантома.

P = phantom(128);

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

R = radon(P,0:179);
r45 = R(:,46);

Выполните обратное преобразование Радона этого единственного вектора проекции. The iradon синтаксис не позволяет вам делать это непосредственно, потому что если theta является скаляром, он рассматривается как шаг. Можно выполнить задачу, передав две копии вектора проекции и затем разделив результат на 2.

I = iradon([r45 r45], [45 45])/2;

Отобразите результат.

imshow(I, [])
title('Backprojection from 45 degrees')

Figure contains an axes. The axes with title Backprojection from 45 degrees contains an object of type image.

Входные параметры

свернуть все

Данные проекции параллельного луча, заданные как одно из следующего.

  • Если theta является скаляром, затем задает R как числовой вектор-столбец, содержащее преобразование Радона для theta степени.

  • Если theta является вектором, затем задается R как матрица 2-D, в которой каждый столбец является преобразованием Радона для одного из углов в theta.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical

Углы проекции (в степенях), заданные как один из следующих.

ЗначениеОписание
числовой векторУглы проекции. Между углами должно быть одинаковый интервал.
числовой скалярИнкрементный угол между проекциями. Проекции приняты под углами m*theta, где m = 0,1,2,..., размер (R,2)-1.
[]Автоматически установите инкрементный угол между проекциями равным 180/size(R,2)

Типы данных: double

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

Значение

Описание

'nearest'

Интерполяция по ближайшему соседу

'linear'

Линейная интерполяция

'spline'

Сплайн интерполяция

'pchip'Кусочно-кубическая интерполяция с сохранением формы
'v5cubic'Кубическая свертка, используемая в MATLAB® 5

Типы данных: char | string

Фильтр для фильтрации частотного диапазона, заданный как одно из следующих значений.

Значение

Описание

'Ram-Lak'

Обрезанный фильтр Ram-Lak или наклонный фильтр. Частотная характеристика этого фильтра | f |. Поскольку этот фильтр чувствителен к шуму в проекциях, один из перечисленных ниже фильтров может быть предпочтительным. Эти фильтры умножают фильтр Ram-Lak на окно, которое снимает акцент на высоких частотах.

'Shepp-Logan'

Умножает фильтр Ram-Lak на sinc функция

'Cosine'

Умножает фильтр Ram-Lak на cosine функция

'Hamming'

Умножает фильтр Ram-Lak на окно Хэмминга

'Hann'

Умножает фильтр Рама-Лака на окно Ханна

'None'Фильтрация отсутствует. iradon возвращает нефильтрованные данные обратной проекции.

Типы данных: char | string

Масштабный коэффициент для перемасштабирования оси частоты, заданный как положительное число в области значений (0, 1]. Если frequency_scaling меньше 1, затем фильтр сжимается, чтобы вписаться в частотную область значений [0,frequency_scaling], в нормированных частотах; все частоты выше frequency_scaling заданы как 0.

Количество строк и столбцов в восстановленном изображении, заданное в виде положительного целого числа. Если output_size не задан, размер определяется из длины проекций согласно:

output_size = 2*floor(size(R,1)/(2*sqrt(2)))

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

Выходные аргументы

свернуть все

Полутоновое изображение, возвращенное как числовая матрица. Если входные данные проекции R является типом данных single, затем I является single; в противном случае I является double.

Типы данных: single | double

Частотная характеристика фильтра, возвращенная как числовой вектор.

Типы данных: double

Алгоритмы

iradon принимает, что центр поворота является центральной точкой проекций, которая определяется как ceil(size(R,1)/2).

iradon использует отфильтрованный алгоритм проекции назад, чтобы выполнить обратное преобразование Радона. Фильтр проектируется непосредственно в частотный диапазон и затем умножается на БПФ проекций. Проекции заполнены нулями до степени 2 перед фильтрацией, чтобы предотвратить сглаживание пространственной области и ускорить БПФ.

Ссылки

[1] Kak, A. C., and M. Slaney, Principles of Computerized Tomographic Imaging, New York, NY, IEEE Press, 1988.

Расширенные возможности

См. также

| | | | |

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