Traitement des images avec matlab

620 vues

Publié le

16 programme de traitement d'image avec matlab

Publié dans : Sciences
1 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
620
Sur SlideShare
0
Issues des intégrations
0
Intégrations
0
Actions
Partages
0
Téléchargements
54
Commentaires
1
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Traitement des images avec matlab

  1. 1. Résume TP : traitement d’images support physique Omar Bella 1)La fonction histogramme: function h = histograme1(I) I = double(I); p = 0; for i = 1:10 s = sum(I==p) s = sum(s); h(i) = s; p = p + 1; end plot(h); end 2) la fonction histogramme cumule : function hc = histogramec(I) I = double(I); p = 0; for i = 1:256 s = sum(I==p); s = sum(s); h(i) = s; p = p + 1; end hc(1) = h(1); for i = 2:256 hc(i) = h(i) + hc(i-1); end end 3)la fonction distance : function d =distanc(I,x1,y1,x2,y2,dist) switch dist case 'eclu' d = sqrt((x1-x2)^2 + (y1- y2)^2) case 'city' d = abs(x1-x2)+abs(y1-y2) case 'manth' d = max(abs(x1-x2),abs(y1-y2)) end end 4)la fonction etirement: function n = etirement(I) I = double(I); Max = max(I(:)) Min = min(I(:)) n = ((I - Min)*255)/(Max - Min); n = uint8(n); end 5)la fonction rgb2GRAY : function g = rgbtogray(I) I = double(I); [h w c] = size(I); if c ==3 R = I(:,:,1); G = I(:,:,2); B = I(:,:,3); g = 0.299*R + 0.587*G + 0.114*B; end g = uint8(g); x = g(100,100) end 6)la fonction detection de countour : function grad = u_Contoure(I, operateur, diriction) J = double(I); switch operateur case 'sobel' sx = [1 -2 -1; 0 0 0; 1 2 1]; sy = sx'; case 'prewith' sx = [-1 1 1; 0 0 0; 1 1 1]; sy = sx'; end switch diriction case 'horizontal' grad = u_Filter(J, sx); case 'vertical' grad = u_Filter (J, sy); case 'both' gx = u_Filter (J, sx); gy = u_Filter (J, sy); grad = sqrt(gx.^2 + gy^2); end grad = uint8(grad); end 7)la fonction u_filter : function R = u_Filter(I, sv) I=double(I); [h,w] = size(I); for i = 2:h-1 for j=2:w-1 k = sv.*I(i-1:i+1, j- 1:j+1); J(i, j) = sum(k(:)); end end R = uint8(J); end
  2. 2. Résume TP : traitement d’images support physique Omar Bella 8)la fonction variance : function v = variance(I) I = double(I); [h w] = size(I) N = h*w moy = sum(I(:)); moy = moy/N; v = (I - moy).^2; v = sum(v(:)); v = v/N end 9)la fonction egalise: function g = egalise(f) [w h c] = size(f); I = f; if c == 3 I = rgb2gray(f); end I = double(I); H = zeros(256); HC = zeros(256); taille = w*h; for m = 1:w for n = 1:h val = I(m, n); H(val + 1) = H(val + 1) + 1; end end HC(1) = H(1); for m = 2:256 HC(m) = HC(m-1) + H(m); end for m = 1:w for n = 1:h val = I(m, n); g(m, n) = 255*HC(val+1)/taille; end end g = uint8(g); end 10)la fonction bruit : function ib=bruiter_image(I) ib=imnoise(I,'salt & pepper'); figure(1);subplot(4,2,1);imshow(I);title('I mage initiale'); subplot(4,2,2);imshow(ib);title('Image bruitee'); 11)la fonction filter gauss: function if_gauss=filtre_gauss(I) J=double(I)/255.0; h=fspecial('gaussian',[5 5 ],0.9); if_gauss=conv2(h,J); figure(1);subplot(4,2,7);imshow(I);title('i mage initiale'); subplot(4,2,8);imshow(if_gauss);title('imag e filtre(filtre gaussian)'); 12)la fonction filter moyenneur: function if_moy=filtre_moy(I) f=ones(7)/9; if_moy=imfilter(I,f); figure(1);subplot(4,2,3);imshow(I);title('i mage initiale'); subplot(4,2,4);imshow(if_moy);title('image filtre(filtre moyenneur)'); 13) la fonction filtre median : function r=med(i) r=medfilt2(i,[10 10]); figure(3);subplot(1,2,1);imshow(i);title('i mage originale'); figure(3);subplot(1,2,2);imshow(r);title('i mage filtree'); 14)la fonction rgb2ycbcr: function c = rgb2yacbcr(i); i=double(i); A=[65.481 -37.797 112;128.553 -74.203 - 93.786 ;24.966 112 -18.214 ]; k=i./255; u=reshape(k,[],3); s=u*A; s1=s(:,1)+16; s2=s(:,2)+128; s3=s(:,3)+128; j=reshape(cat(3,s1,s2,s3),size(i)); c=uint8(j); end 15) le filter gauss avec meshgrid : function T=gauss_h (taille,sigma,I) I=double(I); switch taille case 3 m=1; case 5 m=2;
  3. 3. Résume TP : traitement d’images support physique Omar Bella case 7 m=3; end [X Y]=meshgrid(-m:m,-m:m); GA=(1/(2*pi*sigma^2))*exp(- (X.^2+Y.^2)/(2*sigma^2)); [h w]=size(I); for i=2:h-1 for j=2:w-1 k=GA.*I(i-m:i+m,j-m:j+m); T(i,j)=sum(k(:)); end end T=uint8(T); imshow(T); end 16)le filter median: function img = filter_medien(I) I=double(I); [h w]=size(I); img = zeros(size(I)); for i=2:h-1 for j=2:w-1 m = I(i-1:i+1,j-1:j+1); for k=1:9 for p=1:8 if m(p)>m(p+1) aide = m(p); m(p) = m(p+1); m(p+1) = aide; end end end img(i,j) = m(5); end end img = uint8(img); imshow(img); end 17)détection de contours par hystérises : function ig=detec(I) I=double(I); [h w c]=size(I); sth=[1 0 -1]; stv=sth'; igx =zeros(size(I)); igy =igx; for i=2:h-1 for j=2:w-1 igx1 = sth.*I(i,j-1:j+1); somx = sum(igx1); igx(i,j) = somx; igy1 =stv.*I(i-1:i+1,j); somy = sum(igy1); igy(i,j) = somy; end end for i=2:h-1 for j=2:w-1 ig(i-1,j- 1)=abs(igx(i,j)+abs(igy(i,j))); end end ig=uint8(ig); imshow(ig); end  Les relations : Egalisation d’histogramme : ( ) ( ) P :le nbre de bits Hc :histo cumule Nl :nbre de lignes Nc :nbre de colonnes Etirement d’histogramme : ( ) ( ( ) ) Inversion de la dynamique : ( ) ( ) ( ) La correction gamma : ( ) ( ) Changement d’échelle : Interpolation du plus proche voisin par copie des pixels Interpolation bilinéaire : Plus complexe Offre de bien meilleur résultats Filtrage et détection de contours : Filtres linéaires :sous forme de convolution Filtres non linéaires :une forme non linéaire L ’u être=1 Effets de bords (solution) : -0 padding :le voisinage en dehors a des valeurs nulles.
  4. 4. Résume TP : traitement d’images support physique Omar Bella -duplication :le voisinage en dehors prend la valeur du pixel ’ p u p . -négliger les bords -effet miroir. Passe-bas : -réduit le bruit -réduit les faibles détails ’ -crée du flou -tous les coefficients du noyau sont positifs 1) filtres moyenneurs(linéaire) : - v u ’u p v v -la somme des coeff=1 -plus d et grand plus le lissage est important 2)filtres gaussien (linéaires) : -meilleur lissage et une meilleure reduction du bruit -sigma>1 :rendre imade floue -sigma<1 :reduire le bruit -sigma est grand plus la cloche est large plus le fou sera marque -avantages : L ’ u -filtre séparable Filtre médian(non linéaire) : Filtre non-linéaire Elimine le bruit impulsionnel (aléatoire) Préserve ’ contour sans les rendre flous Peut-être applique itérativement Inconvénients : a tendance a « déplacer » les frontières Passe haut : Accentue les contours (rehaussement) Augmente les détails ’ Amplifie le bruit La noyau contient des coeff positifs et négatifs. Le laplacien(rehaussement de contraste) :mesure la rapidité des changements ’intensité sur le voisinage afin de rendre les contours visible -la détection de contours :est une technique de réduction ’ ’ u u p forcement fermées formant les frontières significatives de ’ Les contours hautes frequ=> passe haut Masques de convolution des opérateurs pour image de gradient :prewitt-sobel-roberts-kirsch

×