Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#1 |
普通会员
注册日期: 2008-02-29
年龄: 44
帖子: 92
声望力: 19 ![]() |
![]()
%纹理的统计法
I=rgb2gray(imread('')); h=imhist(I); h=h/sum(h); %归一化 L=length(h); %直方图的长度 L=L-1; %统计1到3阶统计矩 h=h( ![]() rad=0:L; rad=rad./L; a=rad*h; rad=rad-m; %计算统计矩 stm=zeros(1,3); stm(1)=m; for j=2:n stm(j)=(rad.^j)*h; end %获取归一化的1~3阶统计矩 usm(1)=sm(1)*L; usm(2)=sm(2)*L^2; usm(3)=sm(3)*L^3; %计算6个统计纹理量度 %分别为均值,标准差,平滑度,三阶矩,一致性,熵 st(1)=usm(1); st(2)=usm(2).^0.5; st(3)=1-1/(1+sm(2)); st(4)=usm(3)/(L^2); st(5)=sum(h.^2); st(6)=-sum(h.*log2(h+eps)); %频谱特性 I1=rgb2gray(imread('')); I2=rgb2gray(imread('')); % 计算I1的频谱纹理量度 s=fftshift(fft2(I1)); %傅立叶变换 s=abs(s); [nc,nr]=size(s); x0=nc/2+1; %计算原点的坐标 y0=nr/2+1; rmax=min(nc,nr)/2-1; srad=zeros(1,rmax); srad(1)=s(x0,y0); thetha=91:270; for r=2:rmax [x,y]=pol2cart(thetha,r); x=round(x)'+x0; y=round(y)'+y0; for j=1:length(x) srad(r)=sum(s(sub2ind(size(s),x,y))); end end [x,y]=pol2cart(thetha,rmax); x=round(x)'+x0; y=round(y)'+y0; sang=zeros(1,length(x)); for th=1:length(x) vx=abs(x(th)-x0); vy=abs(y(th)-y0); if((vx==0)&(vy==0)) xr=x0; yr=y0; else m=(y(th)-y0)/(x(th)-x0); xr=(x0:x(th))'; end for j=1:length(xr) sang(th)=sum(s(sub2ind(size(s),xr,yr))); end end s=mat2gray(log(1+s)); imshow(s) plot(srad) figure,plot(sang) %不变矩 I=rgb2gray(imread('')); I2=imrotate(I,-4,'bilinear'); I3=fliplr(I); I4=imresize(I,0.5,'bilinear'); A=double(I); [nc,nr]=size(A); [x,y]=meshgrid(1:nr,1:nc); x=x( ![]() y=y( ![]() A=A( ![]() m.m00=sum(A); if m.m00==0 m.m00=eps; end m.m10=sum(x.*A); m.m01=sum(y.*A); xmean=m.m10/m.m00; ymean=m.m01/m.m00; cm.cm00=m.m00; cm.cm02=(sum((y-ymean).^2.*A))/(m.m00^2); cm.cm03=(sum((y-ymean).^3.*A))/(m.m00^2.5); cm.cm11=(sum((x-xmean).*(y-ymean).*A))/(m.m00^2); cm.cm12=(sum((x-xmean).*(y-ymean).^2.*A))/(m.m00^2.5); cm.cm20=(sum((x-xmean).^2.*A))/(m.m00^2); cm.cm21=(sum((x-xmean).^2.*(y-ymean).*A))/(m.m00^2.5); cm.cm30=(sum((x-xmean).^3.*A))/(m.m00^2.5); im(1)=cm.cm20+cm.cm02; im(2)=(cm.cm20-cm.cm02)^2+4*cm.cm11^2; im(3)=(cm.cm30-3*cm.cm12)^2+(3*cm.cm21-cm.cm03)^2; im(4)=(cm.cm30+cm.cm12)^2+(cm.cm21+cm.cm03)^2; im(5)=(cm.cm30-3*cm.cm12)*(cm.cm30+cm.cm12)*((cm.cm30+cm.cm12)^2-3*(cm.cm21+cm.cm03)^2)... +(3*cm.cm21-cm.cm03)*(cm.cm21+cm.cm03)*(3*(cm.cm30+cm.cm12)^2-(cm.cm21+cm.cm03)^2); im(6)=(cm.cm20-cm.cm02)*((cm.cm30+cm.cm12)^2-(cm.cm21-cm.cm03))+4cm.cm11*(cm.cm30+cm.cm12)*(cm.cm21+cm.cm03); im(7)=(3*cm.cm21-cm.cm03)*(cm.cm30+cm.cm12)*((cm.cm30+cm.cm12)^2-3*(cm.cm21+cm.cm03)^2)... +(3*cm.cm12-cm.cm30)*(cm.cm21+cm.cm03)*(3*(cm.cm30+cm.cm12)^2-(cm.cm21+cm.cm03)^2); |
![]() |
![]() |