[原文部分转载】:http://blog.csdn.net/wrj19860202/archive/2011/04/16/6327094.aspx
在连续情况下,图像函数为 ,那么图像的p+q阶几何矩(标准矩)定义为:
p+q阶中心距定义为:
其中 和 代表图像的重心,
对于离散的数字图像,采用求和号代替积分:
和 分别是图像的高度和宽度;
归一化的中心距定义为:
;其中
(PS_yang: 此处的 ρ 的取值有争议,不同文献 [不变矩算法研究.丁明跃.华科] 给了不同的公式。
主要争议在于ρ后是否要加1。个人编程实践发现,加1应该是正确的选择。
个人在Hu矩原著:Visual Pattern Recognition by Moment Invariants 中没能找到原始公式。手头也没有相关书籍的详细解释,所以,暂留做疑问。还望各位读者指点。)
利用二阶和三阶归一化中心矩构造了7个不变矩 :
这7个不变矩构成一组特征量,Hu.M.K在1962年证明了他们具有旋转,缩放和平移不变性。
实际上,在对图片中物体的识别过程中,只有 和 不变性保持的比较好,其他的几个不变矩带来的误差比较大,有学者认为只有基于二阶矩的不变矩对二维物体的描述才是真正的具有旋转、缩放和平移不变性( 和 刚好都是由二阶矩组成的)。不过我没有证明是否是真的事这样的。
由Hu矩组成的特征量对图片进行识别,优点就是速度很快,缺点是识别率比较低,我做过手势识别,对于已经分割好的手势轮廓图,识别率也就30%左右,对于纹理比较丰富的图片,识别率更是不堪入眼,只有10%左右。这一部分原因是由于Hu不变矩只用到低阶矩(最多也就用到三阶矩),对于图像的细节未能很好的描述出来,导致对图像的描述不够完整。
Hu不变矩一般用来识别图像中大的物体,对于物体的形状描述得比较好,图像的纹理特征不能太复杂,像识别水果的形状,或者对于车牌中的简单字符的识别效果会相对好一些。