Примечание
Для получения информации о создании данных проекции из интегралов линии вдоль путей, которые излучаются из одного источника, называемых проекциями вентилятор-балка, см. Раздел «Проекция вентилятор-балка». Чтобы преобразовать данные проекции параллельного луча в данные проекции вентилятора-луча, используйте para2fan
функция.
radon
функция вычисляет проекции матрицы изображения в заданных направлениях.
Проекция двумерной функции f (x, y) является набором интегралов линий. The radon
функция вычисляет интегралы линий из нескольких источников вдоль параллельных путей или балок в определенном направлении. Балки расположены на расстоянии 1 пиксель модуля друг от друга. Чтобы представлять изображение, radon
функция принимает несколько параллельно-лучевых проекций изображения с разных углов путем поворота источника вокруг центра изображения. Следующий рисунок показывает одну проекцию под заданным углом поворота.
Параллельная проекция на угол поворота Theta
Например, интеграл линии f (x, y) в вертикальном направлении является проекцией f (x, y) на ось x; интеграл линии в горизонтальном направлении является проекцией f (x, y) на ось y. Следующий рисунок показывает горизонтальные и вертикальные проекции для простой двумерной функции.
Горизонтальные и вертикальные проекции простой функции
Проекции могут быть вычислены вдоль любого угла theta ( В целом, преобразование Радона f (x, y) является интегралом линии f, параллельным оси y '-
где
Следующий рисунок иллюстрирует геометрию преобразования Радона.
Геометрия преобразования Радона
Этот пример показывает, как вычислить преобразование Радона изображения, I
, для определенного набора углов, theta
, с использованием radon
функция. Функция возвращается, R
, в котором столбцы содержат преобразование Радона для каждого угла в theta
. Функция также возвращает вектор, xp
, который содержит соответствующие координаты вдоль оси X. Центральный пиксель I
определяется как floor((size(I)+1)/2)
, который является пикселем на оси X, соответствующим x '= 0.
Создайте небольшой образец изображения для этого примера, который состоит из одного квадратного объекта и отобразит его.
I = zeros(100,100); I(25:75,25:75) = 1; imshow(I)
Вычислите преобразование Радона изображения для углов 0 степеней и 45 степеней.
[R,xp] = radon(I,[0 45]);
Постройте график преобразования для 0 степеней.
figure
plot(xp,R(:,1));
title('Radon Transform of a Square Function at 0 degrees')
Постройте график преобразования для 45 степеней.
figure
plot(xp,R(:,2));
title('Radon Transform of a Square Function at 45 degrees')
Преобразование Радона для большого количества углов часто отображается как изображение. В этом примере преобразование Радона для квадратного изображения вычисляется под углами от 0 ° до 180 ° с шагом 1 °.
theta = 0:180; [R,xp] = radon(I,theta); imagesc(theta,xp,R); title('R_{\theta} (X\prime)'); xlabel('\theta (degrees)'); ylabel('X\prime'); set(gca,'XTick',0:20:180); colormap(hot); colorbar
Преобразование Радона с использованием 180 проекций