Retour
Cours précédent
Cours suivant

Convolution

C’est une transformation locale : utilisation du voisinage de chaque pixel.

Familles de filtres

filtre passe-bas : atténue le bruit et les détails.
filtre passe-haut : accentue les détails et les contours.

On appelle aussi un filtre masque ou noyau.

Calcul

Un filtre est une matrice impaire (3x3, 5x5, …).

On fait une moyenne de la valeur des pixels. Le masque donne les coefficient des valeurs dans la moyenne.

Code : pour le pixel aux coordonnées x,y. I la matrice des pixels, K la matrice du filtre, n la taille du filtre.

int r = 0;
for (int u=-n; u<=n; u++) {
	for (int v=-n; v<=n; v++) {
		r = r + I(x+u, y+v)*K(u+n, v+n);
	}
}

Calcul des bords de l’image

Un masque ne permet pas de calculer directement les pixels sur le bord de l’image.
Il y a plusieurs possibilités pour les calculer :

Filtre moyenneur

C’est un filtre passe-bas qui :

Le masque est :

\(\begin{bmatrix} 1/9 & 1/9 & 1/9 \\ 1/9 & 1/9 & 1/9 \\ 1/9 & 1/9 & 1/9 \end{bmatrix} \)

Plus la matrice est grand plus l’effet du filtre est fort.

Filtre Gaussien

Le filtre gaussien donne un meilleur lissage et une meilleure réduction du bruit que le filtre moyenneur.

les valeurs de la matrice sont calculé par la formule : \(exp(-(\frac{x^2+y^2}{2\sigma^2}))\)
\(\sigma\) est un écart type des valeurs de la matrice. Plus \(\sigma\) est grand plus le flou sera grand.

Un exemple de masque : \(\frac{1}{98}\times\begin{bmatrix}1 & 2 & 3 & 2 & 1 \\\ 2 & 6 & 8 & 6 & 2 \\\ 3 & 8 & 10 & 8 & 3 \\\ 2 & 6 & 8 & 6 & 2 \\\ 1 & 2 & 3 & 2 & 1 \end{bmatrix}\)


Retour
Cours précédent
Cours suivant