La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Filtrage Traitement d’images. Introduction : L’image possède une redondance spatiale dans sa nature ; c’est-à- dire; les pixels voisins (en 4-voisin ou.

Présentations similaires


Présentation au sujet: "Filtrage Traitement d’images. Introduction : L’image possède une redondance spatiale dans sa nature ; c’est-à- dire; les pixels voisins (en 4-voisin ou."— Transcription de la présentation:

1 Filtrage Traitement d’images

2 Introduction : L’image possède une redondance spatiale dans sa nature ; c’est-à- dire; les pixels voisins (en 4-voisin ou en 8-voisin) ont les mêmes caractéristiques du point de vue niveau de gris. La présence de bruit dans l’image provoque une variation brutale de niveau de gris d’un pixel par rapport aux autres voisins. Sur un profil d’une image cette variation apparaît de la façon suivante : Niveau de gris X Bruit

3 Il y a deux façons principales d’approcher les techniques de filtrage ; 1.la première est de s’attacher aux agrégats de pixels qui composent l’image. On considère d’abord leurs attributs et parmi ceux-ci l’intensité lumineuse au point où ils se trouvent ; les techniques qui traitent les niveaux de gris seront donc des procédés du domaine spatial, c’est-à-dire du plan de l’image (x, y). 2.La deuxième façon de filtrer l’image est d’opérer dans le domaine des fréquences ; le moyen d’accès est la transformée de Fourier qui fait passer des variables du plan réel aux variables dites de fréquence du domaine complexe de l’image.

4 Filtrage spatial Filtrage spectral Image Image filtrée Image rehaussée FT (image) FFT FFT -1 Dans ce cours on s’intéresse seulement au filtrage spatial.

5 Convolution (Rappel) Si f(x,y) est l’image à traiter, et g(x,y) est le filtre spatial (PSF, masque, noyau, …) Mathématiquement :

6 Filtrage Spatial : On trois type de filtrage : 1.Filtre passe-bas : diminue les bruits mais atténue les détails dans l’image (flou). 2.Filtre passe haut : accentue les contours et les détails dans l’image mais amplifie les bruits. 3.Filtre passe-bande :élimine certaines fréquences indésirables présentes dans l’image. spectral spatial observation : PSF : Point Spread Function ( Fonction d’Etalement Spectrale) MTF: Modulation Transfer Function ( Fonction de Transfert)

7 Voisinage (Rappel) 4-voisins 8-voisins

8 Convolution discrète 2D -Rappel- : C’est une transformation basée sur le voisinage d’un point Problème : Effet de Bords Solution : 1.Extérieurs =0 2.On ne filtre pas les bords 3.Miroir.

9 Convolution discrète (suite) Remarque : Généralement le masque est de dimension (DF) impair et symétrique. Dans ce cas :

10

11 rst uvw xyz Origine x y Image f (x, y) Filtre Voisinage 3*3 e Filtre 3*3 abc def ghi Pixels de l’image origine * L’opération est répétée pour chaque pixel dans l’image originale pour produire l’image filtrée

12 e traité = v *e + z *a + y*b + x*c + w *d + u *e + t *f + s *g + r *h rst uvw xyz Filtre abc dee fgh Pixels de l’image d’origine * Remarquez

13 afin de conserver la moyenne de l’image la somme des éléments du filtre est normalisée à 1, c’est-à-dire Exemple (suite)

14 Filtre moyenneur (passe-bas) : Cette technique est la plus directe pour adoucir une image trop heurtée dans ces contours par manque de dégradés ou abîmés par un bruit à haute fréquence ; le niveau de gris de chaque pixel est remplacé par une moyenne des valeurs des 4- voisins ou 8-voisins. L’image adoucie est obtenue en utilisant la relation suivante : 11111 11111 11111 11111 11111 Soit on prend un filtre 3*3 ou bien 5*5 1/25* 1/9* 1 1 1 111 111 1 1 1 121 111 1/10*

15

16

17

18

19 Défauts du filtre moyenneur : Certaines fréquences sont détruites Images dégradée Contours altérés Remarque: La taille du masque est un paramètre variable. Plus le masque sera de grande dimension, plus l’effet du filtrage sera fort. De manière générale, on essayera de réaliser un filtrage isotrope (même effet dans toutes les directions). Pour cela, le voisinage considéré devra avoir une forme circulaire

20 Filtre Gaussien (Passe-bas) Le filtre de gauss est un filtre linéaire, il donne des résultats très intéressants. Il remplace la valeur du pixel par une moyenne pondérée; Les pixels près du centre ont des poids forts; Les pixels près des bords ont des poids faibles. avec  est la variance. Idéalement on devrait prévoir un filtre (ou masque) de taille (5  )* (5  ) la figure suivante représente une gaussienne. La fenêtre de Gauss est générée par la fonction suivante (où  est en pixels)

21 function m = igauss(w, sigma) ww = 2*w + 1; [x,y] = meshgrid(-w:w, -w:w) m = 1/(2*pi*sigma^2) * exp( -(x.^2 + y.^2)/2/sigma^2); m = m / sum(sum(m)); Une gaussienne pour sigma=3; sur un voisinage de taille 41*41

22 Sigma=0.25 Sigma=0. 5

23 Sigma=1 Sigma=2

24 Sigma=4 Sigma=8

25 Les coefficients de ce filtre sont obtenu par le binôme de Newton, un filtre 1D binomial du quatrième ordre est donné par (1/16)(1 4 6 4 1 ). Le filtre 2D est : Filtre Binomial : Filtre pyramidal : Filtre conique :

26 Remarque : Tous les filtres cités précédemment ont le même défaut : 1.Ils dégradent le contour 2.Ils introduisent le flou dans l’image. Solution : Utiliser des filtres non linéaires

27 Filtrage Non Linéaire (Filtre médian) Ce filtre étant non linéaire, il ne peut pas être réalisé avec une convolution 2D de l’image. Considérons un voisinage rectangulaire autour du pixel d’intérêt. Le filtre médian consiste à prendre la valeur de niveaux de gris séparant la population en deux effectifs égaux. Le filtre médian remplace l’intensité de chaque pixel par les intensités de voisin choisi à l’avance. 301020 1025025 202530 Exemple: Médiane 10 10 20 20 25 25 30 30 250 Bruit Le choix de l’algorithme de tri est libre Ce filtre est très efficace contre le bruit de type Poivre et Sel ‘’Salt and Pepper’’

28 Algorithme :

29

30 Étude comparative : On voit sur cet exemple l’effet de la moyenne : des niveaux de gris intermédiaires apparaissent au moment de la transition. Ce n’est pas le cas pour le signal filtré grâce à la médiane. Ce filtre donne de très bons résultats de part son principe sur le bruit impulsionnel (type poivre et sel). Il a par contre l’inconvénient de supprimer les détails fins.

31 Filtre Médian/Convolution convolution 3x3 Médian 3x3

32 convolution 5x5 Médian 5x5 Filtre Médian/Convolution

33

34  La moyenne crée le flou dans l’image, enlève les petits bruits, aucun détail n’est préservé;  Le filtre Gaussien, crée le flou, les résultats sont similaires au filtre moyenneur, il préserve les détails pour les petits sigma  Le filtre médian, préserve quelques détails, très bon pour les forts bruits

35 de conserver les détails fins de réduire les coûts en temps de calcul imposés par la médiane (tri) de conserver une bonne qualité au niveau des transitions Nous avons besoin d'un filtre qui lisse seulement les régions mais ne lisse pas les contours. But : Remarque

36 Filtre de Nagao: Ce filtre est également appelé filtre à sélection de voisinage. Chaque fenêtre, 5x5, est divisée en 9 domaines : D2, D4, D6 sont déduits de D0 par rotations de 90 degrés. D3, D5, D7 sont déduits de D1 de la même façon.

37

38 Filtre Nagao (Suite) Pour chaque domaine Di, on calcule la moyenne et la variance : moy(i) et var(i). On va ensuite rechercher le domaine où la variance est la plus faible on affecte la moyenne des niveaux de gris de ce domaine au pixel central : k / Var(k) = Min Var(i)  G = Moy(k) Algorithme Ce filtre permet de limiter les pixels hors norme (bruit impulsionnel). D’autre part, il préserve et même améliore le contraste. Les zones avant et après la transition sont plus homogènes.

39 Filtre de Nagao (suite) Une première amélioration de ce filtre consiste à régulariser la forme géométrique des domaines :

40

41

42 Filtre Bilatéral Filtrage par convolution ; Il adoucit l’image et préserve les contours ; Il opère dans les deux domaines de l’image spatial et intensité. Quelques propriétés C’est un filtre non linéaire qui se base sur des gaussiennes spatiale et intensité. Il permet de faire un lissage et d'éliminer des détails inutiles, avec l’avantage de préserver les contours entre les régions de l’image: quand on fait le lissage on ne se déplace que dans les zones semblables.

43 43 Proximité en Intensité Proximité Spatiale N est une valeur fixe pour définir le voisinage du filtre spatial K constante de normalisation

44 Idée de l’algorithme:  Filtrer comme d’habitude dans le domaine des intensités (ex. Gauss)  Ne pas filtrer quand les pixels ne sont pas similaires (contour). Fonction de similarité  Détermine la quantité de lissage Pixels similaires : Lissage fort Autrement (contours) : Aucun lissage  Similitude basée sur la perception humaine  L'exemple le plus simple : basé sur des valeurs d'intensité de pixels, deux pixels sont considérés similaires s'ils ont la même valeur.

45 Formule  s coord. du pixel central, p coord. du pixel courant, Ω ensemble des coordonnées de tous les pixels dans le voisinage local (délimité par le noyau);  Js le résultat de l’intensité du pixel. Is, Ip les intensités de p et s  f(p - s) mesure la distance géométrique entre p and s  g(Ip-Is) mesure la similarité photométrique entre Is et Ip.

46 Habituellement un filtre gaussien est donné par : d(p -s) la distance Euclidienne entre p et s. Pondération spatiale : La fonction d’éloignement spatiale, permet de lisser les faibles discontinuités, c'est-à-dire si les pixels sont proches en intensité on peut les moyenner.

47 Pour chaque pixel on prend ses pixels voisins, et on fait un moyennage pour lisser une partie de l’image. Le paramètre sigma détermine la taille de la surface à moyenner, si on prend un sigma plus grand on prendra plus de pixels voisins, ce qui a une influence sur le temps de calcul. On prendra une faible valeur de sigma pour réduire le temps d’exécution.

48 Pondération sur les intensités Habituellement la gaussienne de différence des intensités est donnée : Avec : mesure appropriée de la différence entre deux valeurs des pixels. L'approche la plus simple : Différence en valeurs d'intensité Pour lisser l’image en gardant les fortes discontinuités grâce au sigma intensité :

49 sigma = [3 0.1]

50 sigma = [12 3]

51 sigma = [15 8]

52 [Ben Weiss, Siggraph 2006]

53

54

55

56

57

58

59

60

61 61 Proximité en Intensité Proximité Spatiale N est une valeur fixe pour définir le voisinage du filtre spatial K constante de normalisation

62 Implantation Matlab n=1:1:500; % Generate a vector from 1 to 500; the increment is 1. I0=zeros(size(n)); % Generate a vector of zeros; the size of the vector is equal to the size of n. I0(1:250)=15; I0(251:end)=10; % Set the first 250 values to 15, and the rest to 10. I = I0 + 0.5*randn(size(I0)); % 0.5 is the standard deviation of the noise figure; subplot(2,1,1); plot(n,I0); axis ([190 310 6 18]); title('Original signal'); subplot(2,1,2); plot(n,I); axis ([190 310 6 18]); title('Noisy signal'); 62

63 sigma_d=10; N=round(4*sigma_d); % N determines the spatial neighborhood sigma_r=1.3; d = -N:1:N; weights_d = exp(-d.*d/(2*sigma_d*sigma_d)); 63 les poids dépendent de la distance spatiale (au pixel central x) seulement; ils sont calculés une fois et sauvgardés.

64 sigma_d=10; N=round(4*sigma_d); % N determines the spatial neighborhood sigma_r=1.3; d = -N:1:N; weights_d = exp(-d.*d/(2*sigma_d*sigma_d)); x=260; % An example pixels = I(x-N:x+N); % Put the pixels within the neighborhood of the center pixel into a vector. weights = weights_d.* exp(-(pixels-I(x)).*(pixels-I(x))/(2*sigma_r*sigma_r)) + 0.0001; weights = weights./sum(weights); 64

65 Bilateral Filter – Matlab implementation sigma_d=10; N=round(4*sigma_d); % N determines the spatial neighborhood sigma_r=1.3; d = -N:1:N; weights_d = exp(-d.*d/(2*sigma_d*sigma_d)); x=260; pixels = I(x-N:x+N); % Put the pixels within the neighborhood of the center pixel into a vector. weights = weights_d.* exp(-(pixels-I(x)).*(pixels-I(x))/(2*sigma_r*sigma_r)) + 0.0001; weights = weights./sum(weights); % Normalize the weights so that its sum is equal to 1. I_output(x) = sum(weights.*pixels); 65

66 66 figure; plot([x-N:x+N],weights)

67 d = -N:1:N; weights_d = exp(-d.*d/(2*sigma_d*sigma_d)); % Repeat for all pixels I_output = I; for i=1+N:length(I)-N, % Be careful with the borders; do not exceed the dimensions. pixels = I(i-N:i+N); weights = weights_d.* exp(-(pixels-I(i)).*(pixels-I(i))/(2*sigma_r*sigma_r)) + 0.0001; weights = weights./sum(weights); I_output(i) = sum(weights.*pixels); end figure; plot(n,I_output); 67

68 % lire une image % ajouter du bruit w = 2; % la taille de la fenêtre sigma = [3 0.1]; % la variance du filtre [X,Y] = meshgrid(-w:w,-w:w); G = exp(-(X.^2+Y.^2)/(2*pi*sigma(1)^2)); A=img1; dim = size(A); B = zeros(dim); for i = 1:dim(1) for j = 1:dim(2) % Extraire une région locale iMin = max(i-w,1); iMax = min(i+w,dim(1)); jMin = max(j-w,1); jMax = min(j+w,dim(2)); I = A(iMin:iMax,jMin:jMax); % calcul la gaussienne des poids des intensités H = exp(-(I-A(i,j)).^2/(2*sigma(2)^2)); % calcul de la réponse du filtre bilateral. F = H.*G((iMin:iMax)-i+w+1,(jMin:jMax)-j+w+1); B(i,j) = sum(F(:).*I(:))/sum(F(:)); end


Télécharger ppt "Filtrage Traitement d’images. Introduction : L’image possède une redondance spatiale dans sa nature ; c’est-à- dire; les pixels voisins (en 4-voisin ou."

Présentations similaires


Annonces Google