专利名称:采用自适应二值化的图象处理方法和设备的制作方法
技术领域:
本发明涉及一种图象处理方法和设备、以及存储介质,尤其涉及一种用于灰度图象的自适应二值化处理方法、设备、存储介质。
背景技术:
近几年,图象处理技术有了显著的发展,相关的图象处理设备如遥感图象处理、彩色图象处理和文档图象光学字符识别(OCR)处理得到了广泛的应用。
在这些图象处理技术中,灰度图象的二值化处理是一个不可缺少的技术。所谓的二值化,就是把彩色图象或灰度图象变为黑白图象的过程,而这种黑白图象只有两个灰度值。
常用的二值化方法,如给整个图象一个预先设定的阈值的简单二值化方法;基于灰度直方图进行阈值计算的Otsu的最大类间方差法(参见文章“A Threshold Selection Method from Gray-LevelHistograms”,IEEE Trans.On Systems,Man,and Cybernetics,Vol.SMC-9,No.1,pp.62-66,January 1979);Kittler和Illingworth的最小误差方法(参见文章“Minimum Error Thresholding”,PatternRecognition.Vol.19,No.1,pp.41-47,1986);以及Tsai的矩量保持法(参见文章“Moment-Preserving ThresholdingA New Approach”,Computer Vision,Graphics,and Image Processing 29,pp.377-393,1985)等,都是非常有名的灰度图象全局二值化方法。
但是,用单一阈值对整个图象做二值化处理有时也存在弊端。比如在对文档图象进行OCR处理前,以及对包含有各种灰度的文字、图表和照片的文档图象进行二值化处理时,都很难用单一阈值把文字、图表和照片都完整地保留下来。
为此,人们采用图象分割的方法,把图象分割成一系列互不重叠的子图象,对每一个子图象区域建立直方图,确定相应的局部阈值,然后再做二值化处理。如日本专利特开平第9-233326就描述了一种二值化方法,它主要是先把图象划分为64×64象素的子图象,根据子图象的灰度直方图算出子图象的阈值,然后利用插值方法对子图象每一象素的阈值进行平滑处理,最后逐个象素做二值化处理。
在表格图象识别系统,如银行的票据处理系统,首先需要对输入的灰度图象进行二值化处理,转变成二值图象(黑白图象),然后根据表格的外框、大小和相对位置对表格图象进行匹配鉴定处理,确定是在系统中登记的第几张表格,接着确定需要进行识别的区域,最后对要识别的区域做OCR处理。显然,二值化处理过程是一个很重要的过程,如果表格的边框丢失或不清楚,将会导致匹配鉴定处理失败;如果识别区域噪音过重,也将严重影响OCR的准确率。由于表格图象往往边框粗细不一,需要识别的区域经常有复写纸或加印底纹,以往的二值化方法在处理表格图象时,效果经常不佳。
发明简单说明本发明的一个目的,在于提供一种图象处理方法、设备、系统和存储介质,用于根据图象的特征,快速有效地对图象进行二值化处理。
本发明的一个更具体的目的,在于提供一种图象处理方法、设备、系统和存储介质,用于根据表格图象的特征,在尽量保留表格外边框和反转字块的前提下,快速有效地对表格图象进行二值化处理。
本发明提供了一种独特的解决方案,其中把待处理图象分割成多个子图象,按照各个子图象中检测到的边缘象素的灰度值,确定该子图象的二值化阈值。
按照本发明,上述目的通过提供一种图象处理方法而得到了实现,该方法用于对具有灰度分布的图象进行处理,其特征在于包括以下步骤a)计算原始图象的象素的灰度统计分布;b)根据与所述象素灰度统计分布相应的边缘判据,检测图象中的边缘象素;c)把所述原始图象分成多个子图象;d)根据各子图象中所检测到的边缘象素的灰度,确定该子图象的二值化阈值;e)按照各个子图象的二值化阈值,对该子图象进行二值化处理。
在一个更为具体的方面,本发明的图象处理方法进一步包括以下步骤为所述图象确定一全局最小阈值,该全局最小阈值使所述图小于该全局最小阈值的象素数与该图象中象素总数的比率不低于一定数值;其中所述二值化阈值确定步骤包括根据当前子图象中所检测到的边缘象素的平均灰度值,确定当前子象图的一个候选二值化阈值;把所述全局最小阈值与当前子图象的所述候选二值化阈值相比较;以及,根据比较的结果确定当前子图象的二值化阈值。
在一个更为具体的方面,本发明的图象处理方法进一步包括在所述图象中查找黑块的步骤。
在一个更为具体的方面,在本发明的图象处理方法中,在所述全局最小阈值确定步骤在所述黑块查找步骤在图象中查找到黑块的情况下,按照所查找到的黑块的参考阈值来确定所述全局最小阈值;以及在所述黑块查找步骤在图象中未找到黑块的情况下,根据所述灰度统计分布来确定所述全局最小阈值。
在一个更为具体的方面,本发明的图象处理方法进一步包括根据所述灰度统计分布中峰和谷的位置来确定所述全局最小阈值。
进一步,上述目的是通过提供一种图象处理设备来实现的,所述设备用于对具有灰度分布的图象进行处理,其特征在于包括a)象素灰度统计分布计算装置,用于计算所述图象的象素的灰度统计分布;b)边缘象素检测装置,用于根据与所述象素灰度统计分布相应的边缘判据,检测图象中的边缘象素;c)图象分割装置,用于把所述图象分成多个子图象;d)子图象阈值确定装置,用于根据各子图象中所检测到的边缘象素的灰度,确定该子象图的二值化阈值;e)二值化处理装置,用于按照各个子图象的二值化阈值,对该子图象进行二值化处理。
在一个更为具体的方面,本发明的图象处理设备的特征在于进一步包括全局最小阈值确定装置,用于为所述图象确定一全局最小阈值,该全局最小阈值使所述图小于该全局最小阈值的象素数与该图象中象素总数的比率不低于一定数值;其中所述二值化阈值确定装置根据当前子图象中所检测到的边缘象素的平均灰度值,确定当前子象图的一个候选二值化阈值;把所述全局最小阈值与当前子图象的所述候选二值化阈值相比较;以及,根据比较的结果确定当前子图象的二值化阈值。
在一个更为具体的方面,本发明的图象处理设备的特征在于进一步包括在所述图象中查找黑块的装置。
在一个更为具体的方面,本发明的图象处理设备的所述全局最小阈值确定装置在所述黑块查找步骤在图象中查找到黑块的情况下,按照所查找到的黑块的参考阈值来确定所述全局最小阈值;以及在所述黑块查找步骤在图象中未找到黑块的情况下,根据所述灰度统计分布来确定所述全局最小阈值。
进一步,上述目的是通过提供一种图象处理系统实现的,所述系统内包括输入设备,用于输入图象;图象处理设备,用于对多值图象作二值化处理;输出部分,用于输出二值化处理后的二值图象;其中,图象处理设备包括a)象素灰度统计分布计算装置,用于计算所述图象的象素的灰度统计分布;b)边缘象素检测装置,用于根据与所述象素灰度统计分布相应的边缘判据,检测图象中的边缘象素;c)图象分割装置,用于把所述图象分成多个子图象;d)子图象阈值确定装置,用于根据各子图象中所检测到的边缘象素的灰度,确定该子象图的二值化阈值;e)二值化处理装置,用于按照各个子图象的二值化阈值,对该子图象进行二值化处理。
进一步地,本发明提供了一种用于存储图象处理程序代码的存储介质,该程序代码包括计算原始图象的象素的灰度统计分布的代码;
根据与所述象素灰度统计分布相应的边缘判据,检测原始图象中的边缘象素的代码;把所述原始图象分成多个子图象的代码;根据各子图象中所检测到的边缘象素的灰度,确定该子象图的二值化阈值的代码;按照各个子图象的二值化阈值,对该子图象进行二值化处理的代码。
本发明进一步的目的是提供一种具有新颖性的图象处理方法和设备,图象处理系统。通过下面的实施例和附图的描述,本发明的其他特点和优点变得更加清楚,附图中相同的标号表示相同的或类似的部件或步骤。
作为本发明一部分的附图和本说明一起用于本发明的实施例,用于解释本发明的原理。
图1是按照本发明的一个实施例的图象二值化处理系统的结构方框图;图2是按照图1所示的实施例的图象二值化处理设备的结构方框图;图3是流程图,示出了按照图1所示的实施例的图象二值化处理过程;图4是流程图,用于在一个图象中查找黑块;图5是流程图,用于确定一个图象的最低阈值;图6是流程图,用于确定子图象的阈值;图7是示意图,示出了一个用于确定灰度梯度的3×3 Sobel梯度算子的模板及边缘判定的改进示意模板;图8A表示待进行图象二值化处理的原始图象的一个例子;图8B表示图8A所示待进行图象二值化处理的原始图象的图象灰度频率统计直方图;图8C表示按照图1所示的实施例对图8A所示的原始图象进行图象二值化处理的结果;图8D表示图8A所示待进行图象二值化处理的原始图象用Sobel方法进行处理得到的边缘图象;图8D-A表示图8D所示的边缘图象的一局部放大部分;图8E表示用本发明的边缘确定方法对图8A所示待进行二值化处理的原始图象进行处理所获得的边缘图象;图8E-A表示图8E所示的边缘图象的一局部放大部分;图9是按照本发明的图象边缘检测设备的一个实施例结构方框图;图10是流程图,示出了按照图9的实施例的图象边缘检测处理过程;图11是流程图,用于将图象进行分类;图12是流程图,用于确定分割原始图象为前景和背景的分割阈值;图13是流程图,用于调整类型I图象的图象分割阈值;图14是流程图,用于调整类型II图象的图象分割阈值。
实施例详细说明第一实施例系统结构图1是按照本发明的第一实施例的表格图象二值化处理系统的结构方框图。
打印机105,例如喷墨打印机或者类似的打印机,以及监视器106和主机100相连。
主机100具有应用软件程序101,例如字处理程序、放大程序、互联网浏览器以及类似程序,OS(操作系统)102,打印机驱动程序103,用于处理指示输出图象的各种绘图指令(图象绘图指令,文本绘图指令以及图表绘图指令等),它们被应用软件101发送给OS102,并产生打印数据,以及监视器驱动程序104,用于处理由应用软件程序101发出的各种绘图指令,并在监视器106上显示数据。
标号112是指令输入装置,113是该装置的驱动程序。例如,连接有用于点在监视器106上显示的各种信息从而向OS 102发送各种指令的鼠标。注意其它的点状装置例如轨迹球、笔、触摸屏及其它类似装置,或键盘可用于代替鼠标。
主机100包括,作为可以运行这些软件程序的各种硬件的中央处理单元(CPU)108,硬盘(HD)107,随机存取存储器(RAM)109,只读存储器(ROM)110等。
作为图1所示的表格图象二值化系统的一个例子,在流行的IBM公司的PC-AT个人计算机上安装微软公司的Windows98作为操作系统,安装上所需的可以执行打印的应用程序,并使监视器和打印机和个人计算机相连。
在主机100中,每个应用软件程序101使用被归入文本例如字符或类似物的文本数据、被归入图表例如插图或其类似物的图表数据、被归入自然图象或其类似物的图象数据等产生输出图象数据。在打印输出图象数据时,应用软件程序101向OS102发出打印请求。此时,应用软件程序101向OS102发出绘图指令组,包括相应于图表数据的图表绘制指令,以及相应于图象数据的图象绘制指令。
OS102收到应用软件程序101的输出请求之后,向相应于一个输出打印机的打印机驱动程序103发出绘图指令组。打印机驱动程序103处理从OS102输入的打印请求和绘图指令组,产生打印机105可以打印的打印数据,并把打印数据传递到打印机105。当打印机105是扫描打印机时,打印机驱动程序103按照来自OS102的绘图指令进行图象校正处理,然后按顺序扫描(rasterize)RGB24位页存储器上的指令。在完成所有绘图指令之后,打印机驱动程序103把RGB24位页存储器的内容转换成打印机105可以打印的数据格式,即CMYK数据,并把转换的数据传递给打印机105。
注意主机100可以连接图象扫描仪111,其检测物体的图象并产生RGB图象数据,并可以把检测的图象数据装载并存储在HD107中。注意由图象扫描仪111检测的图象数据按照BMP编码。检测的图象数据在被打印机驱动程序103译码之后可以作为图象数据传递给打印机105。
主机100还包括表格图象二值化设备114,用于对表格图象进行二值化处理。存储在HD107的图象数据被表格图象二值化设备114读取并被处理。首先,对表格图象进行二值化处理,然后,在OS102地控制之下,由打印机105或监视器106输出图象中的表格图象的二值图象。
表格图象二值化设备图2是按照本发明的第一实施例的表格图象二值化处理设备的结构方框图;本实施例中的表格图象二值化设备114包括图象读取装置201,图象灰度统计装置202,黑块查找装置203,最低阈值确定装置204、边缘判据确定装置205、边缘提取装置206、图象分割装置207、子图象阈值确定装置208、平滑处理装置209和二值化处理装置210。
诸如扫描仪一类的图象输入设备以光电的方式读取来自原始文档的输入图象。表示原始图象的模拟信号被转换为数字信号。数字图象信号被输入到诸如HD107或ROM110之类的存储器中,并存储在其中。
在表格图象二值化设备114中,图象读取装置201首先读取存储在诸如ROM110一类存储器的数字图象信号。然后,将所读取的数字信号提供给图象灰度统计装置202。
图象灰度统计装置202将图象读取装置201所读取的各种图象,比如彩色图象、Tiff图象等,转化成灰度图象,并将各图象象素的灰度出现频度统计为灰度直方图。
黑块查找装置203,例如根据图象灰度统计装置202所确定的灰度直方图。查找图象中的黑块。如将要在下文中描述的。
最低阈值确定装置204用于为所述图象确定一全局最小阈值,该全局最小阈值使所述图小于该全局最小阈值的象素数与该图象中象素总数的比率不低于一定数值。如将要在下文中描述的。
边缘判据确定装置205根据计算出的灰度分布频率对所述图象进行分析,根据所述分析结果确定用于把所述图象分割成前景和背景的分割阈值,并根据所述前景的象素灰度之和与所述背景的象素灰度之和来确定所述边缘判据。如将要在下文中描述的。
图象边缘提取装置206根据边缘判据确定装置205所确定的图象边缘判据,确定一幅图象中的每一象素点是否为图象边缘点,且根据所确定的图象边缘点,图象分割装置207把待测图象分割成多个子图象。
子图象阈值确定装置208根据各子图象中所检测到的边缘象素的灰度,确定该子象图的二值化阈值。
平滑处理装置209用所获得的各子图象的二值化阈值对当前子图象及相邻子图象中的象素作二维插值。
二值化处理装置210按照各个子图象的二值化阈值,对该子图象进行二值化处理。
表格图象二值化处理过程图3是流程图,示出了按照本发明第一实施例的表格图象二值化处理过程。下面,将参照图3和图8A,详细解释表格图象二值化处理过程。
图8A所示是一个待进行二值化处理的原始图象的例子,它是一幅银行票据的图象。由图象扫描仪、数码照相机等一类图象输入设备读取该多值图象,并将它存放在诸如ROM110、HD107或RAM109等存储装置的一个预定位置。一般来说,所读取的图象存储方式不尽相同,如32位全彩图象等。另外,图象的存储格式也不尽相同,如BMP、JPEG或TIFF等格式。在对输入的原始图象进行处理之前,把所有的原始图象全部转化为具有从0-255的256个灰度值的灰度图象。
参见图3,首先,在步骤S301,图象读取装置201读取待进行二值化处理的原始图象800A的各象素点的灰度值。如果原始图象800A使用比如JPEG进行编码,那么,图象读取装置201在读取其图象数据之前首先对其进行解码。当然,可以同时读取原始图象800A每列象素的灰度值,也可以按照一定的顺序或者分别进行读取。
在步骤S301之后,流程进入步骤S302。在步骤S302,图象灰度统计装置202对于图象读取装置201所读取的原始图象800A的每一象素点的灰度值进行统计,并确定原始图象800A中每一灰度值所对应的象素点数量。根据所确定的每一灰度值象素点的数量,产生该原始图象800A的图象象素灰度直方图800B,如图8B所示。在图8B中,X坐标表示象素灰度值,Y坐标表示象素点数。
在步骤S302之后,流程进入步骤S303。在步骤S303,查找黑块装置203将在原始图象800A中查找是否存在黑块(所谓黑块,就是按照子图象块的灰度统计特性确定的参数小于该参数就认为是黑块),给出黑块的块数,黑块的位置(左上角和右下角坐标)和黑块的参考阈值。图4是流程图,显示了黑块查找过程的一个具体的例子。
下面参照图4的流程图具体说明对图8A所示的原始图象800A进行黑块查找的过程的一个例子。
参见图4,在步骤S401,根据在步骤S302确定的原始图象800A的图象象素灰度直方图,检测出灰度直方图中所有的峰位、左边谷和右边谷等峰的特征信息。可以先对直方图进行平滑处理,然后用微分法查找峰的极大点和极小点,找出直方图中的峰位和左边与右边的谷位。作为一种示例性但非限制性的方式,在本例中,对原始直方图先采用以每16点进行合并,得到一个范围为0-16的一个新的直方图然后在其中用微分法找出峰位和谷位。
在本例中,可以确定图8B所示的直方图总峰数为3,三个峰的信息为
表1其中,峰面积被定义为从该峰的左边谷到该峰的右边谷之间的象素总计数。
在步骤S401后,流程进入步骤S402。在步骤S402,查找在原始图象800A中是否存在背景块,即灰度比周围的背景灰度低一些,且在其上面可能还有灰度更低的文字的块。出于实际的考虑,我们可以假定表格图象是只有一种灰度的背景块。在这样的假定下,主要是对原始表格图象的灰度直方图的峰的情况进行判断,看是否在最右边的峰(我们认为它就是本底峰)的左边,存在一个比较大的峰,而且该峰的左边的总面积也比较大,条件满足的话则认为从右边数的第二个峰为背景峰。在本实施例中,对于表格图象,我们选定下面三个条件作为判据(1)本底峰的峰面积大于原始图象总计数的SP1倍;(2)从右边数的第二个峰的峰面积大于本底峰的峰面积的SP2倍;(3)从右边数的第二个峰左边谷的左边的总面积大于原始图象总计数的SP3倍;其中,参数SP1、SP2和SP3都为预先给定的值。参数SP1优选为0.1,取值范围为0.05到0.2;参数SP2优选为0.035,取值范围为0.001到0.08;参数SP3优选为0.005,取值范围为0.002到0.02。
对于图象800A,本底峰的峰面积为1566255,图象象素总计数为2050290,从右边数的第二个峰的峰面积为473720,从右边数的第二个峰,右边谷的左边的总面积为15059,这些数值满足了上述三个条件,因此原始图象800A存在有背景块,背景块形成的背景峰的峰位为148。
在步骤S402后,流程进入步骤S403。在步骤S403,确定在原始图象中灰度均值小于一定值的块判断为黑块的阈值ThB。在表格图象中,黑块面积一般比较小,因此,仍然从原始图象的灰度直方图着手,自左向右累加各个峰的面积,当累加面积超过一预先给定的比例参数SP4时,取前一个峰的右边谷为黑块的阈值ThB。在本实施例中,参数SP4优选为0.2,取值范围为0.1到0.35,此时可以看出,对于图象800A,黑块阈值ThB取第一个峰的右边谷,ThB=101。
在步骤S403后,流程进入步骤S404。在步骤S404,对原始图象中每一列中全部象素的灰度值进行累加,得到一个序列GX(i),其中的第i项即为第i列中所有象素的灰度之和。然后流程进入步骤S405。
在步骤S405,对原始图象中全部行中全部象素的灰度值进行累加,得到另二个序列GY(i),其中的第i项即第i行的所有象素的灰度值之和。然后流程进入步骤S406。
在步骤S406,把一个算子,例如算子(0.1,1,5,0,-5,-1,-0.1),分别作用于在步骤S403得到的序列GX(i)和S404中得到的序列GY(i),找出GX(i)和GY(i)中的各个变化极值点GXP(j)和GYP(j)的位置。
即,把(0.1,1,5,0,-5,-1,-0.1)形式的算子作用于序列GX(i),产生出一个新的序列gXP(j)。然后,找出gXP(j)中绝对值大于一个预设值的各个项,这些项(如果有的话)所对应的j值就是序列GX(i)的变化极值点的水平位置。
同样,把(0.1,1,5,0,-5,-1,-0.1)形式的算子作用于序列GY(i),产生出一个新的序列gYP(j)。然后,找出gYP(j)中绝对值大于一个预设值的各个项,这些项(如果有的话)所对应的j值就是序列GY(i)变化极值点的纵向位置。
显然,所用的算子不限于(0.1,1,5,0,-5,-1,-0.1),也不限于7点算子。而且也可以用其他数学方法来找出序列GX(i)和GY(i)的变化极值点的位置。
然后流程进入步骤S407。
在步骤S407,根据在步骤S406中找到的灰度变化极值点GXP(j)和GYP(j),即用通过各个极值点的水平和纵向直线,把原始图象分割成一系列大小不一的子图象块。
在步骤S407后,流程进入步骤S408。在步骤S408,从原始图象的左上角开始,按照从左到右、从上到下的顺序,依次选取子图象块,供后面的流程使用。然后流程进入步骤S409。
在步骤S409,判断当前的子图象是否为散碎块。判断的标准是块的尺度信息。在本实施例中,采用判断子图象块的宽度WW或块的高度WH小于一预先给定的值SP5时,则判断该子图象块为散碎块,流程进入步骤S413,否则,流程进入步骤S410。参数SP5优选为16,取值范围为10到20。
在步骤S410,计算子图象块的灰度平均值AVj。然后流程进入步骤S411。
在步骤S411,判断当前的子图象是否为黑块。判断的标准是当前子图象块的灰度平均值AVj是否小于在步骤S403中计算得到的黑块阈值ThB。如果AVj小于ThB,则认为当前子图象块为黑块,流程进入步骤S412,否则,流程进入步骤S413。
在步骤S412,记录当前子图象块为黑块,并把它的左上角和右下角坐标记录下来。另外,还要计算当前子图象块的参考阈值,即与黑块(子图象)本身的灰度分布相对应的阈值,可以采用现有技术中的二值化方法,比如Otsu方法、NiBlack方法、最小误差法或最大熵方法等。在本实施例中,使用Otsu分割方法。然后流程进入步骤S413。
在步骤S413,主要是判断是否所有的子图象块已经处理完毕。如果所有的子图象块已经处理完,则黑块查找处理过程结束,否则流程返回到步骤S408。
在图象800A的实例中,共找到四个黑块。
返回到图3。在步骤S303后,流程进入步骤S304。在步骤S304最低阈值确定装置204在原始图象中计算出全局的最低阈值。确定最低阈值过程参见图5。
图5是流程图,用于计算原始图象的最低阈值。
下面参照图5的流程图具体说明对原始图象确定最低阈值的过程。
参见图5,在步骤S501,判断是否存在黑块,主要是检查在步骤S303中是否找到黑块,如果找到,则流程进入步骤S502,否则,流程进入步骤S508。在原始图象800A的实例中,由于在步骤S303中找到了黑块,所以流程进入步骤S502。
在步骤S502,根据在步骤S303中计算得到的各黑块的参考阈值,找到它们的最小值ThM。在原始图象800A的实例中,ThM为101。
在步骤S502后,流程进入步骤S503。在步骤S503,累加原始图象中灰度值小于ThM的象素总计数T1。在图象800A的实例中,T1为15059。
在步骤S503后,流程进入步骤S504。在步骤S504,判断ThM是否太小(如果ThM太小,则二值化结果中丢失的内容过多),判据是T1<L1? (1)其中,L1为原始图象总计数的SP6倍。SP6为预先给定的值,优选为0.005,取值范围为0.002到0.01。如果条件满足,流程进入步骤S505,否则,流程进入步骤S506。
在图象800A的实例中,L1为0.005×2050290=10251,T1>L1,公式(1)的条件不满足,因此流程进入步骤S506。
在步骤S505,在步骤S504中ThM比较小,因此重新计算ThM,让ThM等于所有黑块参考阈值的平均值。
在步骤S506,控制全局最小阈值不要太大。根据对大量表格图象的分析,选取一个固定值128作为全局最小阈值的上限。当然,也可以选择128以外的值,可以是100-150范围内的任何一个值,作为全局最小阈值的上限。然后流程进入步骤S520。
在步骤S501后,如果不存在黑块,流程将进入步骤S508。在步骤S508,判断原始图象的图象灰度直方图是否为单峰,如果是,流程将进入步骤S509,否则,流程进入步骤S514。
在步骤S509至步骤S513,由于原始图象的象素灰度直方图是单峰,因此在峰的左边谷到峰位之间,查找原始图象中灰度值小于ThM的总计数T2小于参数L2的位置点,其中L2为峰面积总计数的SP7倍。SP7为预先给定的值,优选为0.05,取值范围为0.02到0.1。
在步骤S514至步骤S519,由于原始图象的象素灰度直方图存在多个峰,因此从灰度直方图的最左边第一个峰开始,直至峰位小于灰度128的峰止,取当前峰的右边谷为ThM,依次查找原始图象中灰度值小于ThM的总计数T3小于参数L3的峰的右边谷,其中L3为原始图象的象素灰度总计数的SP8倍。SP8为预先给定的值,优选为0.005,取值范围为0.002到0.01。
最后是步骤S520,主要是确定ThM就为所要找的全局最小阈值ThMg。在图象800A的实例中,ThM为101,因此全局最小阈值就为101。
返回到图3。在步骤S304后,流程进入步骤S305。在步骤S305,边缘判据确定装置205。根据在步骤S302确定的原始图象的图象象素灰度直方图,确定出提取图象中前景边缘的判据。
以下描述边缘判据的确定。其细节的一些描述,可参见本申请人2001年7月26日提交的以赵洪生、李玉麟和王洁为发明人的中国专利申请《图象处理方法和设备,图象处理系统以及存储介质》。图象边缘判据确定装置图9是按照本发明的的图象边缘判据确定装置的一个实施例的结构方框图;本实施例中的边缘判据确定装置包括图象分类装置903,分割阈值确定装置904、和图象边缘判据确定装置905。
根据图象灰度统计装置202所确定的灰度直方图,图象分类装置903确定用于分割图象灰度直方图的前景和背景的初始分割阈值。
在本发明中,按照图象灰度直方图的特征,可以将所处理的图象分为三种类型即类型0、类型I和类型II。类型0图象为正常图象,即由图象灰度直方图的初始分割阈值就可以将图象合理地划分为前景和背景。其中,图象的前景是一副图象所欲展示的各种信息,比如文字、图框、线条等,而图象的背景是用于烘托前景的妆饰,比如图象的基色等。
类型I图象是指,通过图象灰度直方图的前景和背景初始分割阈值,所得到的图象前景不准确,把部分图象的前景确定成了背景部分。而对于类型II图象,它是指通过图象灰度直方图的前景和背景初始分割阈值,所得到的图象背景不准确,把部分图象的背景确定成了前景部分。
见图9,图象分类装置903将所读取的原始图象分为三种类型之一,也就是类型0,类型I和类型II。
之后,对于确定为类型0的图象,边缘分割阈值确定装置904将其所确定的图象灰度直方图的前景和背景的初始分割阈值提供给边缘判据确定装置905,然后,边缘判据确定装置905确定图象的前景和背景灰度统计均值,如后文所要描述的。
对于确定为类型I或类型II的图象,通过图象分割阈值确定装置904,对图象灰度直方图的前景和背景初始分割阈值进行调整,确定一个合适的图象前景和背景分割阈值。如后文所要描述的。然后,边缘判据确定装置905根据图象分割阈值确定装置904所确定的图象前景和背景的分割阈值,确定图象的前景和背景的象素灰度统计均值。根据前景和背景的象素灰度统计均值,边缘判据确定装置905确定图象边缘判据。如后文中将要描述的。图象边缘判据确定过程图10是流程图,示出了按照本发明的一个实施例的图象边缘判据确定过程。下面,将参照图10,详细解释图象边缘判据确定过程。
参见图10,在步骤S103,图象分类装置903根据在步骤S302确定的原始图象的图象象素灰度直方图,确定该灰度直方图的宽度、划分图象前景和背景的初始分割阈值、灰度统计均值等图象特征,并根据这些特征,对所读取的原始图象进行分类,即将原始图象划分为上述的类型0图象,类型I图象或类型II图象之一。图象的具体分类过程参见图11。
图11是流程图,用于将图象进行分类。
下面参照图11的流程图具体说明对原始图象进行分类的过程。
参见图11,在步骤S111,根据从步骤S302中所确定的原始图象的灰度直方图,计算划分原始图象的图象前景和背景的初始分割阈值Thi。可以采用现有技术中的二值化方法,比如Otsu方法、NiBlack方法、最小误差法或最大熵方法等,计算原始图象的初始分割阈值Thi。在本实施例中,使用Otsu分割方法。关于Otsu方法,可以参见文章“AThreshold Selection Method from Gray-Level Histograms”,IEEETrans.On Systems,Man,and Cybernetics,Vol.SMC-9,No.1,pp.62-66,January 1979。
在步骤S111后,流程进入步骤S112。在步骤S112,计算原始图象的直方图中的各象素的灰度的统计均值Av。
然后,流程进入步骤S113。在步骤S113中,确定灰度直方图的起点灰度值ST和终点灰度值END,以去掉在灰度直方图中的前面部分和后面部分对全局参数计算影响不大,但却对计算边缘判据阈值有不利影响的部分灰度。
灰度直方图的起点ST和终点END可以用公式(2)确定K=T1/2/a(2)其中,K是直方图的起点灰度值ST或终点灰度值END所对应的象素数,T是原始图象的象素总数,a是一个预先给定的值,比如为50。参数a位于20到150之间。
在步骤S113之后,流程进入步骤S114。在步骤S114,根据原始图象的象素数以及其对应的灰度直方图,计算第一判断比率R0、第二判断比率R1以及第三判断比率R2。
第一判断比率R0由公式(3)给出R0=T1/T0 (3)其中,R0表示第一判断比率;T0表示原始图象的总象素点数,也就是位于灰度值0-255之间的象素点总数;T1表示从灰度值0到灰度统计均值Av之间所包含的象素点数。
另外,第二判断比率R1由公式(4)给出R1=T3/T2 (4)其中,R1表示第二判断比率;T2表示从灰度值0到直方图初始分割阈值Thi之间所包含的象素点数;T3表示从直方图初始分割阈值Thi到灰度统计均值Av之间所包含的象素点总数。
还有,第三判断比率R2由公式(5)给出R2=T2/T0 (5)其中,R2表示第三判断比率;T2表示从灰度值0到直方图初始分割阈值Thi之间所包含的象素点数;T0表示原始图象的总象素点数,也就是位于灰度值0-255之间的象素点总数。
从上面可以看出,第一判断比率R0、第二判断比率R1和第三判断比率R2的计算均是从灰度值0开始计数象素点的。同样地,也可以从在步骤S113中所确定的起始点灰度值ST开始计数象素点。类似地,所有以255为计数末点的也可以以终点灰度值END来代替。
在步骤S114之后,流程进入步骤S115。在步骤S115中,确定是否满足下列关系(6)
R1>L0Av>ThiR0<L1或者R0>L2(6)其中,R0是第一判断比率,R1是第二判断比率,Av表示所有象素点的灰度统计均值。Thi表示初始分割阈值。L0表示第一设定值,L1表示第二设定值,L2表示第三设定值。
在步骤S115中,如果满足上述表达式(6),则在步骤S117判断图象是类型I图象。如果在步骤S115中确定不满足上述表达式(6),则流程进入步骤S116。
在本实施例中,第一设定值L0优选为3.5,取值范围为2到5;第二设定值L1优选为0.45,取值范围为0.35到0.5;第三设定值L2优选为0.55,取值范围为0.5到0.65。
返回到图11的步骤S115。在步骤S115后,由于判断原始图象不是类型I图象,流程进入步骤S116。在步骤S116中,确定是否满足下列关系(7)R1<L3R2>L4Ls/256<L5(7)其中,R1是第二判断比率,R2是第三判断比率,Ls表示直方图灰度终点END与灰度起点ST之间的距离。L3、LA和L5分别表示第四设定值、第五设定值和第六设定值。
在步骤S116中,如果满足上述表达式(7),则在步骤S118判断图象是类型II图象。如果在步骤S116中确定不满足上述表达式(7),则流程进入步骤S119。
在步骤S119,确定原始图象是类型0图象。也就是用初始分割阈值就可以明确的把图象划分为前景部分和背景部分。
返回到图10的步骤S103,在确定原始图象的类型后,流程进入步骤S104。在步骤S104,确定分割原始图象为前景和背景的分割阈值。因为类型I图象和类型II图象并没有合理地将图象划分为前景和背景,所以需要对分割阈值做出调整。
在原始图象是类型0图象的情况下,其初始分割阈值Thi已经合理的将原始图象划分为前景部分和背景部分,所以对于图象不需要对初始分割阈值再进行调整。
图12是确定分割原始图象为前景和背景的分割阈值流程图。参见图12,若原始图象是类型0图象,则直接采用在步骤S111中计算得到的初始分割阈值Thi作为划分图象为前景和背景的分割阈值Thf。
然后,确定图象的边缘判据。原始图象的边缘判据可以取为分割原始图象为前景和背景的分割阈值的两边的灰度统计均值的差值(Av2-Av1)。
需要注意的是,根据本实施例,直接采用了分割阈值两边的灰度统计均值的差值(Av2-Av1)来作为图象边缘判据,但本发明并不仅限于此。在不脱离本发明的范围的情况下,还可以将图象边缘判据值放大或缩小。比如把(AV2-AV1)乘以一个系数,作为边缘判据。类型I图象的图象边缘判据确定下面说明当原始图象被确定为类型I图象时本发明的图象边缘判据确定过程。
对于类型I图象,由于按照初始分割阈值Thi所确定的图象前景较少,所以需要对它的分割阈值进行调整。参见图12中的步骤S1203。具体调整步骤参见图13。
图13是流程图,用于调整类型I图象的分割原始图象为前景和背景的分割阈值。
参见图13,流程开始后,进入步骤S1301。在步骤S1301,重新设定新的分割阈值范围。新的起点灰度值为在步骤S111中得到的初始分割阈值Thi,终点灰度值不变。
然后,流程进入步骤S1302。在步骤S1302,重新确定新的分割阈值。在新的起点灰度值到终点灰度值之间的范围内,使用NiBlack方法,得到新的分割阈值Thm。有关具体的NiBlack方法,可参见文章“Goal-Direction Evaluation of Binarization Methods,”IEEETransactions On Pattern Analysis and Machine Intelligence,Vol.17No.12,December 1995,pp 1191-1201)。当然也可以使用其他方法,如使用均值法、最小误差法或最大熵方法等。
在步骤S1302之后,流程进入步骤S1303。在步骤S1303中,首先,重新确定参数T2、T3、R1和R2。
接着,流程进入步骤S1304。在步骤S1304,确定是否满足下列关系(8)R1>L0或者R1<L3 (8)其中,R1是第二判断比率,L0表示第一设定值,L3表示第四设定值。
如果满足关系(8),也就是新的分割阈值符合要求,则流程进入步骤S1308。在步骤S1308,将新的分割阈值Thm作为分割原始图象为前景和背景的分割阈值Thf。如果不满足关系(8),则流程进入步骤S1305。
在步骤S1305,重新确定新的分割阈值范围。参见图13,在步骤S1305,保持起点灰度值ST不变,而终点灰度值END值采用新的分割阈值Thm。
然后,流程进入步骤S1306。在步骤S1306中,判断确定新的分割阈值的次数是否超过一定的次数,比如4。
如果循环次数没有超过一定的次数,则循环次数加1,并且流程返回到步骤S1302。
如果循环次数达到了该一定次数,则流程进入步骤S1308。
接着,返回图10。在步骤S104之后,流程进入步骤S105。在步骤S105,根据步骤S104得出的分割阈值Thf,来确定边缘判据,由于具体方法与类型0图象的情况相同的例子所述,即所述分割阈值两边的象素的灰度平均值Av1和Av2,并根据这两个均值平均值的差(Av2-Av1)来确定边缘判据。原始图象被确定为类型II图象时的图象边缘判据确定以下将说明当原始图象被确定为类型II图象时的图象边缘判据确定方法。
对于类型II图象,由于按照初始分割阈值Thi所确定的图象背景较少,所以需要对它的初始分割阈值Thi进行调整。参见图12中的步骤S1203。具体调整步骤参见图14。
图14是流程图,用于调整类型II图象的图象分割阈值。
参见图14,流程开始后,进入步骤S1401。在步骤S1401,重新设定新的分割阈值。新的终点灰度值为在步骤S111中得到的初始分割阈值Thi,起点灰度值不变。
然后,流程进入步骤S1402。在步骤S1402,重新确定新的分割阈值Thm。在起点灰度值到新的终点灰度值之间的范围内,使用NiBlack方法,得到新的分割阈值Thm。
在步骤S1402之后,流程进入步骤S1403。在步骤S1403中,首先,重新确定参数T2、T3、R1和R2。
接着,流程进入步骤S1404。在步骤S1404,确定是否满足下列关系(9)R1>L0或者R1<L3R2<L4(9)其中,R0是第一判断比率,R1是第二判断比率,R2是第三判断比率,L0表示第一设定值,L3表示第四设定值,L4表示第五设定值。
如果满足关系(9),也就是新的分割阈值符合要求,则流程进入步骤S1408。在步骤S1408,将新的分割阈值Thm作为分割阈值Thf。如果不满足关系(9),则流程进入步骤S1405。
在步骤S1405,重新确定新的分割阈值范围。参见图14,在步骤S1405,保持终点灰度值END不变,而起点灰度值ST值采用新的分割阈值Thm。
然后,流程进入步骤S1406。在步骤S1406中,判断确定新的分割阈值的次数是否超过一定次数,比如4。
如果循环次数没有超过一定的次数,则循环次数加1,并且返回到步骤S1402。
接着,返回图10。在步骤S104之后,流程进入步骤S105。在步骤S105,根据步骤S104得出的分割阈值Thf,来确定边缘判据。具体方法如结合类型0图象所述,即计算分割阈值Thf两边的象素的灰度均值Av1和Av2,并根据(Av2-Av1)来确定边缘判据。
在图象800A的实例中,用上述边缘判据确定方法,在步骤S305得到原始图象800A的边缘判据为55。
在步骤S305后,流程进入步骤S306。在步骤S306中,边缘提取装置206将利用在步骤S305中得到的原始图象的边缘判据和Sobel边缘算子(图7的C和D),加上算子的方向特性,提供本发明的一种改进的Sobel边缘提取方法。
参见图7,Sobel算子主要是用于判断象素点(i,j)是否为边缘点,具体的操作为g(i,j)=Max{gi(i,j),gj(i,j)}
gi(i,j)=|f(i-1,j-1)+2f(i-1,j)+f(i-1,j+1)-f(i+1,j-1)-2f(i+1,j)-f(i+1,j+1)|gj(i,j)=|f(i-1,j-1)+2f(i,j-1)+f(i+1,j-1)-f(i-1,j+1)-2f(i,j+1)-f(i+1,j+1)|(10)公式(10)中,f(i,j)为一个连续图象函数,g(i,j)为(i,j)点处的图象灰度梯度最大值,gi(i,j)和gj(i,j)分别为沿水平方向和垂直方向的灰度梯度。
一般的Sobel边缘提取方法是,使用公式(10),确定原始图象中每一象素点的图象灰度梯度的最大值,并将其与图象边缘判据相比较。灰度梯度值的最大值大于图象边缘判据的象素点,被确认为边缘点。用边缘判据为55对原始图象800A的进行一般Sobel边缘提取得到的边缘图象为800D,见图8D。从800D中可以看出,一般来说,边缘比较粗,原始图象800A中的一条线在图象800D都会变成两条平行的边缘线。图8D_A是边缘图象800D的一小部分,在该图中可以比较清楚地看到细节部分。
为此,引入Sobel算子的方向属性,提出一种改进的Sobel边缘提取方法。
新的公式为gi(i,j)=f(i-1,j-1)+2f(i-1,j)+f(i-1,j+1)-f(i+1,j-1)-2f(i+1,j)-f(i+1,j+1)gj(i,j)=f(i-1,j-1)+2f(i,j-1)+f(i+1,j-1)-f(i-1,j+1)-2f(i,j+1)-f(i+1,j+1)(11)与公式(10)不同,公式(11)的gi(i,j)和gj(i,j)的计算不再取绝对值,在判断哪点象素是边缘点时,改用如下方式在水平方向,如果gi(i,j)为正,且大于边缘判据,说明象素点(i,j)的右边的灰度比左边的灰度低,因此认为象素点(i+1,j)为边缘点;如果gi(i,j)为负,且小于边缘判据,说明象素点(i,j)的左边的灰度比右边的灰度低,因此认为象素点(i-1,j)为边缘点;如果对所有的i上述两条件都不满足,则认为在水平方向无边缘点。参见图7的A。
在垂直方向,如果gj(i,j)为正,且大于边缘判据,说明象素点(i,j)的上边的灰度比下边的灰度低,因此认为象素点(i,j-1)为边缘点;如果gj(i,j)为负,且小于边缘判据,说明象素点(i,j)的下边的灰度比上边的灰度低,因此认为象素点(i,j+1)为边缘点;如果对所有的j上述两条件都不满足,则认为在垂直方向无边缘点。参见图7的B。
对原始图象800A用边缘判据为55,和改进的Sobel边缘提取方法得到的边缘图象为800E,见图8E。从图象800E中可以看出,改进的 边缘线都比较细,原始图象800A中的一条线在图象800E中仍然为一条线。图8E_A是边缘图象800E的一小部分,在该图中可以比较清楚地看到细节部分。
从800E的结果可以看到,改进的Sobel边缘已经非常接近图象前景的真实边缘,在表格图象的二值化处理时,完全可以把这些边缘直接填充到二值化处理结果图象中。
在步骤S306后,流程进入步骤S307。在步骤S307,图象分割装置207将把原始图象800A分割成一系列N×N象素的子图象。N一般取8的倍数,优选为32,取值范围为16至64。在本实施例中,N为32。
图象进行分割后,计算每一个子图象的一些参数总边缘象素数数(在步骤S306中提取的边缘象素),所有边缘象素的平均灰度EdAV,灰度小于EdAV的象素的总计数,所有象素的平均灰度GAV,灰度小于GAV的象素的总计数等。
由此可见本发明的上述的改进Sobel边缘提取方法的另一个好处,即由于其所提取的边缘比通常的Sobel边缘更接近图象前景的真实边缘,使得所获得的边缘象素的平均灰度EdAV能够更真实地反映当前子图象的实际灰度分布,从而使得本发明的二值化处理结果更加准确。
在步骤S307后,流程进入步骤S308。在步骤S308,子图象阈值确定装置208将计算在步骤S307中分割的每一个N×N象素的子图象的阈值。子图象阈值确定过程参见图6。
图6是流程图,用于确定一个子图象的阈值。
下面参照图6的流程图具体说明针对在步骤S306后分割得到的每一个N×N象素的子图象如何确定其 阈值的过程。
参见图6,在步骤S601,例如从原始图象800A的左上角开始从左到右以及从上到下的顺序,依次取一个在步骤S306中分割的N×N象素的子图象。然后流程进入步骤S602。
在步骤S602,判断当前子图象块是否为噪音块。主要的判据是检查当前块的边缘象素总数是否小于一个预先给定的值SP9,SP9优选值为8,取值范围为4至15。
如果当前子图象块被判定为噪音块,流程将进入步骤S603;否则,流程进入步骤S604。
在步骤S603,因为当前子图象块可能是噪音块,所以设阈值ThW为0,然后流程进入步骤S605。
在步骤S604,因为当前子图象块不是噪音块,所以设阈值ThW等于当前块的边缘的平均灰度EdAV,然后流程进入步骤S605。
在步骤S605,判断当前子图象块是否为背景块,有关背景块的说明,请参照步骤S402。判据主要有四条(1)原始图象中是否存在背景块;(2)当前块的边缘象素总数与当前块的象素总计数的比值是否小于SP10;(3)当前块的边缘象素的平均灰度EdAV与所有象素的平均灰度GAV差值是否小于一预先设定的值SP11;以及(4)在步骤S603或步骤S604中得到的阈值ThW与在步骤S402中查到的背景峰的峰位的差值是否小于一预先设定的值SP12。
当以上四个条件全部得到满足时,则判定当前子图象块为背景块。
其中,参数SP10优选为0.06,取值范围为0.03到0.1;参数SP11优选为20,取值范围为10到30;参数SP12优选为30,取值范围为10到45。
在原始图象800A中,步骤S402找到了背景块,而且背景峰的峰位为148。因此,条件(1)总是满足。因此只要其它三个条件满足,就可认为当前子图象块为背景块,流程进入步骤S606,否则,流程进入步骤S607。
在步骤S606,对于图象800A,由于已经知道当前子图象块为背景块,因此,让ThW等于0,接着,流程进入步骤S614。
在步骤S607,判断在以前处理时,ThW是否为0,如果是,流程进入步骤S612,否则,流程进入步骤S608。
在步骤S608,判断如果以ThW为阈值,对当前子图象进行二值化后是否异常。判据可采用以下两条(1)当前子图象中,灰度小于EdAV的象素总计数与总边缘象素数的比值是否大于SP13;(2)当前子图象中,所有象素的平均灰度GAV是否大于一预先计算好的全局阈值SP14。
其中,SP13是一预先给定的值,优选为5,取值范围为2到7;SP14是原始图象800A的全局阈值,可以采用现有技术中的二值化方法计算,比如Otsu方法,NiBlack方法,最小误差法或最大熵方法等。在图象800A的实例中,使用Otsu方法进行计算,得到的值为167。
如果上述两个条件都满足,说明以ThW为阈值,对当前子图象进行二值化后异常,流程将进入步骤S609,否则,流程直接进入步骤S610。
在步骤S609,对于图象800A,由于在前面步骤中认为当前子图象块在二值化后会发生异常,故让ThW为0,然后流程进入步骤S610。
在步骤S610,判断当前子图象块是否落在在步骤S303中所找到的黑块当中,判断条件是检查当前子图象块的中心是否在黑块区域中。如果条件满足,认为当前子图象块在黑块中,流程进入步骤S611,否则,流程直接进入S614。
在步骤S611,调整当前子图象块的阈值ThW。由于当前子图象块落在黑块当中,需要考虑黑块的影响,因此,先取出在步骤S302中计算得到的黑块的参考阈值BBTh,让ThW=(BBTh+ThW)/2。然后流程进入步骤S614。
在步骤S612,与步骤S610相同,判断当前子图象块是否落在在步骤S303中所找到的黑块当中,判断条件同样是检查当前子图象块的中心是否在黑块区域中。
在图象800A的实例中,由于是由步骤S607的判断中已经知道,在以前的步骤中当前子图象块被判断为噪音块,同时ThW被置为0。如果当前子图象块落在黑块当中,而阈值却为0,将导致在二值化结果中,黑块里面出现一个白块。为此,在步骤S612中需要检查一下当前子图象块是否落在黑块当中。如果如果条件满足,认为当前子图象块在黑块中,流程进入步骤S613,否则,流程直接进入S614。
在步骤S613,调整当前子图象块的阈值ThW。由于当前子图象块落在黑块当中,需要考虑黑块的影响,因此,先取出在步骤S302中计算得到的黑块的参考阈值BBTh,让ThW=BBTh。然后流程进入步骤S614。
在步骤S614,最终确定当前子图象块的阈值。根据步骤S602至步骤S613各步骤计算得到的ThW和在步骤S304中得到的全局最小阈值ThMg,取两者的最大值为当前子图象块的最终阈值。
在步骤S614,流程进入步骤S615,主要是检查一下是否所有的子图象块已经处理完毕。如果所有的子图象块已经处理完,则子图象阈值确定过程处理结束,否则,流程返回到步骤S601。
返回到图3。在步骤S308后,流程进入步骤S309。在步骤S309,平滑处理装置209将根据在步骤S308中确定的各子图象的阈值,分别做一维或二维线性插值,计算出原始图象800A每一象素的二值化阈值。
有关子图象阈值的平滑处理,可采用参考日本专利特开平第9-233326中提到的平滑方法,其中以原始图象(如图象800A)的左上角为原点,在水平方向,先在上边划出一N/2象素宽度的一条带,再接着对原始图象以N象素为宽度,依次向下划分;同样,在垂直方向,先在左边划出一N/2象素宽度的一条带,再接着对原始图象以N象素为宽度,依次向右划分。这样,把原始图象划分成四类子图象(1)左上角N/2X N/2象素的子图象,在此子图象的各象素的阈值就取在步骤S308中计算的左上角块的阈值;(2)原始图象上边NX N/2象素的子图象,采用水平方向的一维插值,垂直方向的各象素的阈值相等;(3)原始图象左边NX N/2象素的子图象,采用垂直方向的一维插值,水平方向的各象素的阈值相等;(4)其它N×N象素子图象块,采用二维插值方法。
在本实施例中,具体过程与参考日本专利特开平第9-233326中介绍的过程类似,只是子图象的大小不同,而且采用全体平滑,不再定义H1,H2,V1和V2,即令H1=0,H2-N,V1=0,V2=N。
在步骤S309后,流程进入步骤S310。在步骤S310,二值化处理装置210将根据在步骤S309中确定的出原始图象每一象素的二值化阈值,对原始图象作二值化处理;同时,根据在步骤S308中确定的各子图象块的性质,对非噪音子图象块,在输出的二值图象中,把在步骤S306中找到的边缘点作为黑点输出。最后生成原始图象的二值图象;对于原始图象800A,生成了如图8C所示的二值图象。
至此,本实施例完成。
应当理解的是,虽然以上结合本发明的一个具体实施例并参照图8A所示的图象对本发明进行了描述,但本发明不限于此。且在本发明的范围内,可以对具体的细节做出改动。
例如,图象中黑块检测的方法,不仅限于以上描述的方法,而只可以采用其他的替换方法。
作为一种具体的替代方法,首先将图象分为小块,如24×24个象素等的小块,对每一个小块判断其是否为黑块。作为一种具体的黑块判定方法,可先对整个图象取一个较小的阈值,这一阈值可以用任何一个现在已经公开的众所周知的二值化方法来取得,例如使用Otsu方法。如果在一个具体的块中小于该阈值的象素数超过一定的数目,就认为此块是一个黑块。
然后对被判定为黑块的小块进行区域连接,在对小块进行黑块判断的同时进行黑块区域增长,这里可以使用任何一个简单的区域增长方法,如混合连接区域增长方法(其详细的说明可以参见国防科技大学出版社出版的《图象理解》(王润生编著,ISBN7-81024-3136)一书中的3.6.2一节所的描述,不过这里连接的基本单元由象素变为小黑块)。区域连接的判据主要有两个一,所欲判断是否为一整体黑块的两部分的空间接近程度;二,所欲判断是否为一整体黑块的两部分的内部特征是否具有一致性(如黑点在每一块中的比例等)。最后得到一个在本图象中所有的黑块位置的链表。
此外,边缘判据的确定方法,也不仅限于以上描述的方法,而是可以采用其他的方法,包括传统技术中的各种边缘判据(判定阈值)确定方法。
注意本发明可以应用于由多个装置(例如主机、接口装置、读取器、打印机、扫描仪以及类似装置)构成的系统,或者由一个设备构成的装置(例如复印机、传真机或者类似设备)。
本发明的目的还以这样的方式实现对所述的系统或者装置提供用于记录可以实现上述实施例的功能的软件程序的程序代码的存储介质,并通过系统或者装置的计算机(或者CPU或MPU)读取并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读出的程序代码本身执行上述实施例的功能,而存储程序代码的存储介质构成本发明。
作为用于提供程序代码的存储介质,例如软盘、硬盘、光盘、磁光盘、CD-ROM、CD-R、磁带、非易失存储卡、ROM、以及类型物都可以使用。
上述实施例的功能不仅可以通过由计算机执行读出的程序代码来实现,而且也可以通过由计算机执行读出的程序代码来实现,而且也可以通过在计算机上运行的OS(操作系统)根据程序代码的指令执行的一些或全部的实际处理操作来实现。
从上述可以看出,本发明的方法提供了一种有效的表格图象二值化方法,它能够根据图象的各个子图象区的灰度分布,特别是子图象中的边缘象素的灰度值,来确定该子图象的二值化阈值,从而提供更加准确、有效和快速的图象二值化处理。
此外,本发明还包括这样一种情况,即在从存储介质读出的程序代码被写入已被插入计算机的功能扩展卡之后,或者被写入和计算机相连的功能扩展单元内提供的存储器之后,在功能扩展卡或功能扩展单元中包括的CPU或类似物按照程序代码的命令执行部分处理或全部处理,从而实现上述实施例的功能。
在本发明应用于上述存储介质的情况下,存储介质存储相应于实施例中所述的流程(图3,图4、图5和图6)的程序代码。
此外,本发明还提供了一种改进的Sobel边缘提取方法,它克服了传统的Sobel边缘提取中时常发生的边缘象素外移的缺点,从而使提取出的边缘图象更加清楚明确。
这种改进的Sobel边缘提取方法,使提取的边缘象素的位置更加接近图象实际的边缘位置,从而使计算出的子图象边缘象素的灰度更接受实际的情况,从而使确定的子图象二值化阈值更为符合子图象的灰度分布情况,改善了图象的二值化处理。
再有,本发明提供了一种独特的图象黑块检测方法,使黑块的检测更加准确、有效和快速。
不脱离本发明的范围和构思可以作出许多其它改变和改型。应当理解,本发明不限于特定的实施例,本发明的范围由所附权利要求书限定。
权利要求
1.用于对具有灰度分布的图象进行处理的一种图象处理方法,其特征在于包括以下步骤a)计算所述图象的象素的灰度统计分布;b)根据与所述象素灰度统计分布相应的边缘判据,检测图象中的边缘象素;c)把所述图象分成多个子图象;d)根据各子图象中所检测到的边缘象素的灰度,确定该子图象的二值化阈值;e)按照各个子图象的二值化阈值,对该子图象进行二值化处理。
2.根据权利要求1的图象处理方法,其特征在于进一步包括以下步骤为所述图象确定一全局最小阈值,该全局最小阈值使所述图象中小于该全局最小阈值的象素数与该图象中象素总数的比率不低于一定数值;其中所述二值化阈值确定步骤包括根据当前子图象中所检测到的边缘象素的平均灰度值,确定当前子象图的一个候选二值化阈值;把所述全局最小阈值与根据当前子图象的所述候选二值化阈值而确定的一个候选二值化阈值相比较;以及,根据比较的结果确定当前子图象的二值化阈值。
3.根据权利要求2的图象处理方法,其特征在于进一步包括在所述图象中查找黑块的步骤。
4.根据权利要求3的图象处理方法,其中在所述全局最小阈值确定步骤在所述黑块查找步骤在图象中查找到黑块的情况下,按照所查找到的黑块的参考阈值来确定所述全局最小阈值;以及在所述黑块查找步骤在图象中未找到黑块的情况下,根据所述灰度统计分布来确定所述全局最小阈值。
5.根据权利要求4的图象处理方法,进一步包括根据所述灰度统计分布中峰和谷的位置来确定所述全局最小阈值。
6.根据权利要求4的图象处理方法,其中根据所述灰度统计分布来确定所述全局最小阈值包括确定所述灰度统计分布中的峰的数目。
7.根据权利要求4的图象处理方法,其特征在于所述子图象二值化阈值确定步骤包括以当前子图象中所检测到的边缘象素的灰度的平均值作为当前子图象的所述候选二值化阈值。
8.根据权利要求4的图象处理方法,其特征在于所述子图象二值化阈值确定步骤包括以下步骤判断所述子图象是否处于黑块中;以及,在判定所述子图象处于黑块中的情况下,根据该黑块的参考阈值调整所述子图象的所述候选二值化阈值。
9.根据权利要求4的图象处理方法,其特征在于所述子图象二值化阈值确定步骤包括判断当前子图象是否噪声块;以及,在判定当前子图象是噪声块的情况下,使当前子图象的所述候选二值化阈值与该子图象中的边缘象素的灰度无关。
10.根据权利要求4的图象处理方法,其特征在于所述子图象二值化阈值确定步骤包括判断当前子图象是否背景块;以及,在判定当前子图象是背景块的情况下,使当前子图象的所述候选二值化阈值与该子图象中的边缘象素的灰度无关。
11.根据权利要求4的图象处理方法,其特征在于所述子图象二值化阈值确定步骤包括判断当前子图象是否为白块;在判定当前子图象为白块的情况下,判断当前子图象是否在黑块中;以及,在判定当前子图象在黑块中的情况下,根据该黑块的参考阈值调整当前子图象的所述候选二值化阈值。
12.根据权利要求4的图象处理方法,其特征在于所述子图象二值化阈值确定步骤包括预测当前子图象在二值化之后是否异常;以及在预测当前子图象在二值化之后将发生异常的情况下,使当前子图象的二值化阈值与该子图象中的边缘象素的灰度值无关。
13.根据权利要求2-12中的任何一项的图象处理方法,其特征在于进一步包括使当前子图象的二值化阈值大于等于所述全局最小阈值。
14.根据权利要求1-12中的任何一项的图象处理方法,其特征在于所述图象边缘象素检测步骤包括计算一个目标象素处的图象灰度分布的梯度的幅度,确定所述梯度的方向;把计算出的梯度的幅度与所述边缘判据进行比较;当所述梯度幅度大于所述边缘判据时,把在所述目标象素附近的这样一个象素判定为边缘象素,即从所述目标象素至该象素的方向与目标象素处的梯度方向相同。
15.根据权利要求14中的图象处理方法,其特征在于所述边缘判据是通过以下步骤计算出的根据所述灰度统计分布对所述图象进行分析;根据所述分析步骤的分析结果确定用于把所述图象分割成前景和背景的分割阈值;根据所述前景的象素灰度之和与所述背景的象素灰度之和来确定所述边缘判据。
16.根据权利要求15的图象处理方法,其特征在于所述分析步骤根据计算出的灰度分布频率把所述图象划分为以下图象类型中的一种第一种图象类型,其中前景和背景分布均衡;第二种图象类型,其中前景不清楚;以及第三种图象类型,其中背景不清楚。
17,根据权利要求3-12中的任何一项的图象处理方法,其特征在于所述黑块查找步骤包括以下步骤对图象中各行的象素的灰度求和,获得由各行象素的灰度和构成的一个第一序列;对图象中各列的象素的灰度求和,获得由各列象素的灰度和构成的一个第二序列;找出第一序列的变化率极值点和极值点所在的行;找出第二序列的变化率极值点和极值点所在的列;用极值点所在的行和列对所述图象进行分割,从而获得一系列的图象分割区;判断各个所述图象分割区中的所有象素的平均灰度是否低于一个预定的黑块判定阈值。
18.根据权利要求17的图象处理方法,其特征在于进一步包括以下步骤判断各个所述图象分割区是否散碎块;以及在判定所述图象分割区是否散碎块的情况下,不把该分割区作为黑块。
19.根据权利要求16的图象处理方法,其特征在于找出第一和第二序列的变化率极值点的步骤包括对所述两个序列分别作卷积运算,从而分别获得两个新的序列;判定两个新序列中的各项的绝对值是否大于一个预定值;以及把新序列中大于该预定值的项所在的行/列作为变化率极值点所在的行/列。
20.根据权利要求3-12中的任何一项的图象处理方法,其特征在于进一步包括用所获得的各子图象的二值化阈值对当前子图象及相邻子图象中的象素作二维插值。
21.一种用于处理具有一种灰度分布的图象的图象处理方法,其特征在于包括以下步骤计算所述灰度分布在一个目标象素处的梯度的幅度;确定所述梯度的方向;把计算出的梯度的幅度与一个预定值进行比较;当所述梯度幅度大于所述预定值时,把在所述目标象素附近的这样一个象素判定为边缘象素,即从所述目标象素至该象素的方向与目标象素处的所述梯度方向相同。
22.根据权利要求21的图象处理方法,其中所述梯度是离散梯度。
23.根据权利要求21所述的图象处理方法,其中所述梯度是用sobel算子计算的。
24.根据权利要求21的图象处理方法,其中所述预定值是按照所述图象的灰度分布频率来确定的。
25.根据权利要求21的图象处理步骤,其中所述预定值是通过以下步骤确定的计算所述图象中的象素灰度分布频率;根据计算出的灰度分布频率对所述图象进行分析;根据所述分析步骤的分析结果确定用于把所述图象分割成前景和背景的分割阈值;根据所述前景的象素灰度之和与所述背景的象素灰度之和来确定所述边缘判据。
26.根据权利要求25的图象处理方法,其特征在于所述分析步骤根据计算出的灰度分布频率把所述图象划分为以下图象类型中的一种第一种图象类型,其中前景和背景分布均衡;第二种图象类型,其中前景不清楚;以及第三种图象类型,其中背景不清楚。
27.用于对具有灰度分布的图象进行处理的一种图象处理设备,其特征在于包括a)象素灰度统计分布计算装置,用于计算所述图象的象素的灰度统计分布;b)边缘象素检测装置,用于根据与所述象素灰度统计分布相应的边缘判据,检测图象中的边缘象素;c)图象分割装置,用于把所述图象分成多个子图象;d)子图象阈值确定装置,用于根据各子图象中所检测到的边缘象素的灰度,确定该子象图的二值化阈值;e)二值化处理装置,用于按照各个子图象的二值化阈值,对该子图象进行二值化处理。
28.根据权利要求27的图象处理设备,其特征在于进一步包括全局最小阈值确定装置,用于为所述图象确定一全局最小阈值,该全局最小阈值使所述图小于该全局最小阈值的象素数与该图象中象素总数的比率不低于一定数值;其中所述二值化阈值确定装置根据当前子图象中所检测到的边缘象素的平均灰度值,确定当前子象图的一个候选二值化阈值;把所述全局最小阈值与当前子图象的所述候选二值化阈值相比较;以及,根据比较的结果确定当前子图象的二值化阈值。
29.根据权利要求28的图象处理设备,其特征在于进一步包括在所述图象中查找黑块的装置。
30.根据权利要求29的图象处理设备,其中在所述全局最小阈值确定装置在所述黑块查找步骤在图象中查找到黑块的情况下,按照所查找到的黑块的参考阈值来确定所述全局最小阈值;以及在所述黑块查找步骤在图象中未找到黑块的情况下,根据所述灰度统计分布来确定所述全局最小阈值。
31.根据权利要求27的图象处理设备,其特征在于所述边缘象素检测装置包括图象分类装置,用于根据计算出的灰度分布频率对所述图象进行分类;分割阈值确定装置,用于根据所述分类装置的分类结果,确定用于把所述图象分割成前景和背景的分割阈值;边缘判据确定装置,用于根据所述前景的象素灰度之和与所述背景的象素灰度之和来确定所述边缘判据。
32.一种用于存储图象处理程序代码的存储介质,其特征在于该程序代码至少包括a)用于计算所述图象的象素的灰度统计分布的代码;b)用于根据与所述象素灰度统计分布相应的边缘判据,检测图象中的边缘象素的代码;c)用于把所述图象分成多个子图象的代码;d)用于根据各子图象中所检测到的边缘象素的灰度确定该子象图的二值化阈值的代码;e)的代码按照各个子图象的二值化阈值对该子图象进行二值化处理的代码。
33.根据权利要求32的存储介质,其特征在于所述程序代码进一步包括为所述图象确定一全局最小阈值的代码,该全局最小阈值使所述图小于该全局最小阈值的象素数与该图象中象素总数的比率不低于一定数值;其中所述二值化阈值确定代码包括根据当前子图象中所检测到的边缘象素的平均灰度值确定当前子象图的一个候选二值化阈值的代码;把所述全局最小阈值与当前子图象的所述候选二值化阈值相比较的代码;以及,根据比较的结果确定当前子图象的二值化阈值的代码。
34.根据权利要求33的存储介质,其特征在于所述程序代码进一步包括在所述图象中查找黑块的代码。
35.根据权利要求34的存储介质,其中用于确定所述全局最小阈值的代码在所述黑块查找步骤在图象中查找到黑块的情况下,按照所查找到的黑块的参考阈值来确定所述全局最小阈值;以及在所述黑块查找步骤在图象中未找到黑块的情况下,根据所述灰度统计分布来确定所述全局最小阈值。
全文摘要
本发明提供了一种独特的图象二值化处理方法、设备、系统和存储介质,其中把待处理图象分割成多个子图象,按照各个子图象中检测到的边缘象素的灰度值,确定该子图象的二值化阈值。本发明的图象处理方法包括计算所述图象的象素的灰度统计分布;根据与所述象素灰度统计分布相应的边缘判据,检测图象中的边缘象素;把所述图象分成多个子图象;根据各子图象中所检测到的边缘象素的灰度,确定该子象图的二值化阈值;按照各个子图象的二值化阈值,对该子图象进行二值化处理。
文档编号G06T5/00GK1400806SQ0112447
公开日2003年3月5日 申请日期2001年7月31日 优先权日2001年7月31日
发明者李玉麟, 王洁, 赵洪生 申请人:佳能株式会社