Iată domeniul unui matematician. Multe dintre filtre utilizează o matrice de convoluție. Cu filtrul matrice de convoluție, dacă doriți, puteți construi un filtru personalizat.
Ce este o matrice de convoluție? Este posibil înțelegem ideea fără a utiliza instrumentele matematice pe care doar unele persoane le cunosc. Convoluția este tratamentul aplicat unei matrice prin intermediul alteia care se numește „nucleu”.
Filtrul matrice de convoluție utilizează o primă matrice, care este imaginea de tratat. Imaginea este o colecție bi-dimensională de pixeli în coordonate dreptunghiulare. Nucleul utilizat depinde de efectul dorit.
GIMP uses 5×5 or 3×3 matrices. We will consider only 3×3 matrices, they are the most used and they are enough for all effects you want. If all border values of a kernel are set to zero, then system will consider it as a 3×3 matrix.
Filtrul studiază succesiv fiecare pixel al imaginii. Pentru fiecare dintre ei, pe care îl vom numi „pixel inițial”, acesta înmulțește valoarea acestui pixel și valorile celor 8 pixeli din jurul său cu valoarea corespunzătoare a nucleului. Apoi adaugă rezultatele, iar pixelul inițial este stabilit la această valoare a rezultatului final.
Un exemplu simplu:
În stânga este matricea imaginii: fiecare pixel este marcat cu valoarea sa. Pixelul inițial are o bordură roșie. Zona de acțiune a nucleului are o bordură verde. În mijloc este nucleul și în dreapta este rezultatul convoluției.
Iată ce s-a întâmplat: filtrul citește succesiv de la stânga la dreapta și de sus în jos, toți pixelii din zona de acțiune a nucleului. Acesta a multiplicat valoarea fiecăruia cu valoarea corespunzătoare a nucleului și a adunat rezultatele. Pixelul inițial a devenit 42: (40*0)+(42*1)+(46*0) + (46*0)+(50*0)+(55*0) + (52*0)+(56*0)+(58*0) = 42. (filtrul nu funcționează pe imagine, ci pe o copie). Ca un rezultat grafic, pixelul inițial a mutat un pixel în jos.
Notă | |
---|---|
Aceste opțiuni sunt descrise în Secțiune 2, „Caracteristici obișnuite”. |
This is the 5×5 kernel matrix: you enter wanted values directly into boxes.
The result of previous calculation will be divided by this divisor. You will hardly use anything else than 1, which leaves results unchanged, and 9 or 25 according to matrix size, which gives the average of pixel values. The divisor can only be changed when Normalize is unchecked.
This value is added to the division result. This is useful if result may be negative. This offset may be negative. It can only be changed when Normalize is unchecked.
Here you can select which channels the filter should change.
Dacă această opțiune este bifată, divizorul ia valoarea rezultat a convoluției. Dacă acest rezultat este egal cu zero (nu este posibil să se împartă la zero), atunci se aplică un decalaj de 128. Dacă este negativ (o culoare negativă nu este posibilă), se aplică un decalaj de 255 (inversează rezultatul).
Dacă această opțiune nu este bifată, filtrul nu ia în considerare transparența și acest lucru poate fi cauza unor artefacte atunci când se estompează.
When the initial pixel is on a border, a part of the kernel is outside the image. You have to decide what the filter should do:
This part of the kernel is not taken into account.
Pixelii de pe borduri nu sunt modificați, dar sunt decupați.
This part of the kernel will be affected by pixels of the opposite border, so pixels disappearing from one side reappear on the other side.
Pixels on borders are changed to black.
Pixels on borders are changed to white.