ifanbeam

Обратный луч вентилятора преобразовывает

Описание

пример

I = ifanbeam(F,D) восстанавливает изображение I из данных о проекции луча вентилятора в F. Каждый столбец F содержит данные о проекции луча вентилятора при одном угле поворота. Угол между датчиками принят, чтобы быть универсальным и равным шагу между углами поворота луча вентилятора. D расстояние от вершины луча вентилятора до центра вращения.

пример

I = ifanbeam(F,D,Name,Value) пары "имя-значение" использования, чтобы управлять различными аспектами реконструкции.

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

Примеры

свернуть все

Создайте демонстрационное изображение. phantom функция создает фантомное главное изображение.

ph = phantom(128);

Создайте преобразование луча вентилятора фантомного главного изображения.

d = 100;
F = fanbeam(ph,d);

Воссоздайте фантомное главное изображение от представления луча вентилятора. Отобразите оригинальное изображение и воссозданное изображение.

I = ifanbeam(F,d);
imshow(ph)

figure
imshow(I);

Создайте демонстрационное изображение. Фантомная функция создает фантомное главное изображение.

ph = phantom(128);

Создайте преобразование радона изображения.

P = radon(ph);

Преобразуйте преобразование от параллельной проекции луча до проекции луча вентилятора.

[F,obeta,otheta] = para2fan(P,100,... 
                            'FanSensorSpacing',0.5,...
                            'FanCoverage','minimal',...
                            'FanRotationIncrement',1);

Воссоздайте изображение из данных луча вентилятора.

phReconstructed = ifanbeam(F,100,... 
                           'FanSensorSpacing',0.5,...
                           'Filter','Shepp-Logan',...
                           'OutputSize',128,... 
                           'FanCoverage','minimal',...
                           'FanRotationIncrement',1);

Отобразите оригинал и преобразованное изображение.

imshow(ph)

figure
imshow(phReconstructed)

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

свернуть все

Данные о проекции луча вентилятора в виде numsensors-by-numangles числовая матрица. numsensors является количеством датчиков луча вентилятора, и numangles является количеством углов поворота луча вентилятора. Каждый столбец F содержит выборки датчика луча вентилятора при одном угле поворота.

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

Расстояние в пикселях от вершины луча вентилятора до центра вращения в виде положительного числа. ifanbeam принимает, что центр вращения является центральной точкой проекций, которая задана как ceil(size(F,1)/2). Фигура иллюстрирует D относительно вершины луча вентилятора для одной проекции луча вентилятора.

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

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: I = ifanbeam(F,D,'FanRotationIncrement',5)

Область значений вращения луча вентилятора в виде разделенной запятой пары, состоящей из 'FanCoverage' и одно из этих значений.

  • 'cycle' — Вращайтесь через полный спектр [0, 360), степени.

  • 'minimal' — Вращайтесь через минимальную область значений, необходимую, чтобы представлять объект.

Угол поворота луча вентилятора постепенно увеличивается в градусах в виде разделенной запятой пары, состоящей из 'FanRotationIncrement' и положительная скалярная величина.

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

Расположение датчика луча вентилятора в виде разделенной запятой пары, состоящей из 'FanSensorGeometry' и одно из следующих значений.

Значение

Значение

Схема

'arc'

Датчики расположены с интервалами под равными углами вдоль круговой дуги на расстоянии D от центра вращения.

FanSensorSpacing задает угловой интервал в градусах.

'line'

Датчики расположены с интервалами на равных расстояниях вдоль линии, которая параллельна x' ось. Самый близкий датчик является расстоянием D от центра вращения.

FanSensorSpacing задает расстояние между лучами вентилятора на x' ось, в пикселях.

Интервал датчика боба вентилятора в виде разделенной запятой пары, состоящей из 'FanSensorSpacing' и положительная скалярная величина.

  • Если FanSensorGeometry 'arc', затем FanSensorSpacing задает угловой интервал в градусах.

  • Если FanSensorGeometry 'line', затем FanSensorSpacing задает линейное расстояние между лучами вентилятора, в пикселях. Линейный интервал измеряется на x' ось.

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

Отфильтруйте, чтобы использовать в фильтрации частотного диапазона в виде разделенной запятой пары, состоящей из 'Filter' и одно из значений в таблице. Для получения дополнительной информации смотрите iradon.

Значение

Описание

'Ram-Lak'

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

'Shepp-Logan'

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

'Cosine'

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

'Hamming'

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

'Hann'

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

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

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

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

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

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

'nearest' nearestNeighbor

'linear' — Линейный (значение по умолчанию)

'spline' — Кусочный кубический сплайн

'pchip' — Кусочный кубический Эрмит (PCHIP)

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

Размер восстановленного изображения в виде разделенной запятой пары, состоящей из 'OutputSize' и положительное целое число. Изображение имеет равное количество строк и столбцов.

Если вы задаете OutputSize, затем ifanbeam восстанавливает меньший или больший фрагмент изображения, но не изменяет масштабирование данных.

Примечание

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

Если вы не задаете OutputSize, затем размер вычисляется автоматически:

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

где R длина данных о проекции параллельного луча, используемых iradon. Для получения дополнительной информации см. Алгоритмы.

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

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

свернуть все

Восстановленное изображение в виде 2D числовой матрицы.

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

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

Советы

  • Чтобы выполнить обратную реконструкцию луча вентилятора, необходимо дать ifanbeam те же параметры, которые использовались, чтобы вычислить данные о проекции, F. Если вы используете fanbeam чтобы вычислить проекцию, затем убедитесь, что параметры сопоставимы при вызове ifanbeam.

Алгоритмы

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

Ссылки

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

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

| | | | |

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