本发明涉及检测领域,更具体地说,它涉及二维码扫描方法。
背景技术:
随着科学技术的进步,电子工业发展突飞猛进,电子系统越来越复杂,电子可靠性和可维护性要求也越来越高,pcb板作为电子系统研制和生产中的重要组成部分,其质量的好坏直接影响整个设备的质量。
因此在实际的生产过程中通常需要对pcb板进行一定测试,在对pcb板进行测试时,需要先读取pcb板上的二维码,解码后输入到系统中,方便检测数据与pcb板对应,然后将pcb板固定到相应的夹具上,并推送至检测装置中进行测试。
目前二维码的扫描是由工作人员手持扫描枪进行的,检测效率低。
技术实现要素:
本发明的目的是提供二维码扫描方法,利用相机获取pcb板上的二维码并对二维码进行解码,获取二维码上的信息并返回结果,提高检测效率。
本发明的上述技术目的是通过以下技术方案得以实现的:二维码扫描方法,包括:在pcb板推送到位时,接收解码指令;利用相机捕获图像;检测图像是否有二维码,若有,则对图像进行预处理,否则重新捕获图像;对捕获到的二维码进行解码处理;若解码成功,则返回解码结果,否则对图像进行修复后再次进行解码处理。
通过采用上述技术方案,在pcb板推送到位时,利用相机获取pcb板上的二维码,并对二维码进行解码,获取二维码的信息后返回解码的结果,并且在解码失败后对图像进行修复后再次进行解码,提高解码成功率,代替人工进行扫描,提高检测效率,解码结果可靠性高。
优选的,对图像进行修复的步骤包括:从捕获图像中裁剪二维码区域;获取二维码角度并转正;再次定位二维码区域并裁剪;对二维码四周进行修复;把修复的二维码图像放在大小、灰度适合的背景中心。
通过采用上述技术方案,对二维码进行调整和修复后放在合适的背景中中心中,提高二维码解码成功的概率。
优选的,在对二维码四周进行修复时,选择是否读取二维码的特征信息,若是,根据特征信息对二维码四周进行修复,否则,根据二维码四周特征进行方向判断,并以默认值对二维码四周进行修复。
通过采用上述技术方案,根据预设的方案选择是否读取二维码的特征信息进行修复,选择更合适的修复方案,提高检测可靠性。
优选的,在对图像进行预处理时,设置图像中需要处理的感兴趣区域;重新设置图像的大小;对图像进行平滑处理;进行直方图均衡化处理。
通过采用上述技术方案,对图像进行预处理,提高二维码解码的成功率和可靠性。
优选的,在接收到解码指令后,判断上一个解码线程是否结束,若是,继续解码线程,否则,提示相机正忙。
通过采用上述技术方案,避免同时进行两个二维码的解码操作,造成数据混乱的情况。
优选的,在捕获图像前,判断相机是否需要重新加载,若是,重新启动相机,否则,判断相机是否已打开,若是,清理相机的缓冲区,否则,打开相机。
通过采用上述技术方案,若相机被重新插入,则需要重新加载相机,若相机已打开,则清理相机的缓冲区,保证解码线程的正常进行。
优选的,在对图像进行修复后再次进行解码后仍失败时,重新利用相机捕获图像。
通过采用上述技术方案,在修复图像后仍解码失败,重新获取图像进行解码操作,提高解码的成功率。
优选的,在对图像进行修复后再次进行解码后仍失败时,判断是否超时,若是,返回超时,否则,重新利用相机捕获图像。
通过采用上述技术方案,在解码所花费的时间超过预设时间时,判断超时,终止解码的流程并返回超时。
优选的,在接收解码指令前,等待指令的调用,若调用的指令为解码指令,则进行解码流程;若调用的指令为读取配置指令,则读取配置并返回值;若调用指令为写入配置指令,则写入配置并返回结果;若调用的指令为获取指令列表指令,则获取支持的指令列表并返回指令列表;若调用的指令为获取指令用法说明指令,则获取并返回对应指令的用法说明。
通过采用上述技术方案,在收到不同的指令时进行相应的动作,提供多种获取结果的方法。
优选的,指令通过rpc协议进行调用。
通过采用上述技术方案,提高指令调用的效率。
综上所述,本发明具有以下有益效果:利用相机获取pcb板上的二维码处对应的图像,并对图像进行预处理,对二维码进行解码并获取二维码的信息后返回解码的结果,并且在解码失败后对图像进行修复后再次进行解码,提高解码成功率,代替人工进行扫描,提高检测效率,解码结果可靠性高。
附图说明
图1是本实施例的主要流程图;
图2是本实施例的解码流程图;
图3是本实施例的解码线程流程图;
图4是本实施例的图像预处理流程图;
图5是本实施例的二维码解码流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
以下具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在以上发明的权利要求范围内都受到专利法的保护。
二维码扫描方法,如图1所示,包括以下步骤:
启动json-rpc解码服务,等待并利用rpc协议调用指令,若调用的指令为解码指令,则进行解码流程,在解码结束后通过rpc协议向系统返回解码结果,解码指令由夹具发出,在工作人员将待测pcb板放置在夹具上,并推送至检测装置中时,夹具发出解码指令;
若调用的指令为读取配置指令,则读取配置并通过rpc协议返回值;
若调用指令为写入配置指令,则写入配置并通过rpc协议返回结果;
若调用的指令为获取指令列表指令,则获取支持的指令列表并通过rpc协议返回指令列表;
若调用的指令为获取指令用法说明指令,则获取并通过rpc协议返回对应指令的用法说明。
对于解码流程,如图2所示,先判断上一解码线程是否结束,若上一解码线程已结束,则开始本次解码线程,否则,标记结果为“相机正忙”并返回结果。
在开始本次解码线程时,同步等待解码线程结束直至超时,若解码流程未超时,则获取解码线程结果并返回解码结果,否则标记为超时,并结束解码线程,标记结果为“超时”,并返回结果。
对于解码线程,如图3所示,先判断相机是否需要重新加载,若相机被重新插入,则需要重新加载相机,若重新加载相机,则重新启动相机,然后利用相机捕获pcb板中二维码所在位置的图像。
若不重新加载相机,则判断相机是否已打开,若相机已打开,则在清理相机的缓冲区后利用相机捕获pcb板中二维码所在位置的图像。
若相机未打开,则进行打开相机的操作,若相机成功打开,则利用相机捕获pcb板中二维码所在位置的图像,否则将解码线程的结果标记为“相机打开失败”。
在利用相机捕获图像后,检测所捕获的画面中是否有二维码,若检测到没有二维码,则重新设置相机的对焦、曝光值,并重新捕获图像,在重新设置相机的对焦、曝光值的次数超过2次时,将解码线程的结果标记为“无码”。
若检测到有二维码,则进行图像预处理,提高解码成功率和质量,在对图像进行预处理后,进行二维码解码,若解码成功,解码线程的结果输出为解码结果,否则判断是否超时,若超时,将解码线程结果标记为超时,否则重新捕获图像。
对于图像预处理流程,如图4所示,其步骤依次为设置图像中需要处理的感兴趣区域、重新设置图像的大小、对图像进行平滑处理、进行直方图均衡化处理、输出预处理后的图像,提高二维码解码的成功率和可靠性。
二维码解码流程如图5所示,对预处理后的图像中的二维码进行二维码解码,二维码解码算法为现有技术,在此不作赘述,若解码成功,将二维码解码信息输出为解码结果,否则对图像进行修复后再次进行解码处理。
对图像进行修复时,包括以下步骤:
从捕获图像中裁剪二维码区域;
获取二维码角度并转正;
再次定位二维码区域并裁剪;
对二维码四周进行修复;
把修复的二维码图像放在一个大小、灰度适合的背景中心。
在对二维码四周进行修复时,选择是否读取二维码的特征信息,若是,根据特征信息对二维码四周进行修复,否则,根据二维码四周特征进行方向判断,并以默认值对二维码四周进行修复。
有益效果:利用相机获取pcb板上的二维码处对应的图像,并对图像进行预处理,对二维码进行解码并获取二维码的信息后返回解码的结果,并且在解码失败后对图像进行修复后再次进行解码,提高解码成功率,代替人工进行扫描,提高检测效率,解码结果可靠性高。