📄 invmoments.m
字号:
function phi = invmoments(A)
A = double(A);
[M,N] = size(A);
[X,Y] = meshgrid(1:M, 1:N);
X = X(:);
Y = Y(:);
A = A(:);
m.m00 = sum(A);
m.m10 = sum(X.*A);
m.m01 = sum(Y.*A);
m.m11 = sum(X.*Y.*A);
m.m20 = sum(X.^2.*A);
m.m02 = sum(Y.^2.*A);
m.m30 = sum(X.^3.*A);
m.m03 = sum(Y.^3.*A);
m.m12 = sum(X.*Y.^2.*A);
m.m21 = sum(X.^2.*Y.*A);
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;
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.eta12 - e.eta30)*(e.eta21 + e.eta03)*...
(3*(e.eta30 + e.eta12)^2 - (e.eta21 + e.eta03)^2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -