⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 invmoments.m

📁 使用matlab实现手写阿拉伯数字的识别。
💻 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 + -