fanbeam

Преобразование Вентилятор - Луч

Описание

пример

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

F = fanbeam(I,D,Name,Value) использует пары "имя-значение", чтобы задать шаг вращения и интервал между датчиками.

пример

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

Примеры

свернуть все

Установите выбор IPT, чтобы сделать оси видимыми.

iptsetpref('ImshowAxesVisible','on')

Создайте образец изображения и отобразите его.

ph = phantom(128);
imshow(ph)

Figure contains an axes. The axes contains an object of type image.

Вычислите проекции балки и отобразите их.

[F,Fpos,Fangles] = fanbeam(ph,250);
figure
imshow(F,[],'XData',Fangles,'YData',Fpos,...
            'InitialMagnification','fit')
axis normal
xlabel('Rotation Angles (degrees)')
ylabel('Sensor Positions (degrees)')
colormap(gca,hot), colorbar

Figure contains an axes. The axes contains an object of type image.

Вычислите проекции вентилятора-луча для геометрии 'дуги'.

I = ones(100);
D = 200;
dtheta = 45;
[Farc,FposArcDeg,Fangles] = fanbeam(I,D,...
                    'FanSensorGeometry','arc',...
                 'FanRotationIncrement',dtheta);

Преобразуйте угловые положения в линейное расстояние вдоль оси X-prime.

FposArc = D*tan(FposArcDeg*pi/180);

Вычислите проекции вентилятора-луча для геометрии 'line'.

[Fline,FposLine] = fanbeam(I,D,...
           'FanSensorGeometry','line',...
        'FanRotationIncrement',dtheta);

Вычислите соответствующее преобразование Радона.

[R,Rpos]=radon(I,Fangles);

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

figure
idx = find(Fangles==45);
plot(Rpos,R(:,idx),...
           FposArc,Farc(:,idx),...
          FposLine,Fline(:,idx))
legend('Radon','Arc','Line')

Figure contains an axes. The axes contains 3 objects of type line. These objects represent Radon, Arc, Line.

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

свернуть все

Входное изображение, заданное как 2-D числовая или логическая матрица.

Расстояние в пикселях от вершины балки вентилятора до центра вращения, заданное как положительное число. Центр вращения является центральным пикселем изображения, заданным как floor((size(I)+1)/2). D должен быть достаточно большим, чтобы гарантировать, что вершина веерной балки находится вне изображения при всех углах поворота. Инструкции по указанию Советов см. в разделе D. Рисунок иллюстрирует D по отношению к вершине вентилятора-балки для одной геометрии вентилятора-балки.

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

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

Пример: F = fanbeam(I,D,'FanRotationIncrement',5)

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

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

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

Значение

Значение

Диаграмма

'arc'

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

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

'line'

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

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

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

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

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

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

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

свернуть все

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

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

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

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

  • Если FanSensorGeometry является 'line', затем fan_sensor_positions содержит положения датчика вентилятора-луча вдоль оси x '. См. FanSensorSpacing для получения дополнительной информации.

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

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

Угол поворота вентиляторно-лучевых датчиков, возвращаемый как 1-байт- numangles числовой вектор. numangles 360/ FanRotationIncrement.

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

Совет

Как руководство, попробуйте сделать D на несколько пикселей больше половины диагональной размерности изображения, вычисленного следующим образом.

sqrt(size(I,1)^2 + size(I,2)^2)

Значения, возвращенные в F являются численным приближением проекций вентилятор-балка. Алгоритм зависит от преобразования Радона, интерполированного в геометрию вентилятора-луча. Результаты варьируются в зависимости от используемых параметров. Вы можете ожидать более точных результатов, когда изображение больше, D больше, и для точек ближе к середине изображения, вдали от ребер.

Ссылки

[1] Kak, A.C., & Slaney, M., Principles of Computerized Tomographic Imaging, IEEE Press, NY, 1988, pp. 92-93.

См. также

| | | | |

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте