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