Для вычисления на ЭВМ необходимо провести дискретизацию. Самый простой способ – линейная выборка значений х и у:
(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
Знаете ли Вы, что форма представления систем - это класс символьных представлений знаний о системе, выделяемый по признаку применимости для решения определённого круга исследовательских или прикладных задач. Например, форма кибернетической системы ориентирована на исследование информационных процессов, посредующих управление данной системой.