CN101874250B - 增强型虚拟扫描线处理 - Google Patents
增强型虚拟扫描线处理 Download PDFInfo
- Publication number
- CN101874250B CN101874250B CN2008801170676A CN200880117067A CN101874250B CN 101874250 B CN101874250 B CN 101874250B CN 2008801170676 A CN2008801170676 A CN 2008801170676A CN 200880117067 A CN200880117067 A CN 200880117067A CN 101874250 B CN101874250 B CN 101874250B
- Authority
- CN
- China
- Prior art keywords
- data
- edge
- rim detection
- useful data
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10554—Moving beam scanning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10554—Moving beam scanning
- G06K7/10594—Beam path
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/22—Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
Abstract
用于解码条码或其他光学码的系统和方法,其包括基于第一组边缘检测参数识别包括有用数据的图像数据的一个或更多子区、将有用数据从第一存储器位置传递至新的存储器位置供进一步处理,以及基于不同组的边缘检测参数解码有用数据。
Description
技术领域
本公开的领域涉及利用多个扫描参数从机器可读标记诸如条码或其他光学码提取数据的系统、方法和装置。
背景技术
条码具有广泛的应用。例如,条码可用于识别一类对象(例如,商品)或唯一的物品(例如,专利品)。因此,条码在各种对象上都能找到,诸如商品、企业资产和文档,并且条码有助于追踪制造设施的产品和商店的库存量(当物品到达以及当物品被销售时通过扫描物品的方式追踪)。
条码本质上是信息的视觉格式的机器可读表示,其位于对象的表面上-即光学码。一些条码在白色基体(substrate)上使用黑色油墨以对扫描产生高的和低的反射率。基于使用的符号表示法(例如,UPC、Code39、Code128、PDF417等),条码可包括数据字符(或例如PDF417情形下的码字)和/或由特定的条纹和间隔序列表示的悬空字符(其可能具有变化的宽度)。
通常,条码包括具有单组条纹和间隔的数据字符,所述单组条纹和间隔表示编码的数字、字母、标点符号或其他符号。也就是说,数据字符是包含数据的条纹和间隔的最小子集。在某些符号表示法中,数据字符可表示多于一个的数字、字母等。例如,Code 128能够将两个数字编码成一个字符宽度(双密度)。悬空字符包括一组条纹和间隔,其表示例如起始字符、终止符、中央字符、保护(guard)字符和/或校验字符。例如,一对保护字符可划界条码的起始和结束并且中央字符可将条码分成两个相等部分。校验字符可用作错误检验的冗余校验(类似于二进制总和校验)。例如,校验字符可以根据条码中的其他字符计算出来。
光学码读取器用于光学获取印在各种表面上的条码图案或其他符号或信息以传递条码图案或符号中编码的信息至主机处理设备。两种类型的常用光学码读取器是飞点扫描器和基于成像的扫描器。飞点激光器扫描器通常通过扫描条码的激光点来获得条码信息。激光点可以从振荡反射表面内的光源产生,振荡反射表面一般为反射镜。自条码反射的光由光传感器收集,其输出表示条码中的条纹的相对间隔的模拟波形。之后,模拟信号可以被数字化并且解码成代表条码中编码的信息的数据。
基于成像的扫描器包括固态图像电路,诸如电荷耦合装置(CCD),并且可以利用光传感器一维或二维成像阵列(或像素)来实现以捕获条码。一维CCD读取器同时捕获条码的线性截面,产生模拟波形,模拟波形的振幅表示条码的相对暗度和亮度。二维CCD读取器同时捕获整个二维图像。通常,仅存储和处理图像数据的选择部分。图像数据的选择部分有时被称为虚拟扫描线,因为选择部分类似于由移动激光束点扫描条码的反射产生的信号。
成像系统使用虚拟扫描线的效果可能受限于边缘跳跃(表示条纹和间隔)被边缘检测器识别的准确程度。例如,基于边缘检测参数中的限制,边缘跳跃可能丢失或可能识别错误的边缘跳跃,这最终需要重新扫描条码。因此,本发明认识到对能够避免重新扫描条码、用于解码条码的增强型虚拟扫描线处理的需求。
附图说明
图1是根据一个实施例包括基于成像的扫描器的光学码读取器的框图。
图2是图1中基于成像的扫描器的框图。
图3是根据一个实施例图示说明示例性信号处理器的框图。
图4图示说明图1的光学码读取器沿虚拟扫描线捕获数据以及在虚拟扫描线缓冲器中存储虚拟扫描线数据。
图5是图示说明根据一个实施例从条码提取数据的方法的流程图。
图6是图示说明根据一个实施例选择有用虚拟扫描线以及利用不同边缘检测参数处理有用虚拟扫描线的框图。
图7和图8是图示说明根据一个实施例的虚拟扫描线模式改变的图形。
具体实施方式
参照以上述列出的附图,此部分描述了特定实施例及其详细构成与操作。这里描述的实施例仅通过图示说明方式陈述。根据这里的教导,本领域技术人员将认识到可能存在关于这里字面上或内在地教导的内容的等效物。例如,可以对这里描述的实施例作出改变,并且其他实施例是可能的。完全地列出所有可能实施例以及所述实施例的所有可能变化总是不实际的。
为了清楚性和简洁性,呈现了某些实施例的某些组件或步骤的某些方面而未描述细节,因为根据这里的教导这种细节对本领域技术人员来说是显而易见的和/或这种细节会使实施例的较为相关的方面难于理解。
概述
在描述增强的虚拟扫描线处理的详细示例之前,将首先描述具有代表性的数据读取器及相关方面。
图1是示出根据一个实施例的光学码扫描器100的操作组件的框图。尽管图1中图示说明了基于总线的架构(基于总线110),但是其他类型的架构也是适合的。光学码扫描器100可以包括任意数量的数据读取器,诸如基于成像的扫描器120、基于激光器的扫描器130、或者二者。基于成像的扫描器120和基于激光器的扫描器130尝试通过窗口140读取编码的符号。当然,其他配置是可能的。例如,光学码读取器100可以仅包括基于成像的扫描器120、仅包括基于激光器的扫描器130或者其任意组合。此外,光学码读取器100可以包括多窗口扫描器,诸如两个窗口的扫描器有时被称为双窗扫描器,其包括置于通常水平平面内的下窗口和置于通常垂直平面内的上窗口,使用基于成像的扫描器、基于激光器的扫描器或两者尝试通过这些窗口读取编码的符号。
光学码扫描器100可以包括通过总线110彼此交互的多个其他组件,包括处理器150、存储器160和170、显示控制器和显示设备180、输入控制器190和网络接口195。处理器150可以是任意商用处理器或能够执行指令的其他逻辑机。此外,可以提供多于一个的处理器。可以提供显示控制器和显示设备180来呈现数据、菜单和提示,以及另外通过一个或多于一个显示设备与用户通信,显示设备诸如透射式或反射式液晶显示器(LCD)、阴极射线管(CRT)显示器或其他合适显示器。
标准输入控制器190可被配置成从键盘、指示设备或其他有线/无线输入设备接收用户输入。根据一个实施例,输入控制器190包括特定集成电路通用接口驱动器应用(UIDA)。UIDA的进一步细节可以在美国专利6,877,663中找到,该专利通过引用整体并入本文。可以包括其他输入设备,诸如麦克风、触摸屏、触摸板和轨迹球。尽管输入设备可以集成到光学码读取器100并且通过输入控制器190耦连到处理器150,但是输入设备也可以通过其他接口诸如连接器192进行连接。连接器192可以包括一个或多于一个数据接口、总线接口、有线或无线网络适配器或调制解调器用于传输和接收数据。因此,输入控制器190可包括实施一种或一种以上协议的硬件、软件和固件中的一个或多于一个,协议诸如对应层的栈式协议。因此,连接器192可以用作串行端口(例如,RS232)、通用串行总线(USB)端口和IR接口中的一个或多于一个。输入控制器190也可支持各种有线、无线、光学和其他通信标准。
可以提供网络接口195以与一个或多于一个主机197或其他设备通信(例如,计算机或销售点终端)。例如,由基于成像的扫描器120或基于激光器的扫描器130收集或解码的数据可以向前传输至主机计算机197。网络接口195可以便利与短距离(例如,BluetoothTM)或几乎无限距离(例如,因特网)的其他设备有线或无线通信。在有线连接的情形下,可利用任何协议提供数据总线,诸如IEEE 802.3(以太网)、高级技术配件(ATA)、个人计算机存储卡国际协会(PCMCIA)和USB。无线连接可以使用低功率或高功率电磁波利用任何无线协议传输数据,无线协议诸如BluetoothTM、IEEE 802.11b(或其他WiFi标准)、红外数据协会(IrDa)和射频识别(RFID)。
光学码读取器100可包括存储器160,该存储器可利用一个或多于一个标准存储器装置实现。该存储器装置可包括例如RAM 162、ROM 164和EEPROM装置,并且可包括磁性或光学存储装置,诸如硬盘驱动、闪存、CD-ROM驱动和DVD-ROM驱动。光学码读取器100也可以包括耦连到内部硬盘驱动170的接口172。此外,接口172也可以耦连到磁性软盘驱动(未显示)、光盘驱动(未显示)或其他驱动,并且可以为外部驱动实现诸如通过USB、IEEE 1194或PCMCIA连接而配置。
根据一个实施例,可在驱动(例如,驱动170)和ROM 164中存储任意数量的程序模块,包括操作系统(OS)165、一个或多于一个应用程序166、其他程序模块167(例如,实施下述方法的指令)和数据168。所有或部分程序模块也可以缓存在RAM 162中。可以使用任何适当的操作系统165。程序模块167中的一个可以包括一组指令以实施以下详细描述的增强型虚拟扫描线处理。
其他版本的光学码读取器100包含的组件可以比所有这些组件少和/或可以包含其他组件。光学码读取器100可包括固定扫描器,诸如由俄勒冈州尤金的Datalogic Scanning公司制造的扫描器。然而光学码读取器100也可以包括其他类型的扫描器,诸如便携式扫描器。
图2是根据一个实施例的基于成像的扫描器120形成物体或对象200的图像的图形。对象200可以是任何对象,但是在一个优选的使用中,对象200是在其上打印光学码的物体,诸如条码210(PDF417)和条码220(代码128)。基于成像的扫描器120包括照明源230、透镜部件240、成像器250和信号处理器260。基于成像的扫描器120可以包括未图示说明的其他组件或者可以省略某些图示说明的组件,诸如可以省略照明源230而因此依赖于环境光。照明源230可包括任意合适的光源,诸如一排发光二极管(LED)、闪光灯或白炽灯或日光灯。
透镜部件240可包括一个或多于一个透镜用于将光聚焦在成像器250上。例如,透镜部件240可包括旋转对称的透镜,场的深度给定时,旋转对称的透镜相对于高聚焦透镜具有提高的采光率。透镜部件240也可以包括耦连到处理器150的变焦透镜以控制一定量的光学变焦。成像器250形成对象200的电子图像。成像器250可以包括宽范围的图像感测设备用于将光学图像(或电磁波频谱中的其他波)转换成电信号。例如,成像器250可以是数字相机,诸如电荷耦合装置(CCD)相机或互补金属氧化物半导体(CMOS)相机,两者均形成一维或二维像素阵列,这些像素阵列共同构成图像的电子表示。每个像素位置存储图像的该位置处指示光强度的数据。每个像素的光强度数据可以是色码向量(例如红-绿-蓝)或单色强度(例如,灰度)。
在成像器250已经被对象200反射的光曝光之后,来自所有像素的数据可以以可选形式(可以是逐行、逐列或某种其他模式)有序读出。信号处理器260以从成像器250接收的数据为条件并且可以生成输出,该输出一般识别图象的哪些区对应亮区域以及哪些区对应暗区域。例如,根据多种技术中的任意一种,信号处理器260可以设置曝光时间和阈值,从而条码或其他目标的条纹或相对较暗区被报告为暗,而条纹或较暗区之间的间隔或相对较亮区被报告为亮。可以在信号处理器260中使用模拟或数字信号处理。尽管成像器250和信号处理器260可以包含在同一集成电路中,但是其他配置是可能的。例如,信号处理器260可以由处理器150(图1)或一个或多于一个能够执行指令的其他逻辑机实现。
图3是图示说明根据一个实施例的示例信号处理器的框图。例如,光学码读取器100可具有大约30帧每秒到大约200帧每秒的扫描速率。当然,也可以使用该范围外的扫描速率。因此,根据一个实施例,仅存储和处理由与一条或多于一条虚拟扫描线对应的成像器250捕获的图像数据的选择部分或子区。但是,成像器250捕获的所有图像数据可用于查找和解码条码。信号处理器260可包括虚拟扫描线(VSL)提取模块310以从成像器250以相对彼此任意角度或以另一期望的扫描形式读取或组合(assemble)沿图像中一条或多于一条线放置的样品或像素。由此,虚拟扫描线提取模块310将虚拟扫描线限定并绘制到光栅上,从而允许落到(fall on)虚拟扫描线上的光栅的像素被识别并存储以供后续处理。仅存储对应虚拟扫描线的图像数据的选择部分降低了需要存储和处理的数据的总量。
边缘检测模块320使用任意数量的边缘检测技术识别边缘跳跃(transition)位置。例如,在成像器250捕获对象200的图像后,图像可以由一定数目的像素表示,每个像素由某一值表示。对于灰度图像,每个像素用8位表示,每个像素的值可以在0(黑)到255(白)的范围内变化,灰度的各种梯度在0到255之间。尽管图像可以是灰度图像,但是也可以是有色图像或黑-白图像。因此,尽管每个像素可以用8位表示,但是每个像素可以用任意数量的位表示(例如10位或12位)。而且,尽管以下描述将分析的实体称为像素,但是分析的实体也可以是亚像素、图像的子块、图像的子区或边缘检测中使用的图像的任意其他区。
由于图像中的边缘通常具有强的亮度对比,因此,从一个像素到下一个像素的亮度的增加(或减少)表示一个边缘。因此,很多边缘检测技术涉及计算像素值中强度变化的派生值。关于第一派生值,边缘跳跃可发生在本地最大值。关于第二派生值,边缘发生在零交点。公开号为2008/0169347的美国专利中公开的边缘检测过程公开了通过使用接近第一或第二派生值的影响函数核(kernel)卷积图像数据来尝试定位边缘。公开号为2008/0169347的美国专利通过引用整体并入本文。
根据一种边缘检测技术,对比邻近像素的像素值以识别边缘跳跃。例如,可将当前像素的像素值与前一个像素的像素值进行比较。如果比较的值大于或等于一个阈值,则发现边缘。如果比较的值小于该阈值,则增加像素位置并且将新像素位置的值与前一位置的像素值进行比较。可继续该过程直到发现边缘、当前像素位置到达终点、或者两者都满足。例如,虚拟扫描线可以具有以下顺序的像素值:12-2-19-10-193-180-190。通过比较邻近像素的值,可以在第四和第五像素值之间识别该边缘(例如,邻近像素值之差是10-17-9-183-13-10)。只要阈值设置在17以上以及为183或低于183,则将仅识别一个边缘跳跃。换句话说,阈值有助于限定在表示边缘跳跃所需的邻近像素之间灰度等级的最小调制百分比。
根据另一边缘检测技术,可以比较当前像素值和多于一个的邻近像素。例如,如果虚拟扫描线具有的像素值序列为6-10-80-15-20-22-151-110-136,则邻近像素值之差为4-70-65-5-2-129-41-26。如果第三像素(值为80)是噪音,则可能错误地检测边缘。但是,通过将当前像素值和窗口像素的平均值进行比较,可以将第三像素值的影响最小化。例如,如果窗口设置在三个像素并且第四像素正被比较,则计算的差为17(((6+10+80)/3)-15),而不是65(80-15)。
当然,边缘检测模块320可以使用任意数量的其他边缘检测技术,诸如亚像素边缘检测。亚像素边缘检测可通过在整像素之间内插亚像素来减少给定图像区所需的像素的数量。亚像素边缘检测的进一步细节可以在美国专利5,446,271中找到,该专利通过引用整体并入本文。而且,可以使用任意数量的边缘检测操作者(或操作者可以改变)。例如,第一命令操作者,诸如可以使用Canny、Prewitt、Sobel和Roberts Cross。此外,可以使用第二命令操作者,诸如Marr-Hildreth。
基于边缘位置,低级解码器330、高级解码器340或两者可以将边缘序列以及边缘之间的间隔转换成主机197可使用的数据。例如,低级解码器330可将边缘序列以及边缘之间的间隔转换成一组条码元素,诸如条纹和间隔,并且高级解码器340可将条码元素转换成诸如字母数字的字符。当然,低级解码器330、高级解码器340或两者可以根据用于编码数据的特定符号表示法而变化。例如,在PDF417符号表示法中,数据通过以下方式编码:(1)将数据转换成码字(即高级编码)和(2)使用条纹和间隔的特定序列表示码字(即低级编码)。在PDF417符号表示法中,数据可以以下方式解码:(1)将条纹和间隔序列转换成码字(即低级解码)和(2)将码字转换成数据(即高级解码)。因此,在边缘检测模块320识别成像器250捕获的数据中的边缘之后,可以通过低级解码器(例如,低级解码器310)将边缘跳跃的相关位置转换回码字。之后,高级解码器(例如,高级解码器340)可以将码字转换成主机197可以使用的数据。
当然,信号处理器260可以在向主机197发送数据之前进一步处理来自低级解码器330、高级解码器340或两者的输出。例如,可以将解码的数据(例如条码的局部)合并到一起以形成表述完整条码的数据。此外,信号处理器260可进一步包括其他模块,诸如放大一个或多于一个局部频率的放大模块、过滤模块和计时器模块。计时器模块可用于指示何时停止尝试查找字符。例如,为了最大化吞吐量,边缘检测模块320、低级解码器330、高级解码器340或其任意组合可以在一定时间段之后或已经捕获一定数目的数据帧之后停止查找字符。换句话说,计时器模块防止边缘检测和解码器模块在尝试解码不可读或不可解码(或者至少不易于读取或不易于解码)的数据上或已经解码的数据上花费太多的时间。
图4以图示说明的方式说明了自成像器250或光栅400读取或组合沿一条或多于一条线404-418放置的样品或像素并且在虚拟扫描线缓冲器420中存储虚拟扫描线数据。通过示例的方式,光栅400表示图像感测器捕获的图像数据的通常为矩形的栅格并且可包括数据文件,其中每个像素由一定数目的位表示。虚拟扫描线可以以任意图案进行布置,所述图案通常设计成存在虚拟扫描线的至少一条将与条码(诸如条码220)一致的合理的可能性。因此,虚拟扫描线图案可以基于要扫描的条码的维数、扫描区域大小、扫描感测器和光学特性、处理带宽或其任意组合进行限定。如图4所示,虚拟扫描线410和412均与条码220一致。如所示的,虚拟扫描线408仅捕获有关条码220的局部信息。但是,可以利用公知的合并过程将条码220的该部分与其他局部组合以形成完整的码,其进一步细节可以在美国专利5,493,108中找到,该专利通过引用整体合并于此。
与虚拟扫描线404-418的每个对应的像素数据被置于虚拟扫描线缓冲器420中。虚拟扫描线缓冲器420可包括单个存储器阵列,信号处理器260选择该存储器(例如,存储器160、存储器170、指向信号处理器260的存储器或其他存储器)阵列内的适当存储器地址用于存储像素数据。由于只有自图像感测器选择的像素存储在虚拟扫描线缓冲器420中,因此可以使用复杂的信号处理技术(例如,边缘检测技术和解码器算法)同时仍旧允许捕获的图像的合理吞吐量。
图1至图4的描述已经提供了示例数据读取器和相关概念的概览。关于数据读取器、虚拟扫描线和相关概念的其他示例和额外的细节可以在以下公知的美国专利和专利申请中找到,其通过引用整体并入本文:美国专利5,446,271;美国专利5,635,699;美国专利6,142,376;公开号为2006/0278708的美国专利申请;和公开号为2006/0081712的美国专利申请。
增强型虚拟扫描线处理
边缘检测模块320有时无法检测边缘跳跃或识别错误的边缘跳跃,导致一个或更多无法解码的字符或不适当解码的字符。例如,如果最小调制百分比(例如,被识别为边缘的邻近像素组之间的最小调制)设置太低,则噪声会引起边缘出现并且如果最小调制百分比设置太高,则边缘跳跃可能丢失。通过另一示例的方式,如果窗口阈值(例如,被平均化以确定边缘阈值的像素的数量)太大或太小,则边缘可能丢失或者可能检测到错误的边缘。如果边缘检测模块320未从捕获的数据中识别出适当的边缘跳跃,则条码可能需要重新扫描从而降低扫描器的扫描性能和第一次通过读取速率(即,条码将在被展示或扫过扫描器之后其第一次通过期间读取的可能性)。因此,优选实施例改变边缘检测参数(例如,调制百分比或窗口阈值),从而使用一组边缘检测参数丢失的(或错误检测的)边缘跳跃被使用另一组边缘检测参数识别(或省略)。
图5是图示根据一个实施例自条码提取数据的方法500的流程图。最初,对象200呈现给窗口140或扫过窗口140(或扫描器扫过对象),使得可以获得对象200的一个或多于一个图像(例如,通过基于成像的扫描器120)。接下来,可以将图像数据的所有或部分存储在存储器中(例如图4的光栅400)。例如,当成像阵列的像素数据从成像器250中串行读出时,虚拟扫描线提取模块310可以存储与虚拟扫描线缓冲器420中的一条或多于一条虚拟扫描线对应的像素数据(或存储器中用于在数据被处理时保持数据的另一保留段)。因此,所有像素数据或其一部分可以存储在用于后续处理的另一存储器中。根据一个实施例,存储在缓冲器(或其他存储器)中的数据不被处理或被最低程度地处理(即,直接来自于成像器250的原始数据)。然而,数据可以在存储之前预先由任意数量的组件处理,诸如预先放大器或过滤器(例如,有限脉冲响应(FIR)过滤器或抗混叠低通过滤器)。
之后,可以利用第一组边缘检测参数处理与捕获的图像的子组或子区对应的数据以识别边缘跳跃。例如,边缘检测模块320可以利用任意数量的边缘检测技术诸如之前描述的边缘检测技术来识别数据中的边缘跳跃位置。尽管边缘检测模块320可以处理来自缓冲器的数据,诸如虚拟扫描线缓冲器420的数据,但是边缘检测模块320可以处理来自另一存储器的数据或在数据从成像器250读取时处理数据。尽管某些实施例仅分析获得的图像数据的选择部分(例如,子区或虚拟扫描线),但是其他实施例分析基于成像的扫描器120所捕获的所有数据(例如,水平或垂直地顺序处理光栅)。
在步骤505,方法500基于利用第一组边缘检测参数识别的边缘跳跃识别包含有用数据的一个或多于一个子区(或虚拟扫描线)。例如,如果边缘跳跃的有关位置和其之间的间隔产生至少一个有效字符、码字、悬空(overhead)字符或其组合,则可以识别包含有用数据的子区。当然,包含有用数据的子区可以以其他方式被识别,诸如检测最小数量的边缘跳跃,检测非预期数目的边缘跳跃以及检测元件宽度失真。
在步骤510,来自虚拟扫描线缓冲器的有用的数据可以传递到新的存储器位置,诸如有用的虚拟扫描线缓冲器,用于进一步处理。尽管不是所有实施例传递有用的数据,但是在不同的存储器位置存储原始或过滤的数据允许收集(gather)额外的扫描线(例如,从后续的帧),这有助于提高扫描性能、第一次通过读取速率或两者。例如,虚拟扫描线缓冲器420可以是先进先出(FIFO)类型或具有受限的尺寸,从而向新的存储器位置传递有用的数据释放虚拟扫描线缓冲器420内的空间。根据另一个实施例,代替向新的存储器位置传递有用的数据,新收集的扫描线可以存储在不同的存储器位置(例如,与存储有用数据的位置不同的位置),这有助于改进处理时间(例如,通过节省需要的时钟周期来移动有用的数据)。仍旧根据另一实施例,如果有足够的处理功率,则可以在向新位置存储有用的数据之前或收集额外的扫描线之前利用不同组的边缘检测参数处理有用的数据。
在步骤515,有用的数据基于不同于第一组边缘检测参数的第二组边缘检测参数进行解码。例如,边缘检测参数可以通过改变最小调制百分比而改变(例如,被识别为边缘的最小调制)或窗口阈值(例如,为了确定边缘阈值而被平均化的像素数目)。根据一个实施例,使用第二组边缘检测参数解码有用的数据,同时与额外的虚拟扫描线对应的数据(例如,来自后续帧)被读取到虚拟扫描线缓冲器。如果有用的数据没有使用第二组边缘检测参数适当地进行解码,则有用的虚拟扫描线可能被丢弃并且可能提示用户重新扫描条码。然而,某些实施例可能持续改变边缘检测参数,直到有用的数据被适当解码。因此,尝试使用不同组边缘检测参数解码有用的数据可避免重新扫描条码的需要并且产生被提高的扫描性能、较高的第一次通过读取速度或者两者。
如果与一条虚拟扫描线对应的数据利用两个或更多不同的边缘检测参数进行解码,则各种解码之间字符与字符的相关度变得更为可行,因为条码在虚拟扫描线上的位置不会改变。因此,如果第一组边缘检测参数产生一个或多于一个无法解码的字符并且第二组边缘检测参数能够解码无法解码的字符(例如,通过产生不同的边缘跳跃),则方法500可将虚拟扫描线的字符相关(例如,排列边缘或字符),所述虚拟扫描线的字符利用不同组的边缘检测参数解码并且用来自第二组边缘检测参数解码的字符代替来自第一组边缘检测参数的无法解码的字符。此外,方法500可以利用第二组边缘解码参数仅解码与无法解码的字符对应的虚拟扫描线数据的一部分以尝试节省处理时间。而且,方法500可以对比利用第一和第二组边缘检测参数自虚拟扫描线解码的字符以查看哪组边缘检测参数导致最精确的字符解码。
在步骤520,解码的有用的虚拟扫描数据可以进一步被处理以形成代表完整条码的数据集。例如,第一虚拟扫描线可以捕获条码的一部分,而第二虚拟扫描线可以捕获条码的剩余部分。条码的这两部分可以相关并且合并到一起(可能与其他部分合并)以形成完整的条码。解码的有用的虚拟扫描线数据可以与来自相同帧的其他解码的虚拟扫描线数据或其他解码的有用的虚拟扫描线数据合并到一起。此外,如果当对象200被扫描通过窗口140时条码的多个图像以一定的帧速率被捕获,则数据可以在各数据帧之间相关并且合并到一起。
在步骤525中,完整的条码数据集可以被存储(例如,存储在存储器160、170中)、传递到计算机(例如主机197)以供使用或进一步解码,或两者。计算机可以通过一个或多于一个显示装置呈现数据、提示以及与用户通信。例如,计算机可以通过显示器向用户呈现解码的数据,诸如与扫描的条码对应的对象类型(例如,产品类型)和与对象类型有关的数据(例如,产品的价格)。与对象类型相关的数据可以编码在条码中或者基于对象类型自本地或远程数据库被存取。通过另一示例的方式,计算机可能使得解码的数据被记录在有形介质上。例如,计算机可以指示打印机打印对象类型和对应于数据类型的数据(例如,在收据上打印产品类型和相关价格)。计算机可以是根据一列指令操作数据的任意机器(例如,交易发生地使用的销售点终端或任意硬件/软件,诸如商店中的收银台)。例如,计算机可包括移动设备、服务器、个人计算机或嵌入式计算机。
图6是图示说明根据一个实施例利用不同的边缘检测参数选择有用的虚拟扫描线以及处理有用的虚拟扫描线的框图。参照图4所述,来自成像器250的与一条或多于一条虚拟扫描线对应的数据可以存储在虚拟扫描线缓冲器600中(或自存储器位置直接存取)。虚拟扫描线缓冲器600每行中的虚拟扫描线数据可以包含或不包含边缘跳跃,所述边缘跳跃可以由边缘检测器检测并且可以最终被解码成字符(或码字)。换句话说,即便虚拟扫描线缓冲器600可以包含与各种虚拟扫描线对应的像素数据,也并非所有的虚拟扫描线都会与条码一致并因此包含可解码数据。通过示例的方式,虚拟扫描线缓冲器600中所示的虚拟扫描线数据图示了5条虚拟扫描线(标记为“无字符”),该5条虚拟扫描线在边缘检测和解码上应当不包含字符,因为虚拟扫描线与条码甚至局部不一致。然而,三条虚拟扫描线至少部分与条码一致(例如,2字符VSL、1字符VSL和3字符VSL)。VSL 1数据、VSL 2数据和VSL 3数据可表示与虚拟扫描线对应的数据,虚拟扫描线可以利用默认边缘检测参数解码。虚拟扫描线缓冲器600可以在软件或硬件中实施并且可以自通用的存储池中分配和释放分配。此外,虚拟扫描线缓冲器600可以是先进先出(FIFO)类型。
参照边缘检测模块605,在存取与虚拟扫描线缓冲器600中的虚拟扫描线对应的数据之后,边缘跳跃位置可以利用任意数量的边缘检测技术被识别(诸如之前描述的)。基于边缘跳跃位置,可以确定包含有用数据的虚拟扫描线。参照低级解码器610,任意数量的适当解码器算法可以用于识别数据中是否存在任意有效的字符或码字。例如,在通用产品码(UPC)符号(其中条指示逻辑‘1’而空格指示逻辑‘0’)的情况下,每个字符包括两个空格和两个码,其宽度等于7模。因此,如果边缘跳跃的相关位置指示0110001的逻辑顺序,则数据将被识别为有效,因为该逻辑顺序表示字符值5。因此,在字符值5的情况下,四个边缘跳跃将位于数据中-第一个空格宽度为一模(‘0’),紧接着码宽度为两模(‘11’),随后的空格宽度为三模(‘000’),最后的码宽度为一模(‘1’),总数为七模。因此,低级解码器610可指示数据是有用的,因为其包含至少一个有效字符。
尽管之前的示例图示了UPC符号中的字符值5,但是其他符号中的其他段、字符或码字也可以指示有用的数据。例如,在PDF 417符号中,每个码字具有四码和四个空格(PDF417中的‘4’),总宽度为17模或单元(PDF417中的‘17’)。因此,低级解码器可基于八个边缘跳跃的相对位置指示包含一个或多于一个码字的数据。而且,悬空字符,诸如起始字符、终止符、中央字符、保护(guard)字符、校验字符或其任意组合可以指示有用数据。
有时,边缘检测技术可能丢失边缘跳跃或识别额外的边缘跳跃,导致有效字符确定为无效。因此,丢失或额外的边缘跳跃可以指示虚拟扫描线包含有用数据。例如,校验字符可指示条码中的一个或多于一个字符被不适当地读取(例如,边缘可能丢失或额外的边缘可能在数据中某个地方呈现)。此外,边缘跳跃可能意外出现或者在期望出现边缘跳跃的位置丢失。例如,在给定符号中,标签内的单个字符(例如,文字数字字符)由给定数量的元素构成(例如,码和空格)并且每个元素的宽度期望在某一范围之内。如果每个字符的元素数量与期望的不同(例如,UPC码中具有两个空格和三个码的字符,而不是期望的两个空格和两个码),则可能存在丢失或额外的边缘跳跃。此外,如果元素的宽度在期望的范围之外(例如,UPC条码中的码和空格在从1到4模的期望宽度之外),则可能存在丢失或额外的边缘跳跃。
而且,某些符号使用分成右半段和左半段的标签并且在左段中使用奇同位元字符并且在右段中使用偶同位元字符。例如,字符值5在偶同位元中可以表示为0110001,在奇同位元中可以表示为1001110。如果当期望字符为奇同位元,偶同位元字符被解码,则可能存在丢失或额外的边缘跳跃。此外,某些符号利用悬空字符诸如起始/终止、保护(guard)、中央字符或其组合作为分界符或者分割条码的段。如果在期望悬空字符的位置出现数据字符,则在期望数据字符的位置出现悬空字符,或期望悬空字符的位置没有发现悬空字符,则可能存在丢失的或额外的边缘跳跃。而且,未打印的空区或白空格可能位于保护字符之外,并且在未打印的空白中发现字符可以校验额外的边缘跳跃。确定边缘是否丢失和/或添加的其他方法在美国专利6,513,714中找到,其通过引用整体并入本文。
根据另一实施例,如果边缘跳跃的总数超过预定数量,则包含有用数据的虚拟扫描线被识别。例如,某些边缘检测技术可从打印标签的表面上消除虚假边缘。因此,包含一定数目的边缘跳跃的虚拟扫描线可以校验有用数据。当低级解码器、高级解码器或两者均没有反馈时,查找边缘跳跃的最小数目可能是有帮助的。例如,如果低级解码器610没有反馈,则解码器算法可能无法指示已经被识别数据中的有效字符或码字,因此低级解码器610可查找边缘跳跃的具体数目。
参照有用的虚拟扫描线选择模块615,一旦确定虚拟扫描线包含有用数据,则数据可存储在新的存储器位置供其他处理,诸如有用的虚拟扫描线缓冲器625。如虚拟扫描线缓冲器600所示,三条虚拟扫描线包含有用数据(标记为“2字符VSL”,“1字符VSL”和“3字符VSL”)。例如,在处理边缘跳跃数据之后,低级解码器可以识别第一虚拟扫描线中的两个字符、第二虚拟扫描线中的一个字符和第三虚拟扫描线中的三个字符。如箭头620所示,数据可以存储在有用的虚拟扫描线缓冲器625中。有用的虚拟扫描线缓冲器625可以在软件或硬件中实现并且可以从通用存储器池中分配以及释放。此外,有用的虚拟扫描线缓冲器625可以是先进先出(FIFO)类型。
边缘检测模块630使用另一组边缘检测参数定位使用任意数量的边缘检测技术的有用虚拟扫描线数据中的第二组边缘跳跃。例如,边缘检测模块630可以改变最小调制百分比(例如,被识别为边缘的最小百分比)。如果调制百分比设置太低,则灰度级中的小的变化会错误地引起边缘跳跃(例如,噪声会引起边缘)。同样,如果调制百分比设置太高,则可能丢失边缘跳跃。因此,通过改变最小调制百分比,基于第一组边缘检测参数而错误丢失(检测)的边缘跳跃可利用第二组边缘检测参数被识别(或忽略)。通过另一示例的方式,边缘检测模块630可以改变窗口阈值(例如,为了确定边缘阈值而取平均值的像素数目)。如果窗口太大或太小,则边缘可能丢失或可能检测到错误的边缘。因此,通过改变窗口阈值,基于第一组边缘检测参数错误检测(或丢失)的边缘跳跃可利用第二组边缘检测参数被忽略(或识别)。
因此,通过相比于边缘检测模块605的边缘检测参数改变边缘检测模块630的边缘检测参数,可以利用第二组边缘检测参数识别基于第一组边缘检测参数可能被丢失的边缘跳跃。换句话说,通过更为严密地查看包含有用数据的虚拟扫描线,可以成功解码额外的字符。
可以以其他方式改变边缘检测参数并且可以以其他方式操作有用的虚拟扫描线数据。例如,如果虚拟扫描线数据未被处理或最低程度地处理(即,直接来自于图像获取系统的原始数据),则可以对有用的未处理或最低程度处理的虚拟扫描线数据应用任意数量的过滤器(例如,有限脉冲响应(FIR)过滤器)以增强低级信号或通过放大(或减幅)一个或多于一个空间频率按照平均值找出噪声信号。之后,在过滤的数据中可以使用边缘检测模块605处使用的同一组边缘检测参数或不同组的边缘检测参数识别边缘跳跃位置。因此,过滤原始数据可增强低级信号(例如,放大高空间频率)或按照平均值找出噪声信号以及允许之前丢失的边缘被识别出来(或允许错误识别出的边缘被忽略)。通过另一示例的方式,如果在已经处理或使用第一组参数(例如,第一组过滤器参数)过滤的数据中识别出有用的虚拟扫描线数据,则原始数据可以利用不同组的过滤器参数来处理(例如,改变过滤器分接器的数目或改变过滤器的传递功能)。然后边缘跳跃位置可以利用边缘检测模块605处使用的同一组(或不同组)的边缘检测参数来识别。换句话说,改变用于过滤原始数据的参数可能允许之前丢失的边缘被识别(或允许错误识别的边缘被忽略)。放大较高空间频率的过滤器可以被认为是在低频率时具有较低增益在较高空间频率时具有统一增益(或较高增益)的高通滤波器。放大较低空间频率的过滤器可以被认为是在高频率时具有统一增益以及在低空间频率时具有较高增益的低通滤波器(或在高频率时具有较低增益以及在低空间频率时具有统一增益(或较高增益))。
边缘检测模块605、边缘检测模块630或两者可以在硬件、软件、固件或其任意组合中实现。因此,边缘检测模块630可以包括与边缘检测模块605相同的组件(但是使用不同的边缘检测参数编程),或者边缘检测模块605和630可包括独立的组件。
根据一个实施例,当与虚拟扫描线对应的额外数据(例如,来自相同或后续的帧)被读取到虚拟扫描线缓冲器中时,第二组边缘跳跃位置被识别。在包含数据的额外虚拟扫描线被读取到虚拟扫描线缓冲器中的同时识别第二组边缘跳跃位置可以帮助提高扫描性能或第一次通过读取速率,因为可以在进一步查看包含有用数据的虚拟扫描线的同时收集并且读入新的帧。
可以提供一个或多于一个高级解码器635以将码字元素转换成字符。高级解码器635可以类似于高级解码器340或与其相同(图3)。
任意数量的计时器可以用于指示何时停止尝试查找字符。例如,为了最大化吞吐量,边缘检测模块605、低级解码器610和高级解码器模块635中的一个或多于一个可以在一定期限的时间之后或捕获一定数目的数据帧之后停止查找边缘或字符。换句话说,计时器防止检测和解码器模块花费太多时间尝试解码不可读、不可解码(或至少不易于读取/不易于解码)的数据或已经解码的数据。另一个计时器可与边缘检测模块630、低级解码器610和高级解码器模块635中的一个或多于一个结合使用以指示何时停止尝试查找基于第二组边缘跳跃位置的字符。
根据一个实施例,估算不同边缘检测参数的结果以更好地理解元素宽度失真(例如,元素的宽度为何失真超出指定的边界)。例如,小的调制百分比可能产生错误的边缘检测,从而最终导致条码中一个或多于一个条纹的宽度失真。如果提高的调制百分比消除了错误的宽度,则可以估计边缘检测参数之间的差以更好地理解宽度失真的原因,从而最终可以将失真最小化。
虚拟扫描线模式修改
根据一个实施例,以上方法可用于改进后续帧中的数据收集。例如,如果低级解码器610识别有用的虚拟扫描线(或扫描线段),则虚拟扫描线提取模块310可增加接近后续帧中(或者在保持帧数据的情况下增加当前帧中)有用虚拟扫描线位置的扫描线的亮度以收集条码的额外数据内容。
图7和8是图示根据一个实施例的虚拟扫描线模式修改的图形。在图7中,光栅700(例如帧N)表示成像器250捕获的条码220的图像。虚拟扫描线提取模块310可以从成像器250取样或读取沿虚拟扫描线710到740放置的像素。如果低级解码器610基于边缘跳跃位置确定虚拟扫描线730(以及可能的虚拟扫描线720和740)包含有用数据,则虚拟扫描线提取模块310可修改后续帧上的虚拟扫描线以捕获接近虚拟扫描线730的额外数据,其中边缘跳跃位置由边缘跳跃模块605利用第一组边缘检测参数识别。例如,如图8所示,虚拟扫描线提取模块310可以从成像器250取样或读取下一帧(光栅800表示的与帧N+1对应的帧)中沿不同组虚拟扫描线810(接近于虚拟扫描线730并且可能在方向上类似于虚拟扫描线730)放置的像素。如图8所示,虚拟扫描线810应当捕获虚拟扫描线730周围的额外数据内容。
因此,在理解了本文教导的内容基础上,某些实施例能够实现某些优点,包括示例的以下优点中的一个或多于一个但不限于以下优点中的一个或多于一个:(1)集中精力处理获得的最有用图像的子区域(例如,虚拟扫描线);(2)提高扫描性能和/或第一次通过读取速率;(3)提供敏捷的子区模式生成;(4)通过保持条码和子区的相关位置提高字符至字符关联的可能性;(5)致力于对已经捕获条码的一条或更多虚拟扫描线的处理效果;(6)将适当的边缘检测用于尚未使用默认设置解码的数据的具体部分;和(7)将各种等效过滤器用于相同数据。阅读以下内容,各实施例的这些和其他优点将是显而易见的。
本文描述的方法和系统可以在任意适当的硬件、软件、固件或其组合中实施或由任意适当的硬件、软件、固件或其组合实施。因此,如本文所使用的,组件或模块可包括硬件、软件、固件或其任意组合(例如,与较大的系统相互作用的自包含的硬件或软件组件)。例如,这些方法和系统可作为一个或多于一个软件或固件程序存在,其包括原代码、对象码、可执行码或其他格式的程序指令。软件模块或组件可包括位于存储器装置内或作为电信号通过系统总线或有线或无线网络被传输的任意类型的计算机指令或计算机可执行代码。例如,软件模块或组件可以包括计算机指令的一个或多于一个物理或逻辑块,这些块可以被组织为例程、程序、对象、组件、数据结构等,其执行一个或更多任务或实施特定抽象数据类型。
在某些实施例中,特定软件模块或组件可包括存储在存储器装置的不同位置的全异的指令,这些指令共同实施描述的模块的功能。事实上,模块可包括单个指令或多个指令,并且可以分布在多个不同的代码段上、不同的程序之间以及在多个存储器装置中。一些实施例可以在分布式计算机环境中实践,其中任务由通过通信网络连接的远程处理设备执行。在分布式计算环境中,软件模块可以位于本地或远程存储器存储装置中。此外,被连接或致使在一个数据库记录中的数据可位于同一存储器装置中,或处于多个存储装置中,并且可以通过网络连接在一数据库中一条记录的多个字段中。
实施例可包括各种步骤,这些步骤可以包含在由处理器150或另一处理器执行的机器可执行指令中。可替代地,步骤可以由硬件组件或硬件、软件、固件或其组合执行,所述硬件组件包括执行该步骤的具体逻辑。任何步骤的结果或输出,诸如步骤已经完成或未完成的确认或者该步骤的输出值可以存储、显示、打印或通过有线或无线网络进行传输。例如,解码的数据可以存储、显示或通过网络传输。
实施例还可以作为计算机产品被提供,其包含在其上存储有指令的机器可读存储介质中(压缩或非压缩格式),所述指令可用来编程计算机(或其他电子设备)以执行本文描述的过程或方法。机器可读存储介质可包括但不限于硬驱动、软盘、光盘、CD-ROM、DVD、只读存储器(ROM)、随机访问存储器(RAM)、EPROM、EEPROM、闪存、磁卡或光学卡、固态存储装置或其他类型的媒介、适于存储电子指令的机器可读介质。而且,实施例也可以作为包含在机器可读信号上的计算机程序产品来提供(压缩或非压缩格式)。利用载波调制或未利用载波调制的机器可读信号的示例包括但不限于存放或运行计算机程序的计算机系统或机器可配置为对其进行存取的信号,该信号包括通过因特网或其他网络下载的信号。例如,软件的发行可以通过CD-ROM或通过因特网下载。
尽管结合条码讨论了本文公开的实施例,但是本文公开的实施例可以由其他自动数据收集、捕获技术利用,其他技术包括但不限于基于激光器的扫描器、磁条、光学码读取器、语音识别和智能卡或射频识别。此外,尽管本文使用了术语字符(关于某些实施例)来表示代表具体数目的字母、数字、标点符号或其他符号的单组条纹和间隔,但是术语字符也可以表示代表字母、数字或符号或字符、阿拉伯数字或用作数据组织、控制或表示的部分的其他符号,条纹和间隔。而且,尽管参照虚拟扫描线描述了某些实施例,但是可使用获取的图像或整个获得的图像的其他部分(例如,一维或二维虚拟扫描线、子区或子像素)。
仅仅通过示例并非限制的方式记载了本文使用的术语和说明。本领域技术人员将认识到可以对上述实施例的细节作很多修改而不偏离本发明的基本原理。因此,本发明的范围应当仅由所附权利要求(和其他等价物)来确定,在权利要求中,除特别指示外,应当从最宽的合理意义上理解所有术语。
Claims (24)
1.一种解码光学码的方法,其包括:
接收与所述光学码的图像的子区域对应的第一数据集;
利用第一组边缘检测参数检测所述第一数据集中的第一组边缘跳跃位置;
基于所述第一组边缘跳跃位置,确定所述第一数据集是否包含有用数据;
基于所述第一数据集包含有用数据的确定,使用不同组的边缘检测参数确定有用数据中不同组的边缘跳跃位置,其中独立于获取所述光学码的另一图像,从所述第一数据集确定所述有用数据中所述不同组的边缘跳跃位置;和
基于所述不同组的边缘跳跃位置解码所述有用数据。
2.根据权利要求1所述的方法,进一步包括:
获得所述光学码的所述图像。
3.根据权利要求1或2所述的方法,进一步包括:
将所解码的有用数据与其他解码的数据合并在一起以形成解码的代表所述光学码的数据集;以及
存储所解码的代表所述光学码的数据集。
4.根据权利要求1所述的方法,其中所述子区域包括虚拟扫描线。
5.根据权利要求1所述的方法,其中确定所述第一数据集是否包含有用数据的步骤包括识别所述第一数据集中的至少一个有效字符。
6.根据权利要求1所述的方法,其中确定所述第一数据集是否包含有用数据的步骤包括识别所述第一数据集中的悬空字符。
7.根据权利要求1所述的方法,其中确定所述第一数据集是否包含有用数据的步骤包括识别所述第一数据集中边缘跳跃的总数,该总数与期望的边缘跳跃的总数不同。
8.根据权利要求1所述的方法,其中确定所述第一数据集是否包含有用数据的步骤包括确定所述第一组边缘跳跃位置中的边缘跳跃的总数是否超出预定数量。
9.根据权利要求1所述的方法,其中所述不同组的边缘检测参数包括的最小调制百分比与用于所述第一组边缘检测参数的最小调制百分比不同。
10.根据权利要求1所述的方法,其中所述不同组的边缘检测参数包括的窗口阈值与用于所述第一组边缘检测参数的窗口阈值不同。
11.根据权利要求1所述的方法,进一步包括:
基于所述第一数据集包含有用数据的确定,放大所述有用数据的一个或多于一个空间频率并确定由于放大所产生的所述有用数据中不同组的边缘跳跃位置。
12.根据权利要求1所述的方法,其中对应于所述子区域的所述第一数据集选自一个图形中相对彼此定位的一组子区域,并且进一步包括:
基于所述第一数据集包含有用数据的确定,在随后的数据帧中改变图形以收集接近于包含所述有用数据的子区域的所述光学码的额外数据。
13.一种读取光学码的方法,其包括以下步骤:
基于第一组边缘检测参数识别光学码的已获图像的至少一个子区域,其包括有用数据;
改变所述第一组边缘检测参数以形成不同组的边缘检测参数;和
基于所述不同组的边缘检测参数解码所述有用数据,其中独立于获取所述光学码的另一图像,所述有用数据是基于所述不同组的边缘检测参数被解码的。
14.根据权利要求13所述的方法,进一步包括:
将所解码的有用数据与其他解码的数据合并在一起以形成解码的代表所述光学码的数据集;以及
存储所解码的代表所述光学码的数据集。
15.根据权利要求13或14所述的方法,进一步包括:
在基于所述不同组的边缘检测参数解码所述有用数据的步骤之前将所述有用数据存储在存储器中,从而允许基于所述第一组边缘检测参数识别已获图像的其他子区域中的有用数据。
16.根据权利要求13所述的方法,其中识别包含有用数据的至少一个子区域的步骤包括识别所述光学码中的至少一个有效字符或悬空字符。
17.根据权利要求13所述的方法,其中识别包含有用数据的至少一个子区域的步骤包括识别所述光学码中丢失的边缘跳跃或额外的边缘跳跃。
18.根据权利要求13所述的方法,其中改变所述第一组边缘检测参数的步骤包括改变所述第一组边缘检测参数的最小调制百分比或窗口阈值。
19.根据权利要求13所述的方法,其中在获得所述光学码的额外子区域的同时执行基于不同组的边缘检测参数解码所述有用数据的步骤。
20.一种用于读取光学码的系统,其包括:
图像获取组件,其用于获取光学码的图像;
边缘检测组件,其用于利用第一组边缘检测参数确定数据中与所述光学码的已获图像的子区域相对应的第一组边缘跳跃位置;
解码器组件,其用于基于所述第一组边缘跳跃位置确定所述数据是否包含有用数据;和
有用子区域存储器,其用于存储所述有用数据,
其中所述边缘检测组件利用不同组的边缘检测参数确定所述有用数据中不同组的边缘跳跃位置,其中独立于获取所述光学码的另一图像,从与所述光学码的已获图像的子区域相对应的数据确定所述有用数据中所述不同组的边缘跳跃位置,并且其中所述解码器组件基于所述不同组的边缘跳跃位置解码所述有用数据。
21.根据权利要求20所述的系统,其中所述解码器组件通过在所述数据中识别至少一个有效字符或悬空字符确定所述数据包含有用数据。
22.根据权利要求20所述的系统,其中所述解码器组件通过在所述数据中识别丢失的边缘跳跃或额外的边缘跳跃确定所述数据包含有用数据。
23.根据权利要求20所述的系统,其中所述解码器组件通过确定所述第一组边缘跳跃位置中的边缘跳跃的总数超过预定总量来确定所述数据包含有用数据。
24.根据权利要求20所述的系统,其中所述不同组的边缘检测参数相对于所述第一组边缘检测参数包括不同的最小调制百分比或不同的窗口阈值。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US98919507P | 2007-11-20 | 2007-11-20 | |
US60/989,195 | 2007-11-20 | ||
US12/273,381 US8172145B2 (en) | 2007-11-20 | 2008-11-18 | Enhanced virtual scan line processing |
US12/273,381 | 2008-11-18 | ||
PCT/US2008/084084 WO2009067552A2 (en) | 2007-11-20 | 2008-11-19 | Enhanced virtual scan line processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101874250A CN101874250A (zh) | 2010-10-27 |
CN101874250B true CN101874250B (zh) | 2013-07-17 |
Family
ID=40640858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008801170676A Active CN101874250B (zh) | 2007-11-20 | 2008-11-19 | 增强型虚拟扫描线处理 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8172145B2 (zh) |
EP (1) | EP2220586B1 (zh) |
CN (1) | CN101874250B (zh) |
WO (1) | WO2009067552A2 (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2821466A1 (en) | 2009-09-26 | 2011-03-31 | Disternet Technology Inc. | System and method for micro-cloud computing |
US20110198394A1 (en) * | 2010-02-12 | 2011-08-18 | German Hammerl | System and method for long-term archiving of digital data |
US8538224B2 (en) | 2010-04-22 | 2013-09-17 | 3M Innovative Properties Company | OLED light extraction films having internal nanostructures and external microstructures |
JP5676183B2 (ja) * | 2010-09-03 | 2015-02-25 | 日本電産サンキョー株式会社 | バーコード読取装置およびバーコード読取方法 |
US8950678B2 (en) * | 2010-11-17 | 2015-02-10 | Hand Held Products, Inc. | Barcode reader with edge detection enhancement |
US20120211565A1 (en) * | 2011-01-31 | 2012-08-23 | Honeywell International, Inc. doing business as (d.b.a) Honeywell Scanning & Mobility | User-adaptive presentation scanner |
US8678286B2 (en) | 2011-01-31 | 2014-03-25 | Honeywell Scanning & Mobility | Method and apparatus for reading optical indicia using a plurality of data sources |
US20130105568A1 (en) * | 2011-11-01 | 2013-05-02 | Codonics, Inc. | Adaptable information extraction and labeling method and system |
US9697331B2 (en) * | 2011-11-01 | 2017-07-04 | Codonics, Inc. | Adaptable information extraction and labeling method and system |
US9367725B2 (en) | 2011-11-03 | 2016-06-14 | Cognex Corporation | Method and apparatus for performing different decoding algorithms in different locations |
US8985439B2 (en) * | 2013-01-18 | 2015-03-24 | Deetectee Microsystems Inc. | Method of mobile optical recognition |
CN108596187B (zh) * | 2018-03-30 | 2023-07-04 | 青岛海尔智能技术研发有限公司 | 商品纯净度检测方法及展示柜 |
US11182572B2 (en) | 2019-12-20 | 2021-11-23 | Zebra Technologies Corporation | System and method of selective auxiliary data capture |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170749B1 (en) * | 1995-05-31 | 2001-01-09 | Symbol Technologies, Inc. | Method of scanning indicia using selective sampling |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5478997A (en) | 1988-10-21 | 1995-12-26 | Symbol Technologies, Inc. | Symbol scanning system and method having adaptive pattern generation |
US6076733A (en) | 1993-11-24 | 2000-06-20 | Metrologic Instruments, Inc. | Web-based system and method for enabling a viewer to access and display HTML-encoded documents located on the world wide web (WWW) by reading URL-encoded bar code symbols printed on a web-based information resource guide |
US5298728A (en) | 1991-11-01 | 1994-03-29 | Spectra-Physics Scanning System, Inc. | Signal processing apparatus and method |
US5493108A (en) | 1992-10-14 | 1996-02-20 | Spectra-Physics Scanning Systems, Inc. | Method and apparatus for recognizing and assembling optical code information from partially scanned segments |
US5384451A (en) * | 1993-01-29 | 1995-01-24 | United Parcel Service Of America, Inc. | Method and apparatus for decoding bar code symbols using composite signals |
US5371361A (en) | 1993-02-01 | 1994-12-06 | Spectra-Physics Scanning Systems, Inc. | Optical processing system |
US5463211A (en) | 1993-05-07 | 1995-10-31 | Spectra-Physics Scanning Systems, Inc. | Method and apparatus for detecting transitions in a time sampled input signal |
US5446271A (en) | 1993-08-06 | 1995-08-29 | Spectra-Physics Scanning Systems, Inc. | Omnidirectional scanning method and apparatus |
JPH08137983A (ja) | 1994-11-11 | 1996-05-31 | Nec Eng Ltd | バーコード認識装置 |
JPH10508133A (ja) | 1995-08-25 | 1998-08-04 | ピーエスシー・インコーポレイテッド | 集積化されたcmos回路を備えた光学読み取り器 |
US5969325A (en) * | 1996-06-03 | 1999-10-19 | Accu-Sort Systems, Inc. | High speed image acquisition system and method of processing and decoding barcode symbol |
US20040004128A1 (en) | 1996-09-03 | 2004-01-08 | Hand Held Products, Inc. | Optical reader system comprising digital conversion circuit |
DE19840455A1 (de) | 1998-09-04 | 2000-03-09 | Sick Ag | Verfahren zum Betreiben eines Strichcodelesers |
US6561427B2 (en) | 1998-09-14 | 2003-05-13 | Psc Scanning, Inc. | Decoding system and methods in a bar code scanning system |
US6513714B1 (en) | 1998-09-14 | 2003-02-04 | Psc Scanning, Inc. | Character reconstruction and element level processing in bar code scanning system |
US6585157B2 (en) | 1998-09-14 | 2003-07-01 | Psc Scanning, Inc. | Symbology determination to aid decoding in a bar code scanning system |
US6585159B1 (en) | 1999-11-02 | 2003-07-01 | Welch Allyn Data Collection, Inc. | Indicia sensor system for optical reader |
US20030132291A1 (en) | 2002-01-11 | 2003-07-17 | Metrologic Instruments, Inc. | Point of sale (POS) station having bar code reading system with integrated internet-enabled customer-kiosk terminal |
US6705527B1 (en) | 2000-06-01 | 2004-03-16 | Psc Scanning, Inc. | Universal interface driver system for data reader |
US7128266B2 (en) | 2003-11-13 | 2006-10-31 | Metrologic Instruments. Inc. | Hand-supportable digital imaging-based bar code symbol reader supporting narrow-area and wide-area modes of illumination and image capture |
KR100393423B1 (ko) | 2001-03-21 | 2003-08-02 | 김지영 | 2차원 바코드 정보 인식방법 |
US7108170B2 (en) | 2001-06-08 | 2006-09-19 | Psc Scanning, Inc. | Add-on capture rate in a barcode scanning system |
CN1213592C (zh) * | 2001-07-31 | 2005-08-03 | 佳能株式会社 | 采用自适应二值化的图象处理方法和设备 |
KR100339691B1 (ko) | 2001-11-03 | 2002-06-07 | 한탁돈 | 코드인식을 위한 장치 및 그 방법 |
KR100456628B1 (ko) | 2001-12-28 | 2004-11-10 | 한국전자통신연구원 | 물류 정보 자동식별 처리시스템 및 그 방법 |
US20050077358A1 (en) | 2003-10-08 | 2005-04-14 | Thomas Boehm | System and method for configuring an omnidirectional scanner |
US7204422B2 (en) | 2004-06-10 | 2007-04-17 | Psc Scanning, Inc. | System, circuit, and method for edge detection in a binary optical code |
US20060027657A1 (en) | 2004-08-04 | 2006-02-09 | Laurens Ninnink | Method and apparatus for high resolution decoding of encoded symbols |
US7721966B2 (en) * | 2004-10-18 | 2010-05-25 | Datalogic Scanning, Inc. | System and method of optical reading employing virtual scan lines |
WO2006049430A1 (en) | 2004-11-05 | 2006-05-11 | Colorzip Media, Inc. | Mixed code, and method and apparatus for generating the same, and method and appratus for decoding the same |
KR100667778B1 (ko) | 2004-11-20 | 2007-01-11 | 삼성전자주식회사 | 바코드 판독 방법 및 장치 |
US7398927B2 (en) | 2005-01-26 | 2008-07-15 | Datalogic Scanning, Inc. | Data reader and methods for imaging targets subject to specular reflection |
US8286877B2 (en) | 2005-06-13 | 2012-10-16 | Datalogic ADC, Inc. | System and method for data reading using raster scanning |
US20060278712A1 (en) | 2005-06-13 | 2006-12-14 | Psc Scanning, Inc. | Method and system for data reading using raster scanning |
US7743994B2 (en) | 2006-03-16 | 2010-06-29 | Datalogic Scanning, Inc. | Continuous virtual scan line pattern generation |
US8091788B2 (en) | 2007-01-11 | 2012-01-10 | Datalogic Scanning, Inc. | Methods and systems for optical code reading using virtual scan lines |
-
2008
- 2008-11-18 US US12/273,381 patent/US8172145B2/en active Active
- 2008-11-19 EP EP08851153.0A patent/EP2220586B1/en active Active
- 2008-11-19 WO PCT/US2008/084084 patent/WO2009067552A2/en active Application Filing
- 2008-11-19 CN CN2008801170676A patent/CN101874250B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170749B1 (en) * | 1995-05-31 | 2001-01-09 | Symbol Technologies, Inc. | Method of scanning indicia using selective sampling |
Also Published As
Publication number | Publication date |
---|---|
US20090127326A1 (en) | 2009-05-21 |
EP2220586A2 (en) | 2010-08-25 |
WO2009067552A2 (en) | 2009-05-28 |
EP2220586B1 (en) | 2016-01-27 |
EP2220586A4 (en) | 2011-02-09 |
CN101874250A (zh) | 2010-10-27 |
WO2009067552A3 (en) | 2009-08-13 |
US8172145B2 (en) | 2012-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101874250B (zh) | 增强型虚拟扫描线处理 | |
CN107092849B (zh) | 用于使用多个数据源来读取光学标记的方法和设备 | |
EP2394236B1 (en) | Systems and methods for selectively masking a scan volume of a data reader | |
EP0436072B1 (en) | Method of decoding bar code symbols from partial scans | |
US8459556B2 (en) | Prioritized virtual scan line processing | |
US10509933B2 (en) | Method and apparatus for optically reading out information stored in a barcode | |
US7743991B2 (en) | Automatic image transmission of difficult to read symbols | |
US6938824B2 (en) | Decoding algorithm for laser scanning bar code readers | |
EP3462372B1 (en) | System and method for detecting optical codes with damaged or incomplete finder patterns | |
US20070267490A1 (en) | Multipurpose optical reader | |
JP5140820B2 (ja) | シンボル情報読取装置及びシンボル情報読取方法 | |
US9959442B2 (en) | Extended depth of field in imaging machine-readable symbol reader using image side telecentric lens | |
JP2021119465A (ja) | 改善されたマトリックス記号エラー修正方法 | |
US7950581B2 (en) | System and method of acquiring a machine-readable symbol | |
US20060138234A1 (en) | Methods and apparatus for improving direct part mark scanner performance | |
US20090255994A1 (en) | Automatic video image reversal of difficult to read symbols | |
JP4591216B2 (ja) | 情報コード読取システム、情報コード読取装置、およびラベル | |
US20240125905A1 (en) | Hyperspectral machine-readable symbols and machine-readable symbol reader with hyperspectral sensor | |
CN102682264B (zh) | 用于使用多个数据源来读取光学标记的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
ASS | Succession or assignment of patent right |
Owner name: DATALOGIC ADC CORP. Free format text: FORMER OWNER: DATALOGIC SCANNING INC. Effective date: 20130717 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20130717 Address after: American Oregon Patentee after: Datalogic ADC Inc. Address before: American Oregon Patentee before: Datalogic Scanning Inc. |