原点矩、中心距、Hu矩

最早接触矩是在《概率论与数理统计》中,下面给出书中的对于矩的定义:

X为随机变量,c为常数,k为正整数。则量E[(Xc)k]称为X关于c点的k阶矩。

有两种特殊的情况:

(1). 当c=0时,αk=E(Xk)称为Xk阶原点矩;

(2). 当c=E(X)时,μk=E[(XEX)k]称为Xk阶中心矩。

明显,一阶原点矩为期望,一阶中心距μ1=0,二阶中心矩μ2为随机变量X的方差Var(X)

在统计学上,高于四阶的矩极少使用,三、四阶矩有些应用,但也不多。μ3可用于衡量分布是否有偏,μ4用于衡量分布(密度)在均值附近的陡峭程度。

在图像处理中,无论是原点矩还是中心矩,不能同时具备尺度、旋转和平移不变性,中心矩仅具备平移不变性,而归一化中心矩不仅具备平移不变性,还具有尺度不变性。而Hu矩是利用二阶和三阶归一化中心矩构造出的7个不变矩,在1962年,Hu.M.K证明了它们的旋转、尺寸和平移不变性。

下面给出图像中,各类矩的计算方式:

(p+q)阶原点矩定义为: αpq=xpyqf(x,y)dxdy

(p+q)阶中心距定义为: μpq=(xx~)p(yy~)qf(x,y)dxdy

(p+q)阶归一化原点矩定义为: ξpq=αpqα00

(p+q)阶归一化中心矩定义为: ηpq=μpqα00

Hu矩定义为:

ϕ1=η20+η02ϕ2=(η20η02)2+4η112ϕ3=(η203η12)2+3(η21η03)2ϕ4=(η30+η12)2+(η21+η03)2ϕ5=(η30+3η12)(η30+η12)[(η30+η12)23(η21+η03)2]+(3η21η03)(η21+η03)[3(η30+η12)2(η21+η03)2]ϕ6=(η20η02)[(η30+η12)2(η21+η03)2]+4η11(η30+η12)(η21+η03)ϕ7=(3η21η03)(η30+η12)[(η30+η12)23(η21+η30)2]+(3η21η30)(η21+η30)[3(η30+η12)2(η21+η30)2]

区域特征

这里所谓的区域广义上指二值图像中的前景部分。

最简单的特征是区域的面积,可用零阶原点矩表示: α00=A=(x,y)R1=i=1n(ceicsi+1)

其中,n表示行程数,csicei表示第i个行程的开始和结束列位置。

而要获得区域的重心位置,则需要使用到归一化原点矩: (xg,yg)=(ξ10,ξ01)=(Rxα00,Ryα00)

值得注意的是,虽然重心计算过程都是使用像素精度的数据,但是它是一个亚像素精度的特征。

二阶中心矩的使用可以确定区域的方位和范围。例如区域的椭圆参数:长轴r1,短轴r2以及相对于横轴的夹角θ

r1=2(η20+η02+(η20η02)2+4η112)r2=2(η20+η02(η20η02)2+4η112)θ=12arctan2η11η02η20

通过椭圆特征可以推导出一个非常有用的特征——各向异性,它可用来描述区域细长程度: anisometry=r1r2

与此相关的还有蓬松度(Bulkiness)结构因子(Structure Factor)

bulkiness=πr1r2α00sturcture factor=anisometrybulkiness1

另外,还有的区域特征如下:

  1. 凸性(convexity),区域面积和该区域凸包面积的比值,用于描述区域的紧凑程度,取值在01之间: convexity=α00Sconvexhull

  2. 轮廓长度(L), 区域轮廓线段的欧几里得距离和;

  3. 紧性(compactness),与凸性意义类似。所有圆形区域的紧性特征值都为1,其他区域紧性特征值更大。 compactness=L24πα00

  4. 圆度(circularity),描述区域近视于圆形的程度

circularity=min(1,α00max_dist2π)

其中, max_dist为轮廓上到中心的最远距离。这个特征值对于越小的区域近视误差越大。该特征对于大的凸起、孔及未连接区域的响应较大。

  1. 轮廓点到中心点平均距离及方差
mR=1Kk=0K1||(xk,yk)(x¯,y¯)||σR2=1Kk=0K1[||(xk,yk)(x¯,y¯)||mR]2

其中,K表示轮廓点个数;

通过这两个属性能推出以下特征:

roundness=1σRmRsides=1.4111(mRσR)0.4724

另外, mRσR有以下三个性质:

(1). 数值越大,形状越趋于圆形;

(2). 从数字图像获得的值与连续图像中获得的值一致;

(3). 与方向和面积无关。

灰度值特征

有了区域R后,可以结合原始图像直接提取到区域R中的灰度信息;例如,最大灰度值最小灰度值

gmin=min(x,y)Rf(x,y)gmax=max(x,y)Rf(x,y)

这两个值方便后续对每个单独区域进行归一化处理操作。

平均灰度值可以对区域内的亮度进行一个度量,结合灰度值方差,可以对区域内的灰度值进行变换:

gi¯=1α00i(x,y)Rif(x,y)s2=1α00i1(x,y)Ri[f(x,y)gi¯]2

这里α00i是指第i个区域的面积。

灰度直方图累计直方图也属于灰度值特征。基于直方图可计算出中值灰度值灰度各向异性:

gmedian=min{g:cg0.5}entropy=0255pilog2(pi)gray_anisotropy=0gmedianpilog2(pi)entropy

与区域矩类似,灰度值矩同样能计算出灰度值面积、重心以及椭圆参数等;不同的在于,使用灰度值特征,可以将图像视作一个模糊集合,不必对每个像素是否属于某个物体做硬性判断,而是用模糊隶属关系值确定此像素属于此物体的百分比程度。模糊集理论可参考《数字图像处理》一书中的介绍。下面给出两个基于模糊集计算的特征:fuzzy_perimeterfuzzy_entropy

fuzzy_perimeter用于确定像素点与其相邻像素点隶属程度差异;

fuzzy_entropy用于度量与白色图像或者黑色图像近视程度。

fuzzyperimeter=x=1M1y=1N1|uX(f(x,y))uX(f(x,y+1))|+x=1M1y=1N1|uX(f(x,y))uX(f(x+1,y))|fuzzyentropy=1MNln2lTe(l)h(l)

其中:

uX(x)={0,xa2(xaca)2,a<x<b12(xaca)2,b<xc1,cxTe(l)=u(l)lnu(l)(1u(l))ln(1u(l))h(l)为图像直方图取值

轮廓特征

Blob除了使用行程编码的区域描述,还可以使用轮廓控制点进行描述。而基于轮廓控制点则可快速的获得凸包、最小外接圆和任意方向的最小外接矩形等。当然,利用轮廓控制点计算矩也是我们关心的问题,而其中最为关心的问题就是轮廓是否存在面积,显然面积必须是围绕一个区域的轮廓才存在这些矩特征,也就是说轮廓必须是闭合的且不能自相交。基于轮廓控制点计算矩的方式如下:

α00=12i=1n(xi1yixiyi1)α10=16α00i=1n(xi1yixiyi1)(xi1+xi)α01=16α00i=1n(xi1yixiyi1)(yi1+yi)α20=112α00i=1n(xi1yixiyi1)(xi12+xi1xi+xi2)α02=112α00i=1n(xi1yixiyi1)(yi12+yi1yi+yi2)α11=124α00i=1n(xi1yixiyi1)(2xi1yi1+xi1yi+xiyi1+2xiyi)

基于轮廓矩,同样可以获得轮廓面积、重心以及椭圆属性等其他特征。