一种影像式cmos条码快速识别方法及装置的制造方法

xiaoxiao2020-10-23  14

一种影像式cmos条码快速识别方法及装置的制造方法
【技术领域】
[0001]本发明涉及条码识别领域,特别涉及一种影像式CMOS条码快速识别方法及装置。
【背景技术】
[0002]根据条形码目前的应用环境和信息量要求,在条形码识别领域,对识别的阅读器的要求越来越高。要求阅读器既能读取一维条形码,又能读取二维条码;要求数据位可高达500位以上条码,并且可360度全方位角度读取;而传统激光阅读器、CXD阅读器只能读取100位以内条码(一般在48位以内);只能正向、并向读取,不能360度读取。另外,传统激光阅读器、CCD阅读器不能识别在含吸光材料为介质作背景的条码。传统影像式CMOS 二维扫描器只支持串口 TTL/RS232 输出,不支持含 USB HID keyboard、USB-VCP (CDC)、RS485 切换输出。传统影像式CMOS 二维扫描器不支持二维码图像导出功能。一维条形码解码缺乏变换角度解码,影响识读率和解码速度。图片预处理二值化算法缺乏多种算法切换,影响识读率。

【发明内容】

[0003]本发明要解决的技术问题在于,针对现有技术的上述读取的数据位较少、不能360度读取、影响识读率的缺陷,提供一种能大大提高读取的数据位、能360度读取、提高识读率的影像式CMOS条码快速识别方法及装置。
[0004]本发明解决其技术问题所采用的技术方案是:构造一种影像式CMOS条码快速识别方法,应用于条码识别系统,所述条码识别系统包括影像式CMOS成像系统,所述识别方法包括如下步骤:
[0005]A)启动扫描功能,并启动所述影像式CMOS成像系统;
[0006]B)所述影像式CMOS成像系统获取图像,并将获取的图像分别缓存在第一数据缓冲区和第二数据缓冲区中;
[0007]C)将缓存在所述第二数据缓冲区中的图像按照当前类型的二值化算法进行图像二值化处理;
[0008]D)对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功,如是,执行步骤G);否则,执行步骤E);
[0009]E)对所述经过二值化处理后的图像进行二维条形码解码,并判断是否解码成功,如是,执行步骤G);否则,执行步骤F);
[0010]F)判断事先指定的所有类型的二值化算法是否都切换过,如是,返回步骤B);否贝1J,切换到下一类型的二值化算法,并返回步骤C);
[0011]G)进行参数预处理;所述参数预处理包括输出接口类型转换和解码数据格式转换;
[0012]H)根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码。
[0013]在本发明所述的影像式CMOS条码快速识别方法中,还包括如下步骤:
[0014]I)判断串口是否接收到导出原图像的指令,如是,输出所述第一数据缓冲区中的图像信息;否则,继续进行本步骤的判断。
[0015]在本发明所述的影像式CMOS条码快速识别方法中,所述步骤D)进一步包括:
[0016]Dl)对旋转角度赋值为O ;
[0017]D2)将经过二值化处理后的图像按照所述旋转角度的大小进行旋转;
[0018]D3)根据一维条形码编码表进行轮循解码,并判断解码是否成功,如是,执行步骤G);否则,执行步骤D4);
[0019]D4)将所述旋转角度加上一个角度设定值后,判断其大小是否大于180度,如是,执行步骤E);否则,返回步骤D2)。
[0020]在本发明所述的影像式CMOS条码快速识别方法中,所述事先指定的所有类型的二值化算法包括中值滤波算法、大律法和局部算法。
[0021]在本发明所述的影像式CMOS条码快速识别方法中,当切换到局部算法时,所述局部算法包括如下步骤:
[0022]Cl丨)从第二数据缓冲区中获取图像的像素点;
[0023]C2 ')分别给半径参考值和修正系数进行赋值;
[0024]C3 ')根据半径参考值的平方值大小分别计算出所述像素点的像素平均值和标准方差值;
[0025]C4')将所述修正系数和标准方差值相乘,并将得到的乘积与所述像素平均值进行相加得到二值化值;
[0026]C5 ’ )对经过二值化处理后的图像进行一维条形码或二维条形码解码,并判解码是否成功,如是,执行步骤G);否则,执行步骤C6丨);
[0027]C6 ')变换所述半径参考值的大小,并判断变换后的半径参考值的大小是否大于半径设定值,如是,执行步骤G);否则,返回步骤C2')。
[0028]在本发明所述的影像式CMOS条码快速识别方法中,所述步骤H)进一步包括:
[0029]Hl)判断接口参数是否等于第一设定值,如是,选择TTL接口或RS232接口输出方式,并使用所述TTL接口或RS232接口输出自动识别成功的条形码;否则,执行步骤H2);
[0030]H2)判断所述接口参数是否等于第二设定值,如是,选择USB HID键盘输出方式,并使用所述USB HID键盘输出自动识别成功的条形码;否则,执行步骤H3);
[0031]H3)判断所述接口参数是否等于第三设定值,如是,选择USB虚拟串口输出方式,并使用所述USB虚拟串口输出自动识别成功的条形码;否则,执行步骤H4);
[0032]H4)判断所述接口参数是否等于第四设定值,如是,选择RS485接口输出方式,并使用所述RS485接口输出自动识别成功的条形码;否则,提示报警信息。
[0033]本发明还涉及一种实现上述影像式CMOS条码快速识别方法的装置,应用于条码识别系统,所述条码识别系统包括影像式CMOS成像系统,所述装置包括:
[0034]启动单元:用于启动扫描功能,并启动所述影像式CMOS成像系统;
[0035]图像获取缓存单元:用于使所述影像式CMOS成像系统获取图像,并将获取的图像分别缓存在第一数据缓冲区和第二数据缓冲区中;
[0036]二值化处理单元:用于将缓存在所述第二数据缓冲区中的图像按照当前类型的二值化算法进行图像二值化处理;
[0037]一维条形码解码单元:用于对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功;
[0038]二维条形码解码单元:用于对所述经过二值化处理后的图像进行二维条形码解码,并判断是否解码成功;
[0039]切换判断单元:用于判断事先指定的所有类型的二值化算法是否都切换过,如是,返回;否则,切换到下一类型的二值化算法;
[0040]参数预处理单元:用于进行参数预处理;所述参数预处理包括输出接口类型转换和解码数据格式转换;
[0041]条形码输出单元:用于根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码。
[0042]在本发明所述的装置中,还包括:
[0043]指令接收判断单元:用于判断串口是否接收到导出原图像的指令,如是,输出所述第一数据缓冲区中的图像信息;否则,继续进行判断。
[0044]在本发明所述的装置中,所述一维条形码解码单元进一步包括:
[0045]赋值模块:用于对旋转角度赋值为O ;
[0046]图像旋转模块:用于将经过二值化处理后的图像按照所述旋转角度的大小进行旋转;
[0047]轮循解码模块:用于根据一维条形码编码表进行轮循解码,并判断解码是否成功;
[0048]旋转角度大小判断模块:用于将所述旋转角度加上一个角度设定值后,判断其大小是否大于180度。
[0049]在本发明所述的装置中,所述事先指定的所有类型的二值化算法包括中值滤波算法、大律法和局部算法。
[0050 ]实施本发明的影像式CMOS条码快速识别方法及装置,具有以下有益效果:由于使用影像式CMOS成像系统,既读取一维条形码,又能读取二维条码,条码数据位可高达500位以上条码,甚至1024/2048位条码,可360度全方位角度读取,能在事先指定的多个类型的二值化算法中进行切换;所以其能大大提高读取的数据位、能360度读取、提高识读率。
【附图说明】
[0051]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0052]图1为本发明影像式CMOS条码快速识别方法及装置一个实施例中方法的流程图;
[0053]图2为所述实施例中对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功的具体流程图;
[0054]图3为所述实施例中局部算法的具体流程图;
[0055]图4为所述实施例中根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码的具体流程图;
[0056]图5为所述实施例中装置的结构示意图。
【具体实施方式】
[0057]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0058]在本发明影像式CMOS条码快速识别方法及装置实施例中,其影像式CMOS条码快速识别方法的流程图如图1所示。该影像式CMOS条码快速识别方法应用于条码识别系统,条码识别系统包括影像式CMOS成像系统,图1中,该影像式CMOS条码快速识别方法包括如下步骤:
[0059]步骤S001启动扫描功能,并启动影像式CMOS成像系统:本步骤中,启动扫描功能,并启动影像式CMOS成像系统。
[0060]步骤S002影像式CMOS成像系统获取图像,并将获取的图像分别缓存在第一数据缓冲区和第二数据缓冲区中:本步骤中,影像式CMOS成像系统获取图像,在获取图像完成后,将获取的图像分别缓存在第一数据缓冲区和第二数据缓冲区中,本实施例中,将第一数据缓冲区标记为buf_F[x],将第二数据缓冲区标记为buf_d[x]。
[0061]步骤S003将缓存在第二数据缓冲区中的图像按照当前类型的二值化算法进行图像二值化处理:本步骤中,将缓存在第二数据缓冲区中的图像按照当前类型的二值化算法进行图像二值化处理,关于如何处理,后续会进行详细描述。
[0062]步骤S004对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功:值得一提的是,影像式CMOS成像系统获取的图像有可能是一维条形码的图片,也可能是二维条形码的图片。本步骤中,对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功,如果判断的结果为是,则执行步骤S008 ;否则,执行步骤S005。
[0063]步骤S005对经过二值化处理后的图像进行二维条形码解码,并判断是否解码成功:如果上述步骤S004的判断结果为否,则执行本步骤。本步骤中,对经过二值化处理后的图像进行二维条形码解码,并判断是否解码成功,如果判断的结果为是,则执行步骤S008 ;否则,执行步骤S006。
[0064]步骤S006判断事先指定的所有类型的二值化算法是否都切换过:如果上述步骤S005的判断结果为否,则执行本步骤。本实施例中,事先指定的所有类型的二值化算法包括中值滤波算法、大律法(OTSU)和局部算法(Niblack)。本步骤中,判断事先指定的所有类型的二值化算法是否都切换过,也就是判断中值滤波算法、大律法和局部算法是否都被切换过一次,如果判断的结果为是,则返回步骤S002 ;否则,执行步骤S007。
[0065]步骤S007切换到下一类型的二值化算法:如果上述步骤S006的判断结果为否,则执行本步骤。本步骤中,切换到下一类型的二值化算法,也就是切换到中值滤波算法、大律法和局部算法中未被切换过的一种算法。执行完本步骤,返回步骤S003。
[0066]步骤S008进行参数预处理:本步骤中,进行参数预处理,该参数预处理有很多种,例如:输出接口类型转换和解码数据格式转换等等,可具体需要设定相应的参数。
[0067]步骤S009根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码:本步骤中,根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码。
[0068]值得一提的是,本实施例中,采用影像式CMOS (如:MT9V0xx、0V79xx、0V76xx)作为影像式CMOS成像系统,该影像式CMOS成像系统还包括主控CPU,主控CPU即为ARM,ARM选用ARM9/ARM11系列,具体为自带USB、CSI摄像头接口功能芯片,例如:imx257、imx353系列等等。由于使用影像式CMOS成像系统,既读取一维条形码,又能读取二维条码,条码数据位可高达500位以上条码,甚至1024/2048位条码,可360度全方位角度读取,能在事先指定的多个类型的二值化算法中进行切换;所以其能大大提高读取的数据位、能360度读取、提高识读率。同时还支持含吸光材料为介质作背景的条码。
[0069]对于本实施例而言,当需要导出原图像时,该影像式CMOS条码快速识别方法还包括如下步骤:
[0070]步骤S010判断串口是否接收到导出原图像的指令:在执行完步骤S009后,执行本步骤。本步骤中,判断串口是否接收到导出原图像的指令,如果判断的结果为是,则执行步骤SOll ;否则,继续进行本步骤的判断。
[0071]步骤SOll输出第一数据缓冲区中的图像信息:如果上述步骤S010的判断结果为是,则执行本步骤。本步骤中,输出第一数据缓冲区中的图像信息。所以本发明支持在输出识别成功条形码后,接受指令控制导出识别成功条形码的原图像。
[0072]对于本实施例而言,上述步骤S004还可进一步细化,其细化后的流程图如图2所示。图2中,上述步骤S004进一步包括:
[0073]步骤S41对旋转角度赋值为O:本步骤中,对旋转角度赋值为0,本实施例中,为了方便描述,将旋转角度比较为angle,本步骤中,也就是令angle = O。
[0074]步骤S42将经过二值化处理后的图像按照旋转角度的大小进行旋转:本步骤中,将经过二值化处理后的图像按照旋转角度的大小进行旋转,也就是将经过二值化处理后的图像旋转angle度。
[0075]步骤S43根据一维条形码编码表进行轮循解码,并判断解码是否成功:本步骤中,根据一维条形码编码表进行轮循解码,并判断解码是否成功,如果判断的结果为是,则执行步骤S006 ;否则,执行步骤S44。
[0076]步骤S44将旋转角度加上一个角度设定值后,判断其大小是否大于180度:如果上述步骤S43的判断结果为否,则执行本步骤。本步骤中,将旋转角度加上一个角度设定值后,判断其大小是否大于180度,具体的,本实施例中,角度设定值为15,本步骤中,也就是令angle = angle+15,然后判断angle是否大于180度,如果判断的结果为是,则执行步骤S005 ;否则,返回步骤S42。本发明将一维条形码解码和二维条形码解码进行分类解码,在一维条形码解码时,通过将图像按旋转角度的转变进行解码,这样可以提高识读率及解码速度。值得一提的是,在本实施例的一些情况下,上述角度设定值的大小也可以为其他值,具体为多少,可 根据实际情况进行灵活的设定。
[0077]本实施例中,当二值化算法切换到局部算法时,其流程图如图3所示。图3中,该局部算法包括如下步骤:
[0078]步骤S31 '从第二数据缓冲区中获取图像的像素点:本步骤中,从buf_d[x]中获取图像的像素点。
[0079]步骤S32 '分别给半径参考值和修正系数进行赋值:本步骤中,分别给半径参考值和修正系数进行赋值,为了方便描述,本实施例中,将半径参考值和修正系数标分别记为R和K。
[0080]步骤S33 '根据半径参考值的平方值大小分别计算出像素点的像素平均值和标准方差值:本步骤中,根据半径参考值的平方值大小分别计算出像素点的像素平均值和标准方差值,将像素点的像素平均值标记为m(x,y),标准方差值标记为S (X,y),(x,y)为像素点的坐标,具体的,根据R*R的大小,分别计算m(x,y)和S(x,y)。
[0081]步骤S34 '将修正系数和标准方差值相乘,并将得到的乘积与像素平均值进行相加得到二值化值:本实施例中,将二值化值标记为T (X,y),本步骤中,也就是T (X,y) = m(x,y)+K*S(x,y)o
[0082]步骤S35 '对经过二值化处理后的图像进行一维条形码或二维条形码解码,并判解码是否成功:本步骤中,对经过二值化处理后的图像进行一维条形码或二维条形码解码,并判解码是否成功,如果判断的结果为是,则执行步骤S006 ;否则,执行步骤S36 '。
[0083]步骤S36 '变换半径参考值的大小,并判断变换后的半径参考值的大小是否大于半径设定值:如果上述步骤S35 '的判断结果为否,则执行本步骤。本实施例中,半径设定值为5,本步骤中,变换R的大小,并判断R是否大于5,如果判断的结果为是,则执行步骤S006;否则,返回步骤S32 '。这样就实现了局部算法。
[0084]对于本实施例而言,上述步骤S009还可进一步细化,其细化后的流程图如图4所示。图4中,上述步骤S009进一步包括:
[0085]步骤S91判断接口参数是否等于第一设定值:本实施例中,每种接口的接口参数的大小都不一样。本步骤中,判断接口参数是否等于第一设定值,如果判断的结果为是,则执行步骤S92 ;否则,执行步骤S93。本实施例中,将接口参数标记为transmit_mode。本实施例中,第一设定值为0x30,当然,在本实施例的一些情况下,第一设定值的大小也可以为其他值,可根据具体情况设定其大小。
[0086]步骤S92选择TTL接口或RS232接口输出方式,并使用TTL接口或RS232接口输出自动识别成功的条形码:如果上述步骤S91的判断结果为是,则执行本步骤。本步骤中,选择TTL接口或RS232接口输出方式,并使用TTL接口或RS232接口输出自动识别成功的条形码。
[0087]步骤S93判断接口参数是否等于第二设定值:如果上述步骤S91的判断结果为否,则执行本步骤。本步骤中,判断transmit_mode是否等于第二设定值,如果判断的结果为是,则执行步骤S94 ;否则,执行步骤S95。本实施例中,第二设定值为0x31,当然,在本实施例的一些情况下,第二设定值的大小也可以为其他值,可根据具体情况设定其大小。
[0088]步骤S94选择USB HID键盘输出方式,并使用USB HID键盘输出自动识别成功的条形码:如果上述步骤S93的判断结果为是,则执行本步骤。本步骤中,选择USB HID键盘输出方式,并使用USB HID键盘输出自动识别成功的条形码。
[0089]步骤S95判断接口参数是否等于第三设定值:如果上述步骤S93的判断结果为否,则执行本步骤。本步骤中,判断transmit_mode是否等于第三设定值,如果判断的结果为是,则执行步骤S96 ;否则,执行步骤S97。本实施例中,第三设定值为0x32,当然,在本实施例的一些情况下,第三设定值的大小也可以为其他值,可根据具体情况设定其大小。
[0090]步骤S96选择USB虚拟串口输出方式,并使用USB虚拟串口输出自动识别成功的条形码:如果上述步骤S95的判断结果为是,则执行本步骤。本步骤中,选择USB虚拟串口输出方式,并使用USB虚拟串口输出自动识别成功的条形码。
[0091]步骤S97判断接口参数是否等于第四设定值:如果上述步骤S95的判断结果为否,则执行本步骤。本步骤中,判断transmit_mode是否等于第四设定值,如果判断的结果为是,则执行步骤S98 ;否则,执行步骤S99。本实施例中,第四设定值为0x34,当然,在本实施例的一些情况下,第四设定值的大小也可以为其他值,可根据具体情况设定其大小。
[0092]步骤S98选择RS485接口输出方式,并使用RS485接口输出自动识别成功的条形码:如果上述步骤S97的判断结果为是,则执行本步骤。本步骤中,选择RS485接口输出方式,并使用RS485接口输出自动识别成功的条形码。
[0093]步骤S99提示报警信息:如果上述步骤S97的判断结果为否,则执行本步骤。本步骤中,提示报警信息。本发明具有强大的可预设处理参数及丰富的输出接口,可只支持串口 TTL/RS232输出,同时支持含USB HID键盘(USB HID keyboard)、USB虚拟串口(USB-VCP (CDC))、RS485 切换输出。
[0094]本实施例还涉及一种实现上述影像式CMOS条码快速识别方法的装置,其结构示意图如图5所示。该装置应用于条码识别系统,该条码识别系统包括影像式CMOS成像系统,图5中,该装置包括启动单元1、图像获取缓存单元2、二值化处理单元3、一维条形码解码单元4、二维条形码解码单元5、切换判断单元6、参数预处理单元7和条形码输出单元8 ;其中,启动单元I用于启动扫描功能,并启动影像式CMOS成像系统;图像获取缓存单元2用于使影像式CMOS成像系统获取图像,并将获取的图像分别缓存在第一数据缓冲区和第二数据缓冲区中;二值化处理单元3用于将缓存在所述第二数据缓冲区中的图像按照当前类型的二值化算法进行图像二值化处理;一维条形码解码单元4用于对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功;二维条形码解码单元5用于对经过二值化处理后的图像进行二维条形码解码,并判断是否解码成功;切换判断单元6用于判断事先指定的所有类型的二值化算法是否都切换过,如是,返回;否则,切换到下一类型的二值化算法,事先指定的所有类型的二值化算法包括中值滤波算法、大律法和局部算法。参数预处理单元7用于进行参数预处理;参数预处理包括输出接口类型转换和解码数据格式转换;条形码输出单元8用于根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码。由于使用影像式CMOS成像系统,既读取一维条形码,又能读取二维条码,条码数据位可高达500位以上条码,甚至1024/2048位条码,可360度全方位角度读取,能在事先指定的多个类型的二值化算法中进行切换;所以其能大大提高读取的数据位、能360度读取、提高识读率。同时还支持含吸光材料为介质作背景的条码。
[0095]对于本实施例而言,当需要导出原图像时,该装置还包括指令接收判断单元9,指令接收判断单元9用于判断串口是否接收到导出原图像的指令,如是,输出第一数据缓冲区中的图像信息;否则,继续进行判断。其支持在输出识别成功条形码后,接受指令控制导出识别成功条形码的原图像。
[0096]本实施例中,一维条形码解码单元4进一步包括赋值模块41、图像旋转模块42、轮循解码模块43和旋转角度大小判断模块44 ;其中,赋值模块41用于对旋转角度赋值为O ;图像旋转模块42用于将经过二值化处理后的图像按照旋转角度的大小进行旋转;轮循解码模块43用于根据一维条形码编码表进行轮循解码,并判断解码是否成功;旋转角 度大小判断模块44用于将旋转角度加上一个角度设定值后,判断其大小是否大于180度。在一维条形码解码时,通过将图像按旋转角度的转变进行解码,这样可以提高识读率及解码速度。
[0097]总之,在本实施例中,采用影像式CMOS作为成像系统、ARM9/ARM11作主控CPU ;既读取一维条形码,又能读取二维条码;条码数据位可高达500位以上条码,甚至1024/2048位条码;可360度全方位角度读取;支持含吸光材料为介质作背景的条码;具有强大可预设处理参数及丰富的输出接口,可只支持串口 TTL/RS232输出,同时也支持含USB HIDkeyboard, USB-VCP^DC)、RS485切换输出;支持在输出识别成功条形码后,接受指令控制导出识别成功条形码的原图像;一维、二维条形码解码分类解码,在一维条形码解码时,增加图像按旋转角度转变解码,提高识读率及解码速度;增加多种二值化处理算法,切换使用,提高识读率。
[0098]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1.一种影像式CMOS条码快速识别方法,其特征在于,应用于条码识别系统,所述条码识别系统包括影像式CMOS成像系统,所述识别方法包括如下步骤: A)启动扫描功能,并启动所述影像式CMOS成像系统; B)所述影像式CMOS成像系统获取图像,并将获取的图像分别缓存在第一数据缓冲区和第二数据缓冲区中; C)将缓存在所述第二数据缓冲区中的图像按照当前类型的二值化算法进行图像二值化处理; D)对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功,如是,执行步骤G);否则,执行步骤E); E)对所述经过二值化处理后的图像进行二维条形码解码,并判断是否解码成功,如是,执行步骤G);否则,执行步骤F); F)判断事先指定的所有类型的二值化算法是否都切换过,如是,返回步骤B);否则,切换到下一类型的二值化算法,并返回步骤C); G)进行参数预处理;所述参数预处理包括输出接口类型转换和解码数据格式转换; H)根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码。2.根据权利要求1所述的影像式CMOS条码快速识别方法,其特征在于,还包括如下步骤: I)判断串口是否接收到导出原图像的指令,如是,输出所述第一数据缓冲区中的图像信息;否则,继续进行本步骤的判断。3.根据权利要求1或2所述的影像式CMOS条码快速识别方法,其特征在于,所述步骤D)进一步包括: Dl)对旋转角度赋值为O ; D2)将经过二值化处理后的图像按照所述旋转角度的大小进行旋转; D3)根据一维条形码编码表进行轮循解码,并判断解码是否成功,如是,执行步骤G);否则,执行步骤D4); D4)将所述旋转角度加上一个角度设定值后,判断其大小是否大于180度,如是,执行步骤E);否则,返回步骤D2)。4.根据权利要求3所述的影像式CMOS条码快速识别方法,其特征在于,所述事先指定的所有类型的二值化算法包括中值滤波算法、大律法和局部算法。5.根据权利要求4所述的影像式CMOS条码快速识别方法,其特征在于,当切换到局部算法时,所述局部算法包括如下步骤: Cl丨)从第二数据缓冲区中获取图像的像素点; C2 ')分别给半径参考值和修正系数进行赋值; C3 ')根据半径参考值的平方值大小分别计算出所述像素点的像素平均值和标准方差值; C4 ')将所述修正系数和标准方差值相乘,并将得到的乘积与所述像素平均值进行相加得到二值化值; C5 ')对经过二值化处理后的图像进行一维条形码或二维条形码解码,并判解码是否成功,如是,执行步骤G);否则,执行步骤C6 '); C6 ')变换所述半径参考值的大小,并判断变换后的半径参考值的大小是否大于半径设定值,如是,执行步骤G);否则,返回步骤C2')。6.根据权利要求1所述的影像式CMOS条码快速识别方法,其特征在于,所述步骤H)进一步包括: Hl)判断接口参数是否等于第一设定值,如是,选择TTL接口或RS232接口输出方式,并使用所述TTL接口或RS232接口输出自动识别成功的条形码;否则,执行步骤H2); H2)判断所述接口参数是否等于第二设定值,如是,选择USB HID键盘输出方式,并使用所述USB HID键盘输出自动识别成功的条形码;否则,执行步骤H3); H3)判断所述接口参数是否等于第三设定值,如是,选择USB虚拟串口输出方式,并使用所述USB虚拟串口输出自动识别成功的条形码;否则,执行步骤H4); H4)判断所述接口参数是否等于第四设定值,如是,选择RS485接口输出方式,并使用所述RS485接口输出自动识别成功的条形码;否则,提示报警信息。7.一种实现如权利要求1所述的影像式CMOS条码快速识别方法的装置,其特征在于,应用于条码识别系统,所述条码识别系统包括影像式CMOS成像系统,所述装置包括: 启动单元:用于启动扫描功能,并启动所述影像式CMOS成像系统; 图像获取缓存单元:用于使所述影像式CMOS成像系统获取图像,并将获取的图像分别缓存在第一数据缓冲区和第二数据缓冲区中; 二值化处理单元:用于将缓存在所述第二数据缓冲区中的图像按照当前类型的二值化算法进行图像二值化处理; 一维条形码解码单元:用于对经过二值化处理后的图像进行一维条形码解码,并判断是否解码成功; 二维条形码解码单元:用于对所述经过二值化处理后的图像进行二维条形码解码,并判断是否解码成功; 切换判断单元:用于判断事先指定的所有类型的二值化算法是否都切换过,如是,返回;否则,切换到下一类型的二值化算法; 参数预处理单元:用于进行参数预处理;所述参数预处理包括输出接口类型转换和解码数据格式转换; 条形码输出单元:用于根据当前接口类型参数值的大小选择相应的接口输出方式,并由相应的接口输出自动识别成功的条形码。8.根据权利要求7所述的装置,其特征在于,还包括: 指令接收判断单元:用于判断串口是否接收到导出原图像的指令,如是,输出所述第一数据缓冲区中的图像信息;否则,继续进行判断。9.根据权利要求7或8所述的装置,其特征在于,所述一维条形码解码单元进一步包括: 赋值模块:用于对旋转角度赋值为O ; 图像旋转模块:用于将经过二值化处理后的图像按照所述旋转角度的大小进行旋转; 轮循解码模块:用于根据一维条形码编码表进行轮循解码,并判断解码是否成功; 旋转角度大小判断模块:用于将所述旋转角度加上一个角度设定值后,判断其大小是否大于180度。10.根据权利要求9所述的装置,其特征在于,所述事先指定的所有类型的二值化算法包括中值滤波算法、大律法和局部算法。
【专利摘要】本发明提出了一种影像式CMOS条码快速识别方法及装置,方法包括:启动影像式CMOS成像系统获取图像,并将其分别缓存在第一数据缓冲区和第二数据缓冲区中;将缓存在第二数据缓冲区中的图像按照当前二值化算法进行二值化处理;对经过二值化处理后的图像进行条形码解码,并判断是否解码成功,如是,参数预处理;否则,执行下一步骤;判断所有类型的二值化算法是否都切换过,如是,返回;否则,切换到下一类型二值化算法并返回;根据接口类型参数值选择相应的接口输出方式,并由相应接口输出自动识别成功的条形码。实施本发明的影像式CMOS条码快速识别方法及装置,具有以下有益效果:能大大提高读取的数据位、能360度读取、提高识读率。
【IPC分类】G06K7/10
【公开号】CN104899542
【申请号】CN201510279823
【发明人】李飞龙, 谢楠, 谢世伟, 王永锋
【申请人】广州市韦尔讯信息科技有限公司
【公开日】2015年9月9日
【申请日】2015年5月27日

最新回复(0)