论文部分内容阅读
摘要: 在印刷工业上,为了用数字图像处理的方法测量印刷网点的参数,二值化是图像预处理过程中关键的一步,直接影响参数测量的精度。在分析已有数字图像二值化方法的基础上,结合印刷网点图的特征,提出一种基于直方图凹度分析的二值化方法。该算法根据印刷网点图像的灰度直方图特征,利用数学求导的思想求出灰度直方图中双峰之间的谷所对应的灰度值,将该值作为二值化的阈值。实验证明,该方法可以比较准确地求出印刷网点图的二值化阈值,和已有算法相比,扫描率低、速度快、计算准确,具有很好的应用前景。
关键词: 二值化; 阈值; 灰度直方图; 数学求导
引言在印刷工业中,印刷网点(见图1,以下简称网点)是印刷品的基本单元。它在印刷工业中起到决定印品颜色、层次和图像轮廓的作用。网点的主要特征参数有网点大小、网点间距和网点角度。能否准确选取合适的网点参数决定了印品质量的好坏。图1印刷网点放大图
Fig.1Enlarged print dot image传统的网点参数测量方法是采用光学密度计。随着数字图像处理技术的发展,图像处理算法理论上可以快速得到网点的参数[1]。因此,基于嵌入式平台的网点测量仪可以用图像处理的算法得到网点的参数,从而取代了传统网点测量仪器。网点图像的处理过程分为图像预处理和图像识别,而预处理的第一步是对采集到的网点图进行二值化处理。二值化是将图像的灰度值置成0或255的过程,即选择一定的灰度值作为二值化阈值,将图像中大于阈值的像素置为白色,小于阈值的像素置为黑色。二值化主要有全局阈值法、局部阈值自适应法和基于方向信息的二值化方法[2]。本文在分析上述算法的基础上,结合网点图的特点,提出一种基于直方图凹度分析的二值化阈值算法,即利用数学求导的思想计算二值化阈值。实验证明,该算法能比较准确地求出网点图像的二值化阈值。1网点测量仪的工作原理测量仪共由以下三部分组成:(1)网点图像的采集;(2)网点图像的数字图像处理和参数计算;(3)参数计算结果显示。测量仪的整体框图如图2所示。在系统中,图像的采集由CMOS图像传感器完成,网点图的处理及网点参数的计算由ARM核心板完成。当系统初始化完成后,可以通过CMOS图像传感器采集印品的显微数字图像,一帧图像数据采集完成后在屏幕上显示,图像数据则由MCU通过一定的算法处理,最后得到网点的参数:网点大小、网点间距和网点角度。网点图像处理的算法包括图像的灰度化、二值化、去噪、网点参数计算,并将结果显示在GUI上[3]。光学仪器第35卷
在图像处理部分,二值化是图像预处理的关键,二值化准确与否,将影响后期参数计算的精度,进而影响网点参数识别的精度。2网点图的灰度直方图特征灰度直方图是用于表达图像灰度分布情况的统计图表。其横坐标是灰度值r,纵坐标是出现这个灰度值的概率密度h(r)(对连续图像f(x,y)而言),或者是出现这个灰度的概率值h(r)(对数字图像f(m,n)而言)[4]。由图1可以看出,印刷网点图有以下特点:(1)由两种颜色组成:一种是背景色,一种是网点颜色;(2)由大小相近间距相同的点组成,并且点分布在互相垂直的两个方向;(3)不同的网点图的网点面积大小不同。运用MATLAB软件的imhist()函数得到图3所示的灰度直方图,横坐标是灰度级别r,纵坐标是该灰度级出现的个数h(r)。图3印刷网点图的灰度直方图
Fig.3Gray histogram of print dot image灰度直方图能很好地反映图像的总体特征。由图3可以看出,印刷网点图的灰度直方图由明显的双峰组成,一个代表背景,一个代表目标点,即印刷网点。因此,二值化阈值如果选择在双峰之间的“谷”处,可以将网点图二值化成只有背景和目标点的黑白图像[5]。3基于直方图凹度分析求二值化阈值灰度直方图是一种离散的分布图,其包络线是一条连续的曲线,因此对直方图的“谷”的寻找便可以转化为求其包络线h(r)极小值的问题。根据高等数学函数极值的有关问题,曲线h(r)中的极小值点应同时满足下列条件:h(r)r=0(1)
2h(r)r2=0(2)满足上述条件的极小值点所对应的灰度级即可作为分割阈值[6]。但是,上述方法需要用到数值逼近等计算,算法复杂度高,不利于在嵌入式平台中的实现。为了在离散的直方图上寻找到“谷”所对应的灰度值,采用以下离散求导的方法来确定二值化阈值。
3.1确定阈值的灰度级范围一般灰度直方图起止处灰度级的像素个数很少,将像素个数h(r)小于一定值的灰度忽略(即h(r)置0)。这样做的目的在于减小这些小量像素灰度级对于整体阈值计算的影响,从而提高阈值的准确度。设经过上述处理后像素个数不为0的灰度级范围为m~n,灰度值r对应的像素个数为h(r)。首先,比较各灰度的像素数,找到h(r)最大值对应的灰度级Gmax,同时得到灰度级出现个数不为零的起止灰度级Gstart和Gend,如图4所示,Gmax,Gstart和Gend的位置在图中示出:图4Gmax、Gstart、Gend位置示意图
Fig.4Positions of Gmax,Gstart,Gend on gray histogramDs表示Gstart偏离Gmax的距离,De表示Gend偏离Gmax的距离,根据式(3)和式(4)可以计算出Ds和De的值。由灰度直方图的特征可以看出,阈值在偏离距离较大的一边的灰度范围内的“谷”处,图4的Ds大于De的值,因此阈值灰度在Gstart与Gmax之间。Ds=Gmax-Gstart(3)
De=Gend-Gmax(4)3.2离散数学求导经过上述步骤得到的阈值在Gstart与Gmax之间,为了进一步确定阈值的位置,对离散的灰度直方图h(r)一阶求导,求导规则为:Gstart与Gmax之间,若h(r+1)-h(r)大于0,则标记为1;若h(r+1)-h(r)小于0,则标记为-1;若h(r+1)-h(r)等于0,则标记为0。灰度级和像素个数构成一一对应的关系,如表1为列出的局部数值,在Gstart和Gmax之间,一阶求导由式(1)得出,结果见表1: 由一阶求导结果可以看出,除了少数虚假“谷”对一阶求导结果产生错误的影响,一阶求导的总体趋势是正确的,即在Gstart与Gmax之间,上升趋势的一阶求导结果全为1;波峰处的一阶求导结果为1和-1相间的数;下降趋势的一阶求导结果是中间偶有1出现,但不影响总体趋势;波谷处的数据为“谷”处的灰度级别的一阶求导结果,同样出现1和-1交替出现;上升趋势的数据是直到Gmax附近的一阶求导结果。因此可以根据一阶求导来判定灰度级像素数的趋势。
3.3二阶求导由于一阶求导仅求出像素整体的变化趋势,并不能最终确定“谷”所对应的灰度值的位置。因此,再利用二阶求导,精确求出阈值所在的灰度范围。用式(2)对灰度直方图h(r)进行二阶求导,求导结果如表1所示,其中的数据出现了几种数值特点:(1)连续的0(上升趋势的二阶求导数据);(2)2,-2成对交替出现(波峰处、下降趋势、波谷处的二阶求导数据);(3)孤立的2或-2(上升趋势的二阶求导数据);连续出现0,表明像素数随灰度值增加单调递增或递减;交替出现2,-2时,若只出现一对孤立的2或者-2,则表明该处有虚假“谷”,此时对应灰度的二阶求导可以忽略,在第5行置0;若连续交替出现2,-2,表明像素数在波峰或波谷,呈现锯齿状的包络特点;若只有一个-2,该点为变化趋势的转折点。将虚假“谷”去除后的二阶求导值如表1所示。最后,分析表1的数据,阈值在连续出现2,-2的区域,以该区域的中间值(表中的中间灰度值为152)作为二值化的阈值。
3.4实验结果分析将本文的二值化算法与MATLAB的二值化函数graythresh()运算结果进行比较,实验表明,对于网点较大的图像(见图5(a)),该算法求出的阈值可以和graythresh()函数求出的阈值一致,能准确地得到二值化图像(见图5(b)、图5(c));对于网点较小的图像(见图6(a)),该算法优于MATLAB的二值化函数graythresh()(见图6(b)、图6(c))。4结论二值化阈值的求解是网点图像处理关键的一步,其结果准确与否将直接影响网点参数测量的准确度。采用已有的二值化算法虽然可以将网点图像二值化,但结果并不准确,将导致网点面积计算的不可靠。因此,本文在直方图凹度分析法的基础上,用离散数学求导的方法得到直方图“谷”的阈值作为二值化阈值,比较准确地实现了网点图像的二值化。通过与MATLAB二值化函数graythresh()的结果进行实验对比,证明了该方法不仅可靠,而且减少了数据运算量,加快运算速度。
图5网点面积较大时直方图凹度分析法与graythresh()的二值化结果比较
在直方图凹度分析的基础上,运用数学方法对数字图像进行二值化的思想可以提高二值化的速度,对于快速算法的研究很有必要。本文的二值化算法是基于网点图像的算法,并不适用于背景复杂的数字图像二值化的应用,因为此类图像的灰度直方图不一定有双峰。总之,运用数学方法二值化,可以方便利用C语言实现。在工业仪器仪表开发方面有重要的启发。参考文献:
[1]刘浩学.印刷网点面积的测量与计算[J].北京印刷学院学报,2000,8(4):8-13.
[2]彭彦平,马步庄,徐锦林.网点面积检测算法的比较研究[J].包装工程,2006,27(1):76-78.
[3]李松松,瑚琦,章慧贤,等.基于数字图像处理方法的印刷网点测量系统设计[J].光学仪器,2009,31(5):43-47.
[4]王耀南,李树涛,毛建旭.计算机图像处理与识别技术[M].北京:高等教育出版社,2005:65-71.
[5]毛翠丽,马卫红,盂立庄,等.基于数字图像处理的火焰长度计算方法[J].光学仪器,2005,29(1):27-31.
[6]龚声蓉,刘纯平,王强.数字图像处理与分析[M].北京:清华大学出版社,2006:177-186.
关键词: 二值化; 阈值; 灰度直方图; 数学求导
引言在印刷工业中,印刷网点(见图1,以下简称网点)是印刷品的基本单元。它在印刷工业中起到决定印品颜色、层次和图像轮廓的作用。网点的主要特征参数有网点大小、网点间距和网点角度。能否准确选取合适的网点参数决定了印品质量的好坏。图1印刷网点放大图
Fig.1Enlarged print dot image传统的网点参数测量方法是采用光学密度计。随着数字图像处理技术的发展,图像处理算法理论上可以快速得到网点的参数[1]。因此,基于嵌入式平台的网点测量仪可以用图像处理的算法得到网点的参数,从而取代了传统网点测量仪器。网点图像的处理过程分为图像预处理和图像识别,而预处理的第一步是对采集到的网点图进行二值化处理。二值化是将图像的灰度值置成0或255的过程,即选择一定的灰度值作为二值化阈值,将图像中大于阈值的像素置为白色,小于阈值的像素置为黑色。二值化主要有全局阈值法、局部阈值自适应法和基于方向信息的二值化方法[2]。本文在分析上述算法的基础上,结合网点图的特点,提出一种基于直方图凹度分析的二值化阈值算法,即利用数学求导的思想计算二值化阈值。实验证明,该算法能比较准确地求出网点图像的二值化阈值。1网点测量仪的工作原理测量仪共由以下三部分组成:(1)网点图像的采集;(2)网点图像的数字图像处理和参数计算;(3)参数计算结果显示。测量仪的整体框图如图2所示。在系统中,图像的采集由CMOS图像传感器完成,网点图的处理及网点参数的计算由ARM核心板完成。当系统初始化完成后,可以通过CMOS图像传感器采集印品的显微数字图像,一帧图像数据采集完成后在屏幕上显示,图像数据则由MCU通过一定的算法处理,最后得到网点的参数:网点大小、网点间距和网点角度。网点图像处理的算法包括图像的灰度化、二值化、去噪、网点参数计算,并将结果显示在GUI上[3]。光学仪器第35卷
在图像处理部分,二值化是图像预处理的关键,二值化准确与否,将影响后期参数计算的精度,进而影响网点参数识别的精度。2网点图的灰度直方图特征灰度直方图是用于表达图像灰度分布情况的统计图表。其横坐标是灰度值r,纵坐标是出现这个灰度值的概率密度h(r)(对连续图像f(x,y)而言),或者是出现这个灰度的概率值h(r)(对数字图像f(m,n)而言)[4]。由图1可以看出,印刷网点图有以下特点:(1)由两种颜色组成:一种是背景色,一种是网点颜色;(2)由大小相近间距相同的点组成,并且点分布在互相垂直的两个方向;(3)不同的网点图的网点面积大小不同。运用MATLAB软件的imhist()函数得到图3所示的灰度直方图,横坐标是灰度级别r,纵坐标是该灰度级出现的个数h(r)。图3印刷网点图的灰度直方图
Fig.3Gray histogram of print dot image灰度直方图能很好地反映图像的总体特征。由图3可以看出,印刷网点图的灰度直方图由明显的双峰组成,一个代表背景,一个代表目标点,即印刷网点。因此,二值化阈值如果选择在双峰之间的“谷”处,可以将网点图二值化成只有背景和目标点的黑白图像[5]。3基于直方图凹度分析求二值化阈值灰度直方图是一种离散的分布图,其包络线是一条连续的曲线,因此对直方图的“谷”的寻找便可以转化为求其包络线h(r)极小值的问题。根据高等数学函数极值的有关问题,曲线h(r)中的极小值点应同时满足下列条件:h(r)r=0(1)
2h(r)r2=0(2)满足上述条件的极小值点所对应的灰度级即可作为分割阈值[6]。但是,上述方法需要用到数值逼近等计算,算法复杂度高,不利于在嵌入式平台中的实现。为了在离散的直方图上寻找到“谷”所对应的灰度值,采用以下离散求导的方法来确定二值化阈值。
3.1确定阈值的灰度级范围一般灰度直方图起止处灰度级的像素个数很少,将像素个数h(r)小于一定值的灰度忽略(即h(r)置0)。这样做的目的在于减小这些小量像素灰度级对于整体阈值计算的影响,从而提高阈值的准确度。设经过上述处理后像素个数不为0的灰度级范围为m~n,灰度值r对应的像素个数为h(r)。首先,比较各灰度的像素数,找到h(r)最大值对应的灰度级Gmax,同时得到灰度级出现个数不为零的起止灰度级Gstart和Gend,如图4所示,Gmax,Gstart和Gend的位置在图中示出:图4Gmax、Gstart、Gend位置示意图
Fig.4Positions of Gmax,Gstart,Gend on gray histogramDs表示Gstart偏离Gmax的距离,De表示Gend偏离Gmax的距离,根据式(3)和式(4)可以计算出Ds和De的值。由灰度直方图的特征可以看出,阈值在偏离距离较大的一边的灰度范围内的“谷”处,图4的Ds大于De的值,因此阈值灰度在Gstart与Gmax之间。Ds=Gmax-Gstart(3)
De=Gend-Gmax(4)3.2离散数学求导经过上述步骤得到的阈值在Gstart与Gmax之间,为了进一步确定阈值的位置,对离散的灰度直方图h(r)一阶求导,求导规则为:Gstart与Gmax之间,若h(r+1)-h(r)大于0,则标记为1;若h(r+1)-h(r)小于0,则标记为-1;若h(r+1)-h(r)等于0,则标记为0。灰度级和像素个数构成一一对应的关系,如表1为列出的局部数值,在Gstart和Gmax之间,一阶求导由式(1)得出,结果见表1: 由一阶求导结果可以看出,除了少数虚假“谷”对一阶求导结果产生错误的影响,一阶求导的总体趋势是正确的,即在Gstart与Gmax之间,上升趋势的一阶求导结果全为1;波峰处的一阶求导结果为1和-1相间的数;下降趋势的一阶求导结果是中间偶有1出现,但不影响总体趋势;波谷处的数据为“谷”处的灰度级别的一阶求导结果,同样出现1和-1交替出现;上升趋势的数据是直到Gmax附近的一阶求导结果。因此可以根据一阶求导来判定灰度级像素数的趋势。
3.3二阶求导由于一阶求导仅求出像素整体的变化趋势,并不能最终确定“谷”所对应的灰度值的位置。因此,再利用二阶求导,精确求出阈值所在的灰度范围。用式(2)对灰度直方图h(r)进行二阶求导,求导结果如表1所示,其中的数据出现了几种数值特点:(1)连续的0(上升趋势的二阶求导数据);(2)2,-2成对交替出现(波峰处、下降趋势、波谷处的二阶求导数据);(3)孤立的2或-2(上升趋势的二阶求导数据);连续出现0,表明像素数随灰度值增加单调递增或递减;交替出现2,-2时,若只出现一对孤立的2或者-2,则表明该处有虚假“谷”,此时对应灰度的二阶求导可以忽略,在第5行置0;若连续交替出现2,-2,表明像素数在波峰或波谷,呈现锯齿状的包络特点;若只有一个-2,该点为变化趋势的转折点。将虚假“谷”去除后的二阶求导值如表1所示。最后,分析表1的数据,阈值在连续出现2,-2的区域,以该区域的中间值(表中的中间灰度值为152)作为二值化的阈值。
3.4实验结果分析将本文的二值化算法与MATLAB的二值化函数graythresh()运算结果进行比较,实验表明,对于网点较大的图像(见图5(a)),该算法求出的阈值可以和graythresh()函数求出的阈值一致,能准确地得到二值化图像(见图5(b)、图5(c));对于网点较小的图像(见图6(a)),该算法优于MATLAB的二值化函数graythresh()(见图6(b)、图6(c))。4结论二值化阈值的求解是网点图像处理关键的一步,其结果准确与否将直接影响网点参数测量的准确度。采用已有的二值化算法虽然可以将网点图像二值化,但结果并不准确,将导致网点面积计算的不可靠。因此,本文在直方图凹度分析法的基础上,用离散数学求导的方法得到直方图“谷”的阈值作为二值化阈值,比较准确地实现了网点图像的二值化。通过与MATLAB二值化函数graythresh()的结果进行实验对比,证明了该方法不仅可靠,而且减少了数据运算量,加快运算速度。
图5网点面积较大时直方图凹度分析法与graythresh()的二值化结果比较
在直方图凹度分析的基础上,运用数学方法对数字图像进行二值化的思想可以提高二值化的速度,对于快速算法的研究很有必要。本文的二值化算法是基于网点图像的算法,并不适用于背景复杂的数字图像二值化的应用,因为此类图像的灰度直方图不一定有双峰。总之,运用数学方法二值化,可以方便利用C语言实现。在工业仪器仪表开发方面有重要的启发。参考文献:
[1]刘浩学.印刷网点面积的测量与计算[J].北京印刷学院学报,2000,8(4):8-13.
[2]彭彦平,马步庄,徐锦林.网点面积检测算法的比较研究[J].包装工程,2006,27(1):76-78.
[3]李松松,瑚琦,章慧贤,等.基于数字图像处理方法的印刷网点测量系统设计[J].光学仪器,2009,31(5):43-47.
[4]王耀南,李树涛,毛建旭.计算机图像处理与识别技术[M].北京:高等教育出版社,2005:65-71.
[5]毛翠丽,马卫红,盂立庄,等.基于数字图像处理的火焰长度计算方法[J].光学仪器,2005,29(1):27-31.
[6]龚声蓉,刘纯平,王强.数字图像处理与分析[M].北京:清华大学出版社,2006:177-186.