Salut à tous le monde
Je voudrai calculer l'histogramme égalisé d'une image sous matlab, mais sans l'instruction "histeq", je dois faire ma propre fonction.
Et si vous pouvez m'aider, indiquer moi comment le programmer!
Salut à tous le monde
Je voudrai calculer l'histogramme égalisé d'une image sous matlab, mais sans l'instruction "histeq", je dois faire ma propre fonction.
Et si vous pouvez m'aider, indiquer moi comment le programmer!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 A=double(imread(paysage.bmp); Imwrite(A/255); For i=1:size(A,1) For j=1:size(A,1) B(i,j)=255-A(i,j); End Figure1(A); Imshow(A/255);imhist(A); Figure2(B); Imshow(B/255);imhist(B);
est ce que ce code résout mon problème?? parce que je possède pas matlab sur mon pc et je peux pas le tester
Bonjour,
Une première remarque, enlève les majuscules dans les noms des fonctions et dans les mots clés.
Ensuite, à la place de Figure1(A);, je pense que tu voulais écrire figure(1).
Enfin, je te conseille de regarder la définition de l'égalisation d'histogramme, ce n'est pas du tout ce que fait ton code.
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
merci pour la documentation
et j'ai essayé de développer une autre fonction mais je peux pas la tester car matlab n'est pas installer et j'ai besoin de cette fonction urgent
est ce que qquelqu'un peu l'exécuter et me dit si elle fait une égalisation d'histogramme ou non
merci d'avance
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
19
20
21
22
23
24
25
26
27
28
29
30
31 function [y0,tr,ypdf,xpdf]=histeq(x0,L,mode) if nargin<3, mode=0; end % default not plotting figures if nargin<2, L=256; end % default L=256 bins=[0:L-1]; [m,n]=size(x0); len=m*n; x=reshape(x0,len,1); xpdf=hist(x,bins); % pdf, 1 x L tr=round(xpdf*triu(ones(L))*(L-1)/len); % cdf, range from 0 to L-1 y0=zeros(m,n); for i=1:L, if xpdf(i)>0, y0=y0+[x0==i-1]*tr(i); end end ypdf=hist(reshape(y0,len,1),[0:L-1]); % pdf of y, 1 x L if mode==1, figure(1), subplot(211),stem([0:L-1],xpdf),title('histogram, original') axis([0 256 0 500]) subplot(212),stem([0:L-1],ypdf),title('histogram, equalized'), axis([0 256 0 500]) figure(2), stairs([0:L-1],tr),title('transformation'), axis([0 256 0 256]) figure(3),subplot(121),imagesc(uint8(x0)),title('before'),colormap('gray') subplot(122),imagesc(uint8(y0)),title('after'),colormap('gray') end
Mais bien sûr...
Vu la description faîte par le vrai auteur, oui cette fonction effectue une égalisation d'histogramme.
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager