para2fan

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

Синтаксис

F = para2fan(P,D)
F = fan2para(P,D,Name,Value)
[F,fan_sensor_positions,fan_rotation_angles] = fan2para(___)

Описание

пример

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

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

[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

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

свернуть все

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

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

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

Фигура иллюстрирует D относительно вершины луча вентилятора для одной проекции луча вентилятора.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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' и одно из этих значений.

самый близкий NearestNeighbor

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

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

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