一种基于通道的图像二值化方法与流程

文档序号:11865970阅读:471来源:国知局
一种基于通道的图像二值化方法与流程

本发明涉及数字图像处理技术领域,尤其涉及一种基于通道的图像二值化方法。



背景技术:

自20世纪40年代计算机的问世和人工智能技术的提出,计算机就被寄望来替代人类的脑力活动工作,其中图像图形处理在计算机中不断被实践与研究,人们希望计算机能够自动处理图像,最后把处理的结果呈现在人们眼前。从20世纪20年代OCR技术被提出到如今,OCR技术已经达到较高的水平,同时也出现了一批OCR产品,其中最为广泛的为图像车牌识别,即对车牌号码进行拍照取像,再通过图像处理技术进行车牌号码提取。可见图像处理技术在计算机领域中占有一定的地位。在图像处理技术中,图像二值化处理是图像预处理中重要的一步,二值化处理的质量直接决定着后续步骤的难度和准确性。

虽然目前OCR技术研究已经颇有成效,但还是处于发展阶段,对图像的预处理等技术还需要继续研究与实践。一种好的图像二值化处理方法可以大大提高图像中的字符特征提取与识别的效率和准确度。自IBM公司在20世纪60年代提出汉字识别的方案之后,汉字识别开始被研究。在汉字识别中,需要提取汉字的各个有效特征,并与特征库中的汉字进行匹配。在OCR技术中,由于彩色图像的信息量较大,且在特征提取操作中,需要的是字符本身的结构特征,因此对图像进行二值化处理有利于减少后续操作的复杂性。二值化图像处理是对输入的彩色图像的像素值进行分析,根据特定算法得到的阈值来划分前景和背景。二值化处理将图像的文字区域即前景部分设为黑色,将背景设为白色,突出文字区域,大大方便了特征提取及字符识别的进行。

二值化处理方法其中主要分为两类:全局处理与局部处理。全局处理即对整个图像采取一个阈值进行评判,计算得出阈值后该阈值将保持不变直到图像处理完成。其中有Kittler算法和基于直方图的全局阈值算法等。局部处理即动态的阈值评判,将图像分为大致均等的若干部分,每一次进行计算得出当前部分的阈值,然后进行二值化处理,直到整个图像处理完成。其中有Wall算法和Wellner自适应滤波阈值算法。在图像处理中,影响图像处理质量因素有很多。不同的二值化算法适用的情况也不尽相同。尽管上述算法能解决大部分问题,但是随着图像的复杂度的提高,处理得出的结果还是多少让人不满意,特别是图像光照不均匀情况下,处理后的出的结果图像模糊或主要部分没有被突显出来等。在文字识别的图像处理中,图像质量的优秀与否直接影响到处理的质量以及识别率。而大部分拍摄图片的时候不能保证很好的图像质量,最常见的就是光照不均匀的情况。



技术实现要素:

为克服现有技术的不足,解决因光照不均匀而造成二值化效果不佳的图像处理问题,本发明提出一种基于通道的图像二值化方法。

本发明的技术方案是这样的:一种基于通道的图像二值化方法,包括以下步骤:

S1:对于需要进行二值化处理的图像,将图像视为一个像素矩阵I,图像的宽度记为w,高度记为h;

S2:逐行对像素矩阵I进行处理,每次扫描一行的像素点,处理第i行时收集统计像素点I[i][j]的红、蓝、绿三个通道值以及灰度值的信息,分别记为Rij、Gij、Bij和GREYij,其中GREYij是灰度值,GREYij=(Rij+Gij+Bij)/3,并计算第i行像素点中这四个量的平均值,即:

redAvgi=(∑0≤j<wRij)/w,

greenAvgi=(∑0≤j<wGij)/w,

blueAvgi=(∑0≤j<wBij)/w,

greyAvgi=(∑0≤j<wGREYij)/w;

S3:将第i行像素点的各个通道根据对应通道的平均值和阈值对第i行各通道像素值进行统计并进行二值化处理:

S31:将像素点的红色、绿色、蓝色各通道值总和以及灰度值总和分别记为redSumi,greenSumi,blueSumi,greySumi;符合要求的红色、绿色、蓝色、灰度值的像素点个数分别记为redCounti,greenCounti,blueCounti,greyCounti;将其全部初始化为0;

S32:对红色通道Ri进行处理,采用redAvgi+α作为分界值,遍历第i行像素点,若Rij<redAvgi+α,则认为I[i][j]为红色像素点,将红色通道值累加到总和redSumi,将redCounti加1;采用相同的方法对Gi、Bi和GREYi进行处理,得到greenSumi、greenCounti、blueSumi、blueCounti、greySumi、,greyCounti,其中α是图像标准方差的十分之一;

S33:若redCounti为0,将第i行像素点全设为白色;若redCounti不为0,使redAvgi等于所有红色像素点的平均值,即redAvgi=redSumi/redCounti;遍历整行像素点,若Rij<redAvgi+β,则设置I[i][j]为黑色;其中β为图像标准方差的十分之一;

S34:将红色通道Ri分别替换为Gij、Bij、GREYij通道信息,重复步骤S32-S33,修正二值化结果,与红色通道不同的是,只将原先白色像素值修正为黑色;

S4:若i<h-1,i=i+1;则重复步骤S2-S3,对下一行像素点进行基于通道的二值化处理。

进一步地,步骤S2为从上到下逐行对所述像素矩阵进行扫描。

进一步地,步骤S32为从左到右对第i行像素点进行遍历。

本发明的有益效果在于,与现有技术相比,本发明可以对光照不均的图像进行快速且准确地二值化处理。

附图说明

图1是本发明基于通道的图像二值化方法流程图。

图2是图1中的步骤S3详细步骤流程图。

图3是未二值化前的小票图片。

图4是图3中的小票图片经过本发明的方法处理后的二值化结果。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参见图1和图2,本发明一种基于通道的图像二值化方法,包括以下步骤:

对于需要进行二值化处理的图像,将图像视为一个像素矩阵I,图像的宽度记为w,高度记为h。每个像素点即矩阵中每个元素I[i][j],其中i∈[0,h),j∈[0,w),均包含r、g、b三个通道的信息。

从上到下逐行对像素矩阵I进行处理,每次扫描一行的像素点。处理第i行时(i∈[0,h)),收集统计I[i][j]的红、蓝、绿三个通道值以及灰度值的信息,分别记为Rij、Gij、Bij和GREYij,其中GREYij是灰度值,这里采用GREYij=(Rij+Gij+Bij)/3,计算第i行像素点中这四个量的平均值,即:

redAvgi=(∑0≤j<wRij)/w,

greenAvgi=(∑0≤j<wGij)/w,

blueAvgi=(∑0≤j<wBij)/w,

greyAvgi=(∑0≤j<wGREYij)/w。

将第i行像素点的各个通道根据对应通道的平均值和阈值对第i行各通道像素值进行处理并统计:

将像素点的红色、绿色、蓝色各通道值总和以及灰度值总和分别记为redSumi,greenSumi,blueSumi,greySumi;符合要求的红色、绿色、蓝色、灰度值的像素点个数分别记为redCounti,greenCounti,blueCounti,greyCounti;将其全部初始化为0。

对红色通道Ri进行处理,采用redAvgi+α作为分界值,从左到右遍历第i行像素点,若Rij<redAvgi+α,则认为I[i][j]为红色像素点,将红色通道值累加到总和redSumi,将redCounti加1;采用相同的方法对Gi、Bi和GREYi进行处理,得到greenSumi、greenCounti、blueSumi、blueCounti、greySumi、greyCounti,其中α是实验得出的分界效果最佳的值,一般取为图像标准方差的十分之一。

根据上述步骤的计算结果修正I[i][j]的二值化结果:

若redCounti为0,将第i行像素全设为白色(255);若redCounti不为0,使redAvgi等于所有红色像素点的平均值,即redAvgi=redSumi/redCounti;遍历整行像素,若Rij<redAvgi+β,则设置I[i][j]为黑色(0);其中β是实验得出调节效果最佳的值,一般地,β为图像标准方差的十分之一。

然后根据Gij、Bij、GREYij通道信息继续修正二值化结果,与r通道不同的是,只将原先白色像素点修正为黑色。

若i<h-1,i=i+1;则继续对下一行像素点进行基于通道的二值化处理。

下面将以超市小票图像为例,对本发明流程进行进一步阐述。

图3是未经处理的打印(光照)不均匀的超市小票,可以看出小票图像明暗程度不均,随着位置往下,其亮度也逐渐减小。实验获得处理红色通道的实验值α取值为-20,处理绿色通道的实验值α取值为-25,处理蓝色通道的实验值α取值为-23,处理灰度值的实验值α取值为-20。调节设置黑白像素值的实验值β取值情况分别为,调节红色通道实验值β取值为18,调节绿色通道实验值β取值为9,调节蓝色通道实验值β取值为8,调节灰度实验值β取值为8。

步骤二,将图3视为一个像素矩阵I,图像的宽度记为w=350,高度记为h=500。每个像素点即矩阵中每个元素I[i][j],其中i∈[0,500),j∈[0,350),均包含r、g、b三个通道的信息。

步骤三,从0到500逐行对像素矩阵I进行处理,每次扫描一行的像素点。处理第i行时(i∈[0,500)),收集统计I[i][j]的红、蓝、绿三个通道以及灰度值的信息,分别记为Rij、Gij、Bij和GREYij(注:GREYij是灰度值,这里采用GREYij=(Rij+Gij+Bij)/3),计算第i行像素点中这四个量的平均值,即:

redAvgi=(∑0≤j<350Rij)/350,

greenAvgi=(∑0≤j<350Gij)/350,

blueAvgi=(∑0≤j<350Bij)/350,

greyAvgi=(∑0≤j<350GREYij)/350。

将第i行像素的各个通道根据对应通道的平均值和阈值对第i行各通道像素值进行处理并统计:

1)将像素点的红色、绿色、蓝色各通道值总和以及灰度值总和分别记为redSumi,greenSumi,blueSumi,greySumi;符合要求的红色、绿色、蓝色、灰度值的像素点个数分别记为redCounti,greenCounti,blueCounti,greyCounti;将其全部初始化为0。

2)对红色通道Ri进行处理,采用redAvgi–20作为分界值,从左到右遍历第i行像素,若Rij<redAvgi–20,则认为I[i][j]为红色像素点,将红色通道值累加到总和redSumi,将redCounti加1;采用相同的方法对Gi、Bi和GREYi进行处理,得到greenSumi、greenCounti、blueSumi、blueCounti、greySumi、,greyCounti

例如i=200时,统计第200行时实验得出几个平均值的量为redAvg200=138,greenAvg200=168,blueAvg200=148,greyAvg200=151。

接下来收集统计第200行中红色、绿色、蓝色和灰度等各类像素点,即分别为符合条件:R200,j<138–20、G200,j<168–25、B200,j<148–23、GREY200,j<151–20的点,并且计算各类像素点对应的总和sum和个数count。实验得出,当i=200时,redSum200=6343,redCount200=77,greenSum200=7757,greenCount200=72,blueSum200=6763,blueCount200=74,greySum200=7286,greyCount200=77。

步骤四,根据步骤三的计算结果修正I[i][j]的二值化结果:

1)若redCounti为0,将第i行像素全设为白色(255);若redCounti不为0,使redAvgi等于所有红色像素点的平均值,即redAvgi=redSumi/redCounti;遍历整行像素,若Rij<redAvgi+β,则设置I[i][j]为黑色(0);

2)根据Gij、Bij、GREYij通道信息继续修正二值化结果,与r通道不同的是,只将原先白色像素值修正为黑色。

例如i=200时,由步骤三得出的像素统计数据可以对第200行的像素点进行二值化,即设置像素值为黑(0)或者白(255)。

实验得出红色像素平均值redAvg200=82,绿色像素平均值greenAvg200=107,蓝色像素平均值blueAvg200=91,灰度像素平均值greyAvg200=94。

由红色通道信息,将R200,j<82+18的像素点认为是前景,设置其像素为黑色,否则设置为白色;

根据绿色、蓝色、灰度值等信息,对第200行像素进行三次修正。将分别满足G200,j<107+9、B200,j<91+8、G200,j<94+8的白色像素点设置为黑色,逐渐修正第一次二值化的误差。

步骤五,若i<499,i=i+1;返回步骤2,对下一行像素点进行基于通道的二值化处理。比如i=200时,则需返回步骤2进行下一行的二值化处理;若i=499,则说明整个图像二值化处理完毕。图像4经二值化处理后的图像如图4所示。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1