光斑检测方法和装置
技术领域
本申请属于数字图像识别技术领域,尤其涉及一种光斑检测方法和装置。
背景技术
OCR (Optical Character Recognition,光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符,通过检测暗、亮的模式确定其形状,然后用字符识别方法将形状翻译成计算机文字的过程。一个OCR识别系统,其目的很简单,只是要把影像作一个转换,使影像内的图形继续保存、有表格则表格内资料及影像内的文字,一律变成计算机文字,使能达到影像资料的储存量减少、识别出的文字可再使用及分析。
随着科学技术的不断发展,对于OCR而言,如何除错或利用辅助信息提高识别正确率,是OCR最重要的课题。然而,随着扫描仪、数码相机和手机相机的高速发展,人们常依赖于通过数码相机和手机相机拍摄来获取需要处理的原始图片。在拍照过程中,由于光源的关系,数码相机和手机相机常常会拍摄到带有光斑的原始图片。而目前的识别软件对原始图片进行识别时,无法清晰识别出现光斑的区域的文字或者图像,从而大大降低了OCR的识别正确率。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请目的在于提供一种光斑检测方法和装置,可以通过光斑检测,实现判定被识别的目标图片是否存在光斑的目的,从而避免进行OCR识别的目标图片带有光斑,提高OCR识别正确率。
为了解决上述问题,本申请提供了一种光斑检测方法,其包括:
获取原始图片,并将所述原始图片转换成RGB色彩模式的目标图片;
通过所述目标图片的每个像素点的红色分量、绿色分量和蓝色分量,在所有所述像素点中确定高亮度像素点;
确定所有所述高亮度像素点组成的区域的边界;
根据所述区域的边界判定所述区域内是否存在光斑。
如上所述的方法,其中,所述原始图片为通过外接设备导入的图片、通过感兴趣区域拍摄的照片或者在所述感兴趣区域内拍摄的视频流中截取的单帧图像。
如上所述的方法,其中,在所述原始图片为在所述感兴趣区域内拍摄的视频流中截取的单帧图像的情况下,根据所述区域的边界判定所述区域内是否存在光斑之后,还包括:若判定所述区域内存在光斑,截取该单帧图像的下一帧图像为原始图片。
如上所述的方法,其中,通过所述目标图片的每个像素点的红色分量、绿色分量和蓝色分量,在所有所述像素点中确定高亮度像素点,包括:
通过每个所述像素点的红色分量、绿色分量和蓝色分量,计算该像素点的灰度值;
采用对数变化,通过该像素点的灰度值计算该像素点的增强后的灰度值,通过该像素点的红色分量计算该像素点的增强后的红色分量,通过该像素点的绿色分量计算该像素点的增强后的绿色分量,通过该像素点的蓝色分量计算该像素点的增强后的蓝色分量;
当该像素点的增强后的灰度值、红色分量、增强后的红色分量、绿色分量、增强后的绿色分量、蓝色分量和增强后的蓝色分量符合预设条件时,将该像素点确定为所述高亮度像素点。
如上所述的方法,其中,通过以下公式通过每个所述像素点的红色分量、绿色分量和蓝色分量,计算该像素点的灰度值:
Grey=0.299*R+0.587*G+0.114*B
或者,通过以下公式通过每个所述像素点的红色分量、绿色分量和蓝色分量,计算该像素点的灰度值:
Grey=(299*R+587*G+114*B)/1000
其中,Grey为该像素点的灰度值,R为该像素点的红色分量,G为该像素点的绿色分量,B为该像素点的蓝色分量。
如上所述的方法,其中,通过以下公式采用对数变化,通过该像素点的灰度值计算该像素点的增强后的灰度值,通过该像素点的红色分量计算该像素点的增强后的红色分量,通过该像素点的绿色分量计算该像素点的增强后的绿色分量,通过该像素点的蓝色分量计算该像素点的增强后的蓝色分量:
其中,为所有所述像素点的灰度值中的最大值,为该像素点的增强后的灰度值,Grey为该像素点的灰度值,为该像素点的增强后的红色分量,R为该像素点的红色分量,为该像素点的增强后的绿色分量,G为该像素点的绿色分量,为该像素点的增强后的蓝色分量,B为该像素点的蓝色分量。
如上所述的方法,其中,所述预设条件是指:
该像素点的增强后的灰度值大于或者等于254;
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的蓝色分量的差小于或者等于30,
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的绿色分量的差小于或者等于30。
如上所述的方法,其中,确定所有所述高亮度像素点所组成的区域的边界,包括:
所述目标图片的形状呈第一矩形,所述区域的形状呈第二矩形,所述第一矩形和所述第二矩形均包括宽和高,且所述第二矩形的宽平行于所述第一矩形的宽,所述第二矩形的高平行于所述第一矩形的高;所述第二矩形为能容纳所有所述高亮度像素点的矩形中面积最小的矩形。
如上所述的方法,其中,根据所述区域的边界判定所述区域内是否存在光斑,包括:
计算所述区域的宽度和所述区域的高度;
当所述区域的宽度和所述区域的高度的较大值大于所述区域的宽度和所述区域的高度的较小值的五倍、且所述区域的宽度和所述区域的高度的较小值小于20时,或者当所述区域的宽度大于所述目标图片的宽度的60%、且所述区域的高度大于所述目标图片的高度的60%时,判定所述区域内不存在光斑;
否则,判定所述区域内是否存在所述高亮度像素点集中分布的第一区域;
当所述区域内不存在所述第一区域时,判定所述区域内不存在光斑;
当所述区域内存在所述第一区域时,确定所述第一区域的边界,并根据所述第一区域的边界,判定所述第一区域是否为光斑;
若所述第一区域不是光斑,判定所述区域内不存在光斑;若所述第一区域是光斑,判定所述区域内存在光斑。
如上所述的方法,其中,判定所述区域内是否存在所述高亮度像素点集中分布的第一区域,包括:
对所有所述高亮度像素点在所述区域的高度方向上做水平累加投影,计算所述水平累加投影的值;
对所有所述高亮度像素点在所述区域的宽度方向上做垂直累加投影,计算所述垂直累加投影的值;
当所述水平累加投影小于或者等于3,或者,所述垂直累加投影小于或者等于3时,判定所述区域内不存在所述第一区域;
否则,判定所述区域内存在所述第一区域。
如上所述的方法,其中,确定所述第一区域的边界,包括:
当所述水平累加投影的值大于3时,确定在所述区域的高度方向上连续的所述高亮度像素点的位置;当所述垂直累加投影的值大于3时,确定在所述区域的宽度方向上连续的所述高亮度像素点的位置;
所述第一区域的形状呈第三矩形,所述第三矩形包括宽和高,所述第三矩形的宽平行于所述第一矩形的宽,所述第三矩形的高平行于所述第一矩形的高,所述第三矩形为能容纳在所述区域的高度方向上和在所述区域的宽度方向上的连续的所述高亮度像素点的面积最小的矩形。
如上所述的方法,其中,根据所述第一区域的边界,判定所述第一区域是否为光斑,包括:
当所述第一区域的宽度为1且所述第一区域的高度小于20,或者,所述第一区域的宽度小于20且所述第一区域的高度为1,判定所述第一区域不是光斑;否则,判定所述第一区域是光斑。
如上所述的方法,其中,根据所述区域的边界,判定所述区域内是否存在光斑之后,所述方法还包括:所述区域内不存在光斑时,输出所述目标图片;所述区域内存在所述光斑时,输出所述光斑在所述区域的位置,并提示所述目标图片中存在光斑。
本申请还提供了一种光斑检测装置,其包括:
目标图片获取模块,用于获取原始图片,并将所述原始图片转换成RGB色彩模式的目标图片;
高亮度像素点判定模块,用于通过所述目标图片的每个像素点的红色分量、绿色分量和蓝色分量,在所有所述像素点中确定高亮度像素点;
区域边界确定模块,用于分析确定所有所述高亮度像素点组成的区域的边界;
光斑检测模块,用于根据所述区域的边界判定所述区域内是否存在光斑。
如上所述的光斑检测装置,其中,所述原始图片为通过外接设备导入的图片、通过感兴趣区域拍摄的照片或者在所述感兴趣区域内拍摄的视频流中截取的单帧图像。
如上所述的光斑检测装置,其中,在所述原始图片为在所述感兴趣区域内拍摄的视频流中截取的单帧图像的情况下,当所述光斑检测模块判定所述区域内存在光斑,所述目标图片获取模块还用于截取该单帧图像的下一帧图像为原始图片。
如上所述的光斑检测装置,其中,所述高亮度像素点判定模块包括:
分量计算单元,用于通过每个所述像素点的红色分量、绿色分量和蓝色分量,计算该像素点的灰度值,以及,采用对数变化,通过该像素点的灰度值计算该像素点的增强后的灰度值,通过该像素点的红色分量计算该像素点的增强后的红色分量,通过该像素点的绿色分量计算该像素点的增强后的绿色分量,通过该像素点的蓝色分量计算该像素点的增强后的蓝色分量;
高亮度像素点判定单元,用于当该像素点的增强后的灰度值、红色分量、增强后的红色分量、绿色分量、增强后的绿色分量、蓝色分量和增强后的蓝色分量符合预设条件时,将该像素点确定为所述高亮度像素点。
如上所述的光斑检测装置,其中,所述分量计算单元通过以下公式计算该像素点的灰度值:
Grey=0.299*R+0.587*G+0.114*B
或者,所述分量计算单元通过以下公式计算该像素点的灰度值:
Grey=(299*R+587*G+114*B)/1000
其中,Grey为该像素点的灰度值,R为该像素点的红色分量,G为该像素点的绿色分量,B为该像素点的蓝色分量。
如上所述的光斑检测装置,其中,所述分量计算单元通过以下公式采用对数变化计算该像素点的增强后的灰度值、该像素点的增强后的红色分量、该像素点的增强后的绿色分量和该像素点的增强后的蓝色分量;
其中,为所有所述像素点的灰度值中的最大值,为该像素点的增强后的灰度值,Grey为该像素点的灰度值,为该像素点的增强后的红色分量,R为该像素点的红色分量,为该像素点的增强后的绿色分量,G为该像素点的绿色分量,为该像素点的增强后的蓝色分量,B为该像素点的蓝色分量。
如上所述的光斑检测装置,其中,所述预设条件是指:
该像素点的增强后的灰度值大于或者等于254;
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的蓝色分量的差小于或者等于30,
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的绿色分量的差小于或者等于30。
如上所述的光斑检测装置,其中,所述目标图片的形状呈第一矩形,所述区域的形状呈第二矩形,所述第一矩形和所述第二矩形均包括宽和高,且所述第二矩形的宽平行于所述第一矩形的宽,所述第二矩形的高平行于所述第一矩形的高;所述第二矩形为能容纳所有所述高亮度像素点的矩形中面积最小的矩形。
如上所述的光斑检测装置,其中,所述光斑检测模块包括:
区域计算单元,用于计算所述区域的宽度和所述区域的高度;
第一区域判定单元,用于当所述区域的宽度和所述区域的高度的较大值大于所述区域的宽度和所述区域的高度的较小值的五倍、且所述区域的宽度和所述区域的高度的较小值小于20时,或者当所述区域的宽度大于所述目标图片的宽度的60%、且所述区域的高度大于所述目标图片的高度的60%时,判定所述区域内不存在光斑,否则,判定所述区域内是否存在所述高亮度像素点集中分布的第一区域;
光斑判定单元,用于当所述区域内不存在所述第一区域时,判定所述区域内不存在光斑;当所述区域内存在所述第一区域时,确定所述第一区域的边界,并根据所述第一区域的边界,判定所述第一区域是否为光斑;并且,若所述第一区域不是光斑,判定所述区域内不存在光斑;若所述第一区域是光斑,判定所述区域内存在光斑。
如上所述的光斑检测装置,其中,所述第一区域判定单元包括:
投影计算子单元,用于对所有所述高亮度像素点在所述区域的高度方向上做水平累加投影,计算所述水平累加投影的值,以及对所有所述高亮度像素点在所述区域的宽度方向上做垂直累加投影,计算所述垂直累加投影的值;
第一区域判定子单元,用于当所述水平累加投影小于或者等于3,或者,所述垂直累加投影小于或者等于3时,判定所述区域内不存在所述第一区域;否则,判定所述区域内存在所述第一区域。
如上所述的光斑检测装置,其中,所述第一区域的形状呈第三矩形,所述第三矩形包括宽和高,所述第三矩形的宽平行于所述第一矩形的宽,所述第三矩形的高平行于所述第一矩形的高;
所述光斑判定单元,用于当所述水平累加投影的值大于3时,确定在所述区域的高度方向上连续的所述高亮度像素点的位置;当所述垂直累加投影的值大于3时,确定在所述区域的宽度方向上连续的所述高亮度像素点的位置;并判定能容纳在所述区域的高度方向上和在所述区域的宽度方向上的连续的所述高亮度像素点的面积最小的矩形为所述第三矩形。
如上所述的光斑检测装置,其中,所述光斑判定单元,还用于在所述第一区域的宽度为1且所述第一区域的高度小于20,或者,所述第一区域的宽度小于20且所述第一区域的高度为1,判定所述第一区域不是光斑;否则,所述光斑判定单元判定所述第一区域是光斑。
如上所述的光斑检测装置,其中,所述光斑检测装置,还包括:
输出模块,用于在所述区域内不存在光斑时输出所述目标图片,并且,在所述区域内存在所述光斑时,输出所述光斑在所述区域的位置,并提示所述目标图片中存在光斑。
本申请提供的光斑检测方法和装置,在进行OCR识别时,将原始图片转换成RGB色彩模式的目标图片,并在所述目标图片的所有像素点中确定高亮度像素点,通过对所有所述高亮度像素点组成的区域的边界进行分析,判定所述区域内是否存在光斑,通过这样的光斑检测,从而实现判定被识别的目标图片是否存在光斑的目的,避免进行OCR识别的目标图片带有光斑,达到提高OCR识别正确率的技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的光斑检测方法的一种方法流程图;
图2是根据本申请实施例的光斑检测方法的另一种方法流程图;
图3是根据本申请实施例的光斑检测装置的一种结构示意图(框图);
图4是根据本申请实施例的光斑检测装置的另一种结构示意图(框图);
图5是一个具体实施例中根据本申请实施例的光斑检测方法的获得的一张原始图片(彩色图片);
图6是图5所示的原始图片的高亮度像素点的示意图;
图7是另一个具体实施例中根据本申请实施例的光斑检测方法的获得的一张原始图片(彩色图片);
图8是图7所示的原始图片的高亮度像素点的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
下面结合附图对本申请所述的光斑检测方法和装置进行详细的说明。图1是本申请提出的光斑检测方法的一种实施例的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
本申请从扫描仪、数码相机和手机相机拍照或者录像开始,从中获取原始图片,并将原始图片处理成RGB色彩模式的目标图片,通过RGB色彩模式中每个像素点的颜色分量的值,来选择高亮度像素点,然后对所有所述高亮度像素点所组成的区域的边界的进行分析,来判定所述区域内是否存在光斑,通过这样的光斑检测,从而实现判定被识别的目标图片是否存在光斑的目的,避免进行OCR识别的目标图片带有光斑,达到了提高OCR识别正确率的技术效果。
其中,RGB色彩模式(也翻译为“红绿蓝”,比较少用)是工业界的一种颜色标准,是通过对红(Red)、绿(Green)、蓝(Blue)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。例如:纯红色R值为255,G值为0,B值为0;灰色的R、G、B三个值相等(除了0和255);白色的R、G、B都为255;黑色的R、G、B都为0。RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上重现16777216种颜色。在 RGB 模式下,每种 RGB 成分都可使用从 0(黑色)到 255(白色)的值。 例如,亮红色使用 R 值 246、G 值 20 和 B 值 50。 当所有三种成分值相等时,产生灰色阴影。 当所有成分的值均为 255 时,结果是纯白色;当该值为 0 时,结果是纯黑色。
具体如图1所述,本申请一种实施例提供的一种光斑检测方法可以包括:
S101:获取原始图片,并将所述原始图片转换成RGB色彩模式的目标图片;
本申请的原始图片可以为通过外接设备导入的图片、通过感兴趣区域拍摄的照片或者在所述感兴趣区域内拍摄的视频流中截取的单帧图像。
所述外接设备可以是扫描仪、数码相机和手机相机等能够获取图片的设备。所述感兴趣区域(region of interest,简称ROI),是在机器视觉、图像处理中,从被处理的图像以方框、圆、椭圆、不规则多边形等方式勾勒出需要处理的区域。在图像处理领域,感兴趣区域(ROI) 是从图像中选择的一个图像区域,这个区域是图像分析所关注的重点。圈定该区域以便进行进一步处理。使用ROI圈定想读的目标,可以减少处理时间,增加精度。所述视频流的格式,既可以是Android系统的NV21数据格式,也可以是IOS系统的RGBA数据格式。
特别是在所述原始图片为在所述感兴趣区域内拍摄的视频流中截取的单帧图像的情况下,根据所述区域的边界判定所述区域内是否存在光斑之后,若判定所述区域内存在光斑,则将该单帧图像丢弃,直接截取该单帧图像的下一帧图像为原始图片,对该下一帧图像进行光斑检测。
S102:通过所述目标图片的每个像素点的红色分量、绿色分量和蓝色分量,在所有所述像素点中确定高亮度像素点;
确定所述高亮度像素点的具体步骤如下:
S1021:通过每个所述像素点的红色分量、绿色分量和蓝色分量,计算该像素点的灰度值;
通过像素点的颜色分量计算像素点的灰度值有多种转换公式,在实际使用过程中,可以根据图像识别的目标图片及识别目的,选取最适合的公式。在本申请的一个实施例中,采用的是一个著名的心理学公式。
以所述目标图片中的任一像素点为例,可以通过以下公式通过每个所述像素点的红色分量、绿色分量和蓝色分量,计算该像素点的灰度值:
Grey=0.299*R+0.587*G+0.114*B
另外,为了避免低速的浮点运算,也可以采用整数算法,例如通过缩放1000倍来实现整数运算算法,即通过以下公式来计算Grey的值:
Grey=(299*R+587*G+114*B)/1000
其中,Grey表示该像素点的灰度值,R表示该像素点的红色分量,G表示该像素点的绿色分量,B表示该像素点的蓝色分量。
S1022:采用对数变化,通过该像素点的灰度值计算该像素点的增强后的灰度值,通过该像素点的红色分量计算该像素点的增强后的红色分量,通过该像素点的绿色分量计算该像素点的增强后的绿色分量,通过该像素点的蓝色分量计算该像素点的增强后的蓝色分量;
这一步骤,目的是对所述目标图像进行一个彩色增强和灰度增强,以有利于下一步对所述像素点进行判断。具体的是,通过以下公式来计算该像素点的增强后的灰度值、该像素点的增强后的红色分量、该像素点的增强后的绿色分量和该像素点的增强后的蓝色分量:
其中,为所有所述像素点的灰度值中的最大值,为该像素点的增强后的灰度值,为该像素点的增强后的红色分量,为该像素点的增强后的绿色分量,为该像素点的增强后的蓝色分量。
S1023:当该像素点的增强后的灰度值、红色分量、增强后的红色分量、绿色分量、增强后的绿色分量、蓝色分量和增强后的蓝色分量符合预设条件时,将该像素点确定为所述高亮度像素点。
这里的预设条件,在使用过程中,仍然可以根据使用的需求进行设定。在本申请中,由于所述预设条件是用于确认所述高亮度像素点的判断标准,也就是说,所述预设条件是用于判断所述高亮度像素点是否组成光斑图像的判断标准,因此,所述预设条件的数值选择相对较高。在一个具体的实施方式中,所述预设条件可以是:
该像素点的增强后的灰度值大于或者等于254;
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的蓝色分量的差小于或者等于30,
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的绿色分量的差小于或者等于30。
即在S1021和S1022的计算基础上,所述像素点满足以下条件:
或者,所述像素点满足以下条件:
则,该像素点被确定为所述高亮度像素点。
S103:确定所有所述高亮度像素点所组成的区域的边界;
在确定所有所述高亮度像素点后,假定一个虚拟的区域,所有的所述高亮度均存在于该区域内,即,所有所述高亮度像素点组成了这样一个区域。
以所述目标图片的形状呈第一矩形、所述区域的形状呈第二矩形为例,所述第一矩形和所述第二矩形均包括宽和高,所述第二矩形的宽平行于所述第一矩形的宽,所述第二矩形的高平行于所述第一矩形的高;所述第二矩形为能容纳所有所述高亮度像素点的矩形中面积最小的矩形。
S104:根据所述区域的边界判定所述区域内是否存在光斑。这其实是根据所述区域的形状,通过光斑图形的特征来判定所述区域内是否存在光斑,具体包括:
S1041:计算所述区域的宽度和所述区域的高度;以W表示所述区域的宽度,以H表示所述区域的高度;
S1042:当所述区域的宽度和所述区域的高度的较大值大于所述区域的宽度和所述区域的高度的较小值的五倍、且所述区域的宽度和所述区域的高度的较小值小于20时,或者当所述区域的宽度大于所述目标图片的宽度的60%、且所述区域的高度大于所述目标图片的高度的60%时,判定所述区域内不存在光斑;这里是采用排除的方法,首先排除所述区域为在所述目标图片的宽度方向或者在所述目标图片的高度方向上为细长条状图形,判断这样的细长条状图形不是光斑,即当max(W,H)/min(W,H)>5 且min(W,H)<20,确定所述区域内不存在光斑,max(W,H)表示所述区域的宽度和所述区域的高度中的较大值,min(W,H)表示所述区域的宽度和所述区域的高度中的较小值,其次排除所述区域占据所述目标图片的面积过大的图形,判断这种大面积图形不是光斑,即 W>所述目标图片的宽度的60%且H>所述目标图片的高度的60%。
S1043:否则,判定所述区域内是否存在所述高亮度像素点集中分布的第一区域;即所述区域的宽度和所述区域的高度均不属于上述情况,说明所述区域内有可能存在光斑图形的,那么此时,需要对所述区域内的所述高亮度像素点进行进一步的分析。具体是:
S10431:对所有所述高亮度像素点在所述区域的高度方向上做水平累加投影,计算所述水平累加投影的值;
即,将所有的所述高亮度像素点沿着所述区域的宽度方向在所述区域的高度方向上进行水平投影,并对投影所得值进行累加;
S10432:对所有所述高亮度像素点在所述区域的宽度方向上做垂直累加投影,计算所述垂直累加投影的值;
即,将所有的所述高亮度像素点沿着所述区域的高度方向在所述区域的宽度方向上进行垂直投影,并对投影所得值进行累加;
S10433:当所述水平累加投影小于或者等于3,或者,所述垂直累加投影小于或者等于3时,判定所述区域内不存在所述第一区域;
当所述水平累加投影小于或者等于3时,说明所有的所述高亮度像素点是沿着水平方向(所述目标图片的宽度方向)呈细长条状分布;当所述垂直累加投影小于或者等于3时,说明所有的所述高亮度像素点是沿着垂直方向(所述目标图片的宽度方向)呈细长条状分布;因此,这两种情况下,都可以判定所述区域内不存在所述高亮度像素点集中分布的第一区域。即
,或者
时,判断所述区域内不存在所述第一区域,其中,w为水平累加投影,h为垂直累加投影;
S10434:否则,判定所述区域内存在所述第一区域,即w>3且h>3时,判定所述区域内存在所述第一区域。
S1044:当所述区域内不存在所述第一区域时,判定所述区域内不存在光斑;
S1045:当所述区域内存在所述第一区域时,确定所述第一区域的边界,并根据所述第一区域的边界,判定所述第一区域是否为光斑;这其实是根据所述第一区域的形状,通过光斑图形的特征来判定所述第一区域是否为光斑,具体包括:
S10451:确定所述第一区域的边界,具体包括:所述第一区域的形状呈第三矩形,所述第三矩形包括宽和高,所述第三矩形的宽平行于所述第一矩形的宽,所述第三矩形的高平行于所述第一矩形的高,所述第三矩形为能容纳在所述区域的高度方向上和在所述区域的宽度方向上的连续的所述高亮度像素点的面积最小的矩形。
S10452:当所述第一区域的宽度为1且所述第一区域的高度小于20,或者,所述第一区域的宽度小于20且所述第一区域的高度为1,判定所述第一区域不是光斑;否则,判定所述第一区域是光斑。由上述可知,所述第一区域的宽度是所述区域的宽度方向上连续的所述高亮度像素点的最大长度,所述第一区域的高度是所述区域的高度方向上连续的所述高亮度像素点的最大长度,即:
当w>3且h>3,计算
和
;当
=1且
<20或者
<20且
=1时,判断所述第一区域不为光斑;否则,判断所述第一区域为光斑;
其中,
为所述区域的宽度方向上连续的所述高亮度像素点的最大长度,
所述区域的高度方向上连续的所述高亮度像素点的最大长度。
S1046:若所述第一区域不是光斑,判定所述区域内不存在光斑;若所述第一区域是光斑,判定所述区域内存在光斑。
到此,本申请的实施例已经完成了光斑检测的过程,为了对用户进行提醒,在另一个实施例中,还可以包括下一步骤:
S105:所述区域内不存在光斑时,输出所述目标图片;所述区域内存在所述光斑时,输出所述光斑在所述区域的位置,并提示所述目标图片中存在光斑,如图2所示。
下面以图5和图6、以及图7和图8所示的两个具体实施例,对本申请的光斑检测方法进行说明。
图5和图7所示,是根据本申请的光斑检测方法中的S101所获取的两张二代身份证背面的原始图片(原图为彩色图片),当然,通过人眼即可辨识,这两张原始图片均带有光斑,如果直接进行OCR识别,图5的光斑并没有影响文字,对OCR识别的效果影响不大,但是图7中“签发机关”的内容、“有效期限”的“限”和“有效期限”的内容已经无法清楚辨识,因此,图7中的这三部分内容已经无法进行识别。再根据本申请的光斑检测方法中的S101将这两张原始图片转换为RGB色彩模式的目标图片,便可以根据S102通过两张目标图片的每个像素点的红色分量、绿色分量和蓝色分量,在所有的像素点中确定高亮度像素点,如图6和图8中示出的黑色点。通过步骤S103确认所述区域的边界后,再根据步骤S104确认第一区域的边界,如图6和图8中示出的矩形边框,然后根据所述第一区域的边界,判定所述第一区域是否为光斑。
基于同一发明构思,本发明实施例中还提供了一种光斑检测装置,如下面的实施例所述。由于光斑检测装置解决问题的原理与光斑检测方法想死,因此光斑检测装置的实施可以参见光斑检测方法的实施,重复之处不再赘述。以下所使用的,术语“单元”、“子单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3是本发明实施例的光斑检测装置的一种结构框图,如图3所示,可以包括:
目标图片获取模块301,用于获取原始图片,并将所述原始图片转换成RGB色彩模式的目标图片;
高亮度像素点判定模块302,用于通过所述目标图片的每个像素点的红色分量、绿色分量和蓝色分量,在所有所述像素点中确定高亮度像素点;
区域边界确定模块303,用于分析确定所有所述高亮度像素点所组成的区域的边界;
光斑检测模块304,用于根据所述区域的边界判定所述区域内是否存在光斑。
其中,所述原始图片为通过外接设备导入的图片、通过感兴趣区域拍摄的照片或者在所述感兴趣区域内拍摄的视频流中的单帧图像。
在一个可行的实施方式中,所述高亮度像素点判定模块302包括:
分量计算单元,用于通过每个所述像素点的红色分量、绿色分量和蓝色分量,计算该像素点的灰度值,以及,采用对数变化,通过该像素点的灰度值计算该像素点的增强后的灰度值,通过该像素点的红色分量计算该像素点的增强后的红色分量,通过该像素点的绿色分量计算该像素点的增强后的绿色分量,通过该像素点的蓝色分量计算该像素点的增强后的蓝色分量;
高亮度像素点判定单元,用于当该像素点的增强后的灰度值、红色分量、增强后的红色分量、绿色分量、增强后的绿色分量、蓝色分量和增强后的蓝色分量符合预设条件时,将该像素点确定为所述高亮度像素点。
具体的是,所述分量计算单元通过以下公式计算该像素点的灰度值:
Grey=0.299*R+0.587*G+0.114*B
或者,所述分量计算单元通过以下公式计算该像素点的灰度值:
Grey=(299*R+587*G+114*B)/1000
其中,Grey为该像素点的灰度值,R为该像素点的红色分量,G为该像素点的绿色分量,B为该像素点的蓝色分量。
进一步地,所述分量计算单元通过以下公式采用对数变化计算该像素点的增强后的灰度值、该像素点的增强后的红色分量、该像素点的增强后的绿色分量和该像素点的增强后的蓝色分量;
其中,为所有所述像素点的灰度值中的最大值,为该像素点的增强后的灰度值,Grey为该像素点的灰度值,为该像素点的增强后的红色分量,R为该像素点的红色分量,为该像素点的增强后的绿色分量,G为该像素点的绿色分量,为该像素点的增强后的蓝色分量,B为该像素点的蓝色分量。
在一个具体的实施方式中,所述预设条件是指:
该像素点的增强后的灰度值大于或者等于254;
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的蓝色分量的差小于或者等于30,
或者,该像素点的增强后的红色分量、增强后的绿色分量和增强后的蓝色分量中的至少一个大于或者等于254,同时,该像素点的红色分量减去该像素点的绿色分量的差小于或者等于30。
即:所述像素点满足以下条件:
或者,所述像素点满足以下条件:
则,所述高亮度像素点判定单元将该像素点判定为所述高亮度像素点。
在一个优选的实施方式中,所述目标图片的形状呈第一矩形,所述区域的形状呈第二矩形,所述第一矩形和所述第二矩形均包括宽和高,所述第二矩形的宽平行于所述第一矩形的宽,所述第二矩形的高平行于所述第一矩形的高;所述区域边界确定模块303具体用于将能容纳所有所述高亮度像素点的矩形中面积最小的矩形确定为所述第二矩形。
所述光斑检测模块304包括:
区域计算单元,用于计算所述区域的宽度和所述区域的高度;以W表示所述区域的宽度,以H表示所述区域的高度;
第一区域判定单元,用于当所述区域的宽度和所述区域的高度的较大值大于所述区域的宽度和所述区域的高度的较小值的五倍、且所述区域的宽度和所述区域的高度的较小值小于20时,或者当所述区域的宽度大于所述目标图片的宽度的60%、且所述区域的高度大于所述目标图片的高度的60%时,判定所述区域内不存在光斑,否则,判定所述区域内是否存在所述高亮度像素点集中分布的第一区域;即当max(W,H)/min(W,H)>5 且min(W,H)<20时,或者,W>所述目标图片的宽度的60%且H>所述目标图片的高度的60%时,确定所述区域内不存在光斑;
光斑判定单元,用于当所述区域内不存在所述第一区域时,判定所述区域内不存在光斑;当所述区域内存在所述第一区域时,确定所述第一区域的边界,并根据所述第一区域的边界,判定所述第一区域是否为光斑;并且,若所述第一区域不是光斑,判定所述区域内不存在光斑;若所述第一区域是光斑,判定所述区域内存在光斑。
所述第一区域判定单元包括:
投影计算子单元,用于对所有所述高亮度像素点在所述区域的高度方向上做水平累加投影,计算所述水平累加投影的值,以及对所有所述高亮度像素点在所述区域的宽度方向上做垂直累加投影,计算所述垂直累加投影的值;
第一区域判定子单元,用于当所述水平累加投影小于或者等于3,或者,所述垂直累加投影小于或者等于3时,判定所述区域内不存在所述第一区域;否则,判定所述区域内存在所述第一区域。即
,或者
时,判断所述区域内不存在所述第一区域;w>3且h>3时,判定所述区域内存在所述第一区域;其中,w为水平累加投影,h为垂直累加投影;
在一个优选的实施例中,所述第一区域的形状呈第三矩形,所述第三矩形包括宽和高,所述第三矩形的宽平行于所述第一矩形的宽,所述第三矩形的高平行于所述第一矩形的高;
所述光斑判定单元,用于当所述水平累加投影的值大于3时,确定在所述区域的高度方向上连续的所述高亮度像素点的位置;当所述垂直累加投影的值大于3时,确定在所述区域的宽度方向上连续的所述高亮度像素点的位置;并判定能容纳在所述区域的高度方向上和在所述区域的宽度方向上的连续的所述高亮度像素点的面积最小的矩形为所述第三矩形。
所述光斑判定单元,还用于在所述第一区域的宽度为1且所述第一区域的高度小于20,或者,所述第一区域的宽度小于20且所述第一区域的高度为1,判定所述第一区域不是光斑;否则,判定所述第一区域是光斑。
即,当w>3且h>3,所述光斑判定单元判定
和
,并且在
=1且
<20或者
<20且
=1时,所述光斑判定单元计算判定所述第一区域不为光斑;否则,判断所述第一区域为光斑;其中,
为所述区域的宽度方向上连续的所述高亮度像素点的最大长度,
所述区域的高度方向上连续的所述高亮度像素点的最大长度。
在如图4所示的一个实施方式中,所述光斑检测装置,还包括:
输出模块305;用于在所述区域内不存在光斑时输出所述目标图片,并在所述区域内存在所述光斑时,输出所述光斑在所述区域的位置,并提示所述目标图片中存在光斑。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
本申请中所述的方法、装置或模块可以以计算机可读程序代码方式实现控制器按任何适当的方式实现,例如,微处理器也可以采取例如处理器以及存储可由该微处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。