CN102737215B - 数字图像捕获及处理系统 - Google Patents
数字图像捕获及处理系统 Download PDFInfo
- Publication number
- CN102737215B CN102737215B CN201210061820.2A CN201210061820A CN102737215B CN 102737215 B CN102737215 B CN 102737215B CN 201210061820 A CN201210061820 A CN 201210061820A CN 102737215 B CN102737215 B CN 102737215B
- Authority
- CN
- China
- Prior art keywords
- image capture
- processing system
- digital image
- subsystem
- bar code
- 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
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/10712—Fixed beam scanning
- G06K7/10722—Photodetector array or CCD 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/10821—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 further details of bar or optical code scanning devices
- G06K7/1098—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 further details of bar or optical code scanning devices the scanning arrangement having a modular construction
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- Artificial Intelligence (AREA)
- Toxicology (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Input (AREA)
- Stored Programmes (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种数字图像捕获及处理系统,其支持多层模块化软件和可扩展插件的架构。该数字图像捕获及处理系统能够被实现为图像捕获的蜂窝电话、数字照相机、摄像机、移动计算终端和便携式数据终端(PDT),能够被提供有适当的硬件平台、通信协议和用户接口。控制(即,调节)多个第三方插件的配置文件包括链接(即,定序)多个第三方插件的条件编程逻辑,以使得客户可以使得能够在多个插件之间实现交互和配置,并且达到增强的系统功能性。
Description
技术领域
本公开内容涉及用于读取一维(1D)和二维(2D)条形码符号的具有多样数字图像处理模式的可手持且便携式的区域型数字条形码读取器,以及修改和扩展系统特征和功能性的改进方法。
现有技术
根据下列可以理解自动标识行业的现状:(i)已经开发并被该行业采纳的不同类别的条形码符号体系,和(ii)用来在各种用户环境中读取这样的条形码符号体系的各种类的装置。
总的来说,目前存在三种主要类别的条形码符号体系,即:一维(1D)条形码符号体系,诸如UPC/EAN,39码等等;1D堆叠式条形码符号体系,49码,PDF417等等;以及二维(2D)数据矩阵符号体系。而且,多年来已经开发出基于激光扫描的条形码符号读取器和基于成像的条形码符号读取器以满足该行业的条形码符号读取需要。
基于成像的条形码符号读取器相比于基于激光扫描的条形码符号读取器有多个优点,即:它们更能读取堆叠式2D符号体系,诸如PDF417符号体系;更能读取矩阵2D符号体系,诸如Data Matrix(数据矩阵)符号体系;更能读取条形码而不考虑它们的方位;具有较低的制造成本;以及具有在其它应用中使用的潜力,所述其它应用可能与条形码扫描相关或者可能与条形码扫描不相关,诸如OCR,安全系统等等。然而,现有技术基于成像的条形码符号读取器经受多个附加缺点和缺陷。
大多数现有技术手持式光学读取设备能够通过从条形码编程菜单读取条形码或通过使用本地主机处理器来重新编程,如美国专利No.5,929,418中所教导的。然而,在部署到端用户应用环境之前,这些设备通常被约束为在现场或者在工作台(on the bench)在已经把它们编程为在其下进行操作的模式内操作。因此,这样的现有技术基于成像的条形码读取系统的静态配置性质已经限制了它们的性能以及简单集成到第三方产品(即系统和设备)中的能力。
现有技术基于成像的条形码符号读取器通常要求使用表和条形码菜单来管理在通过从条形码菜单读取条形码符号来编程的任何特定系统操作模式内要使用哪些解码算法。
而且,由于这样的现有技术基于成像的条形码符号读取器的硬件平台的复杂性的原因,除了通过读取系统编程型条形码符号来改变该系统内有限的功能之外,不容许端用户修改这样的系统的特征和功能性以满足他们的定制应用需求,如美国专利第6,321,989号、第5,965,863号、第5,929,418号和第5,932,862号中所公开的,每一个都通过引用结合于此。
而且,专用的基于图像处理的条形码符号读取设备惯常具有非常有限的资源,诸如易失性存储器和非易失性存储器的数量。因此,他们惯常没有通用计算机系统一般可用的丰富工具集。此外,如果客户或第三方需要增强或改变常规的基于图像处理的条形码符号读取系统或设备的行为,则他们需要联系设备制造者并商定对该“标准”软件的必要变化或将他们自己的软件集成到该设备中的方式,这惯常涉及由原始设备制造者(originalequipment manufacturer, OEM)对该软件的重新设计或重新编译。此软件修改过程既昂贵又费时。
而且,作为现有技术基于成像的条形码符号读取器的机械设计、电气设计、光学设计以及软件设计方面的局限性的结果,这样的现有技术读取器通常:(i)无法使得用户能够利用基于激光扫描的条形码符号读取器的简单性和简便性来读取高密度1D条形码以及还有2D符号体系,诸如PDF147和Data Matrix,和(ii)尚未使得端用户能够在没有关于这样的系统的硬件平台、通信接口和用户接口的详细知识的情况下修改这样的现有技术系统的特征和功能性。
因此,现有技术中存在对用于修改和扩展包括数字成像模块的基于数字成像的条形码符号读取系统的功能性的改进方法和装置的极大需求,所述改进方法和装置避免了现有技术方法和装置的缺点和缺陷。
发明内容
因此,本公开内容的主要目的是提供一种新颖的数字图像捕获及处理系统,其容许以避免现有技术方法和装置的缺点和缺陷的方式,经由第三方代码插件对系统特征和功能性的修改。
本公开内容的另一目的是提供这样的一种数字图像捕获及处理系统,其允许客户,VAR和第三方在不需要联系该系统的OEM并商定把他们期望的增强集成到该系统的方式的情况下修改和/或扩展该系统的标准特征和功能集。
本公开内容的另一目的是提供这样的一种图像捕获及处理系统,其允许用户,VAR和第三方在没有关于该系统的硬件平台、其与外部环境的通信以及用户相关接口的详细知识的情况下,根据OEM规范独立地设计他们自己的软件,并将此软件插入该系统中,从而有效地改变该设备的行为。
本公开内容的另一目的是向这样的数字图像捕获及处理系统的客户或其任何第三方提供用于在不干扰底层硬件、通信和用户相关接口的情况下增强或改变系统的行为的方式和手段。
本公开内容的另一目的是向这样的数字图像捕获及处理系统的端用户以及第三方,提供用于在该设备中设计、开发和安装他们自己的插件模块而无需该设备的硬件的细节知识的方式和手段。
本公开内容的另一目的是向原始设备制造者(OEM)提供在没有已经安装在其中的第三方的插件(软件)模块(假设该第三方插件满足系统特征和功能性的所建立规范)的知识的情况下,用于将OEM的插件模块安装到数字图像捕获及处理系统中的方式和手段。
本公开内容的另一目的是为数字图像捕获及处理系统的客户和其第三方,提供用于根据他们自己的需求且彼此独立地安装他们自己的插件模块以增强或改变该设备的“标准”行为的方式和手段。
本发明的另一目的是提供具体地为数字图像捕获及处理系统设计的模块化软件开发平台,其中能够独立于该系统的固件来开发和维护软件插件(例如,应用)。
本发明的另一目的是提供这样的一种用于数字图像捕获及处理系统的模块化软件开发平台,其允许第三方和客户在该数字图像捕获及处理系统上安装并运行与彼此结合的多个插件(例如,应用),以便进一步改进该系统在多样的应用环境中的有效性和/或性能。
本发明的另一目的是提供一种新颖的数字图像捕获及处理系统,其中相同类型的多个第三方插件能够由第三方在应用层进行编程,以及其中控制(即,调节)多个第三方插件的配置文件包括链接(即,定序)多个第三方插件的条件编程逻辑,以使得客户可能能够在多个插件之间进行交互和配置,并且达到增强的系统功能性。
本发明的另一目的是提供一种数字图像捕获及处理系统,其能够用于条形码符号读取、模式识别(非条形码)、标记识别(非条形码)、唯一的字体识别、通常在2D条形码中见到的长数据字符串的高级格式化/解析、用于增强安全的加密/解密,等等。
本公开内容的另一目的是提供一种图像捕获及处理系统,其支持设计者/制造者约束的系统行为修改,无需关于该系统的硬件平台、其与外部环境的通信和用户相关的接口的详细知识。
本公开内容的另一目的是提供一种新颖的基于数字成像的可手持条形码符号读取器,其能够使用现有技术发展水平的成像技术,以常规的激光扫描条形码符号读取器所达到的速度和可靠性来自动读取1D和2D条形码符号体系。
本公开内容的这些以及其它目的在下文中和于此所附的权利要求书中将变得非常容易理解。
附图说明
为了更加完全的理解如何实践本公开内容的目的,可以结合附图阅读对说明性实施例的下列详细说明,下面简要描述:
图1A是本公开内容的数字图像捕获及处理系统的示意表示,其采用了能够支持各种子系统的多层软件系统架构,所述各种子系统提供了能够使用本公开内容的新颖的插件编程方法来修改和/或扩展的众多标准系统特征和功能;
图1B是图1A中所表示的本公开内容的数字图像捕获及处理系统的系统架构的示意表示;
图1C1到图1C3联系在一起阐述了指示在图1A和1B中所表示的本公开内容的数字图像捕获及处理系统的系统架构中提供的每个子系统所支持的特征和功能的表;
图1D是指示能够使用相接口在一起的数字照相机板和印刷电路(PC)板来实施图1A到图1C3中所示的本公开内容的数字图像捕获及处理系统的示意表示;
图1E是指示能够使用单个混合数字照相机/PC板来实施图1A到图1C3中所示的本公开内容的数字图像捕获及处理系统的示意表示;
图1F是图示可以把图1A到1E中所示的本公开内容的数字图像捕获及处理系统集成或体现在第三方产品内的示意表示,所述第三方产品诸如像但不限于基于数字图像处理的条形码符号读取系统、OCR系统、对象识别系统、便携式数据终端(PDT)、移动电话、计算机鼠型设备、个人计算机、键盘、家用电器、汽车、ATM、自动售货机、回收机、基于POS的零售交易系统、1D或2D数字转换器、以及CAT扫描系统、汽车标识系统、包裹检查系统、个人标识系统等等;
图2A是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的后透视图;
图2B是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的前透视图;
图2C是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的抬高的左侧视图;
图2D是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的抬高的右侧视图;
图2E是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的抬高的后视图;
图2F是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的抬高的前视图,示出了与其照明子系统和其图像捕获子系统相关联的组件;
图2G是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的底视图;
图2H是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的顶部后视图;
图2I是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的第一透视分解图;
图2J是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的第二透视分解图;
图2K是本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备的第三透视分解图;
图2L1是表示图2A到2K中所图示的基于数字成像的可手持条形码符号读取设备的系统设计的示意框图;
图2L2是使用图2M中所图示的三层计算平台实现的基于图像处理的多模式条形码符号系统读取子系统的示意框表示;
图2M是表示用于图2A到2L2中所图示的基于数字成像的可手持条形码符号读取设备的系统实现方式的示意图;
图3A是示出在窄区域和宽区域图像捕获操作模式下,在多模式图像形成和检测子系统的FOV内近和远以及窄和宽区域窄带照明场之间的空间关系的示意表示;
图3B是第一说明性实施例的基于数字成像的可手持条形码符号读取设备的部分透视剖视图,其示出了基于LED的多模式照明子系统通过其窄带传输型光学滤波器系统传送可视的窄带照明,并且用这样的窄带照明对对象进行照明,以及还示出了图像形成光学系统,其包括在图像感测阵列之前的低通滤波器,用于收集和聚焦从被照明对象反射的光线,使得仅使用窄带照明内包含的光的光学分量来形成和检测该对象的图像,而周围光的所有其它分量在图像感测阵列处的图像检测之前基本上被抑制;
图3C是示出第一说明性实施例的基于数字成像的可手持条形码符号读取设备内使用的光学组件的几何布局的示意表示,其中红色波长反射高通透镜元件位于在该设备的图像形成透镜元件之前的成像窗口处,而低通滤波器设置在图像形成元件的图像感测器之前,以便在图像感测阵列仅使用窄带照明内的光学分量来对对象进行成像,而抑制周围光的所有其它分量;
图4A1是详细说明从本公开内容的基于数字成像的可手持条形码符号读取设备中采用的基于LED的多模式照明子系统产生的窄区域照明、近场宽区域照明和远场宽区域照明的范围的示意表示;
图4A2是详细说明本公开内容的基于数字成像的可手持条形码符号读取设备中采用的基于LED的多模式照明子系统所支持的每个照明模式的几何属性和特性的表;
图4是示出与本公开内容的基于数字成像的可手持条形码符号读取设备的三层软件架构相关联的软件模块的示意表示,所述软件模块即:主任务模块、CodeGate任务模块、窄区域照明任务模块、Metroset任务模块、应用事件管理器模块、用户命令表模块、命令处理机模块、插件控制器以及插件库和配置文件,所有这些都驻留在该软件架构的应用层;任务管理器模块、事件调度器模块、输入/输出管理器模块、用户命令管理器模块、计时器子系统模块、输入/输出子系统模块以及存储器控制子系统模块,它们驻留在该软件架构的系统核心层(SCORE);以及可与插件控制器操作通信的Linux内核模块、Linux文件系统模块以及驻留在该软件架构的Linux操作系统(OS)层并且经由标准或专用通信接口与外部(主机)插件开发平台可操作通信的设备驱动模块;
图5是计算机软件开发平台的说明性实施例的透视图,该计算机软件开发平台用于在本公开内容的基于成像的条形码读取系统的应用层内为任务开发插件;
图6是图示涉及实施本公开内容的方法的步骤的高级流程图,其中本公开内容的基于成像的条形码符号读取系统的系统行为(即,特征)能够由端用户修改,在制造者定义的约束条件集(即,强加于可修改的特征和特征内的功能)内,由端用户为该系统的应用层内的任何可修改的任务开发、安装/部署和配置 “插件模块”(即,库),以便允许端用户灵活的修改和/或扩展该系统的标准(即,预先指定的)特征和功能性,并且因此满足定制的端用户应用需求,而无需关于该系统的硬件平台、其与环境通信和/或其用户接口的详细知识。
图7A是示出当在该系统的应用层内(使能和)执行 “可修改的”主要任务时实行什么操作的示例性流程图;
图7B是示出当在该系统的应用层中的基于图像处理的条形码符号读取子系统软件模块内执行称为“图像处理”的系统特征时实行什么操作的示例性流程图;
图7C是示出当在该系统的应用层中的可修改的主要任务软件模块内执行称为“图像处理及条形码解码”的系统特征 时实行什么操作的示例性流程图;
图7D是示出当在该系统的应用层中的可修改的主要任务内执行 称为“数据输出过程” 的系统特征时实行什么操作的示例性流程图;
图7E是示出当在该系统的应用层中的可修改的数据输出过程软件模块内执行称为 “数据格式化过程”的系统特征时实行什么操作的示例性流程图;
图7F是示出当在该系统的应用层中的数据输出过程软件模块内执行称为“扫描器配置过程”的系统特征时实行什么操作的示例性流程图;和
图8是本公开内容的数字图像捕获及处理系统的示意表示,其具有图4中所描绘的多层软件架构,并且支持对该系统的应用层中的多个第三方软件插件的链接,其中多段第三方插件代码包括具有条件逻辑的配置文件,所述条件逻辑控制该数字图像捕获及处理系统中的多个第三方插件的定序或链接。
具体实施方式
参考附图中的图,将非常详细地描述本公开内容的基于成像的可手持条形码符号读取系统的各种说明性实施例,其中将使用同样的附图标记来指示同样的元素。
采用基于多层软件的系统架构的本公开内容的数字图像捕获及处理系统的概述,
所述基于多层软件的系统架构容许通过第三方代码插件的方式来修改和/或扩展系统特征
和功能
本公开内容通过提供一种新颖的系统架构、平台和开发环境解决了包括基于激光和数字成像的条形码符号读取器的现有技术数字图像捕获及处理系统和设备的缺点和缺陷,该新颖的系统架构、平台和开发环境使得VAR、OEM和其他人(即,除了原始设备设计者以外)能够修改和/或扩展非常广类别的数字图像捕获及处理系统和设备的标准系统特征和功能,无需这样的第三方拥有关于该系统的硬件平台、其与外部环境的通信和/或其用户相关的接口的详细知识。此新颖的方法对于愿意在他们的第三方产品中采用专家数字成像器设计者和制造者(诸如申请人和他们的受让人,Metrologic Instruments公司)的数字图像捕获及处理技术,但是在这样的系统特征和功能性修改和/或扩展过程期间,不必为了满足其端用户应用眼前的需求,而牺牲或冒险公开其有价值的知识产权和商业秘密的第三方而言,具有众多好处和优点。
如图1A到图1B中所示,本公开内容的数字图像捕获及处理系统1000采用能够支持各种子系统的多层软件系统架构,所述子系统提供了能够使用本公开内容的创新的插件编程方法修改和/或扩展的众多标准系统特征和功能。在本文所公开的本公开内容的说明性实施例中,这样的子系统包括:通常如所示地集成的对象存在检测子系统;对象范围检测子系统;对象速度检测子系统;对象定尺寸子系统;视场(field of view, FOV)照明子系统;成像形成和检测(imaging formation and detection, IFD)子系统;数字图像处理子系统;声音指示器输出子系统;视觉指示器输出子系统;功率管理子系统;图像时/空戳子系统;网络(IP)地址存储子系统;远程监视/服务子系统;输入/输出子系统;以及系统控制和/或协调子系统。
对于本文所公开的本公开内容的说明性实施例,在图1C1和1C2的表中描述了示例性标准系统特征和功能。在下面结合通常支持在本公开内容的数字图像捕获及处理中的特征和功能的子系统来描述这样的系统特征和功能:
系统触发特征(即,触发事件生成):对象存在检测子系统
标准系统功能:
自动触发(即,IR对象存在检测)(例如,开(ON),关(OFF))
手动触发(例如,ON,OFF)
半自动触发(例如,ON,OFF)
对象范围检测特征:对象范围检测子系统
标准系统功能:
(基于IR的)长/短范围检测(例如,ON,OFF)
(基于IR的)量化/增量范围检测(例如,ON,OFF)
对象速度检测特征:对象速度检测子系统
标准系统功能:
基于LIDAR的对象速度检测(例如,ON,OFF)
IP-PULSE-DOPPLER对象速度检测(例如,ON,OFF)
对象定尺寸特征:对象定尺寸子系统
标准系统功能:
基于LIDAR的对象定尺寸(例如,ON或OFF)
结构化的激光对象定尺寸(例如,ON或OFF)
视场(FOV)照明特征:照明子系统
标准系统功能:
照明模式(例如,周围/OFF,LED连续,和LED选通/闪烁)
自动照明控制(即,ON或OFF)
照明场类型(例如,窄区域近场照明,宽区域远场照明,窄区域照明场,宽区域照明场)
成像形成和检测特征:成像形成和检测(IFD)子系统
标准系统功能:
图像捕获模式(例如,窄区域图像捕获模式,宽区域图像捕获模式)
图像捕获控制(例如,单帧,视频帧)
图像感测阵列的电子增益(例如,1-10,000)
由图像感测阵列检测的每个图像帧的曝光时间(例如,可以毫秒的增量编程的)
图像感测阵列内每块成像像素的曝光时间(例如,可以毫秒的增量编程的)
视场标记(例如,一点模式(pattern),双点模式;四点模式;可见线模式;四点及可见线模式)
数字图像处理特征:数字图像处理子系统
标准系统功能:
图像感测阵列上的图像裁剪模式(例如,x1,y2,x2,y2,x3,y3,x4,y4)
图像帧的预处理(例如,数字滤波器1,数字滤波器2,…数字滤波器n)
信息识别处理(例如,对第A符号体系的识别;…对第Z符号体系的识别,使用OCR1的字母数字字符串识别,…使用OCRn的字母数字字符串识别;和文本识别过程)
后处理(例如,数字数据滤波器1,数字数据滤波器2,…)
对象特征/特性集识别(例如,ON或OFF)
声音指示器输出特征:声音指示器输出子系统
标准系统功能:
声音响度(例如,高,低,中音量)
声音音高(例如,频率1,频率2,频率3,…声音1,…声音N)
视觉指示器输出特征:视觉指示器输出子系统
标准系统功能:
指示器亮度(例如,高,低,中亮度)
指示器颜色(例如,红,绿,黄,蓝,白)
功率管理特征:功率管理子系统
标准系统功能:
功率操作模式(例如,OFF,ON连续,ON节能)
节能模式(例如,第一节省模式,第二节省模式,…节省模式M)
图像时/空戳特征:图像时/空戳子系统
标准系统功能:
基于GPS的时/空戳(例如,ON,OFF)
网络服务器时间分配(例如,ON,OFF)
网络(IP)地址存储特征:IP地址存储子系统
标准系统功能:
手动IP地址存储(例如,ON,OFF)
经由DHCP的自动IP地址存储(例如,ON,OFF)
远程监视/服务特征:远程监视/服务子系统
标准系统功能:
TCP/IP连接(例如,ON,OFF)
SNMP代理(例如,活动(ACTIVE)或去活(DEACTIVE))
输入/输出特征:输入/输出子系统
标准系统功能:
数据通信协议(例如,RS-232串行,USB,蓝牙等等)
输出图像文件格式(例如,JPG/EXIT,TIFF,PICT,PDF等等)
输出视频文件格式(例如,MPEG,AVI,等等)
数据输出格式(例如,ASCII)
键盘接口(例如,ASCII)
图形显示器(LCD)接口(例如,ACTIVE或DEACTIVE)
系统控制和/或协调特征:系统控制和/或协调子系统
标准系统功能:
系统操作模式(例如,系统模式1,系统模式2,…系统模式N)
如图1D中所指示的,在图1A到1C3中表示的本公开内容的数字图像捕获及处理系统1000能够使用相接口在一起的数字照相机板和印刷电路(PC)板来实施。可替换地,如图1E中所示,本公开内容的数字图像捕获及处理系统1000也能够使用如所示出的单个混合数字照相机/PC板来实施。
如图1F中所示,本公开内容的数字图像捕获及处理系统能够集成或体现在第三方产品中,所述第三方产品诸如像,但不限于,基于图像处理的条形码符号读取系统、OCR系统、对象识别系统、便携式数据终端(portable data terminal, PDT)、移动电话、计算机鼠型设备、个人计算机、键盘、家用电器、汽车、ATM,自动售货机、回收机、基于POS的零售交易系统、1D或2D数字转换器、以及CAT扫描系统、汽车标识系统、包裹检查系统和个人标识系统等等。
总的来说,本公开内容的数字图像捕获及处理系统具有如上所描述的标准特征和功能集,以及满足定制的端用户应用需求的定制特征和功能性集,其典型地旨在针对眼前特定应用而修改和/或扩展这样的标准系统特征和功能。
在下面参考图2A到图5详细地描述的说明性实施例中,本公开内容的数字图像捕获及处理系统(不考虑该系统集成或体现到的第三方产品)通常包括:
数字照相机子系统,用于将视场(FOV)投射到所述FOV中要成像的对象上,和在图像捕获模式下在照明操作期间检测从对象反射离开的成像光,该对象的一个或多个数字图像是在该图像模式下由所述数字照相机子系统形成并检测的;数字图像处理子系统,用于处理数字图像和产生原始的或经处理的输出数据或者识别或获取在其中图形表示的信息,以及产生表示所识别信息的输出数据;输入/输出子系统,用于将所述输出数据传送给外部主机系统或其它信息接收或响应设备;系统控制系统,用于控制和/或协调上面的各子系统的操作;以及计算平台,用于支持上面子系统中的一个或多个子系统的实施和该数字图像捕获及处理系统的特征和功能。
计算平台包括(i)存储器,用于存储由数字图像捕获及处理系统的原始设计者编写的数段原始产品代码,以及(ii)微处理器,用于通过以特定顺序调用和执行数段原始产品代码来运行一个或多个应用,以便支持表征该数字图像捕获及处理系统的标准行为的标准特征和功能集。
如参考图6到图7F将更加详细地描述的,这些段原始产品代码具有能够由第三方将第三方产品代码嵌入或插入到的占位符集,所述第三方包括增值转售者(value-addedreseller, VAR)、原始设备制造者(original equipment manufacturer, OEM)以及还包括该数字图像捕获及处理系统的端用户。
依据本公开内容的新颖原理,一段或多段第三方代码(“插件”)被嵌入或插入到该占位符集中,并且进行操作以扩展该数字图像捕获及处理系统的标准特征和功能,以及把其标准行为修改为针对该数字图像捕获及处理系统的定制行为。
在本公开内容的大多数实施例中,数字图像捕获及处理系统将进一步包括具有透光窗的外壳,其中该FOV通过该透光窗投射,并且投射到该FOV中要成像的对象上。而且,典型地,在该计算平台的存储结构中所支持的一个或多个库中维护这些段原始产品代码以及第三方产品代码。总的来说,这样的存储器包括具有不同种类的存储器的存储器结构,每一种类存储器具有不同的访问速度和性能特性。
依据本公开内容的原理,端用户,像这样的增值转售者(VAR)或原始设备制造者(OEM),能够根据原始系统设计者设定的规范编写这样的数段第三方代码(即,插件),并且这些段定制代码能够插入占位符中,以便修改和扩展该数字图像捕获及处理系统(或该系统集成或体现到其中的第三方产品)的特征和功能,以及把该数字图像捕获及处理系统的标准行为修改为针对该数字图像捕获及处理系统的定制行为,无需永久性地修改该数字图像捕获及处理系统的标准特征和功能。
在本公开内容的一些说明性实施例中,数字照相机系统包括:数字图像形成和检测子系统,其具有(i)图像形成光学系统,用于通过透光窗投射该FOV并投射到该FOV中要成像的对象上,和(ii)图像感测阵列,用于在图像捕获模式下在照明操作期间检测从该对象反射离开的成像光,在该图像捕获模式下该图像感测阵列中的传感器元件被使能以便检测该对象在该图像感测阵列上形成的一个或多个数字图像;具有照明阵列的照明子系统,所述照明阵列用于在图像捕获模式期间产生照明场并将其投射通过透光窗且在该FOV内;以及图像捕获和缓冲子系统,用于捕获并缓冲由图像形成和检测子系统检测到的这些数字图像。
能够通过选自由下列组成的组的数字图像感测结构来实现该图像感测阵列:区域型图像感测阵列和线性型图像感测阵列。
优选地,在该系统的计算平台中采用的存储器维护用来配置该数字图像捕获及处理系统的功能的系统参数。在该说明性实施例中,该存储器包括支持三层模块化软件架构存储器架构,所述三层模块化软件架构由操作系统(OS)层、系统核心(System CORE,SCORE)层和应用层来表征并且响应于所述基于数字成像的条形码符号读取系统内的触发事件的生成。OS层包括选自由下列组成的组的一个或多个软件模块:OS内核模块、OS文件系统模块和设备驱动器模块。SCORE层包括选自由下列组成的组的一个或多个软件模块:任务管理器模块、事件调度器模块、输入/输出管理器模块、用户命令管理器模块、计时器子系统模块、输入/输出子系统模块和存储器控制子系统模块。应用层包括选自由下列组成的组的一个或多个软件模块:码符号解码模块、功能编程模块、应用事件管理模块、用户命令表模块和命令处理机模块。
从照明子系统投射的照明场可以是从发光二极管(LED)阵列产生的窄带照明。而且,该数字图像处理子系统典型地适配为处理捕获的数字图像,以便读取在所述数字图像中图形表示的一个或多个码符号,并且以表示读取的一个或多个码符号的符号字符数据的形式产生输出数据。每个码符号可以是选自由下列组成的组的条形码符号:1D条形码符号、2D条形码符号和数据矩阵类型码符号结构。
本公开内容的这些方面和其它方面将在下文中和权利要求书中变得显而易见。因此,现在参考图2A到5,在此时适当的是现在详细描述图1到图1F中所描绘的本公开内容的数字图像捕获及处理系统的各种说明性实施例。在图2A到图5中示出的这些说明性实施例的每一个中,本公开内容的数字图像捕获及处理系统1000被集成或体现到所示出的系统或产品的结构、特征和功能性中。在描述了这些说明性实施例之后,将参考图6到图7E非常详细地描述本公开内容的插件编程方法的技术方面。
本公开内容的说明性实施例的基于数字成像的可手持条形码读取设备
参考图2A到图2L2,详细地示出了本公开内容的第一说明性实施例的基于数字成像的可手持条形码符号读取设备1,其包括具有手柄部分2A和头部分2B的可手持外壳2,该头部分2B被提供有透光窗3和高通(红色波长反射)光学滤波器元件4A。如在下文中将更加详细地描述的,高通光学滤波器元件4A与内部安装的低通光学滤波器元件4B协作,其与高通光学滤波器元件4A协作。这些高通光学滤波器元件4A和低通光学滤波器元件4B进行协作以提供窄带光学滤波器系统4,其与该外壳的头部分集成并且在成像操作期间只允许窄带照明(如:633毫微米)离开并进入该外壳。
如图2I,2J和2K中最好地示出的,该说明性实施例的可手持外壳2包括:左半外壳手柄2A1和右半外壳手柄2A2;安装在半手柄2A1和2A2之间的类足结构2A 3;触发开关结构2C,扣合在提供在半外壳中的一对间隔开的孔2D1和2D2内并且在其内枢轴转动;透光窗面板5,通过该透光窗面板5透光窗3形成并支撑在当把半手柄2A1和2A2拉拢在一起时它们所形成的凹口内,并且其支撑该系统所提供的所有LED照明阵列;光具座6,用于支撑电光组件和在工作中连接的正交安装的PC板7,其安装在半外壳手柄内;顶部外壳部分2B1,用来与外壳半手柄2A1和2A2连接并且围住该外壳的头部分;光管透镜元件7,用于安装在发光二极管(LED)阵列9之上并且光管结构10安装在可手持外壳头部分的后端内;和前面缓冲器结构2E,用于把顶部外壳部分2B1和左右半手柄2A1和2A2以及夹在它们之间的透光窗面板5保持在一起,同时对其提供一级别的振动保护。
在本公开内容的其它可能实施例中,可手持外壳的形状因子能够和可能是不同的。在另外的其它应用中,外壳甚至不需要是可手持的,而可能设计成用于桌面和台面上的静止支撑,或者设计成供商业和工业应用中使用。
作为本公开内容的基于数字成像的可手持条形码读取设备的系统设计模型的示意性功能框图
如图2L1的系统设计模型中所示的,该说明性实施例的基于数字成像的可手持条形码读取设备1包括:基于IR的对象存在和范围检测子系统12;多模式区域型图像形成和检测(即照相机)子系统13,其具有窄区域图像捕获模式、近场宽区域图像捕获模式和远场宽区域图像捕获模式;基于LED的多模式照明子系统14,其具有窄区域照明模式、近场宽区域照明模式和远场宽区域照明模式;自动曝光测量和照明控制子系统15;图像捕获和缓冲子系统16;多模式图像处理条形码符号读取子系统17,其具有图2L2中所指示并且要在上文详细描述的五种基于图像处理的条形码读取模式;输入/输出子系统18;可手动激励的触发开关2C,用于将用户发起的控制激活信号发送到该设备;系统模式配置参数表70;以及与上面描述的子系统中的每一个集成的系统控制子系统18,如所示出的。
基于IR的对象存在和范围检测子系统12的主要功能是在多模式图像形成和检测子系统13的FOV内自动产生基于IR的对象检测场20,在该对象检测场(20A,20B)的预定区域内检测对象的存在,以及生成控制激活信号A1,该控制激活信号A1被供应给系统控制子系统19以用于指示何时和何地在该系统的对象检测场内检测到了对象。
在第一说明性实施例中,多模式图像形成和检测(即照相机)子系统13具有用于在要成像的对象上产生视场 (FOV) 23的图像形成(照相机)光学系统21和用于在照明和图像获取/捕获操作期间检测从该对象反射离开的成像光的 CMOS区域图像感测阵列22。
在第一说明性实施例中,基于LED的多模式照明子系统14的主要功能是产生窄区域照明场24、近场宽区域照明场25和远场宽区域照明场25,每一个都具有窄的光学带宽并且分别在窄区域和宽区域成像模式下,被限制在该多模式图像形成和检测子系统13的FOV内。此布置被设计为确保只有从该多模式照明子系统14传送且从被照明对象反射的光最终被传送通过从窄带传输型光学滤波器子系统4,所述窄带传输型光学滤波器子系统4由下列实现:(1) 安装在紧接在面板5前面的透光孔3处的高通(即红色波长反射) 滤波器元件4A;和 (2) 安装在图像感测阵列22之前或者面板5之后的任何地方的低通滤波器元件4B,如图3C中所示。图5A4阐述了窄带传输光谱滤波器子系统4的所得到的传输特性,其相对于在该多模式照明子系统14中采用的LED照明阵列发射的光谱特性来绘制的。
窄带集成光学滤波器子系统4的主要功能是确保该CMOS图像感测阵列22只接收由与多模式照明子系统14相关联的LED驱动电路30驱动的三组基于LED的照明阵列27、28和29所传送的窄带可见照明,而由光收集光学系统收集的周围光的所有其它分量在该图像感测阵列22处基本上被抑制,由此在那里提供了改进的SNR,因而改进了该系统的性能。
自动曝光测量和照明控制子系统15的主要功能是双重的:(1)实时测量由该系统的该光学系统在大约其图像感测阵列22处收集的光子能量(即光)的光密度[焦耳/厘米],并且生成指示良好图像形成和检测所需的曝光量的自动曝光控制信号;和(2)与由该系统控制子系统19提供的照明阵列选择控制信号相组合,自动地驱动和控制该多模式照明子系统中的所选LED阵列27、28和/或29的输出功率,以使得该系统的FOV内的对象最优地暴露给基于LED的照明,并且在该图像感测阵列22处形成和检测到最优图像。
图像捕获和缓冲子系统16的主要功能是(1)检测通过该系统的图像形成光学系统21聚焦到2D图像感测阵列22上的整个2-D图像;(2)生产捕获到的图像帧的所选感兴趣区域或整个检测图像的数字像素数据帧31;然后(3)在捕获到每个图像数据帧时对它进行缓冲。特别地,在说明性实施例中,在每个图像捕获和处理周期期间或在处理周期的特定阶段期间捕获单个2D图像帧(31),以便消除与图像帧重写以及图像捕获和解码过程的同步相关联的问题,如在转让给Welch Allyn且通过引用结合于此的美国专利第5,932,862号和第5,942,741号中所解决的。
基于成像的多模式条形码符号读取子系统17的主要功能是在系统操作的窄区域照明模式和宽区域照明模式这二者期间,处理已经由该图像捕获和缓冲子系统16捕获和缓冲的图像。这样的图像处理操作包括图14到图25中所图示且在下文中详细描述的基于图像的条形码解码方法。
输入/输出子系统18的主要功能是支持与外部主机系统和设备的标准和/或专有通信接口,并且通过这样的接口的方式把经处理的图像数据等等输出到这样的外部主机系统或设备。这样的接口和用于实施其的技术的示例在通过引用全部结合于此的美国专利第6,619,549号中给出。
系统控制子系统19的主要功能是如所示出的向集成的每个子系统组件提供某预定程度的控制或管理信令服务。虽然此子系统可以通过编程的微处理器来实施,但是在该说明性实施例中,它可以通过在图2M中示出的计算平台上所支持且如图11A到图13L所表示以及在下文中详细地描述的三层软件架构来实施。
与可手持外壳集成的可手动激活的触发开关2C的主要功能是使得用户在手动压下触发开关2C时能够生成控制激活信号,并且将此控制激活信号提供给系统控制子系统19,以供执行其复杂系统和子系统控制操作使用,这在本文详细描述了。
系统模式配置参数表70的主要功能是针对该说明性实施例的系统所支持的每个可编程系统操作模式 (在非易失性/永久性存储器中) 存储配置参数集,并且其在其复杂操作期间根据需要能够由系统控制子系统19读取和使用。
每个子系统的详细结构和功能现在将在上面详细描述。
作为本公开内容的基于数字成像的可手持条形码读取设备的系统实施模型的示
意图
图2B示出了图2A到图2L中所图示的基于数字成像的可手持条形码符号读取设备1的系统实现方式的示意图。如此系统实现方式中所示出的,该条形码符号读取设备使用多个硬件组件来实现,所述硬件组件包括:照明板33,承载实现由基于LED的多模式照明子系统14和自动曝光测量与照明控制子系统15执行的电子功能的组件;CMOS照相机板34,承载高分辨率(1280×1024 7-位6微米像素大小)CMOS 图像感测阵列22,其以25Mhz主时钟、以7帧/秒以1280×1024分辨率运行,具有随机可访问感兴趣区域(region of interest, ROI)窗口能力,实现了由多模式图像形成和检测子系统 13执行的电子功能;CPU板35(即计算平台)包括(i)Intel Sabinal 32-位微处理器PXA210 36,其以16位100Mhz外部总线速度在200mHz 1.0核心电压下运行,(ii)可扩展(例如:7+兆字节)Intel J3异步16-位闪速存储器37,(iii)16兆字节的100MHz SDRAM 38,(iv)Xilinx Spartan II FPGA FIFO 39,其以50Mhz时钟频率和60MB/秒数据率运行,被配置为控制照相机计时和驱动图像获取过程,(v)多媒体卡插口40,用于实现该系统的其它子系统,(vi) MCU的功率管理模块41,可由I2C总线调整,和(vii)一对UART 42A和42B(一个用于IRDA端口且一个用于JTAG端口);接口板43,用于实现由I/O子系统18执行的功能;和基于IR的对象存在和范围检测电路44,用于实现子系统12,其包括用于传送和接收基于IR的笔形对象感测信号的一对IR LED和光电二极管12A。
在该说明性实施例中,由该条形码读取器支持的图像形成光学系统21在对于该目标的标称焦距(距该条形码读取器的边缘近似70mm)处提供103mm的视场。在近似10mm的对于该目标的标称焦距处,该视场(FOV)的最小尺寸为62mm。该光学系统的参数的初步测试在图4B (根据该图像感测阵列22的位置给出图4B上的距离,该图像感测阵列22位于该条形码符号读取器内部,距边缘近似 80mm)中示出。如图4C中所指示的,图像形成光学系统的景深(depth of field)从针对具有5密耳(mil)每窄模块的分辨率的条形码的69mm到针对具有13密耳每窄模块的分辨率的条形码的181mm变化。
多模式照明子系统14被设计为利用充足照明来覆盖条形码符号读取器的光学视场(FOV) 23,以生成位于距成像窗口短距离和长距离这二者处的条形码的高对比度图像。照明子系统也提供窄区域(细高)瞄准射束24,其有两重目的:(a)向用户指示该读取器的光学视野(optical view)在何处;和(b)允许对只是该图像的几行的快速扫描,并且如果该条形码被准确对准,则试图超快条形码解码。如果针对要解码的线性照明的图像而言该条形码未被对准,那么用宽区域照明场25或 26来照明整个视场,并且由图像捕获和缓冲子系统16获得该整个视场的图像,并由多模式条形码读取子系统17来处理,以确保读取存在于其中的条形码符号,而不管其方位。
在条形码符号读取器内采用的接口板43为该条形码符号读取器提供硬件通信接口以与外界通信。系统中实施的接口将典型地包括RS232、键盘楔(keyboard wedge)和/或USB,或者上面中的一些组合,以及眼前该特定应用所需要或要求的其它接口。
区域型图像形成和检测(即照相机)子系统在分别由窄区域和宽区域窄带照明场
支持的,其窄区域(线性)和宽区域成像模式期间的详细说明
如图3A到3C中所示,多模式图像形成和检测(IFD)子系统13具有窄区域图像捕获模式(即,其中,在该图像感测阵列中心周围只有几个中心行像素被使能)和宽区域图像捕获操作模式(即,其中该图像感测阵列中的所有的像素都被使能)。在图像形成和检测子系统13中的CMOS图像感测阵列22具有图像形成光学系统21,其在要照明和成像的对象上为该图像感测阵列提供视场(FOV) 23。如所示出的,此FOV由集成在该条形码读取器内的多模式照明子系统14照明。
多模式照明子系统14包括三种不同的基于LED的照明阵列27,28和 29,它们安装在透光窗面板5上,并且绕透光窗4A布置。每个照明阵列被设计为在不同的操作模式期间对条形码读取器的FOV的不同部分进行照明。在多模式照明子系统14的窄区域(线性)照明模式期间,由23指示的视场的中心窄-宽部分由窄区域照明阵列27来照明,如图3A中所示。在多模式照明子系统14的近场宽区域照明模式期间,响应于IR对象存在和范围检测子系统12在该FOV的近场部分内检测到对象而激活该多模式照明子系统14,该FOV的近场宽区域部分被该近场宽区域照明阵列 28照明,如图3A中所示。在多模式照明子系统14的远场宽区域照明模式期间,响应于IR对象存在和范围检测子系统12在该FOV的远场部分检测到对象而激活该多模式照明子系统14,该FOV的远场宽区域部分被远场宽域照明阵列29照明,如图3A中所示。在图3A中,示出了这些窄带照明场与该图像形成和检测子系统13的远场和近场部分之间的空间关系。
在图3B中,示出了基于LED的多模式照明子系统14通过其窄带传输型光学滤波器子系统4传送可见窄带照明,其在图3C中示出并且集成在基于数字成像的可手持条形码符号读取设备内。来自该多模式照明子系统14 的窄带照明对在该图像形成和检测子系统13的图像形成光学系统的FOV中的对象进行照明,并且从那里反射和散射的光线被传送通过高通光学滤波器4A和低通光学滤波器4B,并且最终聚焦到图像感测阵列22上以在其上形成聚焦的被检测图像,同时周围光的所有其它分量在到达在图像感测阵列22的图像检测之前基本被抑制。特别地,在该说明性实施例中,红色波长反射高通光学滤波器元件4A被定位在图像形成光学系统21之前的该设备的成像窗口处,而低通光学滤波器元件4B被设置在图像感测阵列22之前,图像形成光学系统21的聚焦透镜元件之间。这形成了窄带光学滤波器子系统4,其集成在条形码读取器内来确保在该图像感测阵列22,仅使用从子系统14产生的窄带照明内的光谱分量,同时基本抑制在此窄范围(如15nm)外的周围光的所有其它分量来对该FOV内的对象进行成像。
在本公开内容的基于图像的可手持条形码读取系统中采用的基于 LED的多模式
照明子系统的详细说明
在该说明性实施例中,基于LED的多模式照明子系统14包括:窄区域照明阵列27;近场宽区域照明阵列28;和远场宽区域照明阵列29。图4A1中示意性地描绘了由子系统14的这三个照明阵列产生的三个窄带照明场。窄区域照明阵列27可以被实现为两个可独立操作的阵列,即:近场窄区域照明阵列和远场窄区域照明阵列,当在宽区域成像操作模式期间分别在自动的基于IR的对象存在和范围检测子系统12的近场和远场内检测到目标对象时,所述近场窄区域照明阵列和远场窄区域照明阵列被激活。然而,为了举例说明的目的,本公开内容的第一说明性实施例只采用单个场窄区域(线性)照明阵列,该阵列被设计为在该系统的基本上整个工作范围上进行照明,如图4A1中所示。
窄区域(线性)照明阵列27包括两对分别被提供有柱面透镜27B1和27B2并且安装在透光窗面板5的左部分和右部分的LED光源27A1和27A2。在图像形成和检测子系统13的窄区域图像捕获模式期间,窄区域(线性)照明阵列27在该系统的FOV内产生窄光学带宽的窄区域照明场 24。在该说明性实施例中,窄区域照明场24在远场具有小于10mm的高度,这产生了基本线性或相当平坦的照明场的样子。
在说明性实施例中,该近场宽区域照明阵列28包括两组(平顶的)LED光源28A1-28A6和 28A7-28A13,没有安装在透光窗面板5的顶部部分和底部部分的任何透镜,如图4B中所示。在图像形成和检测子系统13的近场宽区域图像捕获模式期间,近场宽区域照明阵列28在该系统的FOV内产生窄光学带宽的近场宽区域照明场25。
在说明性实施例中,远场宽区域照明阵列29包括两组分别被提供有球面(即平凸的)透镜29B1-29B6和29B7-29B13并且安装在透光窗面板5的顶部部分和底部部分的LED光源29A1-29A6和29A7-29A13。在图像形成和检测子系统13的远场宽区域图像捕获模式期间,远场宽区域照明阵列29在该系统的FOV内产生窄光学带宽的远场宽区域照明射束。
本公开内容的基于数字图像的可手持条形码读取设备的三层软件结构的详细说
明
如图4中所示,本公开内容的基于数字成像的可手持条形码符号读取设备1 被提供有三层软件架构,其包括下列软件模块:(1)主任务模块、CodeGate任务模块、Metroset任务模块、应用事件管理器模块、用户命令表模块、命令处理机模块、插件控制器(管理器)和插件库以及配置文件,每个都驻留在该软件架构的应用层;(2)任务管理器模块、事件调度器模块、输入/输出管理器模块、用户命令管理器模块、计时器子系统模块、输入/输出子系统模块和存储器控制子系统模块,每个都驻留在该软件架构的系统核心(SCORE)层;和(3)Linux内核模块、Linux文件系统模块和设备驱动器模块,每个都驻留在该软件架构的Linux操作系统(OS)层。
虽然基于成像的条形码符号读取器的操作系统层是基于Linux操作系统的,但是应理解可以使用其它操作系统 (例如Microsoft Windows,Max OXS,Unix等),以及该设计优选地在主应用软件层和操作系统层之间提供了独立性,并且因此,使得应用软件层能够潜在地被转移到其它平台。此外,本公开内容的系统设计原理通过对公共软件组件的扩展使用提供了该系统到其它未来产品的可扩展性,其应当使这样的产品的设计更简单,减少了它们的开发时间并确保了它们的鲁棒性。
在该说明性实施例中,上面特征是通过实施运行在被称为SCORE的系统核心软件层之上的事件驱动的多任务的潜在多用户的应用层来达到。该SCORE层与产品应用软件静态链接,且因此,在该系统的应用级或层中运行。该SCORE层以该应用不需要知道底层操作系统的细节的方式向该应用提供服务集,不过,对于该应用而言所有操作系统API当然也是可用的。该SCORE软件层向要进行操作的产品应用提供实时的、事件驱动的、独立于OS的框架。通过创建用于检测事件(通常,但未必,当发生硬件中断时)并把所述事件以实时的方式公布(post)给该应用以进行处理的手段来达到该事件驱动的架构。事件检测和公布由SCORE软件层提供。SCORE层还向产品应用提供用于开始和撤销可以并发运行的软件任务的手段,因此,提供了本公开内容的软件系统的多任务性质。
本公开内容的基于成像的条形码读取器中采用的系统软件架构的SCORF 层内的
软件模块的详细说明
SCORE层向应用层提供了多个服务。
任务管理器提供了在产品应用运行期间在任何时间执行和撤消特定应用任务(线程)的手段。
事件调度器提供了用于通过信号发送和递送所有种类的内部和外部的同步和异步的事件的手段。
当与该应用同步或异步地发生事件时,事件调度器把它们指派给应用事件管理器,该管理器因此基于该应用的当前状态按照该应用所需要的对所述事件进行动作。例如,基于该特定事件和该应用的当前状态,应用事件管理器可以决定开始新任务、或停止目前运行的任务、或者做其它事情或不做任何事且完全忽略该事件。
输入/输出管理器提供了用于监视输入/输出设备的活动以及当检测到这样的活动时把适当的事件用信号发送给该应用的手段。
输入/输出管理器软件模块在后台运行并且监视外部设备和用户连接的活动,以及检测到该这样的活动,把适当的事件用信号发送至该应用层。输入/输出管理器是高优先级线程,其与该应用并行运行并且对异步地来自硬件设备的输入/输出信号作出反应,所述硬件设备诸如串行口、用户触发开关2C、条形码读取器、网络连接等。基于这些信号和来自该应用的任选的输入/输出请求(或缺少该输入/输出请求),它生成适当的系统事件,如上所述的,所述系统事件通过事件调度器被尽可能快地递送到应用事件管理器。
用户命令管理器提供了用于管理用户命令的手段,并且该用户命令管理器利用由该应用提供的用户命令表以及基于由该用户输入的数据执行适当的用户命令处理机。
输入/输出子系统软件模块提供了用于创建和删除输入/输出连接以及与外部系统和设备进行通信的手段。
计时器子系统提供了创建、删除和利用所有种类的逻辑计时器的手段。
存储器控制子系统向该设备提供了用于管理多级动态存储器的接口,其与标准的动态存储器管理功能完全兼容,以及提供了用于缓冲所收集的数据的手段。存储器控制子系统提供了用于线程级管理动态存储器的手段。存储器控制子系统的接口与标准C存储器管理功能完全兼容。该系统软件架构被设计为可以提供该设备至潜在的多个用户的连接,所述多个用户可能具有不同的授权级别来操作该设备。
用户命令管理器,其提供了输入用户命令和执行负责处理所述用户命令的应用模块的标准方式。用户命令表中所描述的每个用户命令是这样的任务:只有当特定用户的权限匹配于该命令的安全级别的时候,可以由用户命令管理器根据用户输入来发动该任务。
事件调度器软件模块提供了把事件通过信号发送和递送到应用事件管理器的手段,包括开始新任务、停止目前运行的任务、或做某事或不做事情和简单地忽略该事件。
本公开内容的基于成像的条形码读取器中采用的系统软件架构的应用层内的软
件模块的详细说明
于此该系统内采用的图像处理软件通过定位和识别在包括像素数据的所捕获图像的帧内的条形码来执行其条形码读取功能。图像处理软件的模块化设计提供了丰富的图像处理功能集,它们在将来可以被与条形码符号读取器有关或无关的其他潜在应用利用,所述潜在应用诸如:光学字符识别(OCR)和验证(OCV);直接读取和验证在各种表面上的标记符号;面部识别和其它生物测定标识;等等。
CodeGate任务以无限循环执行下列任务。它对在视场 (FOV)中心的“细”窄水平区域进行照明并且获取该区域的数字图像。然后它使用在下文中要更加详细地描述的本公开内容的图像处理条形码符号读取子系统17所支持的图像处理软件工具,尝试读取所捕获的图像数据帧中表示的条形码符号。如果条形码符号读取成功,则子系统17将解码数据保存于特殊的解码数据缓存器中。否则,它清除解码数据缓存器。然后,它继续该循环。CodeGate任务例程决不会自行退出。当对其它事件起反应时它可以由该系统中的其它模块撤消。例如,当用户拉动触发开关2C时,事件TRIGGER_ON被公布给该应用。负责处理此事件的应用软件检查CodeGate任务是否正在运行,并且如果是这样,则它撤消此任务,然后开始主任务。在当用户把条形码读取器移动离开该对象时或者当用户把该对象移动离开条形码读取器时所公布的OBJECT_DETECT_OFF事件时,也可以撤销该CodeGate任务。当在本公开内容的照明和成像平台上要实施编程的“半自动触发”系统操作模式时,CodeGate任务例程被使能(用主任务)。
窄区域照明任务是简单的例程,当在本公开内容的照明和成像平台上要实施编程的“手动触发”系统操作模式时,该例程序被使能(用主任务)。然而,此例程决不与CodeGate任务同时被使能。如图13D的事件流程图中所示, CodeGate任务或窄区域照明任务用主任务例程来使能以实现本文所描述的多样种类的系统操作。
取决于基于成像的条形码符号读取器被配置于的系统模式,主任务典型地将不同地执行。例如,当基于成像的条形码符号读取器被配置在半自动触发多企图1D/2D单读取模式(Semi-Automatic-trigered Multiple-Attempt 1D/2D Single-Read Mode)下,该主任务首先检查解码数据缓存器是否包含被CodeGate任务解码的数据。如果是这样的,则它通过执行数据输出过程,立即把该数据发送出去给用户并退出。否则,主任务以循环方式做下列事:它对视场的整个区域进行照明并且获取该区域的全帧图像。它试图读取所捕获图像的条形码符号。如果它成功读取了条形码符号,那么它通过执行数据输出过程,立即把该数据发送出去给用户并退出。否则,它继续该循环。特别地,在成功读取时并且在执行数据输出过程之前,主任务针对“读取器编程”命令或命令序列而分析解码数据。如果必要,它执行MetroSelect功能性。当对其它事件起反应时,主任务可以被该系统内的其它模块撤消。例如,本公开内容的条形码读取器可以使用标准的计量(Metrologic)配置方法来重新配置,诸如MetroSelec®和MetroSet®。MetroSelect功能性在主任务期间被执行。
MetroSet功能性由特殊的MetroSet任务执行。当Focus RS232软件驱动器在其通信线路上检测到特殊的空信号时,它向该应用公布METROSET_ON事件。负责处理此事件的应用软件使MetroSet任务开始。一旦MetroSet任务完成,扫描器就返回到其正常操作。
插件控制器(即,管理器)的功能是读取配置文件并查找插件和配置文件库内的插件库,并将插件安装到操作系统的存储器中以用于将来访问,该操作系统向插件管理器返回指示该插件已经被安装在哪里的地址。如下文中将更加详细地描述的,插件开发平台支持增强、扩展和/或修改基于图像处理的条形码符号读取系统的特征和功能性的插件的开发,并且一旦开发了,把开发的插件上载在操作系统层的文件系统内,同时将这样的插件的地址存储在应用层中的插件和配置文件库内。
通过使适当的软件系统修改被该系统支持,可以在本公开内容的照明和成像平台上容易地实施其他系统操作模式。
本公开内容的基于成像的条形码符号读取器中采用的系统软件架构的应用层内
的操作系统层软件模块
设备驱动软件模块,其包括触发驱动器,提供用于建立与基于成像的设备上采用的基于硬件的手动激励触发开关2C的软件连接的手段;图像获取驱动器,用于在基于成像的设备上实施图像获取功能性;和IR驱动器,用于在基于成像的设备上实施对象检测功能性。
设备驱动软件模块包括:触发驱动器,用于建立与本公开内容的基于成像的条形码符号读取器上采用的基于硬件的手动激励触发开关2C的软件连接;图像获取驱动器,用于在基于成像的条形码符号读取器上实施图像获取功能性;和IR驱动器,用于在基于成像的条形码符号读取器上实施对象检测功能性。
依据本公开内容的原理用于在数字图像捕获及处理系统内修改和/或扩展系统特
征和功能的方法和装置
现在参考图6到图7F,下面现在将详细描述用于在本公开内容的数字图像捕获及处理系统内扩展标准系统特征和功能的方法和装置。虽然可以理解,为了举例说明本公开内容的新颖插件编程方法的目的,能够引用本文所描述和公开的任何数字图像捕获及处理系统,其在图6到图8中描述,为了举例说明而非限制的目的,将参考图2A到图5中示出的基于数字成像的条形码读取系统。
如图6的块A中所指示的,第一步骤涉及基于成像的条形码符号读取系统(具有多层软件架构)的“系统设计者”,确定该系统的哪些“特征”(由应用层中调用的任务实施)和在任何给定特征内的哪些功能将可由端用户和/或第三方人员(除了原始设计者和制造者之外,例如VAR、端用户、消费者等人)修改和/或扩展,所述端用户和/或第三方人员不具有该系统的硬件平台、其与外部环境的通信接口或其用户接口的详细知识。由系统设计者进行的此步骤建立了关于由其它人进行的系统修改的约束,然而提供了关于如何对系统进行修改以满足端用户应用的定制需求的自由度。
如图6的块B中所指示的,基于这样的确定,系统设计者设计并制作本公开内容的基于图像处理的条形码读取系统,其中除了系统设计者之外的人(例如端用户和第三方)被容许修改和/或扩展由系统设计者(即,原始产品/系统的设计者)在块A中指定的原始产品/系统的系统特征和功能。
如图6的块C中所指示的,除了系统设计者之外的人,然后确定他们希望修改和/或扩展哪些可修改和/或可扩展的系统特征和功能以满足特定的端用户应用需求集。
如图6的块D中所指示的,对于该系统中要修改的每个可修改特征/功能,除了系统设计者之外的人开发“插件模块”(第三方代码或“软件对象”)以实现设计的定制系统特征,其后他们将该插件模块(即,第三方代码)安装在该多层系统的应用层中的适当的(一个或多个)库内。
如图6的块E中所指示的,通过发送来自主机系统的通信或通过读取功能重新配置的条形码符号,除了系统设计者之外的人重新配置与该系统内的每个可修改和/或可扩展的特征相关联的功能。
已经提供了本公开内容的系统特征/功能性修改方法的简要概述,特别地,现在它是为了更加详细地描述这些方法步骤参考图4以及图6到图7F。
在该说明性实施例中,如图4中所示,存储在插件和配置文件库中的每个插件模块,由软件库(对象模块)和配置文件集构成。它们可以从外部主机系统(诸如主机PC上实施的插件开发平台)下载到基于图像处理的条形码符号读取系统,并使用各种标准或专用通信协议与该系统的OS层通信。在基于图像处理的条形码符号读取系统中,在接收到来自主机系统的适当命令时此操作由Metroset任务或用户命令管理器(见软件框图)执行。一旦下载完成,就把插件文件存储在基于图像处理的条形码符号读取系统的文件系统中。
对所有插件模块(即,第三方代码)的管理由图4中所示的插件控制器执行。插件控制器能够执行各操作,诸如:从文件系统加载(安装)插件模块到基于图像处理的条形码符号读取系统的可执行存储器,并且执行插件库与该应用的动态链接;卸载(卸掉)该插件模块;提供该插件模块(即,第三方代码)(即,占位符)的可执行地址给该应用;提供关于插件模块的附加信息给该应用,诸如如插件配置文件中所描述的插件约定的规则。
基于图像处理的条形码符号读取系统的任何任务能够从插件控制器请求关于插件模块的信息和/或请求对它的操作。对于预定特征集,应用任务能够请求插件控制器检查第三方插件模块的可用性,并且如果这样的模块可用,则安装它并提供其可执行地址以及插件约定的规则。然后所述任务能够替代或者连同实施该特定特征的“标准”模块一起而执行它。插件模块约定的规则,即确定该插件模块是应当作为“标准”模块的替代还是应当作为补充模块来执行,对于该特定特征而言可以是唯一的。所述规则也可以规定补充的插件模块是应当首先执行、在“标准”模块之前执行还是在之后执行。此外,该插件模块,如果首先执行,能够向回指示该设备还应当调用该“标准”模块还是不调用,因此,这允许改变该设备的行为。针对允许该插件功能性的特征而对编程接口进行预定义,因此,这使得第三方能够针对该设备开发他们自己的软件。
作为第一且非常简单的示例,考虑该情况:基于图像处理的条形码符号读取系统的原始设备制造者(OEM)供应该系统的“标准”图像预处理模块(即,可执行二进制格式的“原始产品代码”)。典型地,在该系统获取该视场(FOV)中的对象的图像之后,此图像预处理模块会由该系统的主任务执行。根据本公开内容的原理,客户能将其自己的图像预处理软件作为插件模块(即,“第三方代码”)提供给基于多层软件的系统。特别地,第三方代码典型地以可执行二进制格式表示。该插件能够在“图像预处理插件配置文件”中描述,所述图像预处理插件配置文件例如具有如下所表示的格式:
//图像预处理配置文件
//类型 参数 库 功能
图7B中所阐述的流程图图示了图像预处理插件的逻辑。
作为第二个更有趣的示例,考虑图7C中所描述的图像处理和条形码解码插件。基于图像处理的条形码符号读取系统的原始设备制造者供应该系统的“标准”图像处理和条形码解码模块,在该系统获取图像之后其一般由主任务执行,如图7A中所指示。根据本公开内容的原理,客户能够将其自己的图像处理和条形码解码软件作为插件模块提供给基于多层软件的系统。该插件可以在“图像处理和条形码解码插件配置文件”中予以描述,所述图像预处理插件配置文件例如具有如下所表示的格式:
//解码插件配置文件
//类型 参数 库 功能
DECODE: 0x02 libdecode_plugin.so.1 ->PluginDecode
其中“DECODE”是标识该图像处理和条形码解码插件的关键词;其中“0x02”是标识插件的约定规则的值;其中“libdecode_plugin.so.1”是该设备的文件系统中插件库的名字;以及其中“PlugDecode”是实施特定于客户的图像处理和条形码解码功能性的插件功能的名字。
值“参数(param)”的各个位,该值“参数” 被用作指示此特定插件的约定规则的值,可能具有下列含义:
因此,值“0x02”意味着客户插件是补充的而不是替代的模块(位 “0”是0),并且在标准模块执行之后应当执行它(位“1”是1)。
位 含义
0 0=补充标准;1=替换标准
1 (如果 位0==0)0=在标准功能之前调用;1=在标准功能之后调用
2 保留
… …
作为第三示例,考虑图7E中所描述的图像处理和条形码解码插件。该基于图像处理的条形码符号读取系统的原始设备制造者供应该系统的“标准”图像处理和条形码解码模块,在该系统获取图像之后,一般由主任务执行该“标准”图像处理和条形码解码模块,如图7A中所指示的。依据本公开内容的原理,客户可以把其自己的图像处理和条形码解码软件作为插件模块提供给基于多层软件的系统。该插件能够在“图像处理和条形码解码插件配置文件”中予以描述,其例如具有如下面所表示的格式:
//数据格式化插件配置文件
//类型 参数 库 功能
图7E中所阐述的框图图示了该数据格式化过程插件的逻辑。
根据本公开内容的原理,上面描述的插件提供了许多种类插件(对象)的几个示例,这些插件被开发使得允许除了系统设计者之外的人能够修改该系统的允许特征和功能。针对其已经开发了插件模块并且安装在基于图像处理的条形码符号读取系统中的其它系统特征和功能性包括,但不限于,控制由下列系统支持并执行的功能:基于IR的对象存在和范围检测子系统12;多模式区域型图像形成和检测(即,照相机)子系统13;基于LED的多模式照明子系统14;自动曝光测量和照明控制子系统15;图像捕获和缓冲子系统16;多模式图像处理条形码符号读取子系统17;输入/输出子系统18;可手动激励的触发开关2C;系统模式配置参数表70;系统控制子系统18;和可以集成在基于图像处理的条形码符号读取系统内的任何其它子系统。
已经描述了能够由除了OEM系统设计者之外的人创建的插件模块的结构和功能,现在它是为了参考图4和图5描述本公开内容的插件开发平台的说明性实施例。
在说明性实施例中,该系统的系统设计者/OEM(例如,Metrologic Focus™1690图像处理条形码读取器)将向插件开发者提供例如包含下列软件工具的CD:
·用于Linux PC的Arm Linux Toolchain
此目录包含用于IBM兼容的Linux PC的Arm Linux交叉编译工具链包。
·用于Cygwin的Arm Linux Toolchain
此目录包含用于IBM兼容的Windows PC的Arm Linux交叉编译工具链包。Cygwin软件必须在使用此交叉编译工具链之前安装。
·Plug-in Samples (插件样本)
此目录包含样本插件开发项目。该插件软件必须在IBM兼容的Linux PC上使用用于Linux PC的Arm Linux Toolchain进行编译或者在具有安装的Cygwin软件的Windows PC上使用用于Cygwin的Arm Linux Toolchain进行编译。
·FWZ Maker
此目录包含用于Windows PC的程序FWZ Maker的安装包。此程序被用来构建FWZ文件以便下载到Focus 1690扫描器中。
·最新的Metrologic®Focus™软件
此目录包含具有最新的Metrologic®Focus™扫描器软件的FWZ文件。
插件软件开发过程的第一步涉及通过在主机/开发者计算机系统上安装上面的工具来配置该插件开发者平台。下一步涉及经由该主机插件开发者平台使用该系统的通信端口和插件开发者计算机之间的通信电缆,把系统软件安装到图像处理条形码读取器上,如图10和11中所示。
为了开发插件软件,在插件开发者平台(即,Linux PC)上或在Windows Cygwin中开发对应的共享库,然后开发适当的插件配置文件。随后,在开发例如图像捕获及处理设备的插件的情况下,把插件配置文件加载到“/usr”目录,所述图像捕获及处理设备诸如Metrologic的Focus™图像处理条形码读取器。在此说明性实施例中,插件配置文件的每行都包含关于以下列格式的插件功能的信息:
插件类型: 参数: 文件名 ->功能名
其中插件类型是所支持的插件类型关键字之一,其后面是字段分隔符“:”;其中参数是一数字(如果以0x开头,则可能是十进制或十六进制的),其对于一些插件功能而言具有特定且唯一的含义。该参数还称作“调用-模式”,因为它可以提供关于应该如何调用该插件的某特定信息。不需要该参数,则可以将其省略。如果指定了,那么该参数必须后跟字段分隔符“:”;
其中文件名是共享库的名字,后跟文件名分隔符“->”。该文件名能够包含至该库的完整路径。如果该路径被省略,则假设该库位于Focus扫描器中的“/usr/local/lib”中或“/usr/lib/”目录中。因此,如插件配置文件所规定的,确保共享库被加载到扫描器中的正确目录是非常重要的;以及
其中功能名是对应的插件C功能的名字。
特别地,插件配置文件还可以包含单行C形式的注释。
由插件开发者的判断力来决定(系统设计者所支持的那些中的)哪些插件功能应当被包括在该插件模块(即,“对象”)中。一旦构建了共享库并在插件开发平台上制备了配置文件(如图4和图5所图示的),插件开发者于是就能够生成FWZ文件,并且使用Windows PC上的FWZ Maker程序将该配置文件和共享库包括在它之中。此后,例如使用Metrologic的Metroset 程序的Flash Utility工具,能够把该FWZ文件下载到Metrologic的Focus™图像处理条形码读取器。
在为Metrologic的Focus™图像处理条形码读取器安装插件软件的情况下,推荐不使用动态存储器分配,并且实行静态缓冲器而不是动态地分配它们。就文件系统而言,如果把数据存储在文件中是必要的,则推荐诸如“/usr/”和“/usr/local”之类的位置来存储非易失性闪速存储器中的数据;使用“/tmp”目录存储RAM中的数据。
数字图像捕获及处理系统中的编程条形码和编程模式
在该说明性实施例中,可以经由扫描特殊的编程条形码或者通过从主机计算机(即,插件开发计算机)把等价数据发送到读取器来改变本公开内容的图像处理条形码读取器的配置。编程条形码惯常是具有Fn3码字的128码符号。
当扫描编程条形码时,读取器可以处于或不处于其所谓的编程模式下。当读取器不处于其编程模式下时,该编程条形码的效果被假定为立即的。另一方面,当读取器处于其编程模式时,在该编程模式期间读取的所有编程条形码的效果应当发生在读取器退出编程模式的时侯。
存在为插件软件配置目的所保留的特殊编程条形码集。这些条形码具有至少4个数据字符,并且前三个数据字符是“990”。推荐(但不要求)解码插件使用具有6个字符长,以“9900xx”开始的编程条形码。推荐(但不要求)图像预处理插件使用具有6个字符长,以“9901xx”开始的编程条形码。推荐(但不要求)格式化插件使用具有6个字符长,以“9902xx”开始的编程条形码。
按照本公开内容的原理,一旦已经开发了插件模块,就能够通过简单地下载空的插件配置文件来卸载该插件。例如为了卸载解码插件,把空的“decode.plugin”文件到OS层内的文件系统的“/usr”目录中,如图10中所示。
关于说明性实施例的解码插件的细节
解码插件的目的是为在该系统上提供的标准条形码解码提供替换或补充的条形码解码软件。解码插件可以具有下列插件功能:
DECODE; DECODE_ENABLE2D; DECODE_PROGMD; DECODE_PROGBC。
DECODE插件功能
调用此功能以从存储器中的给定图像执行条形码解码。在存储器中图像被表示为8位像素的二维数组。该数组的第一像素表示该图像的左上角。
功能原型:
int /*返回:已解码的条形码的数;如果出错则为负*/
(*PLUGIN_DECODE)(
void *p_image, /*输入:图像的指针*/
int size_x, /*输入:列的数目*/
int size_y, /*输入:行的数目*/
int pitch, /*输入:行的大小,以字节为单位*/
DECODE_RESULT *p_decode_results, /*输出:解码结果*/
int max_decodes, /*输入:允许的最大解码结果*/
int *p_cancel_flag); /*输入:如果不为空,则撤销标志的指针*/
注意p_decode_results指向存储器中的位置,在该位置解码插件功能应当以DECODE_RESULT结构的数组的形式存储一个或多个条形码解码结果(当然如果插件对给定图像中的一个或多个条形码进行了成功解码的话)。允许的解码结果的最大数目(即,该数组的大小)在max_decodes中给出。该插件必须返回成功解码的条形码的数目(即,数组p_decode_results中的所填充元素的数目),或者在出错的情况下返回负数。
如果p_cancel_flag不为空,则它指向整数标志(被称为“撤销标志”),其指示解码过程应当继续还是应当尽可能快地停止。如果标志是为0,则该解码过程可以继续。如果标志不为0,则该解码过程必须尽可能快地停止。中止解码过程的原因例如可能是超时。推荐经常检查撤销标志,以使得关于中止解码过程的等待时间尽可能地短。
注意,撤销标志不是可以中止解码插件(或关于那一点的任何插件)的唯一方式。取决于境况,在任何时间,该系统能够决定突然地取消解码插件正运行于其中的线程。
结构DECODE_RESULT
该结构DECODE_RESULT具有下列格式:
#define MAX_DECODED_DATA_LEN 4096
#define MAX_SUPPL_DATA_LEN 128
typedef struct {
int x;
int y;
} BC_POINT;
typedef struct {
BC_POINT BCPts[4]; /*条形码四角的坐标*/
} BC_BOUNDS;
BC_BOUNDS结构中的数组元素(即,角)的次序如下:
0- 左上角
1- 右上角
2- 右下角
3- 左下角
typedef struct {
int decode_result_index; /*解码结果的索引,从0开始*/
int num_decode_results; /*解码结果的总数减1(即,以0为基础)*/
char SymId[32]; /*该符号体系标识符字符*/
int Symbology; /*经解码的条形码的符号体系标识符号*/
int Modifier; /*经解码的条形码的附加信息*/
int DecId; /*保留*/
int Class; /*1针对一维,2针对二维*/
unsigned char Data[MAX_DECODED_DATA_LEN]; /*解码的数据-可以包含空字符*/
int Length; /*经解码的条形码中字符的数目*/
unsigned char SupplData[MZX_SUPPL_DATA_LEN]; /*补充码的数据*/
int SupplLength; /*补充码的数据中的字符数*/
unsigned char LinkedData[MAX_ DECODED _DATA_LEN];
int LinkedLength;
BC_BOUNDS C_Bounds; /*主条形码的边界*/
BC_BOUNDS S_Bounds; /*补充条形码的边界*/
} DECODE_RESULT;
每个填充的DECODE_RESULT结构的前两个成员必须包含该数组中解码结果的以零为基础的索引(即,第一解码结果必须具有decode_result_index=0,第二解码结果必须具有decode_result_index=1,等等),和以零为基础的成功解码的条形码的总数目(其应当等于返回的值减1)。
DECODE_RESULT结构的SymId成员可以具有多达31个的以空结尾的描述条形码符号体系的字符的字符串。其仅仅用于指示的目的。对于一些已知的条形码符号体系推荐下列值。
“AZTEC” Aztec (阿兹特克)
“CBR” Codabar (库德巴码)
“CBK_A” Codablock A
“CBK_F” Codablock F
“C11” 11码
“C128” 128码
“C39” 39码
“C93” 93码
“DM” Datamatrix
“S2O5” 直式二五码(Straight 2 of 5)
“I2O5” 交叉二五码
“MC” MexiCode
“PDF” PDF码
“QR” QR码
“RSS-E” RSS-E码
“RSS-EST” RSS-EST码
“RSS14-LIM” RSS Limited码
“RSS14” RSS-14码
“RSS14-ST” RSS-ST码
“UPC” UPC/EAN码
DECODE_RESULT结构的符号体系成员必须包含解码的条形码符号体系的标识(id)。对于已知条形码符号体系必须使用下列符号体系id:
MBCD_SYM_C128 128码
MBCD_SYM_C39 39码
MBCD_SYM_ITF 交叉二五码
MBCD_SYM_C93 93码
MBCD_SYM_CBR Codabar
MBCD_SYM_UPC UPC/EAN码
MBCD_SYM_TPEN Telepen
MBCD_SYM_RSS14 RSS-14码
MBCD_SYM_RSSE RSS-E码
MBCD_SYM_RSSL RSS Limited码
MBCD_SYM_MTF 矩阵二五码(Matrix 2 of 5)
MBCD_SYM_ATF 航空二五码(Airline 2 of 5)
MBCD_SYM_STF 直式二五码
MBCD_SYM_MPLY MSI Plessey
MBCD_SYM_C11 11码
MBCD_SYM_PDF PDF码
MBCD_SYM_PN Postnet
MBCD_SYM_DM Datamatrix
MBCD_SYM_MC MaxiCode
MBCD_SYM_QR QR码
MBCD_SYM_AZ Aztec
MBCD_SYM_MICROPDF MicroPDF
MBCD_SYM_CBLA 1Codablock A
MBCD_SYM_CBLF Codablock F
MBCD_SYM_UNKNOWN 用户定义的符号体系
DECODE_RESULT结构的Modifier(修改器)成员包含关于解码的条形码的附加信息。Modifier的值通常是位组合的。对于不同的符号体系而言它们是唯一的,并且许多符号体系根本不使用它。如果未使用Modifier,则它应当设定为0。对于支持Modifier的一些符号体系,可能的值呈现如下。
优惠券Modifier
MBCD_MODIFIER_COUP 优惠券码
UPC Modifier位标志常量
MBCD_MODIFIER_UPCA UPC-A
MBCD_MODIFIER_UPCE UPC-E
MBCD_MODIFIER_EAN8 EAN-8
MBCD_MODIFIER_EAN13 EAN-13
MBCD_MODIFIER_SUPP2 2数位增补(2-digit supplement)
MBCD_MODIFIER_SUPP5 5数位增补
128码 Modifier位标志常量
MBCD_MODIFIER_C128A 具有A开始字符的128码
MBCD_MODIFIER_C128B 具有B开始字符的128码
MBCD_MODIFIER_C128C 具有C开始字符的128码,但不是EAN128
MBCD_MODIFIER_EAN128 EAN-128
MBCD_MODIFIER_PROG 编程标签(忽略所有其它考虑)
MBCD_MODIFIER_AIM_AI 具有AIM应用指示器的128码
39 码Modifier位标志常量
MBCD_MODIFIER_ITPHARM 意大利制药
库德巴码Modifier位标志常量
MBCD_MODIFIER_CBR_DF 双字段(Double-Field)库德巴码
POSTNET iModifier位标志常量
MBCD_MODIFIER_PN POSTNET
MBCD_MODIFIER_JAP 日本邮政
MBCD_MODIFIER_AUS 澳大利亚邮政
MBCD_MODIFIER_PLANET PLANET
MBCD_MODIFIER_RM 英国皇家邮政
MBCD_MODIFIER_KIX KIX码
MBCD_MODIFIER_UPU57 UPU(57-bar(条))
MBCD_MODIFIER_UPU75 UPU(75-bar(条))
Datamatrix Modifier位标志常数
MBCD_MODIFIER_ECC140 ECC 000-140
MBCD_MODIFIER_ECC200 ECC 200
MBCD_MODIFIER_FNC15 ECC 200, FNC 1在第一或第五位置
MBCD_MODIFIER_FNC26 ECC 200, FNC 1在第二或第六位置
MBCD_MODIFIER_ECI ECC 200,实施的ECI协议
MBCD_MODIFIER_FNC15_ECI ECC200, FNC 1在第一或第五位置,ECI协议
MBCD_MODIFIER_FNC26_ECI ECC200, FNC 1在第二或第六位置,ECI协议
MBCD_MODIFIER_RP 读取器编程代码
MaxiCode Modifier Bit Flag 常数
MBCD_MODIFIER_MZ 在模式0下的符号
MBCD_MODIFIER_M45 在模式4或5下的符号
MBCD_MODIFIER_M23 在模式2或3下的符号
MBCD_MODIFIER_M45_ECI 在模式4或5下的符号,ECI协议
MBCD_MODIFIER_M23_ECI 在模式2或3下的符号,ECI协议
DECODE_RESULT结构的DecId成员当前未使用,则应当设定为0。
DECODE_RESULT结构的Class成员必须被设定为1或2。如果经解码的条形码是规则线性条形码,诸如UPC、39码、RSS等等,则Class应当设定为1。如果经解码的条形码是2D符号体系,诸如PDF码,Datamatrix,Aztec,MaxiCode等等,则Class应当设定为2。
DECODE_RESULT结构的Data成员包含被解码数据。它能够包含多达MAX_DECODED_DATA_LEN字节的数据。
DECODE_RESULT结构的Length成员指定了在Data中存储了多少个字节的被解码数据。
DECODE_RESULT结构的SupplData成员包含该条形码的补充部分中解码的数据,诸如优惠券。它能包含多达MAX_DECODED_DATA_LEN字节的数据。
DECODE_RESULT结构的SupplLength成员指定了在SupplData中存储了多少个字节的被解码数据。
DECODE_RESULT结构的LinkedData成员包含在该组合条形码的次级部分中解码的数据,诸如RSS/PDF组合。它能够包含多达MAX_DECODED_DATA_LEN字节的数据。
DECODE_RESULT结构的LinkedLength成员指定了在LinkedData中存储了多少个字节的被解码数据。
DECODE_RESULT结构的C_Bounds和S_Bounds成员目前未使用。
DECODE插件调用模式
DECODE插件具有下列调用模式值:
位 值
0<--0=补充标准;1=替换标准
1<--(如果 位0==0)0=在标准功能之前调用;1=在标准功能之后调用
缺省调用模式值是0,意味着通过缺省把DECODE插件视为标准Focus条形码解码软件的补充模块,并且在该标准功能之前执行。在此情况下,仅当从DECODE插件返回的结果为非负并且小于max_decodes的时候将调用标准功能。
DECODE_ENABLE2D 插件功能
调用此功能以通知插件扫描器进入应当允许或者不允许对2D符号体系(诸如PDF417、Datamatrix等等)的解码的操作模式。通过缺省,允许对2D符号体系的解码。
功能原型
void
(*PLUGIN_ENABLE2D)(int enable); /*输入:0=禁用;1=使能 */
例如,当Focus扫描器被配置为工作在线性模式(与全向模式相反)下时,不允许对2D符号体系的解码。
DECODE_PROGMD插件功能
调用此功能以通知插件,扫描器进入编程模式。
功能原型:
void
(*PLUGIN_PROGMD)(int progmd); /*输入:1=进入;0=正常退出;(-1)=中止*/
DECODE_PROGBC插件功能
调用此功能以通知插件,扫描器刚刚扫描了一编程条形码,为了其配置目的,其可以由该插件使用。
功能原型
int /*如果成功,则返回1;如果条形码无效,则返回0;如果错误,则返回负*/
(*PLUGIN_PROGBC)(unsigned char *bufferptr,
int data_len);
关于本公开内容的说明性实施例的图像处理插件的细节
图像处理插件的目的是允许该插件就在图像获取之后且在条形码解码之前执行一些特殊的图像处理的权利。图像处理插件具有下列插件功能:
IMGPREPR; IMGPREPR_PROGMD; IIMGPREPR_PROGBC.
IMGPREPR插件功能
调用此功能以执行图像预处理。在存储器中把该图像表示为8位像素的二维阵列。该阵列的第一像素表示该图像的左上角。
功能原型:
int /*如果预处理完成,则返回1;如果没完成,则返回0;如果错误,则返回负*/
(*PLUGIN_IMGPREPR)(
void *p_image, /*输入:图像的指针*/
int size_x, /*输入:列数*/
int size_y, /*输入:行数*/
int pitch, /*输入:行的大小,以字节为单位*/
void **pp_new_image, /*输出:新图像的指针*/
int *p_new_size_x, /*输出:新的列数*/
int *p_new_size_y, /*输出:新的行数*/
int *p_new_pitch); /*输出:新的行大小,以字节为单位*/
如果IMGPREPR插件功能成功,它应当返回1并将新图像的地址存储在存储器中由pp_new_image所指向的位置中。新图像的尺寸应当存储在由p_new_size_x, p_new_size_y和p_new_pitch指向的位置中。
无论什么原因,如果预处理没有执行,则IMGPREPR插件功能必须返回0。
返回负的值指示错误。
IMGPREPR_PROGMD插件功能
调用此功能通知插件,扫描器进入编程模式。
功能原型:
void
(*PLUGIN_PROGMD)(int progmd); /* 输入:1=进入;0=正常退出;(-1)=中止*/
IMGPREPR_PROGBC插件功能
调用此功能以通知插件,扫描器刚刚扫描了编程条形码,为了其配置目的,其可以由该插件使用。
功能原型:
int /*如果成功,则返回1;如果条形码无效,则返回0;如果错误,则返回负*/
(*PLUGIN_PROGBC)(unsigned char *bufferptr,
int data_len);
关于说明性实施例的格式化插件的细节
格式化插件的目的是对标准数据格式化软件提供替换或补充软件。格式化插件配置文件必须具有名称“format.plugin”,并且被加载在扫描器中的“/usr”目录中。
格式化插件目前具有下列插件功能:
PREFORMAT; FORMAT_PROGMD; FORMAT_PROGBC。
PREFORMAT插件功能
调用此功能以在数据被实际格式化和发送出去之前执行对解码的条形码数据的必要转换。
功能原型:
int /*如果预格式化完成,则返回1;如果没有,则返回0;如果错误,则返回负*/
(*PLUGIN_PREFORMAT)(
DECODE_RESULT *decode_results, /*输入:解码结果*/
DECODE_RESULT *new_decode_results, /*输出:预格式化的解码结果*/
如果PREFORMAT插件功能成功,则应当返回1并将新的解码结果存储于存储器中指向new_decode_results的位置。
无论什么原因,如果预格式化没有执行,则PREFORMAT插件功能必须返回0。
返回负的值指示错误。
关于DECODE_RESULT结构的细节,请参考部分DECODE插件功能。
FORMAT_PROGMD插件功能
调用此功能通知插件,扫描器进入编程模式。
功能原型:
void
(*PLUGIN_PROGMD)(int progmd); /*输入:1=进入;0=正常退出;(-1)=中止*/
FORMAT_PROGBC插件功能
调用此功能通知插件,扫描器刚刚扫描了编程条形码,为了其配置目的,其可以由该插件使用。
功能原型:
int /*如果成功,则返回1;如果条形码无效,则返回0;如果错误,则返回负*/
(*PLUGIN_PROGBC)(unsigned char *bufferptr,
int data_len);
上面描述的对系统特征/功能性修改的方法能够在多样的应用环境中实践,所述应用环境不限于在上文中描述的基于图像处理的条形码符号读取系统。总的来说,对于本公开内容的实践而言,支持应用软件层和至少图像捕获机制和图像处理机制的任何图像捕获及处理系统或设备都会是适合的。因此,图像捕获蜂窝电话、数字照相机、摄影机和便携式或移动计算终端以及便携式数据终端(PDT)都是能够实践本公开内容的适合系统。
而且,可以理解,如图4中所图示的,本公开内容的图像处理条形码符号读取系统的应用层,其具有用于使用上面描述的插件开发技术修改系统特征和功能性的上述工具,该应用层能够移植(port over)以便在常规移动计算设备、PDA、便携式个人计算机(PC)和支持图像捕获及处理功能并且被提供有适合的用户和通信接口的其它便携式设备上执行。
上面描述的本公开内容的图像捕获及处理系统能够在各种硬件计算平台上实施,所述硬件技术平台诸如配备有CMOS传感器、触发开关等等的Palm®,PocketPC®,MobilePC®, JVM®,等等。在这样的说明性实施例中,通过用任何操作系统(OS),诸如Palm,PocketPC,Apple OSX等来替换低层Linux OS(本文所描述的),能够容易地修改本公开内容的三层系统软件架构。
此外,假定上文中所描述的中层SCORE子系统支持配备有一种形式或另一种形式的触发开关、图像传感器等等的特定硬件平台,并且假定针对该平台编译了该相同的(或类似的)顶层“码符号读取系统”应用,任何通用的(移动)计算设备可以变换为具有图2A到图5中示出并且在上文中详细地描述的系统的条形码符号读取功能性的图像捕获及处理系统。在本公开内容的这样的替换实施例中,能够容许第三方客户编写他们自己的软件插件以增强或修改在通用的移动计算平台上实现的图像捕获及处理设备的行为,无需任何底层硬件平台、通信协议和/或用户接口的知识。
用于高级功能性的图像捕获及处理系统的第三方编程模块化软件架构的技术
如上所指示的,所有插件模块的管理由插件控制器执行,如图4中所示,其能够执行数个操作,所述操作诸如,像:从文件系统把插件模块加载(安装)到该系统的可执行存储器并且执行插件库与该应用的动态链接;卸载(卸掉)该插件模块;提供插件模块(即,第三方代码)的可执行地址(即,占位符)给该应用;提供关于插件模块的附加信息给该应用,诸如如在插件配置文件中所描述的插件约定的规则。
对于预定特征集,应用任务能够请求插件控制器检查第三方代码模块的可用性,如果这样的模块是可用的,则安装它并且提供其可执行地址以及插件约定的规则。然后所述任务能够代替实施该特定特征的“标准”模块或连同该“标准”模块一起而执行它。该插件模块约定的规则(即,确定插件模块应当作为“标准”模块的替换模块还是补充模块来执行),对于该特定特征而言可以是唯一的。所述规则还可以指定应当首先执行补充插件模块、在“标准”模块之前执行还是之后执行。此外,该插件模块,如果首先执行,则能够向回指示该设备是否应当调用“标准”模块,因此,这允许改变该设备的行为。为允许该插件功能性的特征预定义编程接口,因此,使得第三方能够针对该设备开发他们自己的软件。
如上所述,每个插件模块的配置文件包括可编程参数,由“param”指示,它的各个位值被用来指示该插件的约定的规则,即,例如,客户的插件是否是补充模块,而不是替换模块,且因此,应当在执行标准模块之后执行该插件模块。
虽然使用上面描述的插件模块配置文件中的“param”位能够指示在标准模块之后执行插件模块,但是存在许多通过执行下列行为会获益更多的应用:向插件配置文件添加更复杂的编程逻辑以使得通过链接或排序相同类型的多个第三方插件(例如,解码或格式化),客户能够对更复杂的系统、关于系统的行为进行编程。
具体地,通过在配置文件中提供控制(即,调整)对数字图像捕获及处理系统中的多个第三方插件的定序或链接的“条件”编程逻辑(即,包含条件编程逻辑的简单脚本),客户能够把更复杂的系统行为编程到数字图像捕获及处理系统中。例如,在解码阶段期间,一个能够配置多个插件并允许它们并行执行或顺序方式地执行。在格式化阶段期间,一个插件的输出能够提供至下一个插件或后续插件的输入,等等。通过向针对多个第三方插件的配置文件提供这样的条件逻辑,第三方能够在多个插件之间实现交互和配置,并且达到了增强的系统功能性。
对本公开内容的模块化软件开发平台上的插件配置文件的这样的改进,将允许单独的第三方插件代码根据各种类型的输入/输出关系与彼此进行交互和通信,从而增强了成像器的功能性。在说明性实施例中,当使用此技术时,能够把多个(例如,多达10个)相同类型的应用插件(例如,解码或格式化)链接、排序或定序在一起,以比插件单独地可能提供的更多的功能性。而且,能够容易地对这样的插件进行安装、删除、排序、使能/禁用,如上文中所描述的。
作为说明性示例,考虑了将三个独立的插件(例如,驱动器的许可解析插件,登机牌解析插件和TSA安全插件)加载到存储器中,然后(通过他们的配置文件)配置为不同地进行交互的情况。控制这三个插件的交互的配置文件将包括可能具有一个或多个IF[ ],THEN[ ]语句的“条件”编程逻辑,诸如,像:
(a) IF成功地解析了驱动器的许可,那么跳过登机牌。
THEN 在没有主机输出的情况下TSA安全插件在存储体中存储名字和姓。
(b) IF驱动器的许可未成功解析,THEN继续登机牌。
THEN 在没有主机输出的情况下TSA安全插件把来自登机牌的名字和姓存储在存储体中。
(c) WHEN TSA的安全插件的两个存储器体都满了,那么对姓名进行比较。
IF出现匹配,THEN激活蜂鸣声并使绿LED闪烁。
IF未出现匹配,THEN激活嘲弄声并使红LED闪烁。
动作完成之后清除存储体。
如上文中所描述的,插件功能性可以横跨根据本公开内容的任何数字图像捕获及处理系统使得能够实现众多功能,例如包括:(i)从图像提取数据(条形码读取、字体识别、标记识别、模式识别、颜色匹配等等);(ii)在把从图像提取的数据发送到主机系统之前对它的格式进行改变;(iii)通过提供转换库对竞争性扫描器配置进行仿真,所述转换库查看进入的被扫描数据,并且如果它匹配于竞争性编程命令,则把它转换为目标命令,以使得该系统能够适当地做出相应;(iv)基于成功、失败或由任何给定插件模块触发的步骤改变用户响应(例如,蜂鸣/LED/振动)。
在图像捕获及处理系统上插件链接的使用具有许多应用,涉及驱动器的许可解析、机动车辆解析、优惠劵解析、制药文档解析等等。
使用说明性实施例的数字图像捕获及处理系统的插件架构的几个关键优点包括:(i)在不修改核心操作固件的情况下单独地添加/移除软件程序的能力;(ii)假设要遵循一套API/协议,独立开发的软件程序与彼此交互的能力;和(iii)基于诸如产品序列号或产品群ID之类的唯一设备标识符来唯一地激活/许可软件程序的能力。
容易想到的一些修改
当CMOS图像感测阵列技术被描述为正被用在本公开内容的优选实施例中时,可以理解,在替换实施例中,可以使用CCD型图像感测阵列技术以及其它种类的图像检测技术。
在上文中非常详细地描述的条形码读取器设计可以容易地适配为用作工业或商业固定位置条形码读取器/成像器,其具有通常用在工业界中的接口,诸如像以太网 TCP/IP。通过向该系统提供以太网TCP/IP端口,将能够使能多个有用的特征,诸如像:通过因特网至这样的条形码读取系统的多用户接入;对网络上来自单个用户应用的多条形码读取系统的控制;在实时视频操作中对这样的条形码读取系统的高效使用;这样的条形码读取系统的网络服务,即控制该系统或来自因特网浏览器的系统网络;等等。
虽然结合各种类型的涉及1D和2D条形码结构的条形码符号读取应用已经描述了本公开内容的说明实施例,可以理解,本公开内容可以被用于读取(即,识别)任何机器可读标记、数据表单或图形编码的智能形式,包括但不限于条形码符号结构、字母数字字符识别字符串、笔迹和本领域目前已知或将来开发的多样的数据表单。在下文中,术语“码符号”应当被认为包括所有这样的信息承载结构和其它图形编码的智能形式。
而且,本公开内容的基于成像的条形码符号读取器也可以用于在多样的用户应用中捕获和处理各种类的图形图像,包括印制在驾驶执照、许可证、信用卡、借记卡等上的相片和标记。
可以理解,说明性实施例的条形码符号读取系统中所采用的图像捕获及处理技术可以以多种形式进行修改,对于本领域获得本文所公开的新颖教导的益处的技术人员而言,所述多种形式将容易变得显而易见。其说明性实施例的所有这样的修改和变体应当被认为处于如附于此的权利要求所定义的本公开内容的范围和精神之内。
Claims (12)
1.一种修改和/或扩展数字图像捕获及处理系统的标准特征和功能的方法,所述方法包括步骤:
(a)提供具有标准特征和功能集以及计算平台的所述数字图像捕获及处理系统,所述计算平台包括(i) 存储器,用于存储由所述数字图像捕获及处理系统的原始设计者编写的数段原始产品代码,以及(ii) 微处理器,用于通过以特定顺序调用和执行数段所述原始产品代码来运行一个或多个应用,以便支持表征所述数字图像捕获及处理系统的标准行为的所述标准特征和功能集,
其中,一段或多段原始产品代码具有第三方能够把第三方产品代码嵌入或插入于其中的占位符集,所述第三方包括增值转售者(VAR)、原始设备制造者(OEM)和以及还包括所述数字图像捕获及处理系统的端用户;以及
(b)将多段第三方产品代码插入到所述占位符集中,以便进行操作以修改和/或扩展所述数字图像捕获及处理系统的特征和功能,并且由此将所述数字图像捕获及处理系统的标准行为修改或扩展为针对所述数字图像捕获及处理系统的定制行为;
其中所述多段第三方产品代码包括具有条件编程逻辑的配置文件,所述条件编程逻辑控制所述数字图像捕获及处理系统中的所述多段第三方产品代码的定序或链接。
2.如权利要求1所述的方法,其中所述一段或多段原始产品代码和所述第三方产品代码包括在一个或多个库中维护的可执行二进制代码;并且其中所述存储器包括具有不同种类的存储器的存储器架构,每一种类的存储器具有不同的访问速度和性能特性。
3.如权利要求1所述的方法,其中步骤(b)还包括根据所述原始系统设计者设定的规范编写所述多段第三方产品代码的端用户或第三方。
4.如权利要求3所述的方法,其中端用户或第三方是增值转售者(VAR)或原始设备制造者(OEM)。
5.如权利要求1所述的方法,其中步骤(a)还包括将所述数字图像捕获及处理系统集成或体现到选自由下列组成的组的第三方产品中:基于图像处理的条形码符号读取系统、便携式数据终端(PDT)、移动电话、计算机鼠型设备、个人计算机、键盘、家用电器、汽车、ATM、自动售货机、回收机、基于POS的零售交易系统、1D或2D数字化转换器、以及CAT扫描系统、汽车标识系统、包裹检查系统和个人标识系统。
6.如权利要求1所述的方法,其中还包括在步骤(b)之后,端用户使用具有所述数字照相机子系统的所述数字图像捕获及处理系统来形成和检测对象的一个或多个数字图像,以及其中所述数字图像处理子系统处理所述一个或多个数字图像,以便从所述一个或多个数字图像提取数据以进行条形码读取、字体识别、标记识别、模式识别和/或颜色匹配。
7.一种数字图像捕获及处理系统,其具有标准特征和功能集,以及满足定制的端用户应用需求的定制特征和功能集,所述数字图像捕获及处理系统包括:
数字照相机子系统,用于将视场FOV投射到所述FOV中要成像的对象上,并且在图像捕获模式下在照明操作期间检测从所述对象反射离开的成像光,所述对象的一个或多个图像是在所述图像捕获模式下由所述数字照相机子系统形成和检测的;
数字图像处理子系统,用于处理所述一个或多个数字图像,并产生原始的或经处理的数据,或识别或获取在所述一个或多个数字图像中图形表示的信息,以及生成表示已识别信息的输出数据;
输入/输出子系统,用于将所述输出数据传送到外部主机系统或其它信息接收或响应设备;
系统控制子系统,用于控制和/或协调上面所述子系统的操作;以及
计算平台,用于支持上面所述子系统中的一个或多个子系统的实施和所述数字图像捕获及处理系统的特征和功能;
所述计算平台包括:(i)存储器,用于存储由所述数字图像捕获及处理系统的原始设计者编写的多段原始产品代码,以及(ii)微处理器,用于通过以特定顺序调用和执行数段所述原始产品代码来运行一个或多个应用,以便支持表征所述数字图像捕获及处理系统的标准行为的标准特征和功能集;
其中所述多段原始产品代码具有第三方能够把多段第三方产品代码嵌入或插入于其中的占位符集,所述第三方包括增值转售者(VAR)、原始设备制造者(OEM)以及还包括所述数字图像捕获及处理系统的端用户;
其中已经插入到所述占位符集中的多段第三方产品代码,进行操作以扩展所述数字图像捕获及处理系统的特征和功能,以及把所述数字图像捕获及处理系统的标准行为修改为针对所述数字图像捕获及处理系统的定制行为;
其中由所述第三方操作的所述外部主机计算机系统与所述输入/输出子系统相接口,以便(i)将所述多段第三方产品代码加载到所述存储器中,以及(ii)将所述多段第三方产品代码插入到所述占位符集中,并且扩展所述数字图像捕获及处理系统的特征和功能,和把所述数字图像捕获及处理系统的标准行为修改为针对所述数字图像捕获及处理系统的所述定制行为,而不永久性地修改所述数字图像捕获及处理系统的所述标准特征和功能;以及
其中所述多段第三方产品代码包括具有条件编程逻辑的配置文件,所述条件编程逻辑控制所述数字图像捕获及处理系统中的所述多段第三方产品代码的定序或链接。
8.如权利要求7所述的数字图像捕获及处理系统,其还包括具有透光窗的外壳;其中所述FOV通过所述透光窗进行投射并且投射到所述FOV中要成像的对象上;以及其中所述外壳包含所述子系统。
9.如权利要求7所述的数字图像捕获及处理系统,其中所述多段原始产品代码和所述第三方产品代码均包括在一个或多个库中维护的可执行二进制代码。
10.如权利要求7所述的数字图像捕获及处理系统,其中端用户能够根据所述原始系统设计者设定的规范来编写一段或多段第三方产品代码。
11.如权利要求10所述的数字图像捕获及处理系统,其中所述端用户是增值转售者(VAR)或原始设备制造者(OEM)。
12.如权利要求7所述的数字图像捕获及处理系统,其被集成或体现到选自由下列组成的组的第三方产品中:基于图像处理的条形码符号读取系统、便携式数据终端(PDT)、移动电话、计算机鼠型设备、个人计算机、键盘、家用电器、汽车、ATM、自动售货机、回收机、基于POS的零售交易系统、1D或2D数字化转换器、以及CAT扫描系统、汽车标识系统、包裹检查系统、和个人标识系统;以及其中所述数字图像处理子系统处理所述2D数字图像,以便从所述2D数字图像提取数据以进行条形码读取、字体识别、标记识别、模式识别、和/或颜色匹配。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/008,215 US20110284625A1 (en) | 2005-12-16 | 2011-01-18 | Digital image capture and processing system supporting multiple third party code plug-ins with configuration files having conditional programming logic controlling the chaining of multiple third-party plug-ins |
US13/008,215 | 2011-01-18 | ||
US13/008215 | 2011-01-18 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102737215A CN102737215A (zh) | 2012-10-17 |
CN102737215B true CN102737215B (zh) | 2017-06-13 |
Family
ID=45528942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210061820.2A Active CN102737215B (zh) | 2011-01-18 | 2012-01-18 | 数字图像捕获及处理系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110284625A1 (zh) |
EP (1) | EP2477138B1 (zh) |
JP (2) | JP2012150808A (zh) |
CN (1) | CN102737215B (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7708205B2 (en) | 2003-11-13 | 2010-05-04 | Metrologic Instruments, Inc. | Digital image capture and processing system employing multi-layer software-based system architecture permitting modification and/or extension of system features and functions by way of third party code plug-ins |
US8485430B2 (en) | 2011-12-06 | 2013-07-16 | Honeywell International, Inc. | Hand held bar code readers or mobile computers with cloud computing services |
KR101867960B1 (ko) * | 2012-01-05 | 2018-06-18 | 삼성전자주식회사 | 매니 코어 시스템을 위한 운영체제 동적 재구성 장치 및 방법 |
US9041518B2 (en) | 2012-01-26 | 2015-05-26 | Hand Held Products, Inc. | Portable RFID reading terminal with visual indication of scan trace |
WO2013121267A1 (en) * | 2012-02-15 | 2013-08-22 | Mesa Imaging Ag | Time of flight camera with stripe illumination |
US8727225B2 (en) | 2012-04-20 | 2014-05-20 | Honeywell International Inc. | System and method for calibration and mapping of real-time location data |
US8881982B2 (en) | 2012-04-20 | 2014-11-11 | Honeywell Scanning & Mobility | Portable encoded information reading terminal configured to acquire images |
US9536219B2 (en) | 2012-04-20 | 2017-01-03 | Hand Held Products, Inc. | System and method for calibration and mapping of real-time location data |
US9013275B2 (en) | 2012-04-20 | 2015-04-21 | Hand Held Products, Inc. | Portable encoded information reading terminal configured to adjust transmit power level |
US9443119B2 (en) | 2012-04-20 | 2016-09-13 | Hand Held Products, Inc. | Portable encoded information reading terminal configured to locate groups of RFID tags |
US9558386B2 (en) | 2012-05-15 | 2017-01-31 | Honeywell International, Inc. | Encoded information reading terminal configured to pre-process images |
US9064254B2 (en) | 2012-05-17 | 2015-06-23 | Honeywell International Inc. | Cloud-based system for reading of decodable indicia |
US9092683B2 (en) | 2012-07-10 | 2015-07-28 | Honeywell International Inc. | Cloud-based system for processing of decodable indicia |
US9594939B2 (en) | 2013-09-09 | 2017-03-14 | Hand Held Products, Inc. | Initial point establishment using an image of a portion of an object |
US9323725B2 (en) * | 2014-01-24 | 2016-04-26 | E-Image Data Corporation | Multi-mode image capture systems and methods |
CN103793875B (zh) * | 2014-02-25 | 2017-11-24 | 厦门美图之家科技有限公司 | 一种支持第三方应用的图像处理系统 |
US11546428B2 (en) * | 2014-08-19 | 2023-01-03 | Hand Held Products, Inc. | Mobile computing device with data cognition software |
CA2966635C (en) * | 2014-11-21 | 2023-06-20 | Christopher M. Mutti | Imaging system for object recognition and assessment |
KR101619651B1 (ko) * | 2014-11-26 | 2016-05-10 | 현대자동차주식회사 | 운전자 감시장치 및 그의 조명제어방법 |
US9418272B2 (en) * | 2014-12-10 | 2016-08-16 | Oracle International Corporation | Configurable barcode processing system |
US9171193B1 (en) * | 2014-12-16 | 2015-10-27 | The Code Corporation | System and method for setting a real-time clock of a barcode reading device |
EP3040904B1 (en) | 2014-12-31 | 2021-04-21 | Hand Held Products, Inc. | Portable rfid reading terminal with visual indication of scan trace |
JP6302849B2 (ja) * | 2015-01-23 | 2018-03-28 | 東芝テック株式会社 | 物品認識装置、販売データ処理装置および制御プログラム |
JP6272810B2 (ja) * | 2015-09-30 | 2018-01-31 | 東芝テック株式会社 | 情報処理装置およびプログラム |
CN105704342B (zh) * | 2015-11-30 | 2018-12-18 | 用友网络科技股份有限公司 | 一种影像系统与流程平台集成方法 |
US10254382B2 (en) * | 2017-02-02 | 2019-04-09 | Osram Sylvania Inc. | System and method for determining vehicle position based upon light-based communication using signal-to-noise ratio or received signal strength indicator |
WO2019034975A1 (en) * | 2017-08-14 | 2019-02-21 | Imax Theatres International Limited | WIRELESS CONTENT DELIVERY FOR PAVED LED DISPLAY |
US10204253B1 (en) | 2017-12-01 | 2019-02-12 | Digimarc Corporation | Diagnostic data reporting from point-of-sale scanner |
WO2019118960A1 (en) * | 2017-12-17 | 2019-06-20 | Ramona Optics. Inc. | Unscanned optical inspection system using a micro camera array |
JP7132029B2 (ja) * | 2018-08-17 | 2022-09-06 | 東芝テック株式会社 | コードシンボル読取装置及びプログラム |
CN110968001B (zh) * | 2019-12-02 | 2024-06-18 | 杭州沃镭智能科技股份有限公司 | 一种基于fpga+mcu的高速模拟量采集板卡 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5932862A (en) * | 1994-03-04 | 1999-08-03 | Welch Allyn, Inc. | Optical reader having improved scanning-decoding features |
US6321989B1 (en) * | 1991-09-17 | 2001-11-27 | Metrologic Instruments, Inc. | Method and apparatus for programming system function parameters in programmable code symbol readers |
CN1767532A (zh) * | 2005-11-29 | 2006-05-03 | 大连维深自动识别技术有限公司 | 开放式超高频射频识别协议平台 |
CN101789066A (zh) * | 2009-12-31 | 2010-07-28 | 上海量科电子科技有限公司 | 移动终端对射频识别权限许可的控制系统及其实现方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5965863A (en) | 1994-03-04 | 1999-10-12 | Welch Allyn, Inc. | Optical reader system comprising local host processor and optical reader |
US5929418A (en) | 1994-03-04 | 1999-07-27 | Welch Allyn, Inc. | Optical reader having improved menuing features |
US5942741A (en) | 1994-03-04 | 1999-08-24 | Welch Allyn, Inc. | Apparatus for optimizing throughput in decoded-output scanners and method of using same |
US6619549B2 (en) | 2001-09-21 | 2003-09-16 | Metrologic Instruments, Inc. | Bar code symbol reading device having intelligent data communication interface to a host system |
US7708205B2 (en) * | 2003-11-13 | 2010-05-04 | Metrologic Instruments, Inc. | Digital image capture and processing system employing multi-layer software-based system architecture permitting modification and/or extension of system features and functions by way of third party code plug-ins |
KR101338980B1 (ko) * | 2006-07-12 | 2014-01-03 | 삼성전자주식회사 | 통합 플러그인 기능을 가지는 호스트 장치 및 그의 통합플러그인 생성 방법 |
JP2009048485A (ja) * | 2007-08-21 | 2009-03-05 | Ricoh Co Ltd | 情報処理装置、情報処理方法、情報処理プログラム、及び情報処理プログラムを記録する記録媒体 |
US8146099B2 (en) * | 2007-09-27 | 2012-03-27 | Microsoft Corporation | Service-oriented pipeline based architecture |
JP2009223578A (ja) * | 2008-03-14 | 2009-10-01 | Ricoh Co Ltd | 画像処理装置、画像処理方法、及び、コンピュータプログラム |
JP5262869B2 (ja) * | 2009-03-12 | 2013-08-14 | 株式会社リコー | 画像処理システム、画像処理サーバ、mfp及び画像処理方法 |
-
2011
- 2011-01-18 US US13/008,215 patent/US20110284625A1/en not_active Abandoned
-
2012
- 2012-01-12 EP EP12151007.7A patent/EP2477138B1/en active Active
- 2012-01-17 JP JP2012007122A patent/JP2012150808A/ja active Pending
- 2012-01-18 CN CN201210061820.2A patent/CN102737215B/zh active Active
-
2016
- 2016-09-26 JP JP2016186616A patent/JP2017021839A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6321989B1 (en) * | 1991-09-17 | 2001-11-27 | Metrologic Instruments, Inc. | Method and apparatus for programming system function parameters in programmable code symbol readers |
US5932862A (en) * | 1994-03-04 | 1999-08-03 | Welch Allyn, Inc. | Optical reader having improved scanning-decoding features |
CN1767532A (zh) * | 2005-11-29 | 2006-05-03 | 大连维深自动识别技术有限公司 | 开放式超高频射频识别协议平台 |
CN101789066A (zh) * | 2009-12-31 | 2010-07-28 | 上海量科电子科技有限公司 | 移动终端对射频识别权限许可的控制系统及其实现方法 |
Non-Patent Citations (1)
Title |
---|
Nexus one手机用户手册使用说明书;谷歌公司;《google Nexus one手机用户手册使用说明书》;20100315;第15-332页 * |
Also Published As
Publication number | Publication date |
---|---|
JP2017021839A (ja) | 2017-01-26 |
EP2477138B1 (en) | 2015-03-11 |
JP2012150808A (ja) | 2012-08-09 |
EP2477138A1 (en) | 2012-07-18 |
US20110284625A1 (en) | 2011-11-24 |
CN102737215A (zh) | 2012-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102737215B (zh) | 数字图像捕获及处理系统 | |
US7708205B2 (en) | Digital image capture and processing system employing multi-layer software-based system architecture permitting modification and/or extension of system features and functions by way of third party code plug-ins | |
US7654461B2 (en) | Automatically-triggered digital video imaging based code symbol reading system employing illumination and imaging subsystems controlled in response to real-time image quality analysis | |
CN101551848B (zh) | 支持窄域和宽域模式照明和图像捕捉的手持式基于成像的条形码符号阅读器 | |
US20060208083A1 (en) | Imaging-based bar code symbol reading system permitting modification of system features and functionalities without detailed knowledge about the hardware platform, communication interfaces, or user interfaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |