Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear;
- close all;
- taille_ecran = get(0,'ScreenSize');
- L = taille_ecran(3);
- H = taille_ecran(4);
- % Lecture d'une image interne a Matlab et conversion en doubles :
- I_max = 255;
- I_min = -255;
- I = imread('cameraman.tif');
- I = double(I);
- % Affichage de l'image :
- figure('Name','Exemple d''image interne a Matlab','Position',[0,0,0.33*L,0.3*L]);
- imagesc(I);
- axis off;
- axis equal;
- colormap gray;
- % Affichage de l'histogramme de l'image :
- histogramme = hist(I(:),[I_min:I_max]);
- figure('Name','Histogramme des niveaux de gris','Position',[0.33*L,0,0.33*L,0.3*L]);
- plot([I_min:I_max],histogramme);
- axis([I_min I_max 0 1.1*max(histogramme)]);
- xlabel('Niveau de gris','FontSize',20);
- ylabel('Frequence','FontSize',20);
- % Vecteurs contenant les niveaux de gris de gauche (de droite) d'une paire de pixels :
- I_gauche = I(1:size(I,1),1:size(I,2)-1);
- I_droite = I(1:size(I,1),2:size(I,2));
- %Image decorrelee
- I_decorrelle = [I(:,1), I_droite - I_gauche];
- I_gauche = I_decorrelle(1:size(I,1),1:size(I,2)-1);
- I_droite = I_decorrelle(1:size(I,1),2:size(I,2));
- I_droite = I_droite(:); % Vectorisation de la matrice I_droite
- I_gauche = I_gauche(:); % Vectorisation de la matrice I_gauche
- % Affichage de l'image decorrelle :
- figure('Name','Exemple d''image interne a Matlab decorrelee','Position',[0,0,0.33*L,0.3*L]);
- imagesc(I_decorrelle);
- axis off;
- axis equal;
- colormap gray;
- % Affichage des paires de niveaux de gris sous la forme d'un nuage de points :
- figure('Name','Mise en evidence de la correlation entre pixels voisins','Position',[0.66*L,0,0.33*L,0.3*L]);
- plot(I_gauche,I_droite,'b+');
- xlabel('Niveau de gris du pixel de gauche');
- ylabel('Niveau de gris du pixel de droite');
- axis equal;
- axis([I_min I_max I_min I_max]);
- hold on;
- % Calcul des parametres de la droite de regression :
- % ...
- moy_g = mean(I_gauche); % Moyenne I_gauche
- moy_d = mean(I_droite); % Moyenne I_droite
- var_g = mean(I_gauche .* I_gauche) - moy_g^2; % ou mean(I_gauche.^2) - moy_g^2; ou mean(I_gauche - moy_g).^2)
- var_d = mean(I_droite .* I_droite) - moy_d^2;
- ecart_g = sqrt(var_g);
- ecart_d = sqrt(var_d);
- cov = mean(I_gauche .* I_droite) - moy_g * moy_d;
- coeff_cor = cov / (ecart_g * ecart_d);
- a = (cov / var_g);
- b = moy_d - (cov / ecart_g^2) * moy_g;
- % Affichage de la droite de regression (d'equation y = a*x+b) :
- x = I_min:I_max;
- y = a*x+b;
- plot(x,y,'r','LineWidth',3);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement