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

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

свернуть все

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

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

  • Если theta вектор, затем задайте R когда 2D матрица, в которой каждым столбцом является Радон, преобразовывает для одного из углов в 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'Сохраняющая форму кусочная кубичная интерполяция

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

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

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

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

Алгоритмы

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

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

Ссылки

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

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

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

| | | | |

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