📄 invmoments.m
字号:
function phi=invmoments(F)
I=imread('F:\dingwei\1.bmp');
F=logical(I);
if (ndims(F)~=2)|issparse(F)|~isreal(F)|~(isnumeric(F)|islogical(F))
error(['F must be a 2-D,real,nonsparse,numeric or logical matrix.']);
end
F=double(F);
phi=compute_phi(compute_eta(compute_m(F)))
%-------------------------------------------------------------------------%
function m=compute_m(F)
[M,N]=size(F);
[x,y]=meshgrid(1:N,1:M);
x=x(:);
y=y(:);
F=F(:);
m.m00=sum(F)
if(m.m00==0)
m.m00=eps;
end
m.m10=sum(x.*F);
m.m01=sum(y.*F);
m.m11=sum(x.*y.*F);
m.m20=sum(x.^2.*F);
m.m02=sum(y.^2.*F);
m.m30=sum(x.^3.*F);
m.m03=sum(y.^3.*F);
m.m12=sum(x.*y.^2.*F);
m.m21=sum(x.^2.*y.*F);
%-------------------------------------------------------------------------%
function e=compute_eta(m)
xbar=m.m10/m.m00;
ybar=m.m01/m.m00;
e.eta11=(m.m11-ybar*m.m10)/m.m00^2;
e.eta20=(m.m20-xbar*m.m10)/m.m00^2;
e.eta02=(m.m02-ybar*m.m01)/m.m00^2;
e.eta30=(m.m30-3*xbar*m.m20+2*xbar^2*m.m10)/m.m00^2.5;
e.eta03=(m.m03-3*ybar*m.m02+2*ybar^2*m.m01)/m.m00^2.5;
e.eta21=(m.m21-2*xbar*m.m11-ybar*m.m20+2*xbar^2*m.m01)/m.m00^2.5;
e.eta12=(m.m12-2*ybar*m.m11-xbar*m.m02+2*ybar^2*m.m10)/m.m00^2.5;
%-------------------------------------------------------------------------%
function phi=compute_phi(e)
phi(1)=e.eta20+e.eta02;
phi(2)=(e.eta20-e.eta02)^2+4*e.eta11^2;
phi(3)=(e.eta30-3*e.eta12)^2+(3*e.eta21-e.eta03)^2;
phi(4)=(e.eta30+e.eta12)^2+(e.eta21+e.eta03)^2;
phi(5)=(e.eta30-3*e.eta12)*(e.eta30+e.eta12)*((e.eta30+e.eta12)^2-3*(e.eta21+e.eta03)^2)+(3*e.eta21-e.eta03)*(e.eta21+e.eta03)*(3*(e.eta30+e.eta12)^2-(e.eta21+e.eta03)^2);
phi(6)=(e.eta20-e.eta02)*((e.eta30+e.eta12)^2-(e.eta21+e.eta03)^2)+4*e.eta11*(e.eta30+e.eta12)*(e.eta21+e.eta03);
phi(7)=(3*e.eta21-e.eta03)*(e.eta30+e.eta12)*((e.eta30+e.eta12)^2-3*(e.eta21+e.eta03)^2)+(3*e.eta21-e.eta03)*(e.eta21+e.eta03)*(3*(e.eta30+e.eta12)^2-(e.eta21+e.eta03)^2);
U0=[phi(1),phi(2),phi(3),phi(4),phi(5),phi(6),phi(7)]
for i=1:7
if (abs(U0(i))==0)
phi(i)=0;
else
phi(i)=abs(log10(abs(U0(i))));
end
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -