În matematică, convoluția este o operație efectuată asupra a două funcții (f și g) pentru a produce o a treia funcție. Convoluția este una dintre cele mai importante operații în prelucrarea semnalelor și a imaginilor. Ea poate opera în 1D (de exemplu, procesarea vorbirii), 2D (de exemplu, procesarea imaginilor) sau 3D (procesarea video).
În procesarea imaginilor, convoluția este procesul de transformare a unei imagini prin aplicarea unui nucleu asupra fiecărui pixel și a vecinilor săi locali pe întreaga imagine. Kernel-ul este o matrice de valori a cărei dimensiune și valori determină efectul de transformare al procesului de convoluție.
Procesul de convoluție implică următoarele etape. (1)Se plasează matricea Kernel peste fiecare pixel al imaginii (asigurându-se că întregul Kernel se află în interiorul imaginii), se înmulțește fiecare valoare a Kernel-ului cu pixelul corespunzător peste care se află. (2)Apoi, însumează valorile înmulțite rezultate și returnează valoarea rezultată ca fiind noua valoare a pixelului central. (3) Acest proces se repetă pe întreaga imagine.
Cum vedem în imagine, un Kernel 3×3 este convoluit peste o imagine sursă de 7×7. Elementul central al kernelului este plasat peste pixelul sursă. Pixelul sursă este apoi înlocuit cu o sumă ponderată a lui însuși și a pixelilor din jur. Rezultatul este plasat în valoarea pixelului de destinație. În acest exemplu, la prima poziție, avem 0 în pixelul sursă și 4 în kernel. 4×0 este 0, apoi, trecând la următorul pixel, avem 0 și 0 în ambele locuri. 0x0 este 0. Apoi, din nou, 0x0 este 0. În continuare, în centru există 1 în imaginea sursă și 0 în poziția corespunzătoare din kernel. 0x1 este 0. Apoi, din nou 0x1 este 0. Apoi, 0x0 este 0 și 0x1 este 0, iar în ultima poziție este -4×2, ceea ce înseamnă -8. Acum, însumând toate aceste rezultate, obținem -8 ca răspuns, astfel încât ieșirea acestei operații de convoluție este -8. Acest rezultat este actualizat în imaginea de destinație.
Evenimentul procesului de convoluție se modifică odată cu schimbarea valorilor kernelului. De exemplu, un Identity Kernel prezentat mai jos, atunci când este aplicat unei imagini prin convoluție, nu va avea niciun efect asupra imaginii rezultate. Fiecare pixel își va păstra valoarea originală, așa cum se arată în figura următoare.