Aller au contenu

Un problème en matlab


Bloblo

Messages recommandés

Bonjour tout le monde,

je dois réaliser un petit programme en matlab mais j'ai quelques soucis:

je possède un cube contenant 800 images de résolution 160x160.

Je possède 2 équations : (esperance) E[X] = sigma² +c²

(variance) Var[X] = sigma^4 + 2c².sigma²

je dois déterminer c² et sigma².

ces équations ne suffisent pas car je possède des valeurs complexes je dois donc minimiser la fonction suivante:

C(sigma²,c²) = (E[X]-sigma²-c²)² + (Var[X] - sigma^4 -2c².sigma²)²

Je calcul la variance et l'esperance : je prend le 1er pixel des 800 iamges (ca me fait un vecteur colonne de 800 valeurs et j'en calcul son esperance). J'en fait de meme pour la variance.

C'est pour la minimisation que ca se complique: je compte utiliser la toolbox de matlab fmincon : j'ai due mal à l'utiliser en tenant compte de mes 2 variables: il dit qu'il ne connait pas Var[X] et E[X] .

% --- Pour visualiser une image --- %

for i=1:160;

for j=1:160;

amp(i,j)=img(1,i,j); % Ici nous visualisons l'image 1

end

end

imagesc(amp)

% --- Pour calculer l'esperance et la variance --- %

esp=mean(img,1);

variance1=var(img,0,1);

% Pour mettre esp dans un tableau à 2 dimensions:

esperance=reshape(esp,160,160);

variance=reshape(variance1,160,160);

%------------------------------------------

% On travaille sur un morceau d'image:

%-----------------------------------------

%image=img(1:5,1:20,1:20);

%affichage de ce morceau:

for i=1:20;

for j=1:20;

amp(i,j)=img(1,i,j); % Ici nous visualisons l'image 1

end

end

imagesc(amp)

% Minimisation de la fonction C(c2,sigma2):

%---------------------------------------------------

%[c2,sigma2]=(esp-sigma^2-c^2)^(2)+(var-sigma^4-2*c^2*sigma^2)^(2);

[c2,sigma2] = meshgrid(0:1e-13/19:1E-13,0:1e-13/19:1E-13);

Z=(esp2-sigma2-c2)^(2)+(var2-sigma2^2-2*c2*sigma2)^(2);

surf(c2,sigma2,Z)

%grid on

pour ce qui est du meshgrid les valeurs de esperance et variance sont de l'ordre du 10^-13

La derniere partie est elle correct ? je place des valeurs dans c2 et sigma2 et je trace la fonction, il ne me reste plus qu'a déterminer graphiquement la valeur la plus petite.

c'est à la suite de ceci que je voudrais utiliser la fonction fmincon.

merci de votre aide

Bloblo

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...