Bonjour à tous,
ce forum est mon dernier espoir.
J'essaie depuis des jours de calculer l'entropie H, les probabilités Pi et la redondance R d'une image. Malheureusement je n'y arrive pas.
Formule corrigée que j'ai :
Peut-être quelqu'un aurait-il la gentillesse de m'éclairer?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 function [Pi,H,R]=entropie(signal) [m,N]=size(signal); H=0; pdf=zeros(max(max(signal))+1,1); signal=reshape(signal,N*m,1); signal=signal'; for i=1:N*m j=uint16(signal(i)+1); pdf(j)=pdf(j)+1; end for i=1:length(pdf) Pi(i)=pdf(i)/(N*m); end for i=1: length (pdf) if(Pi(i)~=0) H=H+Pi(i)*log2 Pi(i)*(-1); end end
Voici mes données :
Soit la matrice I suivante représentant les intensités des pixels d'une image de gris codée sur 8 bits de résolution (4*4)
I= (12 12 4 4; 4 4 16 0; 6 6 6 6; 4 0 16 6)
Il faut déjà que j'établisse une fonction entropie.m dans File -> New-> Function M-File seulement j'ai beau faire, elle ne fonctionne pas.
La formule à utiliser pour l'entropie est :
Celle pour la redondance :
Hmax = Entropie maximale lorsque tous les évènements sont équiprobables.
Voilà. Quelqu'un aurait-il une superbe solution?
Voici le début du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 i=[12 12 4 4;4 4 16 0; 6 6 6 6;4 0 16 6] i = 12 12 4 4 4 4 16 0 6 6 6 6 4 0 16 6 >> s=i(1)+i(2)+i(3)+i(4)+i(5)+i(6)+i(7)+i(8)+i(9)+i(10)+i(11)+i(12)+i(13)+i(14)+i(15)+i(16) s = 106
Merci d'avance à qui pourra ma répondre.
Partager