Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.38 KB | None | 0 0
  1. clear;
  2. close all;
  3. taille_ecran = get(0,'ScreenSize');
  4. L = taille_ecran(3);
  5. H = taille_ecran(4);
  6.  
  7. % Lecture d'une image interne a Matlab et conversion en doubles :
  8. I_max = 255;
  9. I_min = -255;
  10. I = imread('cameraman.tif');
  11. I = double(I);
  12.  
  13. % Affichage de l'image :
  14. figure('Name','Exemple d''image interne a Matlab','Position',[0,0,0.33*L,0.3*L]);
  15. imagesc(I);
  16. axis off;
  17. axis equal;
  18. colormap gray;
  19.  
  20. % Affichage de l'histogramme de l'image :
  21. histogramme = hist(I(:),[I_min:I_max]);
  22. figure('Name','Histogramme des niveaux de gris','Position',[0.33*L,0,0.33*L,0.3*L]);
  23. plot([I_min:I_max],histogramme);
  24. axis([I_min I_max 0 1.1*max(histogramme)]);
  25. xlabel('Niveau de gris','FontSize',20);
  26. ylabel('Frequence','FontSize',20);
  27.  
  28. % Vecteurs contenant les niveaux de gris de gauche (de droite) d'une paire de pixels :
  29. I_gauche = I(1:size(I,1),1:size(I,2)-1);
  30. I_droite = I(1:size(I,1),2:size(I,2));
  31.  
  32. %Image decorrelee
  33. I_decorrelle = [I(:,1), I_droite - I_gauche];
  34.  
  35. I_gauche = I_decorrelle(1:size(I,1),1:size(I,2)-1);
  36. I_droite = I_decorrelle(1:size(I,1),2:size(I,2));
  37.  
  38. I_droite = I_droite(:); % Vectorisation de la matrice I_droite
  39. I_gauche = I_gauche(:); % Vectorisation de la matrice I_gauche
  40.  
  41. % Affichage de l'image decorrelle :
  42. figure('Name','Exemple d''image interne a Matlab decorrelee','Position',[0,0,0.33*L,0.3*L]);
  43. imagesc(I_decorrelle);
  44. axis off;
  45. axis equal;
  46. colormap gray;
  47.  
  48. % Affichage des paires de niveaux de gris sous la forme d'un nuage de points :
  49. figure('Name','Mise en evidence de la correlation entre pixels voisins','Position',[0.66*L,0,0.33*L,0.3*L]);
  50. plot(I_gauche,I_droite,'b+');
  51. xlabel('Niveau de gris du pixel de gauche');
  52. ylabel('Niveau de gris du pixel de droite');
  53. axis equal;
  54. axis([I_min I_max I_min I_max]);
  55. hold on;
  56.  
  57. % Calcul des parametres de la droite de regression :
  58. % ...
  59. moy_g = mean(I_gauche); % Moyenne I_gauche
  60. moy_d = mean(I_droite); % Moyenne I_droite
  61.  
  62. 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)
  63. var_d = mean(I_droite .* I_droite) - moy_d^2;
  64.  
  65. ecart_g = sqrt(var_g);
  66. ecart_d = sqrt(var_d);
  67.  
  68. cov = mean(I_gauche .* I_droite) - moy_g * moy_d;
  69.  
  70. coeff_cor = cov / (ecart_g * ecart_d);
  71.  
  72. a = (cov / var_g);
  73. b = moy_d - (cov / ecart_g^2) * moy_g;
  74.  
  75. % Affichage de la droite de regression (d'equation y = a*x+b) :
  76. x = I_min:I_max;
  77. y = a*x+b;
  78. plot(x,y,'r','LineWidth',3);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement