ReWiA 2.0 html manual
FILTER filtrowanie widma
Zapis FILTER pt1 pt2 mode [sht normflag] centralpt radX [radY] thrmode
[threshold] [min max]
Parametry
pt1, pt2
typu Point, określają fragment widma który będzie filtrowany. Dla widm
dwuwymiarowych jest to prostokąt wyznaczony przez te dwa punkty.
Domyślnie jest to całe widmo.
mode
określa rodzaj filtru : 0 - średnia, 1 - mediana, 2 - charakterystyka
podana w widmie. Wagi punktów (współrzędne E) nie są uwzględniane.
Medianę liczy się następująco : sortuje się punkty i wybiera środkowy.
Mediana dla widm dwuwymiarowych może się liczyć długo.
sht
określa widmo zawierające charakterystykę filtru dla mode=2. Argument
ten podawać należy tylko gdy mode=2. Charakterystykę filtru przechowuje
pole w widmie sht wskazywane przez wskaźnik YPTR (lub ZPTR dla
dwuwymiarowych filtrów). Ilość punktów w widmie sht powinna być
nieparzysta. W trakcie filtrowania punkty otrzymują wartości (gdy
normflag=1) :
suma od j=0 do s-1 (YOLDi-s/2+j * YSj)
Yi = --------------------------------------
suma od j=0 do s-1 (YSj)
YOLDi oznacza współrzędną Y i-tego punktu widma przed filtrowaniem, Yi
współrzędną Y i-tego punktu widma po filtrowaniu, YSi współrzędną Y i-
tego punktu charakterystyki filtru, s oznacza wielkość filtru (długość
widma). Jeśli normflag=0 to przy obliczaniu Yi suma YOLD*YS nie jest
dzielona przez sumę wag. Umożliwia to filtrowanie filtrami
różniczkującymi dla których suma wag równa się zero. Indeks przy YOLD
może być ujemny lub powyżej długości widma. W takim przypadku za wartość
YOLDi przyjmuje się wartość pierwszego lub ostatniego punktu w widmie.
Dla przykładu do obliczenia średniej punktu numer 0 przy promieniu X=2
zamiast punktów o numerach -2, -1, 0, 1, 2 bierze się punkty o numerach
0, 0, 0, 1, 2. Dla widm dwuwymiarowych sumowanie odbywa się po
prostokącie filtru. Analizowane są wtedy współrzędne Z. Jeżeli chcemy
widmo dwuwymiarowe filtrować filtrem jednowymiarowym to zaleca się
ustawić XSIZE na wartość równą długości filtru, a jako wartość Yrad
podać 0.
normflag
typu Bool, określa czy przy obliczaniu nowej wartości punktu dzielić ją
przez sumę wag filtru (tzn. normalizować filtr). Domyślnie wartość 1.
Argument ten podawać należy tylko gdy mode=2.
centralpt
typu Bool, określa czy przy obliczaniu średniej lub mediany (mode=0/1)
uwzględniać punkt centralny.
radX
typu Point, określa promień filtru (dla mode=0/1). Dla widm
dwuwymiarowych jest to promień w osi X. Dla przykładu, dla mode=0
(średnia) dla centralpt=1 i radX=3 do obliczenia średniej będzie brane 7
punktów widma.
radY
typu Point, określa promień filtru w osi Y (dla mode=0/1). Argument ten
należy podawać tylko dla widm dwuwymiarowych. Dla przykładu, dla mode=0
(średnia) dla centralpt=0, radX=2, i radX=3 do obliczenia średniej będą
brane 5*7-1=34 punkty widma.
thrmode
typu Point, określa kryterium, które musi być spełnione aby wartość
punktu widma uległa zmianie. Dozwolone wartości :
0 - abs(punkt - n) > t ; t >= 0
1 - abs(punkt - n) > abs(t * n) ; 0 <= t <= 1
2 - abs(punkt - n) > abs(t * punkt) ; 0 <= t <= 1
3 - min <= punkt <= max
punkt - współrzędna Y (1-wym) lub Z (2-wym) punktu widma, n - średnia
lub mediana z otoczenia punktu (czy punkt centralny brać do obliczenia
określa parametr centralpt). t - próg czułości = threshold.
threshold
typu Real, próg czułości dla thrmode=0,1,2.. Jeśli chcemy aby wartości
wszystkich punktów były zmieniane należy threshold ustawić na 0.
min, max
typu Real, określają zakres wartości Y lub Z punktów dla którego
wartości punktów ulegną zmianie dla thrmode=3.
Przykłady
- filtr prostokątny 7 punktowy jednowymiarowy :
CREAT 12 7 6
PTRS 12 * * * 0 **
SET 12:0 * * 1
FILTER * * 2 12 1
- filtr identyczny jak poprzedni :
FILTER * * 0 1 3 0 0
- filtr medianą dwuwymiarowy 5 x 5 :
FILTER * * 1 1 2 2 0 0
- filtr trójkątny 9 punktowy jednowymiarowy :
CREAT 12 9 6
PTRS 12 * * * 0 **
SET 12:0 * * 1+min(i,8-i)
FILTER * * 2 12 1
- filtr przesuwający widmo o 2 punkty w prawo :
CREAT 12 5 6
PTRS 12 * * * 0 **
LET 12:0:last=1
- filtr przesuwający widmo o 2 punkty w lewo :
CREAT 12 5 6
PTRS 12 * * * 0 **
LET 12:0:0=1