exponenta event banner

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

figure
imshow(I);

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

figure
imshow(phReconstructed)

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

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

свернуть все

Данные проекции веера-луча, заданные как числовая матрица числовых значений по числовым значениям. 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'

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

'Shepp-Logan'

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

'Cosine'

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

'Hamming'

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

'Hann'

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

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

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

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

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

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

'nearest' - Ближайший сосед

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

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

'pchip' - Кусочно-кубический эрмит (PCHIP)

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

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

При указании OutputSize, то ifanbeam восстанавливает меньшую или большую часть изображения, но не изменяет масштаб данных.

Примечание

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

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

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

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

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

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

свернуть все

Восстановленное изображение, указанное как 2-D числовая матрица.

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

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

Совет

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

Алгоритмы

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

Ссылки

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

См. также

| | | | |

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