70 lines
1.7 KiB
Mathematica
70 lines
1.7 KiB
Mathematica
|
clear;
|
||
|
close all;
|
||
|
taille_ecran = get(0,'ScreenSize');
|
||
|
L = taille_ecran(3);
|
||
|
H = taille_ecran(4);
|
||
|
figure('Name','Separation des canaux RVB','Position',[0,0,0.67*L,0.67*H]);
|
||
|
figure('Name','Nuage de pixels dans le repere RVB','Position',[0.67*L,0,0.33*L,0.45*H]);
|
||
|
|
||
|
% Lecture et affichage d'une image RVB :
|
||
|
I = imread('ishihara-0.png');
|
||
|
figure(1); % Premiere fenetre d'affichage
|
||
|
subplot(2,2,1); % La fenetre comporte 2 lignes et 2 colonnes
|
||
|
imagesc(I);
|
||
|
axis off;
|
||
|
axis equal;
|
||
|
title('Image RVB','FontSize',20);
|
||
|
|
||
|
% Decoupage de l'image en trois canaux et conversion en doubles :
|
||
|
R = double(I(:,:,1));
|
||
|
V = double(I(:,:,2));
|
||
|
B = double(I(:,:,3));
|
||
|
|
||
|
% Affichage du canal R :
|
||
|
colormap gray; % Pour afficher les images en niveaux de gris
|
||
|
subplot(2,2,2);
|
||
|
imagesc(R);
|
||
|
axis off;
|
||
|
axis equal;
|
||
|
title('Canal R','FontSize',20);
|
||
|
|
||
|
% Affichage du canal V :
|
||
|
subplot(2,2,3);
|
||
|
imagesc(V);
|
||
|
axis off;
|
||
|
axis equal;
|
||
|
title('Canal V','FontSize',20);
|
||
|
|
||
|
% Affichage du canal B :
|
||
|
subplot(2,2,4);
|
||
|
imagesc(B);
|
||
|
axis off;
|
||
|
axis equal;
|
||
|
title('Canal B','FontSize',20);
|
||
|
|
||
|
% Affichage du nuage de pixels dans le repere RVB :
|
||
|
figure(2); % Deuxieme fenetre d'affichage
|
||
|
plot3(R,V,B,'b.');
|
||
|
axis equal;
|
||
|
xlabel('R');
|
||
|
ylabel('V');
|
||
|
zlabel('B');
|
||
|
rotate3d;
|
||
|
|
||
|
close all;
|
||
|
|
||
|
% Matrice des donnees :
|
||
|
X = [R(:) V(:) B(:)]; % Les trois canaux sont vectorises et concatenes
|
||
|
|
||
|
% Matrice des données centrées :
|
||
|
X_c = X - mean(X);
|
||
|
|
||
|
% Matrice de variance/covariance :
|
||
|
Sigma = X_c.' * X_c / length(X_c);
|
||
|
|
||
|
% Coefficients de correlation lineaire :
|
||
|
coeffs = [ Sigma(2, 1)/Sigma(1, 1)/Sigma(2, 2), Sigma(3, 2)/Sigma(2, 2)/Sigma(3, 3), Sigma(3, 1)/Sigma(1, 1)/Sigma(3,3) ]
|
||
|
|
||
|
% Proportions de contraste :
|
||
|
contrasts = coeffs.^2/sum(coeffs.^2)
|