Может быть кто подскажет, где мне можно найти реализованные на С (или на Pascal) алгоритмы сглаживания точек (2D, размер массива >> 10000 точек) полиномами различной степени.
C>А самому написать слабо? Берешь контрольные точки строишь через них полином нужной степени получаешь сглаживание нужной степени. Делов то.
Погаричился наверно не оценил кол-во точек.... Возьми книжку по численным методам, но в принципе на хорошей машинке можно просто решить численно сответствуюшее число диффиренциальных уравнений, правда если нужно гладкость второго порядка то тут хуже уравнения будут уже не линейнми =(((
Здравствуйте, peterbes, Вы писали:
P>Может быть кто подскажет, где мне можно найти реализованные на С (или на Pascal) алгоритмы сглаживания точек (2D, размер массива >> 10000 точек) полиномами различной степени.
Можно расчитать коэффициенты линии корреляции 2го или 3го порядков.
Это из мат статистики.
//
// Calculated parabolic regression coefficients for vx,vy vectors and vi index.
// @vx — vector for x coordinates
// @vy — vector for y coordinates
// @vn — index for vx and vy vectors
//
procedure CalcParabolicCorrelations(var cx,cy, bx,by, ax,ay: extended; vx,vy: array of extended; v0, v1: TIndex);
var M: array [0..3, 0..4] of extended;
//
// Решаем линейное уравнение
//
procedure CalcLinearForM(var a,b,c: extended);
var ii,jj,tt: TIndex;
tmp: extended;
begin
ii:=0;
repeat
tmp:=M[ii,ii];
if tmp<>0 then begin
for jj:=0 to 3 do
M[ii,jj]:=M[ii,jj]/tmp;
for tt:=0 to 2 do begin
tmp:=M[tt,ii];
if tt<>ii then for jj:=0 to 3 do
M[tt,jj]:=M[tt,jj] — M[ii,jj]*tmp;
end{for tt};
inc(ii);
end{if tmp} else inc(ii);
until ii=3;
a:=M[2,3];
b:=M[1,3];
c:=M[0,3];
end;
Здравствуйте, peterbes, Вы писали:
P>Может быть кто подскажет, где мне можно найти реализованные на С (или на Pascal) алгоритмы сглаживания точек (2D, размер массива >> 10000 точек) полиномами различной степени.
Есть еще один метод — непараметрическое сглаживание. Результат намного качественнее.
Здравствуйте, peterbes, Вы писали:
P>Может быть кто подскажет, где мне можно найти реализованные на С (или на Pascal) алгоритмы сглаживания точек (2D, размер массива >> 10000 точек) полиномами различной степени.
Здравствуйте, peterbes, Вы писали:
P>Может быть кто подскажет, где мне можно найти реализованные на С (или на Pascal) алгоритмы сглаживания точек (2D, размер массива >> 10000 точек) полиномами различной степени.
P>Спасибо.
Не знаю, то ли что тебе нужно, но...
Посмотри в сторону IPP (http://www.intel.com/software/products/perflib/index.htm), её мона попробовать бесплатно, там есть часть, связанная с Signal Processing.
Если будешь всё это сглаживание крутить на интелёнке, то так есть возможность просто использовать всякий MMX- типа ускоркение и всё такое.
Жизнь, как игра —
идея паршивая,
графика обалденная...