Проекция Вентилятор-Балка

Примечание

Для получения информации о создании данных проекции из интегралов линии вдоль параллельных путей, смотрите Radon Transform. Чтобы преобразовать данные проекции вентилятора-луча в данные проекции параллельного луча, используйте fan2para функция.

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

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

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

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

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

The 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.

The ifanbeam функция преобразует данные проекции вентилятор-луч в данные проекции параллель-луч с fan2para function, а затем вызывает 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.

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