Vous êtes sur la page 1sur 4

Rsume TP : traitement dimages support physique Omar Bella

1)La fonction histogramme: end


5)la fonction rgb2GRAY :
function h = histograme1(I)
I = double(I); function g = rgbtogray(I)
p = 0; I = double(I);
for i = 1:10 [h w c] = size(I);
s = sum(I==p) if c ==3
s = sum(s); R = I(:,:,1);
h(i) = s; G = I(:,:,2);
p = p + 1; B = I(:,:,3);
end g = 0.299*R + 0.587*G + 0.114*B;
plot(h); end
end g = uint8(g);
2) la fonction histogramme cumule : x = g(100,100)
end
function hc = histogramec(I) 6)la fonction detection de countour :
I = double(I);
p = 0; function grad = u_Contoure(I, operateur,
for i = 1:256 diriction)
s = sum(I==p); J = double(I);
s = sum(s);
h(i) = s; switch operateur
p = p + 1; case 'sobel'
end sx = [1 -2 -1; 0 0 0; 1 2 1];
hc(1) = h(1); sy = sx';
for i = 2:256 case 'prewith'
hc(i) = h(i) + hc(i-1); sx = [-1 1 1; 0 0 0; 1 1 1];
end sy = sx';
end end
3)la fonction distance :
switch diriction
function d =distanc(I,x1,y1,x2,y2,dist) case 'horizontal'
grad = u_Filter(J, sx);
switch dist case 'vertical'
case 'eclu' grad = u_Filter (J, sy);
d = sqrt((x1-x2)^2 + (y1- case 'both'
y2)^2) gx = u_Filter (J, sx);
case 'city' gy = u_Filter (J, sy);
d = abs(x1-x2)+abs(y1-y2) grad = sqrt(gx.^2 + gy^2);
case 'manth' end
d = max(abs(x1-x2),abs(y1-y2)) grad = uint8(grad);
end end
end 7)la fonction u_filter :

4)la fonction etirement: function R = u_Filter(I, sv)


I=double(I);
function n = etirement(I) [h,w] = size(I);
I = double(I); for i = 2:h-1
for j=2:w-1
Max = max(I(:)) k = sv.*I(i-1:i+1, j-
1:j+1);
J(i, j) = sum(k(:));
Min = min(I(:))
end
end
n = ((I - Min)*255)/(Max - Min); R = uint8(J);
n = uint8(n); end
Rsume TP : traitement dimages support physique Omar Bella

8)la fonction variance : subplot(4,2,2);imshow(ib);title('Image


bruitee');
function v = variance(I) 11)la fonction filter gauss:
I = double(I);
[h w] = size(I) function if_gauss=filtre_gauss(I)
N = h*w J=double(I)/255.0;
moy = sum(I(:));
moy = moy/N; h=fspecial('gaussian',[5 5 ],0.9);
if_gauss=conv2(h,J);
v = (I - moy).^2; figure(1);subplot(4,2,7);imshow(I);title('i
v = sum(v(:)); mage initiale');
v = v/N subplot(4,2,8);imshow(if_gauss);title('imag
end e filtre(filtre gaussian)');
9)la fonction egalise:
12)la fonction filter moyenneur:
function g = egalise(f)
[w h c] = size(f); function if_moy=filtre_moy(I)
I = f; f=ones(7)/9;
if c == 3 if_moy=imfilter(I,f);
I = rgb2gray(f); figure(1);subplot(4,2,3);imshow(I);title('i
end mage initiale');
subplot(4,2,4);imshow(if_moy);title('image
I = double(I); filtre(filtre moyenneur)');
H = zeros(256); 13) la fonction filtre median :
HC = zeros(256);
taille = w*h; function r=med(i)
r=medfilt2(i,[10 10]);
for m = 1:w figure(3);subplot(1,2,1);imshow(i);title('i
for n = 1:h mage originale');
val = I(m, n); figure(3);subplot(1,2,2);imshow(r);title('i
H(val + 1) = H(val + 1) + 1; mage filtree');
end 14)la fonction rgb2ycbcr:
end
function c = rgb2yacbcr(i);
HC(1) = H(1); i=double(i);
A=[65.481 -37.797 112;128.553 -74.203 -
for m = 2:256 93.786 ;24.966 112 -18.214 ];
HC(m) = HC(m-1) + H(m); k=i./255;
end u=reshape(k,[],3);
s=u*A;
for m = 1:w s1=s(:,1)+16;
for n = 1:h s2=s(:,2)+128;
val = I(m, n); s3=s(:,3)+128;
g(m, n) = 255*HC(val+1)/taille; j=reshape(cat(3,s1,s2,s3),size(i));
end c=uint8(j);
end end
15) le filter gauss avec meshgrid :
g = uint8(g);
end function T=gauss_h (taille,sigma,I)
I=double(I);
10)la fonction bruit : switch taille
case 3
function ib=bruiter_image(I) m=1;
ib=imnoise(I,'salt & pepper'); case 5
figure(1);subplot(4,2,1);imshow(I);title('I m=2;
mage initiale');
Rsume TP : traitement dimages support physique Omar Bella

case 7 somy = sum(igy1);


m=3; igy(i,j) = somy;
end end
[X Y]=meshgrid(-m:m,-m:m); end
GA=(1/(2*pi*sigma^2))*exp(-
(X.^2+Y.^2)/(2*sigma^2)); for i=2:h-1
[h w]=size(I); for j=2:w-1
for i=2:h-1 ig(i-1,j-
for j=2:w-1 1)=abs(igx(i,j)+abs(igy(i,j)));
k=GA.*I(i-m:i+m,j-m:j+m); end
T(i,j)=sum(k(:)); end
end ig=uint8(ig);
end imshow(ig);
T=uint8(T); end
imshow(T);
end
16)le filter median:

function img = filter_medien(I)


I=double(I); Les relations :
[h w]=size(I); Egalisation dhistogramme :
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 P :le nbre de bits
if m(p)>m(p+1) Hc :histo cumule
aide = m(p); Nl :nbre de lignes
m(p) = m(p+1); Nc :nbre de colonnes
m(p+1) = aide; Etirement dhistogramme :
end
end
end ( ) (( ) )
img(i,j) = m(5);
end Inversion de la dynamique :
end ( ) ( ) ( )
img = uint8(img);
imshow(img); La correction gamma :
end
( ) ( )
17)dtection de contours par hystrises :

function ig=detec(I)
I=double(I); Changement dchelle :
[h w c]=size(I);
Interpolation du plus proche voisin par copie des pixels
sth=[1 0 -1];
stv=sth'; Interpolation bilinaire :
igx =zeros(size(I)); Plus complexe
igy =igx; Offre de bien meilleur rsultats
for i=2:h-1 Filtrage et dtection de contours :
for j=2:w-1 Filtres linaires :sous forme de convolution
igx1 = sth.*I(i,j-1:j+1); Filtres non linaires :une forme non linaire
somx = sum(igx1); L u tre=1
igx(i,j) = somx; Effets de bords (solution) :
-0 padding :le voisinage en dehors a des valeurs nulles.
igy1 =stv.*I(i-1:i+1,j);
Rsume TP : traitement dimages support physique Omar Bella

-duplication :le voisinage en dehors prend la valeur du pixel


pu p .
-ngliger les bords
-effet miroir.
Passe-bas :
-rduit le bruit
-rduit les faibles dtails
-cre du flou
-tous les coefficients du noyau sont positifs
1) filtres moyenneurs(linaire) :
- v u u p v v
-la somme des coeff=1
-plus d et grand plus le lissage est important
2)filtres gaussien (linaires) :
-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 sparable
Filtre mdian(non linaire) :
Filtre non-linaire
Elimine le bruit impulsionnel (alatoire)
Prserve contour sans les rendre flous
Peut-tre applique itrativement
Inconvnients : a tendance a dplacer les frontires
Passe haut :
Accentue les contours (rehaussement)
Augmente les dtails
Amplifie le bruit
La noyau contient des coeff positifs et ngatifs.
Le laplacien(rehaussement de contraste) :mesure la rapidit
des changements intensit sur le voisinage afin de rendre
les contours visible
-la dtection de contours :est une technique de rduction

u u p
forcement fermes formant les frontires significatives de

Les contours hautes frequ=> passe haut
Masques de convolution des oprateurs pour image de
gradient :prewitt-sobel-roberts-kirsch