![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация шума
Pahan07 © (2005-05-31 13:27:00)Помогите пожалуйста!
Мна надо написать фильтр для гаусового (и/или белого) шума, для картинки или видеопотока.
В нете куча терии по математики, а мне нужно всего-то пара формул, как этот фильтр запрограммировать. С математикой плохо, а прогу надо написать позрез.
Подайте идеи, или, может, у кого исходники есть?
programania (2005-05-31 21:08:00) [1]http://www.cee.hw.ac.uk/hipr/html/median.html
А короче надо сортировать пикселы вокруг и брать
средний по номеру, вот кусочек программы:
PROCEDURE noise;
var x,y,xx,yy,d,j,i,n,q,z:integer; m:array[1..81] of byte;
begin
d:=4; //1..4 радиус
q:=d*2+1; q:=q*q-1; q:=q div 2;
for y:=1 to h do for x:=1 to w do begin
n:=0;
for yy:=y-d to y+d do for xx:=x-d to x+d do
if (yy<>y)or(xx<>x) then begin
if (yy<1)or(xx<1)or(yy>h)or(xx>w) then z:=bi[y,x] else
// сортировка вставкой
z:=bi[yy,xx];
i:=1; while (i<=n)and(z>m[i]) do inc(i);
for j:=n downTo i do m[j+1]:=m[j];
inc(n);
m[i]:=z;
end;
bb[y,x]:=m[q];
end;
end;
Jeer (2005-05-31 14:32:00) [2]Тут ничем твоему горю не поможешь, т.к. телепатов здесь не водится - какой тебе фильтр нужен.
Хотя, вот тебе простейший:
Y(i+1) = A*Y(i) + B*X(i)