Преобразуйте проекции вентилятора-балки в параллельные
использует пары "имя-значение", чтобы управлять аспектами преобразования данных.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
- Данные проекции вентилятора-лучаДанные проекции вентилятора-луча, заданные как числовая матрица. Каждый столбец F
содержит данные о пучке вентиляторов под одним углом поворота. Количество столбцов указывает количество углов поворота вентилятора-луча, а количество строк указывает количество датчиков вентилятора-луча.
Типы данных: double
| single
D
- Расстояние от вершины вентиляторной балки до центра вращенияРасстояние в пикселях от вершины балки вентилятора до центра вращения, заданное как положительное число. 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'
(по умолчанию) | 'minimal'
Область значений поворота вентилятора-луча, заданный как разделенная запятыми пара, состоящая из 'FanCoverage'
и одно из этих значений.
'cycle'
- Вращайте всюсь область значений [0, 360) степеней.
'minimal'
- Повернуть через минимальную область значений, необходимый для представления объекта.
'FanRotationIncrement'
- Шаг угла поворота вентилятора-балки1
(по умолчанию) | положительная скалярная величинаШаг угла поворота вентилятора-луча в степенях, задается как разделенная разделенными запятой парами, состоящая из 'FanRotationIncrement'
и положительная скалярная величина.
Типы данных: double
'FanSensorGeometry'
- Позиционирование вентиляторного луча'arc'
(по умолчанию) | 'line'
Позиционирование датчика-луча вентилятора, заданное как разделенная разделенными запятой парами, состоящая из 'FanSensorGeometry'
и одно из следующих значений.
Значение | Значение | Диаграмма |
---|---|---|
| Датчики расположены с равными углами вдоль дуги окружности на расстоянии
| |
| Датчики расположены на одинаковых расстояниях вдоль линии, которая параллельна оси x '. Ближайшим датчиком является расстояние
|
'FanSensorSpacing'
- Интервал между датчиками типа «вентилятор-фасоль»1
(по умолчанию) | положительная скалярная величинаИнтервал между датчиками типа «вентилятор-фасоль», заданный как разделенная разделенными запятой парами, состоящая из 'FanSensorSpacing'
и положительная скалярная величина.
Если FanSensorGeometry
является 'arc'
, затем FanSensorSpacing
задает угловой интервал в степенях.
Если FanSensorGeometry
является 'line'
, затем FanSensorSpacing
определяет линейное расстояние между вентиляторными балками в пикселях. Линейный интервал измеряется на оси x '.
Типы данных: double
'Interpolation'
- Тип интерполяции'Linear'
(по умолчанию) | 'nearest'
| 'spline'
| 'pchip'
Тип интерполяции, используемой между данными параллельного луча и данных о вентиляторе, задается как разделенная разделенными запятой парами, состоящая из 'Interpolation'
и одно из этих значений.
'nearest'
- Ближайшая соседка
'linear'
- Линейный (значение по умолчанию)
'spline'
- Кусочно-кубический сплайн
'pchip'
- Кусочно-кубический гермит (PCHIP)
'ParallelCoverage'
- Область значений поворота параллельного луча'halfcycle'
(по умолчанию) | 'cycle
Область значений поворота параллельного луча, заданный как разделенная разделенными запятой парами, состоящая из 'ParallelCoverage'
и одно из этих значений.
'cycle'
- Параллельные данные охватывают полную область значений [0, 360) степеней.
'halfcycle'
- Параллельные данные покрывают [0, 180) степеней.
'ParallelRotationIncrement'
- Шаг угла поворота параллельного лучаШаг угла поворота параллельного луча в степенях, заданный как разделенная разделенными запятой парами, состоящая из 'ParallelRotationIncrement'
и положительная скалярная величина k таким образом, что 180/
k является целым числом. Если вы не задаете ParallelRotationIncrement
, тогда значение по умолчанию равно FanRotationIncrement
.
Типы данных: double
'ParallelSensorSpacing'
- Расстояние между датчиками параллельного лучаДатчик параллельного луча интервала в пикселях, задается как разделенная запятой пара, состоящая из 'ParallelSensorSpacing'
и положительная скалярная величина. Область значений расположения датчика параллельного луча вычисляется из области значений углов наклона вентилятора, fanangles, согласно: [
.D
* sin (min (fanangles)) D * sin (max (fanangles))]
Если вы не задаете ParallelSensorSpacing
затем интервал принимается равномерным и устанавливается на минимальное расстояние, подразумеваемое углами вентилятора и дискретизируемое в области значений, подразумеваемом углами вентилятора.
Типы данных: double
P
- Данные проекции параллельного лучаДанные проекции параллельного луча, возвращенные как числовая матрица. Каждый столбец P
содержит данные параллельного луча при одном угле поворота. Количество столбцов указывает общее количество углов поворота параллельного луча и равно длине parallel_rotation_angles
. Количество строк указывает общее количество датчиков параллельного луча и равно длине parallel_sensor_positions
.
Типы данных: double
parallel_sensor_positions
- Расположение датчика параллельного лучаРасположение датчика параллельного луча, возвращаемое в виде числа вектора-столбца.
Типы данных: double
parallel_rotation_angles
- Углы поворота параллельных лучейУглы поворота параллельного луча, возвращенные в виде числа вектора-строки.
Типы данных: double
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.