验证Hu矩的旋转不变性

来源:互联网 发布:制作微课都用哪些软件 编辑:程序博客网 时间:2024/06/06 01:58

图像矩Image Moment

http://en.wikipedia.org/wiki/Image_moment


Hu矩先由中心矩开始计算,因此具有平移不变性

 

接着将每个中心矩除以,因此其具有等比例尺度缩放不变性

 

下面用mathematica验证其旋转不变性,在上述步骤下,考虑离散化后的一个点的位置,得到:


mathematica测试代码:

m={{Cos[t],-Sin[t]},{Sin[t],Cos[t]}};v[i_]:=Transpose[{{x[i],y[i]}}];vv[i]=m.v[i];n[p_,q_]:=vv[i][[1]]^p vv[i][[2]]^q;hu[1]=n[2,0]+n[0,2]//FullSimplifyhu[2]=(n[2,0]-n[0,2])^2+4n[1,1]^2//FullSimplifyhu[3]=(n[3,0]-3n[1,2])^2+(3n[2,1]-n[0,3])^2//FullSimplifyhu[4]=(n[3,0]+n[1,2])^2+(n[2,1]+n[0,3])^2//FullSimplifyhu[5]=(n[3,0]-3n[1,2]) (n[3,0]+n[1,2])((n[3,0]+n[1,2])^2-3 (n[2,1]+n[0,3])^2)+(3 n[2,1]-n[0,3]) (n[2,1]+n[0,3])(3(n[3,0]+n[1,2])^2-(n[2,1]+n[0,3])^2)//FullSimplifyhu[6]=(n[2,0]-n[0,2])((n[3,0]+n[1,2])^2-(n[2,1]+n[0,3])^2)+4n[1,1](n[3,0]+n[1,2])(n[2,1]+n[0,3])//FullSimplifyhu[7]=(3 n[2,1]-n[0,3])(n[3,0]+n[1,2])((n[3,0]+n[1,2])^2-3(n[2,1]+n[0,3])^2)-(n[3,0]-3n[1,2])(n[2,1]+n[0,3])(3(n[3,0]+n[1,2])^2-(n[2,1]+n[0,3])^2)//FullSimplifyhu[8]=n[1,1]((n[3,0]+n[1,2])^2-(n[0,3]+n[2,1])^2)-(n[2,0]-n[0,2]) (n[3,0]+n[1,2]) (n[0,3]+n[2,1])//FullSimplify

即:


其中为像素点的归一化强度值或者出现概率,

若设,那么可知这些矩和的模有关,和的幅角无关

由于旋转是正交变换,不改变向量的模值,因此用来构造矩使得Hu矩具有旋转不变性

Hu矩不保证错切变换的不变性和非等比例缩放的不变性

 

匹配两个形状,若求解出其形状间的变换关系或者对应点,再来计算匹配代价通常能更加准确

通过对两个形状各自的相同阶数的矩应用某个形状变换模型,归一化到一致的常数,

可以建立等式约束,使得形状变换模型中的自由度或者参数个数减少,从而简化求解形状变换参数的过程

0 0
原创粉丝点击