即开票兑奖区定位方法
技术领域
本发明涉及彩票自动兑奖技术领域,特别涉及一种即开票兑奖区定位方法。
背景技术
目前的彩票自动兑奖器大多仅适用于单一种类的彩票,比如即开票或者电脑票,有时对即开票或者电脑票的具体种类也有限制,如果放置的彩票种类不对,则兑奖器会发出报警。目前出现的兑奖器,如公开号为CN103679909B的中国发明专利公开了自动兑奖器及自动兑奖方法,所述兑奖方法为:S1将彩票插入所述彩票出入口;S2所述输送装置将所述彩票输送到所述图像采集设备的下方;S3所述图像采集设备对彩票进行图像采集;S4所述上位机获取图像采集设备所采集的图像,对图像进行条码解码,并将解码后的数据发送给服务器;S5所述服务器判断彩票是否中奖,若是,则输送装置将彩票送入回收仓,否则所述输送装置将彩票从所述彩票入口退出。通过对摄像头拍摄的彩票的图像进行解码来实现对彩票的兑奖,但是没有给出具体的解码方法,目前普遍的做法是对整幅彩票图像进行二值化,然后找出彩票的兑奖区,最后对兑奖区进行解码分析,这种方法的数据处理量大,降低彩票兑奖的速度。
发明内容
本发明所要解决的技术问题是:提供一种能对即开票的兑奖区域进行快速定位的即开票兑奖区定位方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种即开票兑奖区定位方法,所述方法为:
获取即开票图像并存储;
寻找即开票图像中的即开票边界线;
预设横线间距,取将所述即开票边界线的底部边界线向上平移一个横线间距为第一条横线,取将所述第一条横线向上平移一个横线间距为第二条横线;
获取所述第一条横线上的白色像素点的跨度区间;
获取所述第二条横线上的白色像素点的跨度区间;
预设距离阈值,取所述白色像素点的跨度区间的最左白色像素点向右偏移一个距离阈值的像素点,或者最右白色像素点向左偏移一个距离阈值的像素点作为基点;
在穿过所述基点的竖线上寻找兑奖区的上白色边界点和下白色边界点;
由所述兑奖区的上白色边界点和下白色边界点,以及所述基点所在白色像素点的跨度区间组成的最小矩形区域,即为即开票兑奖区。
本发明的有益效果在于:即开票的兑奖区位于即开票右下角区域,所述横线间距等于兑奖区任意一点至即开票底部边界线的距离,在即开票兑奖区域周围没有白色像素点存在,因此第一条横线上的白色像素点的跨度区间为即开票兑奖区的横向跨度区间;即开票在兑奖过程中还有保安区,保安区位于兑奖区的上方或者左方,保安区在即开票兑奖过程中与兑奖区同样重要,兑奖时保安区可被刮开或者不被刮开,如果保安区不被刮开,则第一条横线和第二条横线上的白色像素点的跨度区间长度基本一致,或仅第一条横线上有白色像素点,若保安区在兑奖区上方且被刮开,则第一条横线和第二条横线上均有白色像素点,且两条白色像素点的跨度区间长度基本一致,若保安区在兑奖区左边且被刮开,则第一条横线上的白色像素点跨度区间中既有兑奖区也有保安区;将第一条横线和第二条横线上的白色像素点跨度区间的边界点向内侧偏移一个横线间距的距离得到基点,穿过基点的竖线上寻找兑奖区的上白色边界点和下白色边界点,可避免竖线穿过保安区与兑奖区之间的非白像素点区域,找到兑奖区的四个边界点后即可得到兑奖区所在矩形区域,所述方法合理快速,数据计算量小,无需对即开票完全解码,即可快速对即开票的兑奖区进行定位,对兑奖区进行定位后,可快速对即开票进行解码兑奖,也可大大减小兑奖区兑奖过程的数据计算量。
附图说明
图1为本发明实施例的即开票兑奖区定位方法的流程图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:根据即开票图像中的两条横线与一条竖线上的白色像素点即可识别出即开票的兑奖区,所述方法快速便捷。
请参照图1,本发明提供了一种即开票兑奖区定位方法,所述方法为:
获取即开票图像并存储;
寻找即开票图像中的即开票边界线;
预设横线间距,取将所述即开票边界线的底部边界线向上平移一个横线间距为第一条横线,取将所述第一条横线向上平移一个横线间距为第二条横线;
获取所述第一条横线上的白色像素点的跨度区间;
获取所述第二条横线上的白色像素点的跨度区间;
预设距离阈值,取所述白色像素点的跨度区间的最左白色像素点向右偏移一个距离阈值的像素点,或者最右白色像素点向左偏移一个距离阈值的像素点作为基点;
在穿过所述基点的竖线上寻找兑奖区的上白色边界点和下白色边界点;
由所述兑奖区的上白色边界点和下白色边界点,以及所述基点所在白色像素点的跨度区间组成的最小矩形区域,即为即开票兑奖区。
进一步的,寻找即开票图像中的即开票边界线,具体为:
获取所述即开票图像上的水平中线和竖直中线;
在所述水平中线上,从左向右寻找第一个不是黑点的像素点,作为即开票左边界点;
在所述水平中线上,从右向左寻找第一个不是黑点的像素点,作为即开票右边界点;
在所述竖直中线上,从上向下寻找第一个不是黑点的像素点,作为即开票上边界点;
在所述竖直中线上,从下向上寻找第一个不是黑点的像素点,作为即开票下边界点;
分别画经过所述即开票上边界点和即开票下边界点的横线,分别画经过所述即开票左边界点和即开票右边界点的竖线,两条所述横线与两条所述竖线即为即开票边界线。
由上述描述可知,市面上的即开票的票面基本不包含黑色像素点,即使包含黑色像素点,也是在远离即开票兑奖区的区域,再加上即开票兑奖区边缘均为白色点,因此将水平中线的最上和最下的不是黑点的第一个像素点,以及竖直中线上的最左和最右的不是黑点的第一个像素点作为即开票的边界线,可快速定位即开票的票面,且不会错过即开票的兑奖区。
进一步的,获取所述第一条横线上的白色像素点的跨度区间,具体为:
获取第一条横线上的各个像素点的灰度值及横向像素坐标、总像素点数,记录第一条横线上的最左白色像素点的横向像素坐标、最右白色像素点的横向像素坐标,组合得到第一条横线上白色像素点的跨度区间。
由上述描述可知,通过第一条横线上的各像素点的灰度值及横向像素坐标、总像素点数,统计出第一条横线上的白色像素点的跨度区间,所述跨度区间是指第一条横线上,以最左白色像素点为左边界点,以最右白色像素点为右边界点的区间,所述方法合理,数据计算量小,数据处理便捷。
进一步的,获取所述第二条横线上的白色像素点的跨度区间,具体为:
获取第二条横线上的各个像素点的灰度值及横向像素坐标、总像素点数,记录第二条横线上的最左白色像素点的横向像素坐标、最右白色像素点的横向像素坐标,组合得到第二条横线上白色像素点的跨度区间。
由上述描述可知,通过第二条横线上的各像素点的灰度值及横向像素坐标、总像素点数,统计出第二条横线上的白色像素点的跨度区间,所述跨度区间是指第二条横线上,以最左白色像素点为左边界点,以最右白色像素点为右边界点的区间,所述方法合理,数据计算量小,数据处理便捷。
进一步的,所述横线间距为所述即开票边界线总高度的8%~15%。
由上述描述可知,横线间距为所述即开票边界线总高度的8%~15%,为不同种类的即开票的兑奖区所占即开票总高度的相同比例范围,使所述方法可适用于各种种类的即开票,应用广泛。
进一步的,所述距离阈值为1%~12%。
由上述描述可知,距离阈值大于1%,可避免因即开票没有放正引起的误差,距离阈值小于12%,可避免因保安区与兑奖区之间的非白像素点区域使竖线上找不到白色像素点,所述距离阈值取值合理,可适用于不同种类的即开票。
进一步的,还包括:
预设连续非白像素点比例阈值为5%~20%;
在所述第一条横线上的白色像素点的跨度区间内,寻找长度比例大于预设连续非白像素点比例阈值的连续非白像素点区间:
若在所述第一条横线上找到满足条件的连续非白像素点区间,则取所述连续非白像素点区间右侧的白色像素点跨度区间,作为所述第一条横线上的兑奖区宽度区间;否则,将所述第一条横线上的白色像素点的跨度区间,作为所述第一条横线上的兑奖区宽度区间;
在所述第二条横线上的白色像素点的跨度区间内,寻找长度比例大于预设连续非白像素点比例阈值的连续非白像素点区间:
若在所述第二条横线上找到满足条件的连续非白像素点区间,则取所述连续非白像素点区间右侧的白色像素点跨度区间,作为所述第二条横线上的兑奖区宽度区间;否则,将所述第二条横线上的白色像素点的跨度区间,作为所述第二条横线上的兑奖区宽度区间。
由上述描述可知,若第一条横线和第二条横线上仅包含兑奖区,则这两条横线上找不到满足条件的连续非白像素点,若第一条横线和第二条横线上的白色像素点跨度区间中包含兑奖区和保安区,则第一条横线和第二条横线的白色像素点跨度区间中包含连续的非白像素点,位于兑奖区和保安区之间;在第一条横线和第二条横线上寻找比例阈值为5%~20%的连续非白像素点,连续非白像素点将第一条横线和第二条横线上的白色像素点跨度区间分割为两个,其中位于连续非白像素点后侧的白色像素点跨度区间即为即开票兑奖区的宽度区间,所述方法合理,将第一条横线和第二条横线上存在的保安区进行识别和筛除,进一步减小即开票兑奖过程中的解码区域面积。
进一步的,还包括:
根据所述第一条横线上的兑奖区宽度区间和所述第二条横线上的兑奖区宽度区间,判断出所述即开票的兑奖区宽度区间:
若第一条横线上无白色像素点,第二条横线上有白色像素点,则将所述第二条横线上的兑奖区宽度区间作为所述即开票的兑奖区宽度区间;
若第二条横线上无白色像素点,第一条横线上有白色像素点,则将所述第一条横线上的兑奖区宽度区间作为所述即开票的兑奖区宽度区间;
若第一条横线和第二条横线上均有白色像素点,则预设跨度区间误差阈值为3个像素点,判断第一条横线和第二条横线上的白色像素点跨度区间误差是否小于跨度区间误差阈值:若是,则将第一条横线和第二条横线上的兑奖区宽度区间相同,均可作为所述即开票的兑奖区宽度区间。
由上述描述可知,若第一条横线和第二条横线中仅有一条横线上寻找到白色像素点,则这些白色像素点的跨度区间即为兑奖区宽度区间,若第一条横线和第二条横线上均有白色像素点,则两条横线上的白色像素点跨度区间误差需满足小于3个像素点的条件,否则,找到的白色像素点跨度区间不是尽可能小范围的兑奖区宽度区间,所述方法合理,找到的即开票兑奖区宽度区间准确。
进一步的,还包括:
若第一条横线和第二条横线上均无白色像素点,或者第一条横线和第二条横线上的白色像素点跨度区间误差大于或等于跨度区间误差阈值,则将第二条横线向上偏移一个横线间距得到第三条横线,将第三条横线至即开票边界线的底部边界线的区域作为即开票的兑奖区。
由上述描述可知,若第一条横线和第二条横线是行均无白色像素点,或者白色像素点跨度区间误差较大,则说明未找到较为准确的兑奖区范围,则扩大兑奖区搜索范围,将第三条横线以下的区域范围均作为即开票的兑奖区,通过对兑奖区完全解码,得到需要的兑奖信息,所述方法可有效保证即开票兑奖区的可靠性,保证兑奖过程的顺利进行。
进一步的,在穿过所述基点的竖线上寻找兑奖区的上白色边界点和下白色边界点,具体为:
预设连线非白像素点阈值为5~12个;
在所述竖线上,以所述基点为起点,向上寻找连续非白像素点个数大于所述连续非白像素点阈值的上非白像素点区间,所述上非白像素点区间下方的第一个白色像素点即为兑奖区的上白色边界点;
在所述竖线上,以所述基点为起点,向下寻找连续非白像素点个数大于所述连续非白像素点阈值的下非白像素点区间,所述下非白像素点区间上方的第一个白色像素点即为兑奖区的下白色边界点。
由上述描述可知,在兑奖区,连续非白像素点的个数不会大于5~12个,具体临界值根据摄像头的高度、即开票的面积等确定;以第一条横线和第二条横线上的基点为起点,在竖线上向上寻找个数达到预设阈值的连续非白像素点下方的一个白色像素点,在竖线上向下寻找个数达到预设阈值的连续非白像素点上方的一个白色像素点,所述方法合理,可准确确定即开票兑奖区的在竖线上的边界点。
请参照图1,本发明的实施例一为:
一种即开票兑奖区定位方法,所述方法为:
获取即开票图像并存储;
寻找即开票图像中的即开票边界线;
预设横线间距,取将所述即开票边界线的底部边界线向上平移一个横线间距为第一条横线,取将所述第一条横线向上平移一个横线间距为第二条横线;
获取所述第一条横线上的白色像素点的跨度区间;
获取所述第二条横线上的白色像素点的跨度区间;
预设距离阈值,取所述白色像素点的跨度区间的最左白色像素点向右偏移一个距离阈值的像素点,或者最右白色像素点向左偏移一个距离阈值的像素点作为基点;
在穿过所述基点的竖线上寻找兑奖区的上白色边界点和下白色边界点;
由所述兑奖区的上白色边界点和下白色边界点,以及所述基点所在白色像素点的跨度区间组成的最小矩形区域,即为即开票兑奖区。
请参照图1,本发明的实施例二为:
一种即开票兑奖区定位方法,所述方法为:
获取即开票图像并存储;
寻找即开票图像中的即开票边界线,具体为:
获取所述即开票图像上的水平中线和竖直中线;
在所述水平中线上,从左向右寻找第一个不是黑点的像素点,作为即开票左边界点;
在所述水平中线上,从右向左寻找第一个不是黑点的像素点,作为即开票右边界点;
在所述竖直中线上,从上向下寻找第一个不是黑点的像素点,作为即开票上边界点;
在所述竖直中线上,从下向上寻找第一个不是黑点的像素点,作为即开票下边界点;
分别画经过所述即开票上边界点和即开票下边界点的横线,分别画经过所述即开票左边界点和即开票右边界点的竖线,两条所述横线与两条所述竖线即为即开票边界线;
预设横线间距,取将所述即开票边界线的底部边界线向上平移一个横线间距为第一条横线,取将所述第一条横线向上平移一个横线间距为第二条横线,所述横线间距为所述即开票边界线总高度的8%~15%;
获取所述第一条横线上的白色像素点的跨度区间,具体为:
获取第一条横线上的各个像素点的灰度值及横向像素坐标、总像素点数,记录第一条横线上的最左白色像素点的横向像素坐标、最右白色像素点的横向像素坐标,组合得到第一条横线上白色像素点的跨度区间;
获取所述第二条横线上的白色像素点的跨度区间,具体为:
获取第二条横线上的各个像素点的灰度值及横向像素坐标、总像素点数,记录第二条横线上的最左白色像素点的横向像素坐标、最右白色像素点的横向像素坐标,组合得到第二条横线上白色像素点的跨度区间;
预设连续非白像素点比例阈值为5%~20%;
在所述第一条横线上的白色像素点的跨度区间内,寻找长度比例大于预设连续非白像素点比例阈值的连续非白像素点区间,具体为:
若在所述第一条横线上找到满足条件的连续非白像素点区间,则取所述连续非白像素点区间右侧的白色像素点跨度区间,作为所述第一条横线上的兑奖区宽度区间;否则,将所述第一条横线上的白色像素点的跨度区间,作为所述第一条横线上的兑奖区宽度区间;
在所述第二条横线上的白色像素点的跨度区间内,寻找长度比例大于预设连续非白像素点比例阈值的连续非白像素点区间:
若在所述第二条横线上找到满足条件的连续非白像素点区间,则取所述连续非白像素点区间右侧的白色像素点跨度区间,作为所述第二条横线上的兑奖区宽度区间;否则,将所述第二条横线上的白色像素点的跨度区间,作为所述第二条横线上的兑奖区宽度区间;
根据所述第一条横线上的兑奖区宽度区间和所述第二条横线上的兑奖区宽度区间,判断出所述即开票的兑奖区宽度区间,具体为:
若第一条横线上无白色像素点,第二条横线上有白色像素点,则将所述第二条横线上的兑奖区宽度区间作为所述即开票的兑奖区宽度区间;
若第二条横线上无白色像素点,第一条横线上有白色像素点,则将所述第一条横线上的兑奖区宽度区间作为所述即开票的兑奖区宽度区间;
若第一条横线和第二条横线上均有白色像素点,则预设跨度区间误差阈值为3个像素点,判断第一条横线和第二条横线上的白色像素点跨度区间误差是否小于跨度区间误差阈值:若是,则将第一条横线和第二条横线上的兑奖区宽度区间相同,均可作为所述即开票的兑奖区宽度区间;
若第一条横线和第二条横线上均无白色像素点,或者第一条横线和第二条横线上的白色像素点跨度区间误差大于或等于跨度区间误差阈值,则将第二条横线向上偏移一个横线间距得到第三条横线,将第三条横线至即开票边界线的底部边界线的区域作为即开票的兑奖区,不执行后续步骤;
预设距离阈值为1%~12%,取所述即开票的兑奖区宽度区间的最左白色像素点向右偏移一个距离阈值的像素点,或者最右白色像素点向左偏移一个距离阈值的像素点作为基点;
在穿过所述基点的竖线上寻找兑奖区的上白色边界点和下白色边界点,具体为:
预设连线非白像素点阈值为5~12个;
在所述竖线上,以所述基点为起点,向上寻找连续非白像素点个数大于所述连续非白像素点阈值的上非白像素点区间,所述上非白像素点区间下方的第一个白色像素点即为兑奖区的上白色边界点;
在所述竖线上,以所述基点为起点,向下寻找连续非白像素点个数大于所述连续非白像素点阈值的下非白像素点区间,所述下非白像素点区间上方的第一个白色像素点即为兑奖区的下白色边界点;
由所述兑奖区的上白色边界点和下白色边界点,以及所述基点所在白色像素点的跨度区间组成的最小矩形区域,即为即开票兑奖区。
综上所述,本发明提供的即开票兑奖区定位方法,从即开票图像中获取即开票的边界线,在即开票的边界线内,通过第一条横线、第二条横线和一条竖线上的白色像素点寻找出即开票兑奖区,若第一条横线和第二条横线上没有满足条件的白色像素点跨度区间,则将第三条横线以下的区域作为兑奖区,横线间距与距离阈值的取值均为百分比,是考虑摄像头间距、图像像素大小、彩票大小等因素对兑奖区尺寸的影响,使数据更加准确,所述方法数据计算量小,数据处理速度快,可适用于各种类型的即开票,且可准确确定即开票兑奖区所在范围,确保后续对即开票兑奖区解码的准确顺利进行。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。