在上一个教程中,我们讲到了轮廓的查找以及绘制,但是只掌握这些还是远远不够的,我们经常需要一些更加复杂的操作,本次教程我们将谈谈关于轮廓的特征。
图像的矩
图像识别的一个核心问题是图像的特征提取,简单描述即为用一组简单的数据(数据描述量)来描述整个图像,这组数据越简单越有代表性越好。良好的特征不受光线、噪点、几何形变的干扰,图像识别技术的发展中,不断有新的描述图像特征提出,而图像不变矩就是其中一个。
从图像中计算出来的矩通常描述了图像不同种类的几何特征如:大小、灰度、方向、形状等,图像矩广泛应用于模式识别、目标分类、目标识别与防伪估计、图像编码与重构等领域。
严格来讲矩是概率与统计中的一个概念,是随机变量的一种数字特征。设xx为随机变量,C为常数,则量E[(x−c)^k]称为X关于C点的k阶矩。比较重要的两种情况如下:
c=0,这时a_k=E(X^k)称为X的k阶原点矩。
c=E(X),这时μ_k=E[(X−EX)^k]称为X的k阶中心矩。
一阶原点矩就是期望,一阶中心矩μ_1=0,二阶中心矩μ_2就是X的方差Var(X)。在统计学上,高于4阶的矩极少使用,μ_3可以去衡量分布是否有偏,μ_4可以衡量分布(密度)在均值附近的陡峭程度。
针对一幅图像,我们把像素的坐标看成是一个二维随机变量(X, Y),那么一副灰度图可以用二维灰度图密度函数来表示,因此可以用矩来描述灰度图像的特征。
OpenCV中提供的API用来计算中心矩和Hu矩,下面主要介绍Hu的原理。
一幅M×N的数字图像f(i,j),其p+q阶几何矩m_pq和中心矩μ_pq为:
其中f(i,j)为图像在坐标点(i,j)处的灰度值。
若将m_00看做图像的灰度质量,则