2.3.Filtre
Filtrele sunt metode auxiliare, care au scopul principal de a curăţa SD de eventualele zgomote create în diferite procese de conversie sau interpolare, sau sunt folosite în algoritmi de export, pentru a asigura exportul unor curbe continue lipsite de zgomot.
Acest tipuri de filtre sunt în general folosite de algoritmii de conversie vectorială, în cazul în care nu sunt descrise pe suprafeţele stocate vectorial funcţii de proiecţie real GetZ(real rX, real rY).
Aceste filtre crează un punct ca medie a vecinilor, în cazul în care el este sub o valoare, iar vecinii lui într-o direcţie sunt mai mari decât acea valoare. Se poate observa că toţi algoritmii de filtrare returnează numărul de puncte corectate.
Întreg SuprafaţăDiscretă.CreazăMască2()
{
Întreg nIndex = 0;
PentruFiecare(Întreg nSDX = 2; nSDX < nX; nSDX++)
PentruFiecare(Întreg nSDY = 2; nSDY < nY; nSDY++)
{
Dacă(m[nSDX – 1, nSDY] ŞI m[nSDX + 1, nSDY])
{
PuneLa(nSDX, nSDY, ([nSDX – 1, nSDY] + [nSDX + 1, nSDY])/2);
m.PuneLa(nSDX, nSDY, ADEVĂRAT);
nIndex++;
} //Dacă
Dacă(m[nSDX, nSDY – 1] ŞI m[nSDX, nSDY + 1])
{
PuneLa(nSDX, nSDY, ([nSDX, nSDY – 1] + [nSDX, nSDY + 1])/2);
m.PuneLa(nSDX, nSDY, ADEVĂRAT);
nIndex++;
} //Dacă
} //PentruFiecare
Întoarce(nIndex);
} //EndCreazăMască2
Un algoritm geamăn este acela care utilizează o analiză suplimentară a unui vecin de pe direcţia perpendiculară, pentru a-l face mai constrictiv, dar şi mai realist.
Dostları ilə paylaş: |