bonjour,
voila j'ai une image.
je dois faire la difference de niveau de gris entre deux pixels voisins pour chaque pixel.
et ensuite faire l'histogramme de la distribution de cette difference.
je ne sais pas si je suis assez explicite..
j'ai essaye avec imhist mais ca ne marche pas.je croi que j'ai aussi un probleme avec les int8 ou uint8..
je ne sais pas si ce que j'ai fait est bon
pourriez vous m'aider?
voici mon code:
Code:A=imread('./image/paysage','jpeg'); %sum of the 3 matrix and divided by 3 to get an unique matrix L=(1/3)*( A(:,:,1)+A(:,:,2)+A(:,:,3) ); %convert the unsigned int8 matrix into a signed one in order to allow %values under zero for matrix B and vector V B=cast(L,'int8'); %B is an m*n matrix with F=size(B(:,1)); m=F(1); G=size(B(1,:)); n=G(2); k=1; %creation of a vector V with a length of m*(n-1) V=zeros(1,m*(n-1),'int8'); % length of V D=m*(n-1) for i=1:1:m for j=1:1:n if(j<n) V(k)=B(i,j)-B(i,j+1); k=k+1; end end end %we have to extract the shape of the histogramm F=zeros(5,1); GN=zeros(5,1); p=1; for x=-100:100 %the number of element of V equals to x is k F=find(V==x); r=length(F); %in order to normalize GN(p)=r/D; p=p+1; end figure(2) bar(-100:100,GN,'r')
-----