Salut à tous,
Dans le cadre d'un projet sur le traitement d'image radar, j'essaie de calculer simplement l'information mutuelle entre 2 images.
J'ai fais plusieurs tentatives, mais je detaille ici la plus courte qui est :
final=entropy(img1)+entropy(img2)-entropy([img1;img2]);
Mais pour tester le bon fonctionnement j'ai commencé par le tester avec des gaussiennes. Or ce cher wikipédia me dit que quand img1 et img2 sont gaussiennes on a Info_mutuelle = -log(1-r^2) avec r coefficient de correlations que je programme ainsi
r=mean(X1.*X2)-mean(X1)*mean(X2))/(sqrt(mean(X1.^2)-mean(X1)^2)*sqrt(mean(X2.^2)-mean(X2)^2));
Or quand je genere deux vecteurs gaussien très simple
A= randn(1000,1);B=A*2; (Correlation maximale)
J'ai bien une correlation de 1 mais pas une info_mutuelle de 0. Et bien sur, ça marche encore moins pour les autres valeurs.
Avez vous une idée d'ou vient mon erreur ?
Partager