fan2para

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

Описание

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

пример

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

[P,parallel_sensor_positions,parallel_rotation_angles] = fan2para(___) возвращает местоположения датчика параллельного луча в parallel_sensor_positions и углы поворота в parallel_rotation_angles.

Примеры

свернуть все

Создайте синтетические данные параллельного луча.

ph = phantom(128);

Вычислите параллельный луч преобразовывают и отображают его.

theta = 0:179;
[Psynthetic,xp] = radon(ph,theta);
imshow(Psynthetic,[],...
               'XData',theta,'YData',xp,'InitialMagnification','fit') 
axis normal
title('Synthetic Parallel-Beam Data')
xlabel('\theta (degrees)')
ylabel('x''')
colormap(gca,hot), colorbar

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

Fsynthetic = para2fan(Psynthetic,100,'FanSensorSpacing',1);

Восстановите исходные данные параллельного луча.

[Precovered,Ploc,Pangles] = fan2para(Fsynthetic,100,...
                                      'FanSensorSpacing',1,...
                                      'ParallelSensorSpacing',1);
figure
imshow(Precovered,[],...
       'XData',Pangles,'YData',Ploc,'InitialMagnification','fit') 
axis normal
title('Recovered Parallel-Beam Data')
xlabel('Rotation Angles (degrees)')
ylabel('Parallel Sensor Locations (pixels)')
colormap(gca,hot), colorbar

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

свернуть все

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

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

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

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

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

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

Пример: P = fan2para(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

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

'nearest' nearestNeighbor

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

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

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

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

  • 'cycle' — Параллельные данные покрывают полный спектр [0, 360), степени.

  • 'halfcycle' — Параллельные покрытия данных [0, 180) степени.

Угол поворота параллельного луча постепенно увеличивается в градусах, заданный как разделенная запятой пара, состоящая из 'ParallelRotationIncrement' и положительная скалярная величина k, таким образом, что 180/k является целым числом. Если вы не задаете ParallelRotationIncrement, затем значение по умолчанию равно FanRotationIncrement.

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

Интервал датчика параллельного луча в пикселях, заданных как разделенная запятой пара, состоящая из 'ParallelSensorSpacing' и положительная скалярная величина. Область значений местоположений датчика параллельного луча вычисляется из области значений углов вентилятора, fanangles, согласно: D*sin (min (fanangles)) D*sin (макс. (fanangles))].

Если вы не задаете ParallelSensorSpacing, затем интервал принят, чтобы быть универсальным и установлен в минимальный интервал, подразумеваемый углами вентилятора, и произвел в области значений, подразумеваемой углами вентилятора.

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

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

свернуть все

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

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

Местоположения датчика параллельного луча, возвращенные как числовой вектор-столбец.

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

Углы поворота параллельного луча, возвращенные как числовой вектор-строка.

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

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

| | | | |

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