www.gusucode.com > 灰度共生矩阵、灰度梯度共生矩阵提取纹理特征 > code6/GrayExitMonentR.m
function OUT=GrayExitMonentR(IN) % 灰度共生矩阵为p2; % 二阶矩 f1; % 相关度 f2; % 墒 f3; % 对比度 f4; % 逆差矩 f5; % 和方差 f6; % close all; gray=256; [R,C]=size(IN); %把图象降为32像素 % IN=uint8(IN/8); % max(IN(:)) p1=zeros(gray); for M=1:R for N=1:(C-1) p1(IN(M,N)+1,IN(M,N+1)+1)= p1(IN(M,N)+1,IN(M,N+1)+1)+1; p1(IN(M,N+1)+1,IN(M,N)+1)= p1(IN(M,N+1)+1,IN(M,N)+1)+1; end end %复制一个共生矩阵 p2=p1; % figure,imshow(p2); %归一化 p2=double(p2)/(M*N); %计算二阶矩 f1 f1=p2.^2; f1=sum(f1(:)); % 计算相关度 f2 colour=0:gray-1; m1=sum(p2)*colour(:); m2=m1; pp=sum(p2); v1=((colour-m1).^2)*pp(:); v2=v1; [m,n]=meshgrid(colour,colour); pp=m.*n.*p2; f2=(sum(pp(:))-m1*m2)/(v1+eps)*(v2+eps); %计算墒 f3 pp=(p2.*log2(p2+eps)); f3=-sum(pp(:)); %计算对比度 f4 f4=0; k_f4=0; % for k=1:gray-1 % for i=1:gray % for j=1:gray % if (abs(i-j)==k) % k_f4=k_f4+p2(i,j); % end % end % end % f4=f4+k_f4*k^2; % end for k=1:gray-1 for i=1:gray-1 if (i+k)<=gray k_f4=k_f4+2*p2(i,i+k); end end f4=f4+k_f4*k^2; end %计算逆差矩 f5 f5=0; for k=1:gray for j=1:gray f5=f5+p2(k,j)/(1+(j-k)^2); end end %计算和方差 f6 f6=0; for k=2:2*gray for i=1:k-1 j=k-i; if j<=gray&i<gray f6=f6+(i-j)^2*p2(i,j); end end end % x=1:50:300; OUT(1,1)=f1; OUT(1,2)=f2; OUT(1,3)=f3; OUT(1,4)=f4; OUT(1,5)=f5; OUT(1,6)=f6; % if num>2 % plot(x,OUT,'-'); % hold on; % else % plot(x,OUT,'-*r'); % hold on; % end