Mulţumiri



Yüklə 1,64 Mb.
səhifə65/118
tarix03.01.2022
ölçüsü1,64 Mb.
#34196
1   ...   61   62   63   64   65   66   67   68   ...   118
Întreg SuprafaţăDiscretă.CreazăValoare2(Real rZ)

{

Întreg nIndex = 0;



PentruFiecare(Întreg nSDX = 2; nSDX < nX; nSDX++)

PentruFiecare(Întreg nSDY = 2; nSDY < nY; nSDY++)

{

Dacă([nSDX – 1, nSDY] > rZ ŞI [nSDX + 1, nSDY] > rZ ŞI [nSDX, nSDY] < rZ)

{

PuneLa(nSDX, nSDY, ([nSDX – 1, nSDY] + [nSDX + 1, nSDY]) / 2.0);



m.PuneLa(nSDX, nSDY, ADEVĂRAT);

nIndex++;

} //Dacă
Dacă([nSDX, nSDY – 1] > rz ŞI [nSDX, nSDY + 1] > rZ ŞI [nSDX, nSDY] < rZ)

{

PuneLa(nSDX, nSDY, ([nSDX, nSDY – 1] + [nSDX, nSDY + 1]) / 2.0);



m.PuneLa(nSDX, nSDY, ADEVĂRAT);

nIndex++;

} //Dacă

} //PentruFiecare



Întoarce(nIndex);

} //EndCreazăValoare2


Un filtru mai evoluat este acela care umple cu o valoare (şi implicit masca), eliminând zgomote de formă mai rebelă, numărând nodurile adiacente mai mici de o valoare dată şi umplând suprafaţa unde acest număr este mai mic decât o valoarea admisibilă. Acest algoritm este utilizat şi în jocul de Go, la numărarea pieselor componente ale unui grup. Este lesne de înţeles că, complexitatea acestui filtru nu este mică, necesitând chemări recursive şi marcări într-o mască auxiliară; din aceste considerente nu va fi exemplificat în cod sursă.
Întreg SuprafaţăDiscretă.CreazăMască(Întreg nMaxPuncte);

Întreg SuprafaţăDiscretă.CreazăValoare(Întreg nMaxPuncte, Real rZ);


Yüklə 1,64 Mb.

Dostları ilə paylaş:
1   ...   61   62   63   64   65   66   67   68   ...   118




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin