作者简介:翟凤文(1980-),女,博士研究生.研究方向:模式识别,医学图像处理.E-mail:930843420@qq.com
首先对Mukundan和Ramakrishnan提出的Zernike矩快速算法进行了修正,给出了更为完整、准确的坐标变换公式。然后给出了由伪极坐标系向笛卡尔坐标系转换的方法。最后,将每一幅图像在相同阶数和重复度下的4个方向Zernike矩模值的均方差与均值的比作为评价指标,对修正前和修正后的算法以及图像预处理对Zernike矩快速算法的影响进行了综合验证。针对5幅图片,两种算法分别有5×11个评价值,实验结果表明:改进后的算法有44个评价值好于原始算法,同时也通过实验验证了多种预处理对Zernike矩的影响。
In this paper, first, the fast computation algorithm of Zernike moments proposed by Mukundan and Ramakrishnan was amended. Second, the transformation method from pseudo polar coordinates to the Descartes coordinates was proposed. Third, the effects of pretreatment of image on both original algorithm and the amended algorithm were tested. For each image at fixed order and fixed repetition, four moment magnitudes corresponding to the four rotations were obtained. Then the ratio of standard deviation and mean value of the four magnitudes were taken as the evaluation indicator. For comparison, the original algorithm and the amended algorithm each got 5×11 indicators from five selected images. Results show that the amended algorithm has 44 indicators exceeding that of the original algorithm.
对光学变换和几何变换具有不变性的局部特征的研究在研究图像理解、计算机视觉、图像匹配、纹理分类以及图像检索中有着非常重要的作用[ 1, 2, 3]。Hu[ 4]最早将矩理论用于形状识别,证明了矩的一系列性质,并提出了不变矩的概念。此后,又有学者相继提出了正交矩(Legendra矩,Zernike矩不变量)、标准矩、三维矩等概念。目前,矩特征已经广泛应用于目标识别、景物匹配、形状分析、图像正则化以及字符识别等方面[ 3]。Zernike矩是正交不变矩中比较成熟的一种。Zernike矩的基是正交径向多项式,可以保证所提取的特征相关性小、冗余性小、抗噪能力强,因此,在图像处理、图像识别、机器视觉中得到了广泛的应用[ 5]。Mukundan于1995年提出了Zernike矩快速算法,并得到了广泛的应用[ 6, 7, 8, 9],该算法最重要的思想在于将图像数据的笛卡尔坐标系表示转化为伪极坐标系表示,替代了原始的由笛卡尔坐标系表示转化为极坐标系表示的计算方法,减少了平方、开方等计算,提高了算法效率。
为了验证该算法的有效性和准确性,本文在原文的基础上做了相应的实验和数学证明,发现Mukundan提出的坐标转换公式仅对第1和第2象限的数据是正确的,而对第3和第4象限的数据是错误的,本文对此作了相应的修正,给出了更合理的转换公式。同时,目前鲜有文献给出从伪极坐标向对应的笛卡尔坐标转换的方法,为了方便算法的理解和实际计算,本文给出了从伪极坐标向对应的笛卡尔坐标转换的具体方法。最后针对简单图像、复杂图像、二值化图像、非二值化图像、归一化图像和非归一化图像分别使用修正前和修正后的算法进行了实验,比较了二值化、归一化以及灰度处理对图像Zernike矩的影响。
Zernike矩是基于Zernike多项式的正交化函数,所利用的正交多项式集合在连续的单位圆内完备正交。
n阶 m重复度的Zernike多项式 Vnm( r, θ)定义为极坐标系中点( r, θ)的函数:
式中: Rnm( r)为正交径向多项式:
式中: n=0,1,…, ∞, n为正整数;( n-|m|)为偶数;且满足 |m|≤ n; j=
Zernike多项式的正交性体现在:
式中:*表示取共轭;
Zernike矩的概念首先由Teague于1980年引入[ 7],对于某一密度函数为 f( x, y)的图像,其 n阶 m重复度的Zernike矩定义为:
其极坐标形式为:
由式(5)知,对于一幅二维图像,其Zernike矩 Znm为一复数,将其实部和虚部分别记为 Cnm和 Snm,其中:
根据正交性,式(5)的反变换为:
式中: M表示所需使用的矩的最高阶数,由于不可能给出所有阶的Zernike矩,所以一般 M取到40就可以较好地反变换出原始图像。
由于实际问题中所需处理的图像通常为数字图像,因而需要将式(6)(7)离散化,又由于Zernike多项式在单位圆内正交,因此需要将所考虑的图像转换为单位圆内的极坐标形式[ 7]。Mukundan和Ramakrishnan在文献[6]中指出计算Zernike矩需要将笛卡尔坐标系转换为极坐标系,此过程涉及大量的平方和开方计算,效率较低,因此提出了一种将笛卡尔坐标系转换为伪极坐标系的方法,并在此基础上,给出了Zernike矩的快速算法。
Mukundan提出的转换思想如 图1所示。
Mukundan和Ramakrishnan指出,对于任一 N×N的图像 f( x, y),不失一般性,令坐标原点位于图像的中心,则 -N/2≤( x, y)≤ -N/2。对于任一像素点( x, y),引入2个参数 ρ和 σ,它们唯一地对应像素点( x, y),其定义为:
若 ρ=|x|,则:
若 ρ=|y|,则:
对于对应的点( x, y)有:
Mukundan指出, ρ在径向方向上取值从1到 N/2,在圆周方向上 σ取值从1到8 ρ,由 图1可知 f( ρ, θ)和 f( x, y)是一一对应的,并且 σ是大于0的。
但是,可以发现,对于 图1(a)中的像素点(0,0)、(3,3)和(-2,3)分别根据式(9)计算可得其伪极坐标对应为 图1(b)中的(0,0)、(3,3)和(3,8)。而对于像素点(-1,-3)和(2,-2),分别应用式(9)进行计算可得其伪极坐标为(3,-7)和(2,-2),与 σ取值从1到8 ρ是相矛盾的,并且按照式(9), σ的取值是从 -4 ρ到4 ρ,而非1到8 ρ。由上面的分析可知,式(9)对第1象限和第2象限内的像素点,转换结果是正确的,而对于第3和第4象限的像素点,转换的结果是错误的。这是该转换方式的一个纰漏。
根据Mukundan的转换思想,本文对式(9)进行修正,得到式(11),该转换过程分为两步:
Step 1
若 ρ=|x|,则:
σt =2 ×( ρ-x) ×
若 ρ=|y|,则:
σt =2 ×y-
Step 2
若 σt≥0,则:
σ=σt
否则:
对于对应的点( x, y)有:
由式(11)进行由笛卡尔坐标系向伪极坐标系的转换,可以验证转换的正确性。此时 ρ取值从1到 N/2, σ取值从1到8 ρ,真正符合了Mukundan的转换思想。
由参数 ρ, σ可定义相应的伪极坐标[ 1]:
r=
式中: r∈[0,1]; θ∈[0,2π],此时
d r=
经过该转换,式(6)(7)可以分别表示成如下的离散形式:
设原始图像的Zernike矩为 Znm,则旋转角度 θ后,旋转图像的Zernike矩为 Z'nm, Znm与 Z'nm存在下面的关系:
Z'nm=Znm
因此图像Zernike矩的模存在旋转不变性,此特性常被用作图像区域特征的特征描述子。
由式(13)(14)知,在计算 Znm的实部 Cnm和虚部 Snm时,要使用伪极坐标下的 f( ρ, σ),此时需要找到原始笛卡尔坐标系下对应像素的灰度值 f( x, y),没有文献给出这个过程,因此影响了读者对该算法的理解。在此给出下面的伪代码以求得 f( ρ, σ):
function get_f(ρ,σ)
{
if(σ<ρ+1)
{ x=ρ;
y=σ; }
if(σ>ρ&&σ<2*ρ+1)
{y=ρ;
x=ρ-σ%ρ;}
if(σ>2*ρ&&σ<3*ρ+1)
{y=ρ;
x=-σ%ρ;}
if(σ>3*ρ&&σ<4*ρ+1)
{y=ρ-σ%ρ;
x=-ρ;}
if(σ>4*ρ&&σ<5*ρ+1)
{y=-σ%ρ;
x=-ρ;}
if(σ>5*ρ&&σ<6*ρ+1)
{y=-ρ;
x=-(ρ-σ%ρ);}
if(σ>6*ρ&&σ< 7*ρ+1)
{y=-ρ;
x=σ%ρ;}
if (σ>7*ρ&&σ< 8*ρ)
{y=-(ρ-σ%ρ);
x=ρ;}
f(ρ,σ)=f(x,y);
}
需要注意的是,这里要求原始图像的坐标原点在图像的中心,因此,假设图像的尺寸为 N×N,则 -N/2≤ x, y≤ -N/2。
实验用图如 图2所示。为了验证修正后算法的正确性,并验证预处理对图像Zernike矩的影响,本文分别按照原始算法和改进后的算法对归一化的图像a、未归一化的图像a、归一化的图像b、未归一化的图像b以及二值化并归一化的图像b,计算其旋转0°、90°、180°和270°后的Zernike矩的模。实验结果如 表1和 表2所示:
首先分析 表1和 表2中对应的数据, 表1中的数据只有一小部分能够体现Zernike矩的旋转不变性,而 表2中则有一大部分可以体现Zernike矩的旋转不变性。比如,对于归一化的图像a,其4阶Zernike矩 Z42,在旋转0°、90°、180°和270°时, Z42值分别为0.016915,0.033611,0.006804,0.006820,是跳跃的;而在 表2中,分别为0.022631,0.021152,0.024531,0.024642,体现出了Zernike矩的旋转不变性。Zernike多项式只有在连续的单位圆内是正交的,而一幅图像的数据是离散的,因此图像的Zernike矩的模值不可能保证绝对的旋转不变性,而且有时可能会产生较大的跳跃。
为了比较修正后的算法和原始算法在表达图像不变性方面的优劣,分别按照原始算法和修正后的算法,计算了每一幅图片在相同阶数( n)和重复度( m)下旋转0°、90°、180°和270°时,所得的Zernike矩模的标准差与均值的比,如 表3和 表4所示,标准差与均值的比越小表示不变性越好。
表4中用粗体标记的数据比 表3中对应位置数据的数值大,这是由于Zernike矩的数学特性造成的,理论上,Zernike多项式必须是在连续的单位圆内才正交。 表4中其余的数据可以说明修正后的Zernike矩快速算法比原始算法在性能上有了很大的提高。同时可以发现,图像归一化与否对Zernike矩模值的旋转不变性没有太明显的影响,而图像二值化却可以减小图像旋转各角度后Zernike矩模值的标准差与均值的比。图像简单与否与Zernike矩模值的旋转不变性并没有明显的联系。
对Mukundan提出的Zernike矩快速算法原理进行了详细的讨论,发现了该算法在由笛卡尔坐标系向伪极坐标系转换的过程中存在的纰漏,给出了相应的修正,并给出了由伪极坐标系向笛卡尔坐标系转换的伪代码。
通过实验验证了改进后算法的正确性和有效性。同时,实验比较了归一化和二值化,以及图像的复杂度对图像Zernike矩模值旋转不变性的影响。当前对Zernike矩及其相位的研究也越来越深入[ 4, 10, 11],本文可以对Zernike矩的研究和应用提供一定的参考。
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|