exponenta event banner

Проекция балки вентилятора

Примечание

Сведения о создании данных проекции из интегралов линий вдоль параллельных траекторий см. в разделе Преобразование Радона. Для преобразования данных проекции веерной балки в данные проекции параллельной балки используйте fan2para функция.

fanbeam функция вычисляет проекции матрицы изображения вдоль заданных направлений. Проекция двумерной функции f (x, y) представляет собой множество линейных интегралов. fanbeam функция вычисляет интегралы линий вдоль траекторий, которые излучаются из одного источника, образуя форму вентилятора. Чтобы представить изображение, fanbeam функция принимает несколько проекций изображения под разными углами, поворачивая источник вокруг центра изображения. На следующем рисунке показана проекция одного веера-балки под заданным углом поворота.

Проекция балки вентилятора при угле поворота Theta

При вычислении данных проекции луча вентилятора с помощью fanbeam функция задает в качестве аргументов изображение и расстояние между вершиной проекций веерного луча и центром вращения (центральным пикселем на изображении). fanbeam функция определяет количество лучей на основе размера изображения и настроек fanbeam параметры.

FanSensorGeometry параметр определяет способ выравнивания датчиков: 'arc' или 'line'.

Геометрия датчика вентилятораОписание
'arc'fanbeam размещает датчики вдоль дуги с интервалами в 1 градус. Используйте FanSensorSpacing параметр для управления расстоянием между датчиками путем задания угла между каждым лучом. Это геометрия датчика вентилятора по умолчанию.
'line'fanbeam размещает датчики вдоль прямой линии, а не вдоль дуги. Используйте FanSensorSpacing для задания расстояния между датчиками в пикселях вдоль оси x '.

FanRotationIncrement параметр определяет приращение угла поворота. По умолчанию fanbeam принимает проекции под разными углами путем поворота источника вокруг центрального пикселя с интервалами в 1 градус.

На следующих рисунках показаны обе эти геометрии. На первом рисунке показана геометрия, используемая fanbeam функция при FanSensorGeometry имеет значение 'arc' (значение по умолчанию). Обратите внимание, как можно задать расстояние между датчиками, задав угловое расстояние между балками.

Проекция балки вентилятора с геометрией дуги

На следующем рисунке показана геометрия, используемая fanbeam функция при FanSensorGeometry имеет значение 'line'. На этом рисунке обратите внимание на то, как указать положение датчиков, указав расстояние между ними в пикселях вдоль оси x '.

Проекция балки вентилятора с геометрией линии

Реконструкция изображения на основе данных проекции веера-луча

Чтобы восстановить изображение из данных проекции веера-луча, используйте ifanbeam функция. С помощью этой функции можно задать в качестве аргументов данные проекции и расстояние между вершиной проекций веерного луча и центром вращения при создании данных проекции. Например, этот код воссоздает изображение I из данных проекции P и расстояние D.

I = ifanbeam(P,D);

По умолчанию ifanbeam функция предполагает, что данные проекции вентиляторного луча были созданы с использованием геометрии датчика дугового вентилятора, при этом пучки были разнесены под углами 1 градус, а проекции - с приращениями 1 градус в полном диапазоне 360 градусов. Как и в случае fanbeam функция, вы можете использовать ifanbeam для указания других значений этих характеристик данных проекции. Используйте те же значения для этих параметров, которые использовались при создании данных проекции. Дополнительные сведения об этих параметрах см. в разделе ifanbeam.

ifanbeam функция преобразует данные проекции луча вентилятора в данные проекции параллельного луча с помощью fan2para и затем вызывает iradon для выполнения реконструкции изображения. По этой причине ifanfeam функция поддерживает определенные iradon параметры, которые он передает iradon функция. См. раздел Обратное преобразование радона для получения дополнительной информации о iradon функция.

Реконструкция изображения с помощью обратной проекции фана

В этом примере показано, как использовать fanbeam и ifanbeam формируют проекции из образца изображения и затем восстанавливают изображение из проекций.

Создайте тестовое изображение и отобразите его. Тестовый образ является фантомом головки Shepp-Logan, который может быть сгенерирован phantom функция. Фантомное изображение иллюстрирует многие качества, которые обнаруживаются в реальной томографической визуализации человеческих голов.

P = phantom(256);
imshow(P)

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

Вычислите данные проекции луча вентилятора тестового изображения, используя FanSensorSpacing для изменения расстояния между датчиками. В примере используется геометрия дуги луча, поэтому расстояние между датчиками задается путем задания углового расстояния между балками. Первый вызов помещает балки под углом 2 градуса; второй при 1 градусе; и третий при 0,25 градусах. В каждом вызове расстояние между центром вращения и вершиной проекций является постоянным и составляет 250 пикселей. Кроме того, fanbeam поворачивает проекцию вокруг центрального пикселя с шагом 1 градус.

D = 250;

dsensor1 = 2;
F1 = fanbeam(P,D,'FanSensorSpacing',dsensor1);

dsensor2 = 1;
F2 = fanbeam(P,D,'FanSensorSpacing',dsensor2);

dsensor3 = 0.25;
[F3, sensor_pos3, fan_rot_angles3] = fanbeam(P,D,...
'FanSensorSpacing',dsensor3);

Печать данных проекции F3 . Поскольку fanbeam вычисляет данные проекции при углах поворота от 0 до 360 градусов, те же самые узоры возникают при смещении на 180 градусов. С обеих сторон производится выборка одних и тех же элементов.

figure, imagesc(fan_rot_angles3, sensor_pos3, F3)
colormap(hot); colorbar
xlabel('Fan Rotation Angle (degrees)')
ylabel('Fan Sensor Position (degrees)')

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

Восстановить изображение из данных проекции веерного луча с помощью ifanbeam . При каждой реконструкции сопоставьте расстояние между датчиками вентиляторов с интервалом, используемым при создании данных проекции. В примере используется OutputSize параметр для ограничения выходного размера каждой реконструкции таким же, как и размер исходного изображения P . В выходных данных обратите внимание на то, как качество реконструкции повышается по мере увеличения количества лучей в проекции. Первое изображение, Ifan1 , была создана с использованием 2-градусного расстояния между балками; второе изображение, Ifan2 , была создана с использованием интервала в 1 градус балок; третье изображение, Ifan3 , была создана с использованием 0,25 расстояния между балками.

output_size = max(size(P));

Ifan1 = ifanbeam(F1,D, ...
       'FanSensorSpacing',dsensor1,'OutputSize',output_size);
figure, imshow(Ifan1)
title('Ifan1')

Figure contains an axes. The axes with title Ifan1 contains an object of type image.

Ifan2 = ifanbeam(F2,D, ...
       'FanSensorSpacing',dsensor2,'OutputSize',output_size);
figure, imshow(Ifan2)
title('Ifan2')

Figure contains an axes. The axes with title Ifan2 contains an object of type image.

Ifan3 = ifanbeam(F3,D, ...
       'FanSensorSpacing',dsensor3,'OutputSize',output_size);
figure, imshow(Ifan3)
title('Ifan3')

Figure contains an axes. The axes with title Ifan3 contains an object of type image.