33
5 . Traitement d'image ? 5.2 Filtres

5.2 Filtres · 5.2.1 Définition et utilité Un filtrage est un traitement qui s'applique globalement à toute l'image. Pour chaque pixel de l'image, le filtre calcule sa nouvelle

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

5 . Traitement d'image ?

5.2 Filtres

PLAN

5.2.1 Définition et utilité 5.2.2 Principe général des filtres 5.2.3 Flou

A Flou moyenneur B Flou gaussien

5.2.4 Acentuation du contraste (sharpening)

A Accentuation par différence B Accentuation par max/min

5.2.5 Débruitage : filtre médian 5.2.6 Filtres de convolution 5.2.7 Filtres adaptatifs

A Principe B Critères de sélection C Exemples

Accentuation par différence Lissage avec protection des contours Antipoussière Traitements sur les contours

5.2.1 Définition et utilité

Un filtrage est un traitement qui s'applique globalement à toute l'image. Pour chaque pixel de l'image, le filtre calcule sa nouvelle valeur en tenant compte du voisinage du pixel.

Les effets des filtres sont très variés :

Filtres "esthétiques"

Beaucoup de filtres ont pour but un effet visuel. Leur nom et leur paramètres se comprennent intuitivement . Par exemple : "effet loupe", avec comme paramètres le rayon et la force de la loupe. Dans ce cas, leur utilisation est simple et intuitive.

Filtres de traitement

Par contre, les filtres destinés à l'amélioration de l'image (débruitage, lissage), sont moins intuitifs. Pour les utiliser efficacement, il faut comprendre l'algorithme utilisé et ses paramètres. On s'attache donc à ce deuxième type de filtre.

5.2.2 Principe général des filtres

Pour chaque pixel, le filtre utilise les valeurs des pixels voisins pour calculer la valeur finale du pixel.

Dans l'exemple ci-contre le voisinage du pixel central est : de 3x3 (rayon 1) si on considère les pixels rouges, de 5x5 (rayon 2) si on considère aussi les pixels oranges de 7x7 (rayon 3) si on considère également les pixels jaunes.

Un filtre est donc caractérisé par :

1. la forme du voisinage (généralement un carré centré sur le pixel) 2. la taille (ou rayon) du voisinage, 3. l'algorithme de calcul de la valeur finale

Exemples de calcul sur les valeurs du voisinage:

1. somme ou différence des valeurs, avec ou sans pondération 2. max ou min de valeurs 3. calcul conditionnel : incluant des tests sur les valeurs

5.2.3 Flou

Les filtres de flou consistent à modifier la valeur du pixel pour qu'elle se rapproche de celle des pixels voisins. Les différences entre pixels voisins sont donc réduites ; le bruit, les contours et les détails sont atténués ; l'image est "lissée".

A - Flou moyenneur

Ce filtre attribue au pixel la moyenne des valeurs dans le voisinage.

image avant application du filtre flou moyenneur avec un voisinage 5x5, (obtenu sous Photoshop)

B - Flou gaussien

Ce filtre réalise une moyenne pondérée des valeurs dans le voisinage, avec un poid fort au centre du voisinage et faible à la périphérie. (la pondération suit une forme de gaussienne, i.e. en cloche)

image avant utilisation du filtre après passage du filtre gaussien 5x5 (réalisé avec Photoshop)

5.2.4 Accentuation du contraste (sharpening)

Principe : assombrir les pixels sombres et éclaircir les pixels clairs. Les contours, les détails et le bruit sont renforcés ; les zones unifomes sont inchangées.

Remarque : Ici "sombre" et "clair" se comprennent par rapport au voisinage, et non pas à toute l'image comme c'etait le cas du traitement par histogramme : l'effet est donc plus local. 2 pixels de même niveau dans l'image initiale ne subissent pas la même modification.

image d'origine augmentation du contraste (sous gimp avec seuil=50)

A - Accentuation par différence

Principe : calculer la différence entre le niveau du pixel et celui de ses voisins. et lui ajouter cette différence.

pixel clair -> différence positive -> pixel éclairci pixel sombre -> différence négative -> pixel assombri

Remarque : la différence peut être pondérée par un coefficient multiplicatif pour régler la force de l'accentuation

image d'origine rayon 4, gain = 50% rayon=20, gain=50% rayon=20, gain=150%

Figure: sous Photoshop, filtre Accentuation (avec un seuil nul). Pour éviter une transformation des couleurs, il est conseillé de passer en mode Lab.

B - Accentuation par max/min

Principe : ramener le niveau du pixel au min de ses voisins pour les pixels sombres ou au max de ses voisins pour les pixels clairs.

Calcul :

si niveau >(min + max)/2 niveau de sortie = max sinon niveau de sortie = min

photo d'origine filtre minimum avec pour rayon 1 filtre maximum avec pour rayon 1

5.2.5 Débruitage : filtre médian

Ce filtre permet de supprimer les pixels isolés.

Remarque : Contrairement au flou, ce filtre conserve la netteté des contours; le bruit n'est pas étalé mais supprimé.

Principe : Un pixel isolé, de niveau très supérieur ou très inférieur à ses voisins, est remplacé par un pixel du même niveau que l'un de ses voisins.

Calcul :

1. trier les valeurs du voisinage par ordre croissant. 2. sélectionner la médiane des valeurs

(la médiane est la valeur "milieu" : 50 % des valeurs sont plus sombres, et 50% sont plus claires)

3. attribuer cette valeur médiane au niveau de sortie

30 0 140

10 20 180 210 50 200

---> 0 10 20 30 50 140 180 200 210 --->

30 0 140

10 50 180 210 50 200

voisinage du pixel tri par ordre croissant des valeurs des pixels et calcul de la médiane

affectation de la valeur médiane à ce

pixel

comparaison avec un filtre moyenneur :

30 0 140 10 20 180 210 50 200

---> (30+0+140+10+20+180+210+50+200) / 9 = 93 --->

30 0 140 10 93 180 210 50 200

voisinage du pixel calcul de la moyenne affectation de la

valeur moyenne à ce pixel

filtre median de rayon 2 Photoshop

(équivalent au filtre antipoussière de rayon 2 avec seuil nul) filtre flou moyenneur 5x5

Figure : comparaison de 2 filtres flous

image d'origine :

filtre moyenneur

--->

10 10 10 10 10 10 20 20 20 10 10 20 20 20 10

10 20 20 20 10 10 10 10 10 10

le bruit est étalé

10 10 10 10 10 10 10 10 10 10

10 10 100 10 10

10 10 10 10 10

10 10 10 10 10 filtre médian

--->

10 10 10 10 10 10 10 10 10 10 10 10 10 10 10

10 10 10 10 10 10 10 10 10 10

le bruit est

supprimé

Figure : comparaison des filtres médian et moyenneur pour un bruit isolé

filtre moyenneur

--->

10 10 50 90 130 130

10 10 50 90 130 130 10 10 50 90 130 130

10 10 50 90 130 130

10 10 50 90 130 130 10 10 50 90 130 130

le contour est flou

10 10 10 130 130 130

10 10 10 130 130 130 10 10 10 130 130 130

10 10 10 130 130 130

10 10 10 130 130 130 10 10 10 130 130 130

filtre

médian

--->

10 10 10 130 130 130

10 10 10 130 130 130 10 10 10 130 130 130

10 10 10 130 130 130

10 10 10 130 130 130

10 10 10 130 130 130

le contour

est conservé

Figure : comparaison des filtres médian et moyenneur pour un contour : le filtre médian n'abime pas les contours.

5.2.6 Filtres de convolution

Ce sont tous les filtres qui calculent le niveau de sortie par une somme pondérée des niveaux du voisinage. Le masque de convolution donne le poids associé à chaque pixel du voisinage et définit le filtre.

30 0 240

120 60 180 210 150 105

X

1/12 1/8 1/12

1/8 1/4 1/8 1/12 1/8 1/12

=

120

voisinage du pixel matrice de convolution résultat du produit

Cij = 30x1/12 + 0x1/8 + 240x1/12 + 120x1/8 + 60x1/4 + 180x1/8 + 210x1/12 + 150x1/8 + 105x1/12 = 120

Parmi les filtres disponibles dans les menus, certains sont des filtres de convolution. Exemple: les filtres flou moyenneur, flou gaussien, accentuation par différence.

Les filtres ci-dessous ont été réalisés en éditant la matrice de convolution sous PaintShopPro ("Image->Filtres Personnalisés->Nouveau"), les mêmes possibilités existent sous Photoshop ("Filtre->Divers->Autre") et Gimp ("Filtres->Génériques->Convolution par matrice").

Figure : masque de convolution associé à un filtre moyenneur 3x3

Application d'un filtre moyenneur 3x3 : 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9 1/9

Figure : masque de convolution associé à un filtre moyenneur 5x5

Application d'un filtre moyenneur 5x5:

1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25 1/25

1/25 1/25 1/25 1/25 1/25

Figure : masque de convolution associé à un filtre gaussien 3x3

Application d'un filtre gaussien 3x3 : 1/16 2/16 1/16 2/16 4/16 2/16 1/16 2/16 1/16

Figure : masque de convolution associé à un filtre accentuation par différence

Application d'un filtre accentuation par différence :

-1 -1 -1 -1 9 -1 -1 -1 -1

5.2.7 Filtres adaptatifs

A Principe :

Le filtre comprend une étape de sélection des pixels. Seuls les pixels sélectionnés sont filtrés, les autres sont inchangés.

Figure : mode de fonctionnement d'un filtre adaptatif

Les filtres adaptatifs sont très intéressants, car il permettent d'agir localement dans l'image et de conserver intactes les autres zones. Ils sont aussi plus délicats d'utilisation car il faut également régler les paramètres pour l'étape de sélection (généralement un seuil). Les filtres disponibles dans les logiciels proposent en général un paramètre "seuil" qui permet de les utiliser en version adaptative.

B Critères de sélection :

La sélection est souvent basée sur un seuil à fournir.

• zone claire

moyenne (voisinage) > seuil

0 50 100 200 0 50 100 200 0 50 100 200

0 50 100 200

25 50 117 150 50 50 117 150 50 50 117 150

25 50 117 150

S S S S S S

S S

S S S

S

valeur des pixels calcul de la moyenne du voisinage 3x3 seuil = 80 seuil =128

ici 8 voisins et pixel inclus zone claire

moyenne(voisinage) > 80

zone claire

moyenne(voisinage) > 128

Figure : sélection des pixels en zone claire pour différents seuils sur un carré de pixels donné. La lettre S désigne les pixels sélectionnés.

• zone sombre

moyenne (voisinage) < seuil

• zone de fort contraste

max (voisinage) - min (voisinage) > seuil

• zone de faible contraste

max(voisinage) - min(voisinage) < seuil

• pixel isolé

niveau - moyenne(voisinage) > seuil

• point de contour

sortie d'un filtre de détection de contours > seuil

0 50 100 200

0 50 100 200 0 50 100 200 0 50 100 200

50 100 150 100

50 100 150 100 50 100 150 100 50 100 150 100

S

S S S

S S S

S S S S S S S S S

pixels d'origine seuil = 75 seuil = 75

calcul du seuil pour chaque pixel

max(voisinage) - min(voisinage)

zone de faible contraste

max(voisinage) - min(voisinage) < 75

zone de fort contraste

max(voisinage) - min(voisinage) >75

Figure : exemple de sélection des pixels sur un critère de contraste. La lettre S désigne les pixels sélectionnés.

C Exemples de filtres adaptatifs:

Tous les filtres peuvent exister en version adaptative. On mentionne quelques exemples couramment proposés.

• Accentuation par différence

pixel clair -> différence > seuil -> pixel éclairci pixel sombre -> différence < seuil -> pixel assombri

Remarque : la différence peut être pondérée par un coefficient multiplicatif pour régler la force de l'accentuation

image d'origine seuil =0, rayon 20, gain = 100% seuil=20, rayon=20, gain=100% seuil=50, rayon=20, gain=100%

Figure: sous Photoshop, filtre Accentuation avec variation de la valeur du seuil. Plus le seuil est élévé, moins il y a d'effet granuleux; plus le seuil est bas et plus l'accentuation est forte. Pour éviter une transformation des couleurs, il est conseillé de passer en mode Lab.

• Lissage avec protection des contours

Le filtre de lissage est appliqué uniquement en dehors des points de contour. On conserve ainsi la netteté des contours tout en lissant l'image. (réalisé avec Photoshop sur l'image cimetiere1)

rayon 5, seuil 25 rayon 5, seuil 50 rayon 5, seuil 100

Figure : Sélection des pixels en fonction du seuil (ici seuil=50), puis application du filtre avec un rayon identique (rayon=5), l'exemple a été réalisé sous Photoshop sur l'image cimetiere1 à l'aide du filtre "Filtre->Atténuation->Flou optimisé"

• Antipoussière Pour éviter de supprimer les détails, on utilise le filtre médian en sélectionnant uniquement les pixels à très fort contraste.

image d'origine et détail de la poussière (en haut au dessus du coquillage de droite)

image modifiée et détail de la poussière

application du filtre uniquement sur la zone entourant la poussière

Figure : traitement sous Photoshop : sélection des pixels dont la différence est supérieure au seuil (ici de 64) et application du filtre antipoussière avec un rayon de 7 (pour visualiser l'image en grand, cliquez dessus. Sur l'image de détail on note que seulement les 2 pixels clairs du centre ont été modifiés. Si vous observez attentivement les bords de coquillages, vous noterez que les pixels de fort contraste ont été remplacé par des valeurs moyennes. Il faut donc sélectionner d'abord la zone de la poussière avant d'appliquer le filtre.

• Traitements sur les contours

Image d'origine, cliquez sur les images pour les voir en taille réelle.

Sous Photoshop, utilisation du filtre "Flou optimisé", mais en mode contour seul (puis inversion). Le seuil fixé à 80 sélectionne les pixels sur lesquels va opérer le filtre, autrement dit sélectionne les contours à conserver.

Figure : filtre de sélection des contours

5.2 Exercices sur les filtres

I - Influence de la résolution sur les paramètres des filtres

sous Photoshop, Gimp ou PaintshopPro :

1. charger l'image "cimetiere1.jpg" de dimension 340 x 222 (ou cliquez sur l'image ci-dessus) 2. appliquer un filtre flou 3. charger la même image en plus hautre résolution : "cimetiere1.HR.jpg" (dimension 1700 x 1110) 4. appliquer le même filtre flou 5. modifier l'affichage de la première vue de manière à obtenir la même échelle pour les deux images et comparez 6. faites le même exercice avec le flou gaussien en règlant le rayon du flou à 1 pour l'image basse résolution

"cimetiere1.jpg" et chercher le rayon de flou équivalent pour l'image haute résolution "cimetiere1.HR.jpg"

Question:

1. A l'issue de l'étape 5, comment expliquez-vous la différence ? 2. Donnez le rayon de flou équivalent utilisé à l'étape 6

II - Utilisation d'une matrice de convolution

1. chargez l'image "escalierColimasson.jpg" ci-contre Pour cela chargez-là et cliquez dessus avec le bouton droit de la souris pour la sauvegarder chez vous.

2. créez-en 2 copies dans des calques et sélectionnez un calque 3. sous Gimp, utiliser le menu "Filtre -> Générique -> Convolution par matrice "

sous Photoshop utilisez le menu "Filtre -> Divers -> Autre" sous PaintShopPro le menu "Filtre -> Personnalisés -> Editer "

4. saisissez d'abord un filtre moyenneur en rentrant des "1" sur une matrice 3x3 au centre et des "0" ailleurs et choisissez 9 comme diviseur ou quotient

5. appliquer le filtre sur le calque 1 6. étendez la matrice de convolution à une matrice 5x5 et choisissez 25 comme diviseur 7. sélectionnez le calque 2 et appliquez-lui le filtre (rendez les autres calques invisibles d'abord).

Question:

1. Quel est l'effet réalisé par ce filtrage ? 2. Comparez les 2 images obtenues. Comment expliquez-vous la différence ?

III - Dépoussiérage

1. Chargez cette image . Pour cela chargez-là et cliquez dessus avec le bouton droit de la souris pour la sauvegarder chez vous.

2. Sélectionnez avec le lasso magnétique la zone du ciel. Vous pouvez sélectionner en plusieurs fois en ajoutant successivement des zones, pour cela gardez la touche Maj enfoncée.

3. Appliquez le filtre anti-poussière (sous Photoshop menu "Filtre->Bruit->Antipoussiere", sous Gimp menu "Filtres->Amélioration->Anti-parasite), pour cela :

4. commencez par mettre le seuil à zéro, puis augmenter progressivement le rayon jusqu'à ce que les poussières disparaissent.

5. Augmenter maintenant le seuil jusqu'à ce que les poussières soient sur le point de réapparaître. L'augmentation du seuil rétablit une certaine granulosité.

6. Réitérez l'expérience en sélectionnant les rayures sur le sable.

Question:

1. Donnez le rayon et le seuil que vous avez utilisé pour le ciel 2. Donnez le rayon et le seuil que vous avez utilisé pour le sable 3. Expliquez l'influence du rayon 4. Expliquez l'influence du seuil 5. Envoyez l'image résultat obtenue.

5.2 Les filtres

1 - Lorsqu'on applique un filtrage, 2 pixels de niveaux de gris identiques dans l'image d'origine auront nécessairement des niveaux de gris identiques dans l'image modifiée.

- VRAI

- FAUX

2 - On applique un filtre 3x3 à une image, dont voici un petit morceau:

0 30 0 70 10 0* 30+ 0 20 0 0 50 0 40 20 0

Quelle sera la valeur du pixel * après filtrage médian 3x3?

- 0

- 10

- 20

3 - Quelle sera la valeur du pixel + après filtrage médian 3x3?

- 0

- 10

- 20

4 - Quelle sera la valeur du pixel * après filtrage moyenneur 3x3?

- 0

- 10

- 20

5 - Quelle sera la valeur du pixel + après filtrage moyenneur 3x3?

- 0

- 10

- 20

6 - Si une valeur de la matrice de convolution est nulle, alors

- la matrice n'est pas valide

- le pixel voisin correspondant à la position de la valeur n'intervient pas dans le calcul

- le pixel voisin correspondant à la position de la valeur est mis à zéro (il devient noir)

7 - Quel est l'effet d'un filtrage par la matrice de convolution suivante:

0 0 0 0 1 0 0 0 0

- un flou

- un éclaircissement

- aucun effet : l'image est inchangée

8 - Quel est l'effet d'un filtrage par la matrice de convolution suivante:

0 0 0 0 2 0 0 0 0

- un flou

- un éclaircissement

- aucun effet : l'image est inchangée

9 - Un logiciel vous propose un filtre de flou qui préserve les contours. On vous demande de donner un seuil entre 0 et 255. A votre avis quels sont les pixels pré-sélectionnés avec ce seuil ?

- les pixels dont le contraste dans le voisinage est inférieur au seuil

- les pixels dont le contraste dans le voisinage est supérieur au seuil

- les pixels dont le contraste dans le voisinage est égal au seuil

10 - Un logiciel vous propose un filtre de dépoussiérage qui préserve les détails. On vous demande de donner un seuil entre 0 et 255. A votre avis quels sont les pixels pré-sélectionnés avec ce seuil ?

- les pixels dont la différence avec leurs voisins est inférieure au seuil

- les pixels dont la différence avec leurs voisins est supérieure au seuil

- les pixels dont la différence avec leurs voisins est égale au seuil

Supprimez vos réponses