Для вычисления на ЭВМ необходимо провести дискретизацию. Самый простой способ – линейная выборка значений х и у:
(12)
Тогда преобразование Радона аппроксимируется простым суммированием:
(13)
Поскольку y – целое число, возникает проблема интерполяции значений y:
(14)
Два самых простых подхода – интерполяция ближайшего соседства и линейная интерполяция:
Реализация алгоритма
Переменной х назначаются дискретные значения из рассматриваемого интервала. Затем вычисляется соответствующее значение переменной у.
В случае интерполяции ближайшего соседства значение y округляется до ближайшего целого. Вычислительная сложность алгоритма в этом случае будет порядка 0(Т,Н,М). где Т, Н и М количество отсчётов k, x и b соответственно. Также будет иметь место погрешность округления (см. рисунок 4).
При линейной интерполяции между двумя соседними отсчётами функции погрешность вычислений будет меньше при той же вычислительной сложности алгоритма (см. рисунок 5).
Рисунок 4. Вычисление преобразования Радона прямой с интерполяцией ближайшего соседства.
Рисунок 5. Вычисление преобразования Радона прямой с линейной интерполяцией.
Далее приводятся тексты соответствующих функций для MatLab
//Интерполяция ближайшего соседства
P = tan(-pi*89/180:pi/180:pi*89/180);
R = length(P);
TAU = -N/2:N/2;
T = length(TAU);
result = zeros(T, R);
for th = 1:T
for p = 1:R
for x = -T:T
y = x*P(p) + TAU(th);
yy = T-round(y);
xx = T+x;
if (xx>0) && (xx<=N) && (yy>0) && (yy<=N)
result(th, p) = result(th, p) + IMG(xx, yy);
end
end
end
end
//Линейная интерполяция
TAU = -N/2:N/2;
T = length(TAU);
P = tan(-pi*89/180:pi/180:pi*89/180);
R = length(P);
result = zeros(T, R);
for p = 1:R
for th = 1:T
for x = -T:T
xx = T+x;
y = x*P(p) + TAU(th);
y1 = floor(y);
w = y - y1;
yy1 = T - y1;
yy2 = T - (y1+1);
if (xx>0) && (xx<=N) && (yy2>0) && (yy1<=N)
result(th, p) = result(th, p) + IMG(xx, yy1)*(1-w) + IMG(xx, yy2)*w;
end
end
end
end
Знаете ли Вы, что системный анализ - это метод научного познания, нацеленный на установление структуры исследуемой системы. Метод системного анализа является необходимой предпосылкой метода математического моделирования.