iradon

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

Синтаксис

I = iradon(R,theta)
I = iradon(R,theta,interp,filter,frequency_scaling,output_size)
[I,H] = iradon(___)

Описание

пример

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

Опционально можно вычислить обратный Радон, преобразовывают использование графического процессора (требует Parallel Computing Toolbox™). Для получения дополнительной информации смотрите Обработку изображений на графическом процессоре.

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

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

Примеры

свернуть все

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

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

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

R = radon(P,0:179);

Выполните отфильтрованный backprojection.

I1 = iradon(R,0:179);

Выполните неотфильтрованный backprojection.

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

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

P = phantom(128);

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

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

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

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

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

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

Вычислите обратный Радон преобразовывают на графическом процессоре.

P = gpuArray(phantom(128));
R = radon(P,0:179);
I1 = iradon(R,0:179);
I2 = iradon(R,0:179,'linear','none');
subplot(1,3,1), imshow(P), title('Original')
subplot(1,3,2), imshow(I1), title('Filtered backprojection')
subplot(1,3,3), imshow(I2,[]), title('Unfiltered backprojection')

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

свернуть все

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

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

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

Чтобы вычислить обратный Радон преобразовывают использование графического процессора, задают R как gpuArray, который содержит числовой вектор-столбец или числовую матрицу.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | логический

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

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

Чтобы вычислить обратный Радон преобразовывают использование графического процессора, опционально можно задать theta как gpuArray, который содержит числовой вектор или скаляр.

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

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

Значение

Описание

'nearest'

Самая близкая соседняя интерполяция

'linear'

Линейная интерполяция (значение по умолчанию)

'spline'

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

'pchip'Сохраняющая форму кусочная кубичная интерполяция

Если вы вычисляете, обратный Радон преобразовывают использование графического процессора, то interp должен быть 'nearest' или 'linear'.

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

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

Значение

Описание

'Ram-Lak'

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

'Shepp-Logan'

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

'Cosine'

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

'Hamming'

Умножает фильтр Поршня-Lak по Окну Хэмминга

'Hann'

Умножает фильтр Поршня-Lak по окну Hann

'None'Никакая фильтрация. iradon возвращает неотфильтрованные backprojection данные.

Типы данных: 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.

Если обратный Радон преобразовывает, вычисляется с помощью графического процессора, то I возвращен как gpuArray, содержащий числовую матрицу.

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

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

Если обратный Радон преобразовывает, вычисляется с помощью графического процессора, то I возвращен как gpuArray, содержащий числовой вектор.

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

Алгоритмы

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

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

Ссылки

[1] Kak, A. C., и М. Слэни, принципы компьютеризированной томографической обработки изображений, Нью-Йорка, Нью-Йорка, нажатия IEEE, 1988.

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

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

| | | | |

Представлено до R2006a