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 contains an axes object. The axes object contains an object of type image.

figure
imshow(I);

Figure contains an axes object. The axes object contains an object of type image.

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

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 contains an axes object. The axes object contains an object of type image.

figure
imshow(phReconstructed)

Figure contains an axes object. The axes object contains an object of type image.

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

свернуть все

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

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

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

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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