exponenta event banner

para2fan

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

Описание

пример

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

Предполагается, что датчики с параллельным лучом имеют интервал в один пиксел. Углы поворота параллельного луча расположены на равном расстоянии друг от друга для покрытия [0,180] градусов. Вычисленные углы поворота веерной балки имеют такое же расстояние, как углы поворота параллельной балки, и перекрывают [0,360) градусов. Вычисленные углы пучка вентиляторов разнесены на равные расстояния с интервалом, установленным на наименьший угол, подразумеваемый интервалом между датчиками.

F = fan2para(P,D,Name,Value) использует пары имя-значение для управления аспектами преобразования данных.

[F,fan_sensor_positions,fan_rotation_angles] = fan2para(___) возвращает расположение датчика луча вентилятора в fan_sensor_positions и углы поворота в fan_rotation_angles.

Примеры

свернуть все

Создание проекций с параллельными балками

ph = phantom(128);
theta = 0:180;
[P,xp] = radon(ph,theta);
imshow(P,[],'XData',theta,'YData',xp,'InitialMagnification','fit')
axis normal
title('Parallel-Beam Projections')
xlabel('\theta (degrees)')
ylabel('x''')
colormap(gca,hot), colorbar

Figure contains an axes. The axes with title Parallel-Beam Projections contains an object of type image.

Преобразовать в вентиляторно-балочные проекции

[F,Fpos,Fangles] = para2fan(P,100);  
figure
imshow(F,[],'XData',Fangles,'YData',Fpos,'InitialMagnification','fit')
axis normal
title('Fan-Beam Projections')
xlabel('\theta (degrees)')
ylabel('Sensor Locations (degrees)')
colormap(gca,hot), colorbar

Figure contains an axes. The axes with title Fan-Beam Projections contains an object of type image.

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

свернуть все

Данные проекции параллельного луча, заданные как числовая матрица. Каждый столбец P содержит данные параллельного луча под одним углом поворота. Число столбцов указывает количество углов поворота параллельного луча, а число строк - количество датчиков параллельного луча.

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

Расстояние в пикселях от вершины луча вентилятора до центра вращения, заданное как положительное число. para2fan предполагает, что центр вращения является центральной точкой проекций, которая определяется как ceil(size(F,1)/2). Значение D должно быть больше или равно ParallelSensorSpacing*(SIZE(P,1)-1)/2

Рисунок иллюстрирует D относительно вершины веер-балки для одной проекции веер-балки.

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

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

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

Пример: F = para2fan(P,D,'FanRotationIncrement',5)

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

  • 'cycle' - Поворот через полный диапазон [0, 360) градусов.

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

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

  • Если FanCoverage является 'cycle', то 360/FanRotationIncrement должно быть целым числом.

  • Если не указать FanRotationIncrement, то значение по умолчанию равно углу поворота параллельного луча.

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

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

Стоимость

Значение

Диаграмма

'arc'

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

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

'line'

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

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

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

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

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

Если не указать FanSensorGeometry, то значение по умолчанию FanSensorSpacing наименьшее значение, подразумеваемое ParallelSensorSpacing чтобы:

  • Если FanSensorGeometry является 'arc', то FanSensorSpacing является 180/pi*ASIN(ParallelSensorSpacing/D)

  • Если FanSensorGeometry является 'line', то FanSensorSpacing является D*ASIN(ParallelSensorSpacing/D)

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

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

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

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

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

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

Диапазон вращения параллельного луча, определяемый как разделенная запятыми пара, состоящая из 'ParallelCoverage' и одно из этих значений.

  • 'cycle' - Параллельные данные охватывают весь диапазон [0, 360) градусов.

  • 'halfcycle' - Параллельные данные охватывают [0, 180) градусов.

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

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

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

свернуть все

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

Данные проекции параллельного луча, возвращаемые в виде числовой матрицы. Каждый столбец F содержит данные веерной балки под одним углом поворота. Количество столбцов указывает общее количество углов поворота веера-балки и равно длине fan_rotation_angles. Количество строк указывает общее количество датчиков с параллельным лучом и равно длине fan_sensor_positions.

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

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

  • Если 'FanSensorGeometry' является 'arc' (по умолчанию), то fan_sensor_positions содержит углы измерения датчика луча вентилятора.

  • Если 'FanSensorGeometry' является 'line', то fan_sensor_positions содержит положения вентиляторно-лучевых датчиков по линии датчиков.

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

Углы поворота луча вентилятора, возвращаемые в виде числового вектора строки.

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

См. также

| | | | |

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