图像模糊度估计方法

文档序号:6490031阅读:279来源:国知局
图像模糊度估计方法
【专利摘要】本发明公开了一种图像模糊度估计方法,其包括:从定位到条码的图像中提取多个观测特征矢量,其中多个模糊等级中的每一个对应一个观测特征矢量和预先建立的多个基准特征矢量集中的一个;将提取的每个观测特征矢量与对应的基准特征矢量集中的每个基准特征矢量进行比较以在该对应的基准特征矢量集中找到一个与该提取的观测特征矢量相匹配的基准特征矢量,记录提取的观测特征矢量与找到的匹配基准特征矢量的相似度;基于提取的各个观测特征矢量与找到的各个匹配基准特征矢量的相似度确定采集的图像的模糊等级。这样,本发明充分利用了条码图像的特点,可以准确的、快速的得到图像的模糊等级,运算复杂度相对较低。
【专利说明】图像模糊度估计方法
【【技术领域】】
[0001]本发明涉及线性条码(linear barcode)识别领域,尤其涉及一种线性条码识别过程中的模糊度估计方法。
【【背景技术】】
[0002]线性条码也常被称为一维条码(ID barcode),其是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。目前在工业和民用领域应用得非常广泛。常见的线性条码包括统一商品码(Universal Product Code,简称UPC码)、欧洲商品编码(European ArticleNumber,简称EAN码)、日本商品编码(Japanese ArticleNumber,简称 JAN 码)、Code 25、Code 39, Code 128 等等。
[0003]常用的条码扫描设备通常由光源(比如激光)、光学透镜、感光器件(例如(XD,CMOS等)、解码逻辑电路和1/0接口等组件构成。简单来讲,所述光源投射光至条码上,从条码处反射的光透过所述光学透镜进入感光器件表面,经过光电转换、模数转换等一系列处理后形成条码的数字图像,然后解码逻辑电路对摄取的图像进行分析和解码。目前的条码扫描设备一般都是专用的条码扫描设备,比如商场内的与零售系统连接的条码扫描器、图书馆内的与图书管理系统连接的条码扫描器或医院内的与电脑系统连接的条码扫描器,其可以采集到高质量的条码图像,这样可以较为容易的实现条码的解码。
[0004]目前很多便携式电子设备比如手机、PDA(个人数字助理)等都配置有摄像头装置,利用所述摄像头装置用户可以进行拍摄照片和视频等应用。对于较低配置的摄像头模组,比如存在于大量中低端手机中的摄像头模组,由于是采用定焦镜头(fixed-focuslens),导致拍摄的图像经常由于对焦不准而处于模糊状态。
[0005]为了对模糊状态的图形进行准确有效的条码识别,有必要估计得到图像的模糊度(或称模糊等级)。图像模糊度的估计已经存在一些有效的办法,比如通过在倒谱域内或者小波变换等进行估计,由于运算复杂度相对较高,不适于条码识别的实时性要求。
[0006]因此,有必要开发出一种改进的图像模糊度估计方法。

【发明内容】

[0007]本发明要解决的技术问题之一在于提供一种模糊度估计方法,其可以对图像的模糊度进行快速准确的估计。
[0008]为了解决上述问题,根据本发明的一个方面,本发明提供了一种图像模糊度估计方法,其包括:采集图像;在采集的图像中进行条码检测和定位;从定位到条码的图像中提取多个观测特征矢量,其中多个模糊等级中的每一个模糊等级对应一个观测特征矢量和预先建立的多个基准特征矢量集中的一个基准特征矢量集,每个基准特征矢量集由多个基准特征矢量组成,每个基准特征矢量集中的每个基准特征矢量是基于对应的模糊等级和条码定义的多个信息单元中的一个生成的;将提取的每个观测特征矢量与对应的基准特征矢量集中的每个基准特征矢量进行比较以在该对应的基准特征矢量集中找到一个与该提取的观测特征矢量相匹配的基准特征矢量,记录提取的观测特征矢量与找到的匹配基准特征矢量的相似度;基于提取的各个观测特征矢量与找到的各个匹配基准特征矢量的相似度确定匹配最佳的观测特征矢量和匹配基准特征矢量,将该匹配最佳的观测特征矢量和基准特征矢量对应的模糊等级作为采集的图像的模糊等级。
[0009]进一步的,所述条码定义的每个信息单元包括所述条码定义的多个条码字符的组合的部分或全部。更进一步的,所述条码定义的条码字符包括定位符和多个数据符,所述定位符和与其合法相邻的一个或多个数据符的组合的部分或全部形成一个信息单元。
[0010]进一步的,所述从定位到条码的图像中提取多个观测特征矢量包括:从定位到条码的图像中以预定位置为基准提取不同宽度的图像数据,基于提取的每个宽度的图像数据形成一个观测特征矢量。更进一步的,从定位到的条码的边界开始取不同宽度的图像数据。
[0011]进一步的,将对应的基准特征矢量集中的与提取的观测特征矢量相似度最高的基准特征矢量作为与该提取的观测特征矢量相匹配的基准特征矢量。
[0012]进一步的,相似度最高的观测特征矢量和/或匹配基准特征矢量被作为最佳观测特征矢量和/或最佳匹配基准特征矢量。
[0013]进一步的,基于提取的各个观测特征矢量与找到的各个匹配基准特征矢量的相似度拟合一条曲线,该曲线的峰值对应的观测特征矢量和匹配基准特征矢量被作为匹配最佳的观测特征矢量和匹配基准特征矢量。
[0014]与现有技术相比,在本发明中充分利用了条码图像的特点,采用了一种完全不同的模糊度估计方法,可以准确的、快速的得到图像的模糊度或模糊等级,运算复杂度相对较低,可以满足实时性的要求。
[0015]关于本发明的其他目的,特征以及优点,下面将结合附图在【具体实施方式】中详细描述。`
【【专利附图】

【附图说明】】
[0016]结合参考附图及接下来的详细描述,本发明将更容易理解,其中同样的附图标记对应同样的结构部件,其中:
[0017]图1为提出的图像模糊度估计方法在一个实施例中的流程示意图;
[0018]图2示出了采集的条码图像的示例;
[0019]图3示出了 EAN-13条码的结构示例;
[0020]图4示出了一个黑线条模糊后的示意图;
[0021]图5为找到的匹配基准特征矢量的相似度的拟合曲线示意图;
[0022]图6为本发明中的条码检测方法在一个实施例中的流程示意图;
[0023]图7为本发明中在进行条码检测时的条形区域搜索方法在一个实施例中的流程示意图;
[0024]图8示出了在条形区域搜索时图像中的查找区域和停止区域的相对位置关系;
[0025]图9为本发明中的条码定位方法在一个实施例中的流程示意图;
[0026]图10示出了在边界点搜索时图像中的搜索区域的位置的示例;
[0027]图11为本发明中在进行条码定位时的边界点搜索方法在一个实施例中的流程示意图;和[0028]图12示出了灰度图像中的一行像素点的灰度值曲线示例。
【【具体实施方式】】
[0029]为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和【具体实施方式】对本发明作进一步详细的说明。
[0030]本发明的详细描述主要通过程序、步骤、逻辑块、过程或其他象征性的描述来呈现,其直接或间接地模拟本发明中的技术方案的运作。所属领域内的技术人员使用此处的这些描述和陈述向所属领域内的其他技术人员有效的介绍他们的工作本质。
[0031 ] 此处所称的“ 一个实施例”或“实施例”是指与所述实施例相关的特定特征、结构或特性至少可包含于本发明至少一个实现方式中。在本说明书中不同地方出现的“在一个实施例中”并非必须都指同一个实施例,也不必须是与其他实施例互相排斥的单独或选择实施例。此外,表示一个或多个实施例的方法、流程图或功能框图中的模块顺序并非固定的指代任何特定顺序,也不构成对本发明的限制。
[0032]本发明充分利用条码图像的特点,利用定位出的条码协助进行模糊度(或称模糊等级)估计,运算复杂度相对较低,可以满足实时性的要求。
[0033]图1为本发明提出的图像模糊度估计方法100在一个实施例中的流程示意图。如图1所示,所述图像模糊度估计方法100包括如下步骤。
[0034]步骤110,采集图像。
[0035]在一个实施例中,所述图像模糊度估计方法100在一个具有摄像装置的便携式电子设备(比如手机)上执行,利用便携式电子设备上的摄像装置采集连续的图像或视频。所述摄像装置可以采用定焦镜头(fixed-focus lens),也可以采用变焦镜头。在一个优选的实施例中,在采集图像后,还需要对采集的图像进行预处理以得到固定尺寸的灰度图像,所述预处理可以包括裁剪、尺寸变换以及彩色图像转灰度图图像等操作。
[0036]如图2所示,其示出了一张采集的图像,其由于镜头或其他原因而变得有些模糊。
[0037]该步骤120,在采集的图像中进行条码检测和定位。
[0038]这个步骤包括两个子步骤,其中一个子步骤是在采集的图像中进行条码检测以确定图像中是否有条码(如图2所示的条码),如果没有则不进行后续的条码定位以及模糊度的估计,如果有则继续进行;另一个子步骤是在图像中检测到条码后,继续在采集的图像中进行条码定位以确定条码的边界(比如,图2中示意出的左右边界)。
[0039] 需要注意的是,本发明的侧重点不在于如何在采集的图像中进行条码检测和定位,其可以采用现有的任何方法进行条码检测和定位,只要能找到图像中的条码的边界即可。不过在本发明中仍然提出了一种优化的条码检测方法以及条码定位方法,下文将分别进行详细描述。
[0040]步骤130,从定位到条码的图像中提取多个观测特征矢量,其中多个模糊等级中的每一个模糊等级对应一个观测特征矢量和预先建立的多个基准特征矢量集中的一个基准特征矢量集,每个基准特征矢量集由多个基准特征矢量组成,每个基准特征矢量集中的每个基准特征矢量是基于对应的模糊等级和条码定义的多个信息单元中的一个生成的。
[0041]在进行实时的模糊度估计之前,需要预先建立多个基准特征矢量集。为了清楚,所述基准特征矢量集标记为Ci,其中1≤i≤n,也可分别标为C1, C2,……,Cn,模糊等级标记为Bi,也可分别标为B1,B2,……,Bn,所述观测特征矢量标记为Vi,也可分别标记为V1,V2,……,Vn, η为基准特征矢量集的个数、模糊等级的个数和观测特征矢量的个数,η大于等于2。模糊等级Bi对应所述基准特征矢量集Ci和观测特征矢量Vi。每个基准特征矢量集(;中的基准特征矢量标记为Cij,其中m,也可分别标记为Cjl,ci2,……,Cim,条码定义的信息单元标记为Uj,也可分别标记为U1, U2,……,IV m为条码定义的信息单元的个数和每个基准特征矢量集中的基准特征矢量的个数,m大于等于2。
[0042]在一个实施例中,基于一个模糊等级Bi和条码定义的一个信息单元+生成一个基准特征矢量cu,这样可以为每个模糊等级Bi建立相应的标准特征矢量集C”在具体实现时,每个模糊等级Bi具有一个对应的模糊函数,所述基准特征矢量为模糊等级Bi对应的模糊函数和信息单元+的标准函数的卷积。
[0043]为了使得本发明更容易理解,这里有必要解释一下模糊等级B”如图4所示,其示出了一条黑线(图中为了突出显示将其转换为白线)模糊之后的图形,可以看出,该黑线模糊之后的宽度变为了 dl,通常可以用该宽度来表示模糊的程度,比如dl越大表示越模糊,dl越小表示越不模糊。可以根据dl的尺寸和实际需要将模糊度分为不同的等级。举例来说,对于下文描述的EAN-13条码,可以每个模块(module)宽度w设置一个模糊等级,比如dl=0时为第一模糊等级B1, dl≤l*w时为第二模糊等级B2, l*w < dl≤2%为第三模糊等级B3,……,(n-2)\< dl≤(η-1)\为第η模糊等级Bn。当然也可以每隔其它预定宽度设置一个模糊等级,比如每半个模块宽度《/2设置一个模糊等级。
[0044]通常,所述条码定义的条码字符包括定位符(比如起始符、终止符和中间分隔符)和多个数据符。图3不出了 EAN-13条码(European Article Number-13barcode)的结构示例。如图3所示,EAN-13条码是由起始符(guard pattern onthe left),6个左侧数据符(symbol characters on the left),中间分隔符(centreguard pattern),6个右侧数据符(symbol characters on the right),以及终止符(guard pattern on the right)构成。起始符由3个模块(module)构成,固定为“ 101”,表示“条空条”(bar, space, bar) ;6个左侧数据符由42个模块构成,由条码字符集A子集(number set A)或B子集定义,每个数据符各占7个模块;中间分隔符由 5个模块构成,固定为“01010”,表示“空条空条空”;6个右侧数据符由42个模块构成,由 条码字符集C子集定义,每个数据符各占7个模块;终止符由3个模块构成,固定为“ 101”,表示“条空条”,每个模块的宽度固定。
[0045]由于图像模糊之后,相邻的条码字符之间会有影响,如图2和3所示。具体来讲,图3中的左侧第一个数据符将会受到其左边相邻的起始符的影响,也会受到其右边相邻的左侧第二个数据符的影响,模糊等级越高,影响的程度将会越深,模糊等级越低,影响的程度将会越低。假如模糊宽度d为一整个数据符的宽度,那么左侧第一个数据符的左半边都会受到起始符的影响,左侧第一个数据符的右半边都会受到左侧第二个数据符的影响。
[0046]在一个实施例中,所述条码定义的每个信息单元包括所述条码定义的多个条码字符的组合的部分或全部。优选的,由于定位符(比如起始符和终止符)是固定不变的,因此以左侧第一个数据符或右侧最后一个数据符为基础确定所述条码定义的信息单元可以大大减少信息单元的个数,从而降低计算量。以左侧第一个数据符为例进行介绍,假设模糊宽度d小于一个数据符的宽度,此时所述条码定义的信息单元由起始符(标记为Al)、条码定义的一个左侧数据符(标记为A2)和条码定义的一个左侧数据符(标记为A3)的左半边依次排布组成,由于Al是固定的,A2可以是10个数据符中的任何一种,A3也可以是10个数据符中的任何一种,因此将会有100种合法组合,也就是说,所述信息单元将有100个。对于实际的条码图像来说,其左侧第一个条码数据符必定是定义的信息单元中的部分。此外,假如需要处理的模糊宽度d大于I个数据符宽度小于2个数据符宽度,那么所述信息单元可以由起始符(标记为Al)、条码定义的一个左侧数据符(标记为A2)、条码定义的一个左侧数据符(标记为A3)和条码定义的一个左侧数据符(标记为A4)的左半边依次排布组成。当然,随着需要处理的模糊宽度d的进一步增大,需要的数据符的数量就会进一步增多。此外,还可以其它定位符为基础设定信息单元,比如终止符和中间分割符,原理相同,这里不再赘述。
[0047]再次回到步骤130中的操作,在一个实施例中,在从定位到条码的图像中提取多个观测特征矢量时,可以从定位到条码的图像中以预定位置为基准提取不同宽度的图像数据,基于提取的每个宽度的图像数据形成一个观测特征矢量。优选的,假如信息单元中包括起始符或终止符,那么可以从定位到的条码的边界(比如左边界或右边界)开始取不同宽度的图像数据,即以条码的边界为基准提取不同宽度的图像数据。
[0048]具体的,以信息单元包括起始符为例进行介绍,可以从定位到的条码的左边界扫描到所述条码的右边界得到一行像素的灰度数据,从该行像素的灰度数据中从左边界开始提取宽度h的灰度数据,基于提取的灰度数据生成所述观测特征矢量Vi。由于不同模糊度Bi的宽度不同,同样的数据符在不同模糊度下的宽度也是不同的,因此不同的观测特征矢量Vi对应的宽度Iii也应该不同,比如Ii1和h2的差是由于模糊度B1和B2的模糊宽度不同而造成的。
[0049]从另一个角度来说,步骤130中的从定位到条码的图像中提取多个观测特征矢量可以理解为:假设定位到条码的图像的模糊等级为B1,从图像中以预定位置(比如左右边界)为基准提 取预定宽度h的图像数据以形成观测特征矢量V1 ;假设定位到条码的图像的模糊等级为B2,从图像中以预定位置为基准提取预定宽度匕的图像数据以形成观测特征矢量v2;……;假设定位到条码的图像的模糊等级SBn,从图像中以预定位置为基准提取预定宽度hn的图像数据以形成观测特征矢量vn。
[0050]步骤140,将提取的每个观测特征矢量与对应的基准特征矢量集中的每个基准特征矢量进行比较以在该对应的基准特征矢量集中找到一个与该提取的观测特征矢量相匹配的基准特征矢量,记录提取的观测特征矢量与找到的匹配基准特征矢量的相似度。
[0051]在一个实施例中,所述步骤140包括:将提取的每个观测特征矢量Vi与对应的基准特征矢量集Ci中的每个基准特征矢量进行比较得到提取的每个观测特征矢量Vi与对应的基准特征矢量集Ci中的每个基准特征矢量的相似度;将该对应的基准特征矢量集Ci中的与该提取的观测特征矢量Vi相似度最高的基准特征矢量作为与该提取的观测特征矢量Vi相匹配的基准特征矢量(也可称之为匹配基准特征矢量)。
[0052]步骤150,基于提取的各个观测特征矢量Vi与找到的各个匹配基准特征矢量的相似度确定匹配最佳的观测特征矢量和匹配基准特征矢量,将该匹配最佳的观测特征矢量和匹配基准特征矢量对应的模糊等级作为采集的图像的模糊等级。
[0053]在一个实施例中,相似度最高的观测特征矢量和/或匹配基准特征矢量被作为最佳观测特征矢量和/或最佳匹配基准特征矢量。[0054]在另一个实施例中,为了消除噪声的影响,基于提取的各个观测特征矢量Vi与找到的各个匹配基准特征矢量的相似度拟合一条曲线,该曲线的峰值对应的观测特征矢量和匹配基准特征矢量被作为匹配最佳的观测特征矢量和匹配基准特征矢量。如图5所示,假设有8个模糊等级,基准特征矢量集C1中的基准特征矢量C11被确定为观测特征矢量V1的匹配基准特征矢量,基准特征矢量集C2中的基准特征矢量C23被确定为观测特征矢量V2的匹配基准特征矢量,……,基准特征矢量集C8中的基准特征矢量C86被确定为观测特征矢量^的匹配基准特征矢量,基于提取的各个观测特征矢量Vi与找到的各个匹配基准特征矢量的相似度拟合一条曲线LI,该条曲线的峰值对应的观测特征矢量\和匹配基准特征矢量C59将被作为匹配最佳的观测特征矢量和匹配基准特征矢量,最后采集的图像的模糊等级将被设置为模糊等级B5。
[0055]综上所述,本发明充分采用了条码图像的特点,采用了一种完全不同的模糊度估计方法,可以准确的、快速的得到图像的模糊度或模糊等级,运算复杂度相对较低,可以满足实时性的要求。
[0056]下面详细介绍本发明提出的优选的条码检测方法和条码定位方法。
[0057]条码检测
[0058]图6为本发明中的条码检测方法300在一个实施例中的流程示意图。如图3所示,所述条码检测方法300包括以下步骤。
[0059]步骤310,在图像中搜索至少两个条形区域,并确定每个条形区域的端点。如果未搜索到至少两个条形区域, 则判定所述图像中不包含有条码,如果搜索到了至少两个条形区域,则进入下一个步骤。
[0060]图7为一种条形区域搜索方法在一个实施例中的流程示意图。下面结合图7来示例性的详细介绍如何在图像中搜索条形区域并确定所述条形区域的端点。
[0061]步骤311,在图像中设定查找区域和停止区域。
[0062]如图8所示,所述查找区域的范围小于等于所述停止区域,所述停止区域的范围大于等于所述查找区域而小于等于图像。所述查找区域可以是整个图像,也可以是在图像中事先选定的一定宽和高的矩形区域。所述图像边界可以为预处理后的灰度图像的边界。
[0063]在一个特别的示例中,所述查找区域等于所述停止区域,也等于所述图像,这样就相当于未设置查找区域和停止区域,直接在整个图像上进行查找或搜索。换句话说,在此种情况下,相当于未设置查找区域和停止区域。类似的,在所述停止区域等于所述图像时,相当于未设置停止区域。
[0064]查找区域和停止区域可以根据具体条码识别应用的背景或者系统硬件的处理能力等因素来确定。比如在一些应用中,条码所在的大致位置是确定的,则查找区域只需要将该大致位置包含在内即可。再比如在一些应用中,由于硬件设备处理能力有限,无法对整幅图像进行全图像搜索,则可以设定在图像的一个固定区域作为查找区域。
[0065]步骤312,在所述查找区域内选定一行像素点。
[0066]在一个实施例中,可以选定所述查找区域的任意一行像素点,比如所述查找区域的中间一个像素点或第一行像素点。
[0067]步骤313,在选定的一行像素点中选定一个黑色像素点作为初始黑色像素点并记录该初始黑色像素点的坐标。[0068]在一个实施例中,黑色像素点的判定可以是比较选定的像素点和临近像素点的灰度差异,当灰度差异达到预先设定的一个灰度差异门限值的时候即可认定该像素点是一个黑色像素点,否则认为是背景像素点(或称为白色像素点),继续选定另一个像素点,记录选定的黑色像素点的坐标。
[0069]在另一个实施例中,也可以直接将像素点的灰度值与一个灰度阈值进行比较,在其灰度值小于所述灰度阈值时被确定为黑色像素点。
[0070]如果在选定的一行像素点中没有找到黑色像素点,则在查找区域内另选一行像素点重复步骤313,直到找到一个黑色像素点或在查找区域内查找完所有行像素。
[0071]步骤314,从初始黑色像素点开始搜索其它黑色像素点,直到不能找到连续的黑色像素点,记录搜索到的黑色像素的坐标。
[0072]在一个实施例中,所述黑色像素点的搜索过程包括:将所述初始黑色像素点记录为当前黑色像素点;从当前黑色像素点的上方或下方的三个像素点中找到灰度值最小的一个;确定该找到的像素点是否为黑色像素点;和如果该找到的像素点为黑色像素点,那么将该找到的像素点作为所述当前黑色像素点以继续搜索下一黑色像素点。如果搜索到的黑色像素点在停止区域之内,则可以继续搜索,如果在停止区域之外,则停止搜索,这样可以节省计算量。
[0073]可以通过将找到的像素点的灰度值与预定灰度阈值进行比较来确定找到的像素点是否为黑色像素点,也可以通过比较找到的像素点与上一个黑色像素点的灰度值差异与预定灰度差异阈值进行比较来确定找到的像素点是否为黑色像素点。
[0074]如果在步骤314中查找失败,则在查找区域内另选一行像素点重复上述步骤313和314,直到找到端点或者在查找区域内查找完毕而未找到端点。
[0075]步骤315,将找到的黑色像素点的坐标进行曲线拟合得到第一曲线,基于该曲线确定是否找到了一个找到了一个条形区域,假如找到了一个条形区域,则将所找到的最外侧的黑色像素点作为找到的条形区域的端点。
[0076]根据初始黑色像素点和其它记录的黑色像素点的位置确定是否找到了条形区域。
[0077]在一个实施例中,将所记录的黑色像素点(包括初始黑色像素点、其他记录的黑色像素点)的坐标进行曲线拟合(curve fitting)得到一第一曲线,之后基于该第一曲线确定找到了条形区域。
[0078]具体的,统计该第一曲线在各黑色像素点附近的曲率(curvature)以及各黑色像素点到该第一曲线的距离。如果所述第一曲率小于事先规定的第一曲率门限值而且所有的距离不超过事先规定的第一距离门限值,则认为该黑色区域是一个条形区域;否则认为该黑色区域不是一个条形区域。
[0079]在利用上述方法在图像中搜索一个条形区域,之后可以采用相同的方法在搜索到的条形区域的临近区域中再搜索一定数量的其它条形区域,并确定它们的端点。
[0080]步骤320,基于搜索到的各个条形区域的端点确定各个条形区域是否属于一个条码,如果搜索到的各个条形区域属于同一个条码,则可以判定所述图像中包含有条码,否则判定所述图像中不包含条码。需要指明的是,所述图像中不包括条码包括两种情况,一种是真的不包括条码,另一种是包括两个或多个条码。对于包括两个或多个条码的情况,在本发明中被视为不包括条码。[0081]在一个实施例子中,计算搜索到的各条形区域的方向的差异;将搜索到的各条形区域的同侧的端点的坐标进行曲线拟合得到一第二曲线;基于各条形区域的方向的差异和/或所述第二曲线确定各个条形区域是否属于一个条码。
[0082]具体的,统计该第二曲线在这些同侧端点附近的曲率以及这些同侧端点到该第二曲线的距离;如果该曲率小于事先规定的第二曲率门限值,各条形区域方向上的差异不超过事先规定的第二角度门限值,各条形区域的同侧的端点和利用该侧端点拟合的第二曲线之间的距离不超过事先规定的第二距离门限值。
[0083]如果在图像中未检测到条码,则认为条码检测失败。
[0084]需要说明的是,图3只是示出了的条码检测的一个实施例,在其他实施例中,还可以采用其他条码检测方法。
[0085]条码定位
[0086]图9为本发明中的条码定位方法400在一个实施例中的流程示意图。如图6所示,所述条码定位方法400包括以下步骤。
[0087]步骤410,在图像中搜索至少两个左边界点和至少两个右边界点。
[0088]在一个实施例中,为降低计算量,可以在图像中设定搜索区域,该搜索区域可以根据需要设定,在默认的情况下可以等于整个图像区域,条码的定位是在搜索区域内进行的搜索的。所述图像可以为预处理后的灰度图像。
[0089]在条码检测方法400中,已经在图像中检测到了条码并且可以在图像中检测到了至少两个条形区域及其端点。如图10所示,其示出了进行条码定位的图像、检测出的一个条形区域的条形端点11和12、检测出的另一个条形区域的条形端点21和22,根据条形区域的同侧端点11和21拟合而成的拟合直线1,根据条形区域的同侧端点12和22拟合而成的拟合直线2。可以看出,条码的左右边界应该是位于拟合直线I和2之间的。
[0090]在一个优选的实施例中,可以将搜索区域设定在拟合直线I和2之间,比如搜索区域是一个横向放置的矩形区域,其顶部不超过位于上端的拟合直线I的最低值,其底部不低于位于下端的拟合直线2的最高值,其左右两端则是在图像的左右边界附近。
[0091]图11为一种条码的边界点搜索方法在一个实施例中的流程示意图。下面参照图11示例性的详细介绍如何在图像中搜索一个边界点。
[0092]步骤411,从搜索区域中选取一行像素点,将预定像素宽度的滑动窗口从该行像素点的第一端开始朝向第二端逐像素进行移动,所述第一端可以是左端和右端中的一个,第二端是左端和右端中的另一个。
[0093]步骤412,根据在每个移动位置的滑动窗口的左侧像素点和右侧像素点的灰度值差异找到第一边界区域。
[0094]每移动到一个新的位置,就会比较滑动窗口左右两侧像素点灰度值的差异,当该差异超过预定灰度值差异门限值时,即认为边界点已经位于滑动窗口之内,此时该滑动窗口所在的区域就是第一边界区域。
[0095]请参图12所示,其示出了搜索区域内单行像素点的灰度值曲线、虚线框表示的滑动窗口和条码的一个左边界点,纵坐标轴表示像素点的灰度值,横坐标轴表示像素点在该行像素点中的位置。
[0096]步骤411和412可以统称为边界点的粗略查找。[0097]步骤413,通过计算第一边界区域内的相邻像素点的灰度值差异在所述第一边界区域内找到多个连续的平坦像素点和跟随所述连续的平坦像素点的多个连续的变动像素点。
[0098]对于第一边界区域内的每一像素点,在该像素点的靠近第二端的一侧选取预定数量的像素点,统计选取的这些像素点的左端点和右端点的灰度值差异,如果这个灰度值差异达到最大值,记录其对应的第一边界区域内的该像素点的位置。在该记录像素点的靠近第二端的一侧选取一定数量的连续像素点作为平坦像素点,在此记录像素点的靠近第一端的一侧选取一定数量的连续像素点作为变动像素。
[0099]步骤414,根据所述平坦像素点拟合第一直线,根据所述变动像素点拟合第二直线。
[0100]将所述平坦像素点在灰度图像中的横坐标作为横坐标,将它们的灰度值作为纵坐标,进行线性拟合得到第二直线。将所述变动像素在灰度图像中的横坐标作为横坐标,将它们的灰度值作为纵坐标,进行线性拟合得到第二直线。
[0101]步骤415,计算第一直线和第二直线的交点,将该交点的横坐标作为该行像素点的第一边界点的横坐标,该行像素点的纵坐标为第一边界点的纵坐标。
[0102]如图12所示,所述第一直线类似于左边界点的右侧的像素灰度线,所述第二直线类似于左边界点的左侧的像素灰度线,两条像素灰度线交汇处即为边界像素点。
[0103]这样就找到了一个第一边界点。步骤413、414和415可以统称为边界点的精确定位查找。同样的,采用相同的方法可以找到其它第一边界点。同理,可以将滑动窗口从第二端向第一端逐像素滑动就可以在搜索区域内搜索一定数量的第二边界点。
[0104]需要注意的是,如果选取的一行像素的第一端为左端,即从所述搜索区域的左边界开始搜索,则第一边界点为左边界点,第二边界点为右边界点,如果选取的一行像素的第一端为右端,即从所述搜索区域的右边界开始搜索,则第一边界点为右边界点,第二边界点为左边界。
[0105]步骤420,分别基于搜索到的左右边界点确定条码的左右边界。
[0106]在一个实施例中,将搜索到的左边界点(同侧边界点)拟合成一条曲线,该曲线在搜索到的左边界点附近的曲率需要小于一个预定曲率门限值;根据搜索到的左边界点到所述曲线的距离判断是否有非法左边界点,如果搜索到的一个左边界点到所述曲线的距离大于预定距离门限,则认为该边界点为非法边界点;如果有,则去除非法左边界点,并对剩余的左边界点再次拟合成一条曲线,并基于该曲线确定左边界。
[0107]同样的,可以采用同样的操作来实现基于搜索到的右边界点得到条码的右边界。
[0108]如果在图像中未确定到条码的左右边界,则认为条码定位失败。
[0109]需要说明的是,图9只是示出了所述条码检测步骤400的一个实施例,在其他实施例中,还可以采用其他条码定位方法。
[0110]本文中的“和/或”表示和或者或,比如A、B和/或C,包括A、B、C、AB、AC、Be、ABC
几种情况。本文中的“包括”均表示“包括但不限于”。本文中的“步骤”和“方法”在有些情况下是可以替换的,一个方法的一个步骤也可以被称为另一个方法。本文中的“若干”为两个或两个以上,“多个”为两个或两个以上。
[0111]上文对本发明进行了足够详细的具有一定特殊性的描述。所属领域内的普通技术人员应该理解,实施例中的描述仅仅是示例性的,在不偏离本发明的真实精神和范围的前提下做出所有改变都应该属于本发明的保护范围。本发明所要求保护的范围是由所述的权利要求书进行限定的,而不是由实施例中的上述描述来限定的。
【权利要求】
1.一种图像模糊度估计方法,其特征在于,其包括: 采集图像; 在采集的图像中进行条码检测和定位; 从定位到条码的图像中提取多个观测特征矢量,其中多个模糊等级中的每一个模糊等级对应一个观测特征矢量和预先建立的多个基准特征矢量集中的一个基准特征矢量集,每个基准特征矢 量集由多个基准特征矢量组成,每个基准特征矢量集中的每个基准特征矢量是基于对应的模糊等级和条码定义的多个信息单元中的一个生成的; 将提取的每个观测特征矢量与对应的基准特征矢量集中的每个基准特征矢量进行比较以在该对应的基准特征矢量集中找到一个与该提取的观测特征矢量相匹配的基准特征矢量,记录提取的观测特征矢量与找到的匹配基准特征矢量的相似度; 基于提取的各个观测特征矢量与找到的各个匹配基准特征矢量的相似度确定匹配最佳的观测特征矢量和匹配基准特征矢量,将该匹配最佳的观测特征矢量和基准特征矢量对应的模糊等级作为采集的图像的模糊等级。
2.根据权利要求1所述的图像模糊度估计方法,其特征在于,所述条码定义的每个信息单元包括所述条码定义的多个条码字符的组合的部分或全部。
3.根据权利要求2所述的图像模糊度估计方法,其特征在于,所述条码定义的条码字符包括定位符和多个数据符,所述定位符和与其合法相邻的一个或多个数据符的组合的部分或全部形成一个信息单元。
4.根据权利要求1所述的图像模糊度估计方法,其特征在于,所述从定位到条码的图像中提取多个观测特征矢量包括:从定位到条码的图像中以预定位置为基准提取不同宽度的图像数据,基于提取的每个宽度的图像数据形成一个观测特征矢量。
5.根据权利要求4所述的图像模糊度估计方法,其特征在于,从定位到的条码的边界开始取不同宽度的图像数据。
6.根据权利要求1-5任一所述的图像模糊度估计方法,其特征在于,将对应的基准特征矢量集中的与提取的观测特征矢量相似度最高的基准特征矢量作为与该提取的观测特征矢量相匹配的基准特征矢量。
7.根据权利要求1-5所述的图像模糊度估计方法,其特征在于,相似度最高的观测特征矢量和/或匹配基准特征矢量被作为最佳观测特征矢量和/或最佳匹配基准特征矢量。
8.根据权利要求1-5任一所述的图像模糊度估计方法,其特征在于,基于提取的各个观测特征矢量与找到的各个匹配基准特征矢量的相似度拟合一条曲线,该曲线的峰值对应的观测特征矢量和匹配基准特征矢量被作为匹配最佳的观测特征矢量和匹配基准特征矢量。
9.根据权利要求1-5任一所述的图像模糊度估计方法,其特征在于,在所述图像中进行条码检测包括:在图像中搜索至少两个条形区域,并确定每个条形区域的端点;基于搜索到的各个条形区域的端点确定搜索到的各个条形区域是否属于一个条码;如果搜索到的各个条形区域属于一个条码,则判定所述图像中包含有条码, 其中所述在图像中搜索至少两个条形区域,并确定每个条形区域的端点包括: 选定一行像素点; 在选定的一行像素点中选定一个黑色像素点作为初始黑色像素点并记录该初始黑色像素点的坐标; 从初始黑色像素点开始依次搜索其它黑色像素点,直到不能找到连续的黑色像素点,记录搜索到的黑色像素的坐标; 将所记录的黑色像素点的坐标进行曲线拟合得到一曲线;和 基于该曲线确定是否找到了一个找到了一个条形区域,并将所记录的最外侧的黑色像素点作为找到的条形区域的端点。
10.根据权利要求1-5任一所述的图像模糊度估计方法,其特征在于,在所述图像中进行条码定位包括:在图像中搜索至少两个左边界点和至少两个右边界点;分别基于搜索到的左右边界点确定条码的左右边界, 其中所述在图像中搜索至少两个左边界点和至少两个右边界点包括: 选取一行像素点; 将预定像素宽度的滑动窗口从该行像素点的第一端开始朝向第二端逐像素进行移动; 根据在每个移动位置的滑动窗口的左侧像素点和右侧像素点的灰度值差异找到第一边界区域; 通过计算第一边界区域内的相邻像素点的灰度值差异在所述第一边界区域内找到多个连续的平坦像素点和跟随所述平坦像素点的多个连续的变动像素点; 根据所述平坦像素点拟合第一直线,根据所述变动像素点拟合第二直线; 计算第一直线和第二直线的交点,并将所述交点的横坐标作为该行像素点的一个第一边界点的横坐标, 其中如果所述选取行像素的第一端是左端,那么第一边界点就是左边界点,如果所述选取行像素的第二端是右端,那么第一边界点就是右边界点。
【文档编号】G06K9/46GK103778398SQ201210402722
【公开日】2014年5月7日 申请日期:2012年10月22日 优先权日:2012年10月22日
【发明者】陈凌 申请人:无锡爱丁阁信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1