10
TP Traitement Numerique des Images Amelioration d'Image : Modification d'Histogramme – Filtrage Spatial S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 Préparation: L'égalisation d'histogramme consiste à classer les différentes probabilités d'apparition des niveaux de gris (codés sur N bits) selon la probabilité d'apparition cumulée de ces mêmes niveaux de gris (le résultat est toujours codé sur N bits). Démonstration: a) On se propose de réaliser une égalisation d'image numérique de taille 128x128 pixels, codée sur 3 bits/pixel. D'après les valeurs des fréquences d'apparition, on peut dire que l'image est sombre avec un mauvais contraste. Niveau de gris original 0 1 2 3 4 5 6 7 ri 0 1/7 2/7 3/7 4/7 5/7 6/7 1 Fréquence d'apparition ni 1116 4513 5420 2149 1389 917 654 226 Probabilité d'apparition pi 0,068 0,275 0,331 0,131 0,085 0,056 0,040 0,014 Probabilité cumulée d'apparition Si 0,068 0,343 0,674 0,805 0,890 0,946 0,986 1 ei = Si x 7 0,476 2,401 4,718 5,635 6,230 6,622 6,902 7 ei arrondi 0 2 5 6 6 7 7 7 On obtient alors une Look Up Table: ri 0 1/7 2/7 3/7 4/7 5/7 6/7 1 Sk=ei arrondi / 7 0 2/7 5/7 6/7 6/7 1 1 1 Sk p(Sk) pi 0 0,068 0,068 1/7 0 0,275 2/7 0,275 0,331 3/7 0 0,131 4/7 0 0,085 5/7 0,331 0,056 6/7 0,131+0,085=0,216 0,04 1 0,056+0,04+0,014=0,11 0,014 TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 1 0 0,143 0,286 0,429 0,571 0,714 0,857 1 0 0,05 0,1 0,15 0,2 0,25 0,3 0,35

TP Traitement Numerique des Images

  • Upload
    others

  • View
    12

  • Download
    1

Embed Size (px)

Citation preview

Page 1: TP Traitement Numerique des Images

TP Traitement Numerique des ImagesAmelioration d'Image : Modification d'Histogramme – Filtrage Spatial

S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008

Préparation:

L'égalisation d'histogramme consiste à classer les différentes probabilités d'apparition des niveaux de gris (codés sur N bits) selon la probabilité d'apparition cumulée de ces mêmes niveaux de gris (le résultat est toujours codé sur N bits).

Démonstration:a) On se propose de réaliser une égalisation d'image numérique de taille 128x128 pixels, codée sur 3 bits/pixel. D'après les valeurs des fréquences d'apparition, on peut dire que l'image est sombre avec un mauvais contraste.

Niveau de gris original

0 1 2 3 4 5 6 7

ri 0 1/7 2/7 3/7 4/7 5/7 6/7 1Fréquence d'apparition ni

1116 4513 5420 2149 1389 917 654 226

Probabilité d'apparition pi

0,068 0,275 0,331 0,131 0,085 0,056 0,040 0,014

Probabilité cumulée d'apparition Si

0,068 0,343 0,674 0,805 0,890 0,946 0,986 1

ei = Si x 7 0,476 2,401 4,718 5,635 6,230 6,622 6,902 7ei arrondi 0 2 5 6 6 7 7 7

On obtient alors une Look Up Table:ri 0 1/7 2/7 3/7 4/7 5/7 6/7 1Sk=ei arrondi / 7 0 2/7 5/7 6/7 6/7 1 1 1

Sk p(Sk) pi0 0,068 0,0681/7 0 0,2752/7 0,275 0,3313/7 0 0,1314/7 0 0,0855/7 0,331 0,0566/7 0,131+0,085=0,216 0,041 0,056+0,04+0,014=0,11 0,014

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 1

00,143

0,2860,429

0,5710,714

0,8571

0

0,05

0,1

0,15

0,2

0,25

0,3

0,35

Page 2: TP Traitement Numerique des Images

On remarque que les valeurs des pixels se répartissent maintenant sur tous les niveaux de gris, sombres ou claires, contrairement aux valeurs initiales qui se trouvaient souvent dans les niveaux sombres.L'image s'en trouve plus lumineuse (plus de valeurs dans les niveaux de gris claires), avec un meilleur contraste (valeurs mieux réparties sur tous les niveaux).

b) Pour rehausser le contraste d'une image, une méthode courante consiste à ajouter à l'image originale une partie de ses composantes spectrales hautes fréquences selon un facteur γ.Une image est la somme de ses composantes spectrales basse et haute fréquence.La composante spectrale basse fréquence est obtenue en calculant la moyenne arithmétique de l'image, fmean(x,y).

f(x,y) = flp(x,y) + fhp(x,y) = fmean(x,y) + fhp(x,y)

g(x,y) = fmean(x,y) + fhp(x,y) + γ fhp(x,y) = fmean(x,y) + (1+γ) fhp(x,y) = fmean(x,y) + (1+γ) (f(x,y) – fmean(x,y)) = fmean(x,y) - (1+γ) fmean(x,y) + (1+γ) f(x,y) = (1+γ) f(x,y) - γ fmean(x,y)

En supposant que l'ensemble des traitements est implémenté à l'aide de masques de convolution de taille 3x3 pixels, lemasque est est le résultat pour:

[ 0 0 0 ] [ 0 0 0 ] [1/9 1/9 1/9 ] [ -γ/9 -γ/9 -γ /9 ]f(x,y)=[ 0 1 0 ] d'où (1+ γ) . [ 0 1 0 ] - γ . [1/9 1/9 1/9 ] = [ -γ/9 (9+8γ)/9 -γ /9 ] [ 0 0 0 ] [ 0 0 0 ] [1/9 1/9 1/9 ] [ -γ/9 -γ/9 -γ /9 ]

1) Opérations Ponctuelles – Modification d'Histogramme

Pour toute la série de TP, on traveile avec MATLAB, il faut alors charger les fonctions associées à MATLAB pour le traitement des images, qui se trouvent dans un dossier spécial.

Pour charger une image sous MATLAB et l'afficher:

>> load sampl1>> map = gray(256);>> imshow (sampl1, map)

//En ce qui concerne l'image sampl1, elle a un faible contraste et est peu lumineuse.Quelques définitions:

– La luminosité:c'est la valeur moyennes de l'image

avec MATLAB: >>mean2(sampl1)valeur: ans = 12.1032

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 2

Page 3: TP Traitement Numerique des Images

– Le contraste: c'est en quelque sorte la moyenne des écarts entre la valeur d'un pixel et la moyenne de l'image

avec MATLAB: >>std2(sampl1)valeur: ans = 13.8317

– Histogramme:

>>imhist(sampl1,gray(256))

On remarque bien que l'image est très sombre et que le contraste est très mauvais (faible largeur de dynamique dans les niveaux de gris).

//Image Sampl2:

L=172,9282C=57,5833

Luminosite moyenneAssez fort contraste

//Image Sampl3:

L=124,0927C=47,8646

Luminosite moyenneAssez fort contraste

//Image Sampl4:

L=191,3536C=56,2380

Forte luminositéAssez fort contraste

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 3

Page 4: TP Traitement Numerique des Images

b) Modification de luminosité et de contraste:

L'ensemble des opérations de modification de luminosité et de contraste peuvent être effectuée en appliquant pixel par pixel la relation:

S = m . ( E – L ) + ( L + d )

où S : Image de sortieE : Image d'entréeL : Valeur moyenned : Offset modifiant laluminositém : Facteur modifiant le contraste

Cette fonction est réalisé sous MATLAB par:J = histscal(sampl5,m,d)

//Image Sampl5:

Sans modification

m=1 m=1d= -64 d=64

décalage décalage vers versla gauche la droite

m=0,25 m=2d=0 d=0

rétrécissement élargissementdu spectre du spectre

Pour un recadrage de la dynamique, il faut simplement élargir légèrement le spectre: m~1,2.

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 4

Page 5: TP Traitement Numerique des Images

c) Egalisation d'histogramme:

Il faut charger l'image pout.tif avec la fonction imread, calculer la luminosité et le contraste avant et après avoir effectué une egalisation d'histogramme:>>sampl6 = imread('pout.tif');>>mean2(pout)

ans=110,3037>>std2(pout)

ans=23,1811>>pout_eg=histeq(pout); //egalisation d'histogramme>>mean2(pout_eg)

ans=127,2570>>std2(pout_eg)

ans=74,7572

Avant egalisation Après egalisation

On remarque que la luminosité augmente, ainsi que le contraste de manière importante.

2) Filtrage dans le domaine spatial.

Les applications de ce filtrage concernent principalement le lissage ou réduction de bruit, et l'accentuation et la détection de contours, afn de renforcer par exemple le contraste d'une image légèrement floue.

Attenuation du bruit: consiste au filtrage des hautes fréquences.

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 5

Page 6: TP Traitement Numerique des Images

//Filtre de moyenne arithmétique:a) On charge une image gnoise_b que l'on filtre et que l'on appelle gnoise_a, on compare:

>> load gnoise_b>>gnoise_a = filter2(ones(3)/9,gnoise_b);>>imshow(gnoise_a,gray(256))>>imshow(gnoise_b,gray(256))

Non filtré Filtre 3x3

Filtre 5x5 Filtre 7x7

On constate que plus la taille du filtre est importante plus l'image est lissée.

b)Réponse fréquence d'un filtre:

>>figure; mesh(fftshift(abs(fft2(ones(7)/49,128,128))))

Il s'agit d'un filtre passe-bas, ce filtre est réalisé à partir d'une fenêtre, donc d'une fonction porte, d'où une réponse impulsionelle de la forme sinus cardinal à deux dimensions.

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 6

Page 7: TP Traitement Numerique des Images

c)//Filtre non linéaire de moyenne géométrique:

On se propose d'analyser son comportement pour différentes tailles de filtre, 3x3 et 5x5.Ce type de filtre est réalisé à partir de la fonction gmean2.

>> filtre3x3 = gmean2(gnoise_b,3);>> filtre5x5 = gmean2(gnoise_b,5);>> imshow(filtre3x3,gray(256))>> imshow(filtre5x5,gray(256))

image originale filtre 3x3 filtre 5x5

On observe des artefacts (carrés noirs sur le devant du vehicule) qui apparaissent plus la taille du filtre augmente.

d)//Filtre gaussien:

C'est un filtre à symétrie circulaire dont les coefficients suivent la loi du type:

Il faut calculer le masque du filtre en utilisant la fonction:>>Gx = fspecial('gaussian',x,a)où x est la taille du filtre, et a le paramètre de la loi gaussienne ci-dessus.On utilise alors ce masque pour filtre l'image gnoise_b:>>gnoise_a = filter2(Gx,gnoise_b)>>imshow(gnoise_a,gray(256))

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 7

Page 8: TP Traitement Numerique des Images

Exemples:a=0,1 a=0,5 a=2

Filtre de taille 3x3

On constate un lissage plus important quand a augmente.

a=0,5Filtre de taille 3x3 Filtre de taille 5x5 Filtre de taille 7x7

On ne constate pas de différences.

e)//Filtre médian:

Il est efficace pour enlever les bruits de type sel et poivre, poussières et griffes sur la pellicule. Il préserve bien les contours en remplaçant le pixel traité par la moyenne des pixels aux alentours.

L'image strak1_b possède des rayures verticales et des poussières dûes à un transfert film vers vidéo. On applique un filtre médian en faisant varier sa taille et on repère quel filtre correspond le mieux.

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 8

Page 9: TP Traitement Numerique des Images

3x3 5x5 7x7

3x1 5x1 7x1

On constate que par exemple pour le filtre 3x1, le 3 correspond au lissage vertical et le 1 au lissage horizontal. Plus le nombre est grand et plus le lissage est important selon cet axe.Il faut alors choisir le filtre qui convient le mieux.

f)Autre exemple: l'image strak2_b contient des rayures parasites dûes à une capture d'images sur un réseau de TV par câble. Comme les rayures sont dirigées horizontalement, un lissage vertical est plus nécessaire qu'un lissage horizontal. Un filtre 3x1 est alors adapté à ce type d'images.

Image originale Filtre médian 3x1

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 9

Page 10: TP Traitement Numerique des Images

Rehaussement de contours:

C'est un filtre de type passe-haut qui permet d'augmenter le contraste dans une image floue.On ajoute à l'image originale une quantité proportionnelle aux composantes haute fréquence.

Ce filtre correspond au filtre étudié dans la partie préparation, c'est à dire un filtre du type:

On regarde pour différentes valeurs de γ le rehaussement de contraste engendré:

Sous MATLAB:

» G6=[-1/18 -1/18 -1/18; -1/18 13/9 -1/18; -1/18 -1/18 -1/18];» G7=[-1/9 -1/9 -1/9; -1/9 17/9 -1/9; -1/9 -1/9 -1/9];» G8=[-2/9 -2/9 -2/9; -2/9 25/9 -2/9; -2/9 -2/9 -2/9];» sampl6_a6=filter2(G6,sampl6);» sampl6_a7=filter2(G7,sampl6);» sampl6_a8=filter2(G8,sampl6);» imshow([sampl6 sampl6_a6 sampl6_a7 sampl6_a8],gray(256))

Image originale γ = 0,5 γ = 1 γ = 2

On remarque bien un rehaussement de contraste évident lorsque γ augmente.

TP1 TNI - S7 Master 1 Audiovisuel et Multimédia - ISIS – Clément FOLLET – Février 2008 – page 10