CN107403123B - 识别目标图像中的条码图像的图像分析设备 - Google Patents

识别目标图像中的条码图像的图像分析设备 Download PDF

Info

Publication number
CN107403123B
CN107403123B CN201710197350.5A CN201710197350A CN107403123B CN 107403123 B CN107403123 B CN 107403123B CN 201710197350 A CN201710197350 A CN 201710197350A CN 107403123 B CN107403123 B CN 107403123B
Authority
CN
China
Prior art keywords
region
background
partial
bar
candidate
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
Application number
CN201710197350.5A
Other languages
English (en)
Other versions
CN107403123A (zh
Inventor
小泽良平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Publication of CN107403123A publication Critical patent/CN107403123A/zh
Application granted granted Critical
Publication of CN107403123B publication Critical patent/CN107403123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1456Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06018Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding
    • G06K19/06028Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking one-dimensional coding using bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/22Character recognition characterised by the type of writing
    • G06V30/224Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
    • G06V30/2247Characters composed of bars, e.g. CMC-7

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Toxicology (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Character Input (AREA)

Abstract

本发明提供一种识别目标图像中的条码图像的图像分析设备。在图像分析设备中,识别条码图像包括:在目标图像中确定表示具有第一宽度的条的候选的条候选区域,该条候选区域包含特征匹配区域,该特征匹配区域匹配于涉及一维条码中的条的两个或者更多个不同宽度的特征;在特定方向上在条候选区域的第一和第二侧处查找具有长于或者等于阈值的长度的第一和第二空白区域;当找到第一或者第二空白区域时,将在第一或者第二空白区域和非背景区域之间的边界确定为一维条码的第一或者第二末端位置;以及通过使用第一和第二末端位置,将包含条候选区域的区域识别为条码图像。

Description

识别目标图像中的条码图像的图像分析设备
技术领域
本公开涉及一种用于识别在目标图像中表示一维条码的条码图像的图像分析设备。
背景技术
已知用于识别图像中的一维条码的各种技术。例如,日本专利申请公布No.Hei-9-16701已经提出这样的技术,其中图像数据的整个区域被顺序地扫描,从而其中黑白图案交替出现的试探条码区域被提取。然后,确定是否预定条状图案存在于试探条码区域中以便提取真实的条码区域。具体地,由两个黑色条和两个黑色条之间的白色条组成的保护条的图案和由三个白色条和三个白色条之间的两个黑色条组成的中心条的图案被预先注册在存储器中。确定是否被注册的保护条图案存在于试探条码区域的两端中的每一个处并且被注册的中心条图案存在于试探条码区域的中心处。
然而,在上述传统技术中,在试探条码区域的两端中的每一个处执行保护条的图案的匹配,并且在试探条码区域的中心处执行中心条的图案匹配。这可能增加用于提取真实的条码区域的处理时间。
发明内容
因此本公开的目的是为了提供能够减少用于识别表示一维条码的条码图像的处理时间的这样的技术。
根据一个方面,图像分析设备包括控制器,该控制器被配置成执行:
获取通过执行包括一维条码的原稿的读取而产生的目标图像数据,一维条码是由具有两个或者更多个不同宽度的多个条组成,两个或者更多个不同宽度包括第一宽度,目标图像数据表示包含背景区域和非背景区域的目标图像,背景区域表示原稿中的背景,非背景区域表示除了背景之外的区域;
识别条码图像,条码图像是目标图像的部分并且表示一维条码;以及
执行关于被识别的条码图像的输出处理;
识别条码图像包括:
确定目标图像中的条候选区域,条候选区域表示用于具有第一宽度的条的候选,该条候选区域包含特征匹配区域,特征匹配区域匹配于涉及在一维条码中的条的两个或者更多个不同宽度的特征;
相对于特定方向分别在条候选区域的第一侧和第二侧查找第一空白区域和第二空白区域,第一和第二空白区域中的每一个是背景区域的部分并且在特定方向上具有长于或者等于阈值的长度;
当在条候选区域的第一侧找到第一空白区域时,将在第一空白区域和在第一空白区域的第二侧处并且与第一空白区域相邻的非背景区域之间的边界确定为一维条码的第一末端位置;
当在条候选区域的第二侧找到第二空白区域时,将在第二空白区域与在第二空白区域的第一侧处并且与第二空白区域相邻的非背景区域之间的边界确定为一维条码的第二末端位置;以及
通过使用第一末端位置和第二末端位置,将包含条候选区域的区域识别为条码图像。
根据上述配置,图像分析设备在目标图像中确定的条候选区域的第一和第二侧两者处查找空白区域,从而确定一维条码的第一和第二末端位置。执行保护条图案或者中心条图案的图案匹配变得没有必要。因此,识别条码图像的处理所需的时间能够被缩短。
优选的是,目标图像由多个像素组成,这多个像素组成被二维地排列使得在第一方向上排列两个或者更多个像素并且在垂直于第一方向的第二方向上排列两个或者更多个像素,
多个像素包括背景像素和非背景像素,背景像素表示原稿中的背景,非背景像素表示原稿中除了背景之外的区域,
特征匹配区域包含第一部分候选区域,该第一部分候选区域由在第一方向上连续排列的一个或者多个非背景像素组成,
多个像素包含在第二方向上排列的“j”个线像素组,“j”是大于或者等于两(2)的整数,每个线像素组包含在第一方向上排列的两个或者更多个像素,“j”个线像素组包括第一线像素组和与第一线像素组相邻的第二线像素组,
确定条候选区域包括:
当第一部分候选区域存在于第一线像素组中时,第一部分候选区域存在于第二线像素组中,并且第一线像素组中的第一部分候选区域和第二线像素组中的第一部分候选区域彼此相邻时,确定关联区域,在关联区域中第一线像素组中的第一部分候选区域和第二线像素组中的第一部分候选区域彼此关联;以及
确定条候选区域使得条候选区域包含关联区域。
优选的是,确定关联区域包括:
相对于第二方向从第三侧朝向第四侧对“j”个线像素组中的至少一个线像素组连续地执行存在确定处理,在线像素组上执行的存在确定处理确定是否第一部分候选区域存在于对象线像素组中;
当通过对第m线像素组执行的存在确定处理确定第一部分候选区域存在于第m线像素组中时,确定关联区域使得关联区域包含存在于第m线像素组中的第一部分候选区域,第m线像素组被定位在第二方向上从第三侧开始的第m个,其中m是大于或者等于一(1)并且小于j的整数,并且
当通过对第(m+1)线像素组执行的存在确定处理确定第一部分候选区域存在于第(m+1)线像素组中并且第(m+1)线像素组中的第一部分候选区域与关联区域相邻时,更新关联区域使得被更新的关联区域包含存在于第m和第(m+1)线像素组两者中的第一部分候选区域,第(m+1)线像素组被定位在第二方向上从第三侧开始的第(m+1)个。
优选的是,当通过对第m线像素组执行的存在确定处理确定两个或者更多个第一部分候选区域存在于第m线像素组中时,分别为两个或者更多个第一部分候选区域确定两个或者更多个关联区域,使得各个关联区域包含相对应的第一部分候选区域,两个或者更多个关联区域包括第一关联的区域和第二关联区域,
通过使用第一关联区域确定条候选区域使得条候选区域包含第一关联区域,
包含含有第一关联区域的条候选区域的区域被识别为条码图像,并且
在被识别的条码图像包含第二关联区域的情况下,不基于第二关联区域确定包含第二关联区域的条候选区域。
优选的是,确定关联区域进一步包括:
当确定在与关联区域相邻的位置处在第(m+1)线像素组中不存在第一部分候选区域时,更新关联区域使得被更新的关联区域进一步包含特定区域,该特定区域包含存在于第(m+1)线组并且与关联区域相邻的一个或者多个背景像素;和
重复地更新关联区域使得被更新的关联区域包含在第二方向上连续排列的多个特定区域同时在被更新的关联区域中连续排列的特定区域的总数目小于第一预定数目,并且
当在被更新的关联区域中连续排列的特定区域的总数目变成大于或者等于第一预定数目时,关联区域的更新被停止,并且包含被更新的关联区域的条候选区域没有被确定。
优选地,确定关联区域进一步包括:
当作为对被定位在第二方向上从第三侧开始的第n个的第n线像素组执行存在确定处理的结果,在被更新的关联区域中在第二方向上连续排列的第一部分候选区域的数目变成等于第二预定数目时,其中“n”大于或者等于一(1)和小于“j”的整数,对被定位在第二方向上从第三侧开始的第(n+1)个的第(n+1)线像素组不执行存在确定处理,并且更新关联区域使得被更新的关联区域进一步包括第二部分候选区域,该第二部分候选区域由被包含在第(n+1)线像素组在并且与关联区域相邻的至少一个非背景像素组成。
优选地是,在一个或者多个第一部分候选区域和一个或者多个第二部分候选区域被包含在条候选区域中的情况下,特定方向垂直于一个或者多个第一部分候选区域和一个或者多个第二部分候选区域被排列的方向。
优选地,两个或者更多个不同宽度进一步包括小于第一宽度的第二宽度,并且
确定条候选区域进一步包括:
当从被包含在“j”个线像素组内的目标线像素中的五个部分组中获得的三个参数“nc”、“min”以及“max”不满足下述两个条件(1)和(2)的任何一个时:
nc/min<第一预定值…(1);和
max/min>第二预定值…(2),
确定在五个部分组内的特定部分组匹配于涉及一维条码中的条的两个或者更多个不同宽度的特征,
五个部分组包括:
第一部分组,该第一部分组由在第一方向上连续排列的至少一个非背景像素组成;
第二部分组,该第二部分组与第一部分组相邻并且由在第一方向上连续排列的至少一个背景像素组成;
第三部分组,该第三部分组与第二部分组相邻并且由在第一方向上连续排列的至少一个非背景像素组成;
第四部分组,该第四部分组与第三部分组相邻并且由在第一方向上连续排列的至少一个背景像素组成;以及
第五部分组,该第五部分组与第四部分组相邻并且由在第一方向上连续排列的至少一个非背景像素组成,
参数“nc”是被包括在第三部分组中的像素的数目,
参数“min”是在分别被包括在五个部分组中的像素的数目当中的最小的数目,
参数“max”是在分别被包括在五个部分组中的像素的数目当中的最大的数目,
基于一维条码中的两个或者更多个不同宽度的条预先确定第一预定值和第二预定值,并且
特定部分组是第三部分组。
优选地,两个或者更多个不同宽度进一步包括小于第一宽度的第二宽度,并且
查找第一空白区域和第二空白区域包括通过将与第二宽度相对应的长度乘以第三预定值来确定阈值。
优选地,当由于在原稿的第一侧和一维条码的第一侧之间的接近导致具有比阈值短的长度的第一部分背景区域存在于条候选区域的第一侧处的背景区域中并且在条码区域的第一侧处没有找到第一空白区域时,在第一部分背景区域和在第一部分背景区域的第二侧处并且与第一部分背景区域相邻的非背景区域之间的边界被确定为一维条码的第一末端位置,并且
当由于原稿的第二侧和一维条码的第二侧之间的接近导致具有比阈值短的长度的第二部分背景区域存在于条候选区域的第二侧处的背景区域中并且在条码区域的第二侧处没有找到第二空白区域时,在第二部分背景区域和在第二部分背景区域的第一侧处并且与第二部分背景区域相邻的非背景区域之间的边界被确定为一维条码的第二末端位置。
优选地,执行输出处理包括解码被识别的条码并且输出解码的结果。
根据另一方面,一种用于分析图像的方法:
获取目标图像数据,该目标图像数据是通过执行包含一维条码的原稿的读取而产生的,一维条码是由具有两个或者更多个不同宽度的多个条组成,两个或者更多个不同的宽度包括第一宽度,目标图像数据表示包含背景区域和非背景区域的目标图像,背景区域表示原稿中的背景,非背景区域表示除了背景的区域;
识别条码图像,该条码图像是目标图像的部分并且表示一维条码;以及
执行关于被识别的条码图像的输出处理;
识别条码图像包括:
确定目标图像中的条候选区域,条候选区域表示用于具有第一宽度的条的候选,条候选区域包含特征匹配区域,该特征匹配区域匹配于涉及一维条码中的条的两个或者更多个不同宽度的特征;
相对于特定方向分别在条候选区域的第一侧和第二侧处查找第一空白区域和第二空白区域,第一和第二空白区域中的每一个是背景区域并且在特定方向上具有长于或者等于阈值的长度;
当在条候选区域的第一侧找到第一空白区域时,将在第一空白区域和在第一空白区域的第二侧处并且与第一空白区域相邻的非背景区域之间的边界确定为一维条码的第一末端位置;
当在条候选区域的第二侧找到第二空白区域时,将在第二空白区域和在第二空白区域的第一侧处并且与第二空白区域相邻的非背景区域之间的边界确定为一维条码的第二末端位置;以及
通过使用第一末端位置和第二末端位置,将包含条候选区域的区域识别为条码图像。
附图说明
结合附图从下面的描述中本公开的特定特征和优点将会变得显然,其中:
图1示意性地示出根据实施例的用作图像分析设备的个人计算机(PC)的硬件配置;
图2是通过图1中示出的PC执行的驱动器处理的流程图;
图3示出在图2中示出的条码处理的流程图,并且图示在二进制图像中如何设置目标线;
图4示出在图3中示出的连接信息产生处理的流程图,并且图示如何产生目标线信息并且选择阵列组;
图5图示如何产生和更新连接信息;
图6示出在图3中示出的条码图像识别处理的流程图,并且图示如何将相邻的组连接到被连接的候选组;
图7图示如何确定条码的结束位置;
图8图示当条码的结束靠近原稿的结束时如何确定条码的结束位置;
图9A图示如何识别二进制图像中的条码图像;
图9B图示如何从二进制图像中删除条码图像;以及
图10示出在图3中示出的连接信息删除处理的流程图,并且图示如何将虚拟候选组连接到被连接的候选组。
具体实施方式
将会参考附图描述根据实施例的图像分析设备,其中通过相同的附图标志指定相同的部件和组件以避免重复的描述。
(PC 10的配置;图1)
PC 10经由LAN(局域网)被连接到扫描仪50使得PC 10能够与扫描仪50通信。PC 10包括操作部件12、显示部件14、网络接口16、以及控制部件30。操作部件12包括鼠标和键盘。用户能够通过操作操作部件12将各种指令输入到PC 10。显示部件14是用于显示各种信息的显示器。网络接口16被连接到LAN。
控制部件30包括CPU 32和存储器34。存储器34包括ROM(只读存储器)和RAM(随机存取存储器)。CPU 32是根据被存储在存储器34中的对应的程序执行各种处理(例如,图2的处理例程)的处理器。程序包括未被图示的OS(操作系统)和驱动器程序36。
驱动器程序36是通过扫描仪50的供应商提供的程序并且被用于执行关于扫描仪50的处理。驱动器程序36可以从与扫描仪50一起装运的媒介,或者从通过扫描仪50的供应商提供的互联网服务器,被安装在PC 10中。
当用户操作操作部件12以执行指示他/她想要扫描文档的扫描执行操作时,CPU32接受用户的扫描执行操作并且将扫描指令100供应给扫描仪500,使得控制扫描仪500以执行文档读取以读取原稿(文档)。扫描指令100包括读取设置,诸如原稿读取分辨率和大小。扫描仪50根据读取设置执行文档读取以产生扫描数据110。然后,扫描仪50将扫描数据110供应到PC 10。因此,CPU 32从扫描仪50获取扫描数据110。
特别地,在本实施例中,用户能够操作操作部件12以执行指示他/她想要解码被包括在文档中的一维条码的解码操作。一维条码使用多个条表示字符和符号的组合。包含一维条码的这样的文档的示例包括:在办公室中使用的文档;以及在医院使用的医疗图表。例如,被包括在办公室文档中的一维条码指示识别存储文件夹的字符和符号,其中表示办公室文档的扫描数据应被存储。例如,被包括在医疗图表中的一维条码指示用于医疗图表的识别患者的字符和符号。当CPU 32接受用户的解码操作并且CPU 32获取扫描数据110时,CPU 32识别通过扫描数据110表示的扫描图像112中的表示一维条码的条码图像114,并且解码条码图像114。然后,CPU 32根据解码的结果执行处理。例如,CPU 32将文件夹中的扫描数据110存储在通过解码的结果指示的存储器34中。CPU 32将扫描数据110和通过解码结果指示的患者的信息输出到被存储在存储器34中的医疗应用程序(未被图示)。
接下来将会描述一维条码(在下文中,仅被称为“条码”)。已知各种标准的条码,诸如JAN(日本物品码)代码、EAN(欧洲物品码)、ITF(交叉二五码)码、CODE 39、CODE 128、以及NW-7(CODEBAR)。任何标准的条码是由通过具有两个或者更多个不同的宽度的两种或者更多种类型的条(黑条),和在两个相邻条之间的空白(白条)的组合组成的多个条组成。在具有两个或者更多个不同的宽度的两种或者更多种类型的条当中,具有最小宽度的条被称为“细条”,并且除了细条之外的条被称为“粗条”。本实施例的驱动器程序36支持多个标准的条码。即,驱动器程序36能够识别表示上述任何标准的条码的在扫描图像112中的条码图像114。
条码图像114组成扫描图像112的小部分。例如,条码图像114具有扫描图像112的1/4大小或者更小的大小。驱动器程序36能够快速地识别被包括在扫描图像112中的非常小的条码图像114。
(PC 10的驱动器程序的处理;图2)
参考图2,CPU 32在用户的解码操作的接收之后根据驱动器程序36执行的驱动器处理将会被描述。
在S10中,CPU 32通过网络接口16从扫描仪50获取表示包括条码图像114的扫描图像112的扫描数据110。扫描数据110是由多组像素数据组成。各组像素数据表示256级(“0到255”)的像素值(具体地,R值、G值以及B值)。
在S12中,CPU 32执行用于扫描数据110的亮度值转换处理。具体地,CPU 32根据下述公式将组成扫描数据110的多个像素数据中的每一个表示的各组像素值(即,R值、G值以及B值)转换成亮度值(Y值)以产生表示256级(“0至255”)的像素值的新像素数据:
Y=0.299x R+0.587x G+0.114x B
结果,由均表示亮度值的多个新像素数据组成的亮度图像被产生。在本实施例中,通过扫描仪50读取的原稿具有白色(R=G=B=255)背景。因此,表示原稿的背景的亮度值(Y值)通常是255,表示除了背景之外的区域的亮度值通常小于255。
在S14中,CPU 32执行用于在S12中产生的亮度图像数据的二值化处理。具体地,CPU 32将组成亮度图像数据的多个像素数据中的每一个表示的亮度值转换成“1”或者“0”以产生表示“1”或者“0”的新像素数据。更加具体地,当亮度值小于或者等于用于二值化的预定阈值(例如,200)时,表示“1”的新像素数据被产生,而当亮度值大于用于二值化的阈值时,表示“0”的新像素数据被产生。即,表示原稿的背景的像素数据通过“0”表示,并且表示除了背景之外的区域的像素数据通过“1”表示。结果,产生由表示“1”或者“0”的多个新像素数据组成的二进制图像数据。在下文中,表示“1”的像素数据和表示“0”的像素数据分别被称为“ON像素数据”和“OFF像素数据”。
在图2中,图示两个二进制图像120A和120B作为通过在S14中产生的二进制图像数据表示的二进制图像的示例。在二进制图像120A和120B中的每一个中,通过黑色和白色分别表示ON像素数据表示的ON像素和OFF像素数据表示的OFF像素。在二进制图像120A中,组成条码的条中的每一个沿着二进制图像120A的长侧延伸。在二进制图像120B中,组成条码的条中的每一个沿着二进制图像120B的短侧延伸。
在S16中,CPU 32执行用于在S14中产生的二进制图像数据的条码处理。条码处理是用于识别在二进制图像(例如,二进制图像120A)中包括的条码图像并且执行被识别的条码图像的解码的处理。在S16中,CPU 32执行条码处理,使得由沿着二进制图像的短侧排列的多个像素组成的各个像素组被视为一条线。在这样的情况下,CPU 32能够识别在二进制图像120A中包括的条码图像,但是不能够识别在二进制图像120B中包括的条码图像。
在S18中,CPU 32执行用于在S14中产生的二进制图像数据的旋转处理,以将二进制图像数据旋转90度从而产生被旋转的图像数据。
在S20中,CPU 32执行用于在S18中产生的被旋转的图像数据的条码处理。在S20中,CPU 32执行条码处理,使得由沿着二进制图像的长侧排列的多个像素组成的各个像素组被视为一条线。在这样的情况下,CPU 32能够识别在二进制图像120B包括中的条码图像,但是不能够识别在二进制图像120A中包括的条码图像。
在本实施例中,不仅S16的处理,而且S18和S20的处理被执行。因此,条码图像能够被适当地识别,不论在原稿中的条码的方位如何。作为修改,当在S16中识别条码图像时,不需要执行S18和S20的处理。在S20的完成之后,图2的处理例程被结束。
(条码处理;图3)
参考图3,将会描述在图2中的S16和S20的处理中的每一个中的条码处理的内容。在S30中,CPU 32首先将要被处理的线(在下文中,被称为“目标线”)的Y坐标j设置为零(0)。该线对应于由在二进制图像20的左右方向(X方向)中排列的多个像素组成的像素组。在图2的S16中,二进制图像120的短侧延伸的方向被定义为X方向。在S20中,二进制图像120的长侧延伸的方向被定义为X方向。在图3的二进制图像120中,通过实线轮廓线包围的各个区域对应于ON像素,并且通过非实线轮廓线包围的各个区域对应于OFF像素。这同样适用于图4和后续的附图。
在S40中,CPU 32分析目标线并且在存储器34中产生连接信息(参见图4)。注意的是,一组连接信息指示表示在Y方向上连续排列并且包括目标线的一条或者多条线上存在的粗条的候选的区域。
在S50中,CPU 32从在S40中产生的一组或者多组连接信息中选择一组连接信息(在下文中,被称为“目标连接信息”)。当在存储器34中不存在连接信息时,CPU 32跳过S50至S80。
在S52中,CPU 32确定是否目标连接信息满足预定条件。当CPU 32确定目标连接信息满足预定条件(在S52中是)时,CPU 32前进到S60。另一方面,当CPU 32确定目标连接信息不满足预定条件(在S52中否)时,CPU 32跳过S60至S68并且前进到S70。
在S60中,CPU 32使用目标连接信息以识别组成二进制图像120的一部分的条码图像(参见图6)。
在S62中,CPU 32尝试对在S60中识别的条码图像执行解码处理。解码处理是用于从被包括在条码图像中的多个条中识别字符和符号的组合(在下文中,被称为“数据串”)的处理。具体地,CPU 32首先从条码图像识别各自的条的宽度(即,连续的ON像素的数目)和在相邻条之间的空白的宽度(即,连续的OFF像素的数目)。然后,关于通过驱动器程序36支持的多个标准中的每一个,CPU 32尝试通过使用被识别的条宽度和空白宽度识别数字、字母以及符号。例如,在JAN码或者EAN码中,两个条的组合指示数字0到9中的一个。因此,CPU 32基于在条之间的空白和条的宽度识别通过两个条指示的数字。CPU 32尝试从多个条识别由两个或者更多个数字组成的数据串。另一方面,在CODE 128中,例如,三个条的组合指示下述中的任意一个:数字(0至9);字母(A至U);以及符号(“!”、“%”等等)。CPU 32基于在三个条之间的两个空白和三个条的宽度识别通过三个条指示的数字等等。CPU 32尝试从多个条识别由两个或者更多个数字、字母或者符号组成的数据串。CPU 32尝试根据通过驱动器程序36支持的多个标准连续地执行解码处理。
在S64中,CPU 32确定是否在S62中已经成功地执行解码处理。具体地,当根据一些标准通过解码处理的执行基于在条码图像中包括的所有条已经获得数据串时,CPU 32确定解码处理已经被成功地执行(在S64中是),并且前进到S66,在S66中CPU 32使用获得的数据串执行输出处理。输出处理的示例包括:将文件夹中的扫描数据110存储在通过数据串指示的存储器34中的处理;将通过数据串指示的信息(例如,关于患者的信息)和扫描数据110输出到在存储器34中存储的另一应用程序(例如,医疗应用程序)的处理;以及将扫描数据110发送到通过数据串指示的目的地(例如,在LAN网络上的另一设备)的处理。另一方面,当根据多个标准中的任意一个通过解码处理的执行从条码图像中的至少一个条中还没有获得数字等时,CPU 32确定解码处理已经失败(在S64中否)。然后,CPU 32跳过S66并且前进到S68。
作为修改,不需要执行S62的解码处理。在这样的情况下,也没有执行S64的判断处理。处理直接从S60进入S66,在S66中CPU 32可以将表示规定的文件夹中的条码图像的图像数据存储在存储器34中,将图像数据发送到外部设备,将图像数据输出到另一应用程序,或者将图像数据粘贴到规定的文件的规定的位置。根据实施例的解码条码图像和输出被解码的结果的处理,和根据修改的输出条码图像的图像数据的处理两者是关于条码图像的输出处理的示例。
在S66中,在执行输出处理之后,CPU 32从二进制图像120删除在S60中识别的条码图像。具体地,CPU 32识别在二进制图像120中组成条码图像的像素当中的那些ON像素,并且将被识别的ON像素变成OFF像素。注意的是,如果在当前目标线处成功地解码的条码图像没有被删除,则在针对紧跟当前目标线的后续目标线执行的S40至S60的处理中将会再次识别相同的条码图像。这将会导致在S62中再次解码被解码的条码图像。相反地,在本实施例中,被解码的条码图像在S66中被删除。因此,能够防止被解码的条码图像被再次识别,因此能够减少处理负荷。
在S68中,CPU 32删除目标连接信息。因此,在基于与目标连接信息相对应的粗条识别一些条码图像之后,能够防止基于相同的连接信息再次识别相同的条码图像。CPU 32将解码标志(稍后描述)从“OFF”变成“ON”,解码标志被包括在与在S60中识别的条码图像中包含的另一粗条相对应的另一组连接信息中。因此,在基于与条码图像中的粗条相对应的一组目标连接信息识别一些条码图像之后,能够防止基于与被包括在相同的条码图像中的另一粗条相对应的另一组连接信息再次识别相同的条码图像被。稍后将会描述标志改变处理的详情。
在S70中,CPU 32确定是否在S50中已经选择被存储在存储器34中的所有组的连接信息。当还没有选择所有的连接信息(在S70中否)时,CPU 32返回到S50,在S50中CPU 32选择另一组连接信息并且再次执行S52至S68的处理。另一方面,当所有组的连接信息已经被选择(在S70中是)时,CPU 32在S80中删除不必要的连接信息(稍后参考图10描述)。
在S90中,CPU 32确定是否组成二进制图像120的所有线已经被处理。当所有的线还没有被处理(在S90中否)时,CPU 32在S92中增加目标线的Y坐标j,并且执行S40的处理和与新目标线相对应的后续步骤。另一方面,当组成二进制图像120的所有线已经被处理(在S90中是)时,CPU 32结束图3的处理例程。
(连接信息产生处理;图4)
参考图4,将会描述在图3的S40中执行的连接信息产生处理的内容。首先在S100中,CPU 32使用目标线以产生目标线信息。目标线信息指示其中连续的ON像素的数目和连续的OFF像素的数目从左边起交替排列的数值阵列。CPU 32从左到右扫描目标线以顺序地识别连续的ON像素的数目和连续的OFF像素的数目。然后,CPU 32确定目标线信息,目标线信息指示包括ON和OFF像素的被识别的数目的数值阵列。注意的是,在目标线信息的数值阵列中的最左边的位置处的数字指示在目标线的最左边的位置处出现的连续的ON像素的数目。当组成目标线的最左边的像素(即,与“i=0”相对应的像素)是OFF像素时,在目标线中的最左边的位置处出现的连续的ON像素的数目是零(0)。因此,CPU 32将“0”设置为组成目标线信息中的数值阵列的最左边的数字。
例如,在图4中所示的二进制图像120中,“j=0”的目标线是仅由OFF像素组成,使得CPU 32产生数值阵列(0,L)作为目标线信息,其中“L”是组成目标线的所有像素的数目。此外,“j=5”的目标线例如包括从左边起零个ON像素、五个OFF像素、两个ON像素、两个OFF像素···。因此,CPU 32生成数值阵列(0,5,2,2,2,2,6,4,2,···)作为目标线信息。
在S110中,CPU 32从在S100中产生的目标线信息中选择一个阵列组。通过与被定位在最左边的ON像素相对应的数字,阵列组指示在目标线信息中包括的多个数字当中的连续的五个数字。例如,在CPU 32产生用于“j=5”的线的目标线信息(0,5,2,2,2,2,6,4,2,···)之后,当第一次执行S110的处理时,CPU 32选择阵列组(0,5,2,2,2)。当第二次执行S110的处理时,即,当在S130(稍后描述)中的判定变成否定之后执行S110的处理时,CPU32选择阵列组(2,2,2,2,6)。当第三次执行S110的处理时,CPU 32选择阵列组(2,2,6,4,2)。当CPU 32在S100中产生目标线信息使得目标线信息是由小于五个数字组成时(例如,当CPU32产生用于“j=0”的线的目标线信息时),CPU 32跳过S110至S130并且结束图4的处理例程。
在S112中,CPU 32确定是否在S110中选择的阵列组中存在任何粗条候选。特别地,CPU 32确定与所选择的阵列组(在下文中,被称为“中心ON像素组”)中的中心值相对应的一个或者多个连续的ON像素是否是组成粗条的像素组的候选。具体地,CPU 32确定是否从所选择的阵列组获得的三个参数“nc”、“min”以及“max”满足下述表达(a)至(c):
(a)nc=min
(b)nc/min<2
(c)max/min>4
参数“nc”是所选择的阵列组中的中心值,即,在中心ON像素组中包括的像素的数目。例如,在阵列组(2,2,6,4,2)中,参数“nc”是“6”。参数“min”和“max”分别是所选择的阵列组中的最小值和最大值。
表达(a)是“nc=min”。如上所述,存在诸如JAN码和EAN码的各种标准的条码。通常,在任何所提及的标准中,各个条码包括一个或者多个粗条、一个或者多个细条,并且具有两个或者更多个不同宽度的两个或者更多个空白。此外,通常,细条的宽度和最小空白的宽度彼此相等。在此,假定条码包括一个粗条、被定位在粗条的两侧上的两个条、以及被定位在粗条和两个条之间的两个空白的特定情形。通常,在此具体情形下,在粗条的两侧的两个条和两个空白包括细条和最小空白中的至少一个。因此,当所选择的阵列组对应于上述特定情形时,被包括在中心ON像素组中的像素的数目“nc”大于在所选择的阵列组中的最小值“min”。因此,当表达(a)被满足时,CPU 32确定所选择的阵列组不对应于上述特定情形并且因此中心ON像素组不是粗条候选(在S112中否)。
表达(b)是“nc/min<2”。通常,在任何所提及的标准中,粗条的宽度大于或者等于细条的宽度(即,最小空白的宽度)的两倍。因此,当所选择的阵列组对应于上述特定情形时,被包括在中心ON像素组中的像素的数目“nc”大于或者等于与细条的宽度(即,最小空白的宽度)相对应的像素的数目“min”的两倍。即,当表达(b)被满足时,CPU 32确定所选择的阵列组不对应于上述特定情形(在S112中否)。
表达(c)是“max/min>4”。通常,在任何所提及的标准中,粗条或者最大空白的宽度小于或者等于细条的宽度(即,最小空白)的四倍。因此,当所选择的阵列组对应于上述特定情形时,与粗条或者最大空白的宽度相对应的像素的数目“max”小于或者等于与细条的宽度(即,最小空白的宽度)相对应的像素的数目“min”的四倍。即,当表达(c)被满足时,CPU32确定所选择的阵列组不对应于上述特定情形(在S112中否)。
当表达(a)至(c)中的至少一个被满足时,CPU 32确定所选择的阵列组不对应于上述特定情形,即,确定中心ON像素组不是粗条候选(在S112中否)。然后,CPU 32跳过S120并且前进到S130。例如,在用于“j=5”的线的目标线信息中,对于第一阵列组(0,5,2,2,2)表达(c)被满足(5/0>4),使得在S112中的判定变成否定。对于第二阵列组(2,2,2,2,6),表达(a)和(b)被满足(2=2,并且2/2<2),使得在S112中的判定变成否定。当对于一些阵列组不满足表达(a)至(c)时,CPU 32确定阵列组对应于上述特定情形。换言之,CPU 32确定阵列组中的中心ON像素组是粗条候选(在S112中是),并且前进到S120。例如,对于第三阵列组(2,2,6,4,2),不满足表达(a)至(c),使得S112中的判定变成肯定。以这样的方式,根据本实施例,粗条候选被识别为匹配于对于多个标准的条码是共同的并且与组成各个条码的各自的条的宽度有关的这样的特征(即,在S112中是)。因此,在原稿中能够充分地识别粗条候选,不论条码的标准如何。
作为修改,不需要在S112中使用表达(a)。这是因为,通常,仅通过表达(b)和(c)能够完成关于是否粗条候选存在的判定。作为另一修改,除了表达(a)至(c)之外的表达可以被使用。简言之,只要表达使用对于多个标准的条码来说是共同的并且与组成各个条码的各自的条的宽度有关的特征,就可以使用该表达。
在S120中,CPU 32执行连接信息的产生或者更新。连接信息是关于中心ON像素组的信息,对于其在S112中的判定变成肯定(在下文中,被称为“候选组”)。特别地,连接信息是用于在Y方向上连接(关联)多个候选组的信息。注意的是,当在当前目标线中识别的候选组(在下文中将会被称为“当前候选组”)不能够与就在当前目标线上面的前一个目标线中识别的任何候选组(在下文中将会被称为“前一候选组”)连接时,CPU 32产生包括当前候选组的新连接信息。另一方面,在当前候选组能够与一些先前的候选组连接时,CPU 32根据当前候选组的内容更新包括先前的候选组的已经产生的连接信息。
在S130中,CPU 32确定是否在S110中已经选择在目标线信息中包括的所有的阵列组。当在目标线信息中包括的所有阵列组还没有被选择(在S130中否)时,处理返回到S110,其中CPU 32选择当前目标线中的新的阵列组。另一方面,当在目标线信息中包括的所有阵列组已经被选择(在S130中是)时,CPU 32结束图4的处理例程。
(连接信息的产生或者更新;图5)
参考图5,在图4的S120中执行的处理的内容将会被描述。连接信息包括多个参数P1至P7。参数P1是在一个或者多个被连接的候选组中的最上面的候选组的中心坐标。参数P2是被连接的候选组的数目(在下文中,被称为“Y方向连接数”)。参数P3是当前候选组的左端坐标。参数P4是当前候选组中的像素的数目。参数P4是当前候选组中的像素的数目。参数P5是指示“ON”或者“OFF”的解码标志。解码标志“ON”指示在S62中已经执行了使用包括此解码标志的连接信息的解码处理(图3)。解码标志“OFF”指示还没有执行使用连接信息的解码处理。参数P6是在稍后要描述的图10的处理中能够执行的空白的数目。参数P7是与前一个候选组有关的当前候选组的倾斜。
在图5的二进制图像120中,假定从“j=5”的目标线识别当前候选组的情形。在“j=4”的目标线上,不存在被连接当前候选组的候选组。因此,在S120中,产生新的连接信息。这时产生的连接信息包括P1=(16,5)、P2=1、P3=13、P4=6、P5=OFF、P6=0、以及P7=0。当从“j=6”的目标线识别当前候选组时,当前候选组和前一个候选组彼此相邻,使得当前候选组和前一个候选组能够被相互连接。因此,在S120中,根据当前候选组的内容更新连接信息。具体地,“P2=1”被更新为“P2=2”,如通过下划线指示。类似地,当从“j=7”到“j=9”的目标线中连续地识别候选组时,连续地更新P2以最终变成通过图5中的下划线所指示的“P2=5”。
当从“j=10”的目标线识别当前候选组时,当前候选组和前一个候选组彼此相邻,使得当前候选组和前一个候选组能够被相互连接。因此,在S120中,根据当前候选组的内容更新连接信息。注意的是,当前候选组的左端坐标被定位在前一个候选组的左端坐标的左边。这意指粗条(即,条码)在扫描图像112中倾斜。在本示例中,“P2=5”被更新为“P2=6”,“P3=13”被更新为“P3=12”,并且“P7=0”被更新为“P7=-1”,如通过图5中的下划线所指示。倾斜P7是通过从在当前目标线(例如,“j=10”)中确定的P3的值(例如,12)减去在就在当前目标线上面的前一个目标线(例如,“j=9”)中确定的P3的值(例如,13)获得的值。可替选地,倾斜P7可以是通过下面的表达计算的值:
{(P3+P4/2)-(X-P1的坐标)}/(j-Y-P1的坐标)。
例如,在用于“j=10”的线的连接信息中,如下地计算P7。
{(12+6/2)-16}/(10-5)=-1/5。
如上所述,在S50(图3)中CPU 32从产生的一组或者多组连接信息当中选择一组连接信息(目标连接信息),并且在S52中确定是否目标连接信息满足预定条件。预定条件是目标连接信息中的解码标志P5指示“OFF”并且目标连接信息中的Y方向连接数目P2大于或者等于预定第一阈值Th1(例如,10)。在目标连接信息指示粗条的情况下,通过S92的处理Y方向连接数目P2随着目标线的Y坐标“j”增加而逐渐地增加,因此在S52中的判定变成肯定,并且处理前进到S60。另一方面,在目标连接信息指示除了粗条之外的对象(例如,字符)的情况下,Y方向连接数目P2没有从相对小的数目增加,尽管目标线的Y坐标“j”增加。在这样的情况下,S52中的判定继续为否定,并且S60至S68的处理没有被执行。即,对于除了粗条之外的这些对象没有执行S60至S80的处理,使得处理负荷被减少。
(条码图像识别处理;图6)
参考图6,将会描述在图3的S60中执行的条码图像识别处理的内容。现在假定在图6的二进制图像120中,“j=14”的行是当前目标行,并且通过目标连接信息指示的多个被连接的候选组作为通过实线包围的ON像素的群组被图示。在目标连接信息中的连接数目P2达到第一阈值Th1(在本示例中为十(10)),使得在S52(图3)中,预定条件被满足并且处理进入S60。
在S60的条码图像识别处理中,首先在S200中,CPU 32从就在目标行(例如,“j=15”的行)下面的行识别与多个连接的候选组当中的最下面的候选组250相邻的一个或者多个ON像素260。在S200中识别的一个或者多个ON像素(在下文中,被称为“相邻组”)不必是能够使S112(图4)中的判断为肯定的这样的组。即,CPU 32在没有执行S112的判定的情况下识别相邻的组260。在图6的示例中,相邻的组260作为通过虚线包围的一组ON像素被图示。然后,CPU 32从目标行(例如,“j=16”的行)下面的两行识别包括与被识别的相邻组260相邻的一个或者多个ON像素的新的相邻组262。CPU 32重复上述处理直到不再有与已经识别的相邻组相邻的新的相邻组。在图6的示例中,从“j=15”至“j=19”的行中识别相邻组260至268,并且没有从“j=20”的行识别相邻组。CPU 32能够通过执行S200的处理将一个或者多个相邻的组连接(关联)到多个被连接的候选组。多个候选组和一个或者多个相邻组的组合表示组成粗条的ON像素组,并且在下文中被称为“粗条组(200,在本示例中)”。CPU 32在没有执行图4的S112的判定的情况下识别相邻的组260至280,并且因此能够快速地识别粗条组200。注意的是,当不能够识别相邻的组时,CPU 32不执行S200的处理并且前进到S202。
在S202中,CPU 32识别组成粗条组200(在图6的示例中(14,20))的最下面的相邻组268的中心坐标P8。然后,CPU 32识别连接在目标连接信息中的坐标P1(即,最上面的候选组的中心坐标)和被识别的坐标P8的线段的倾斜。被识别的倾斜指示在扫描图像112中粗条延伸的方向。在图6的示例中,粗条延伸的方向与二进制图像120的Y方向不一致。下述两个原因能够被视为粗条倾斜的原因。第一原因是当被打印时条码相对于打印介质倾斜。第二原因是条码在原稿中没有倾斜,但是在倾斜状态下读取原稿。具体地,当原稿在倾斜状态下被放置在扫描仪50的透明板上,或者通过扫描仪50的自动文档馈送器在倾斜状态下传送原稿时,在倾斜状态下读取原稿。
在S210中,CPU 32通过使用在S202中识别的坐标P8和倾斜识别参考线。将会参考图7描述参考线。阴影和黑色矩形表示组成参考线的ON像素,并且白色和黑色圆圈表示组成参考线的OFF像素。为了确定参考线,CPU 32首先将连接坐标P1和P8的线段与组成粗条组200的多个候选组(例如,图6中的候选组250)中的最下面的候选组相交的ON像素视为参考像素BP。然后,CPU 32将经过参考像素BP并且具有与在S202中识别的倾斜正交(垂直)的倾斜的线视为参考线。参考线延伸的方向(在下文中,被称为“参考方向”)是与条码的条延伸的方向,即,条码的左右方向,正交的方向。
在图6的S212中,CPU 32通过使用在S210中识别的参考线确定空白的参考数目。将会参考图7描述空白的参考数目。CPU 32首先识别在参考线上的包括参考像素BP的ON像素组,并且确定在识别的ON像素组中包括的像素的数目(在图7的示例中“6”)。然后,CPU 32识别在参考线上在识别的ON像素组左侧并且与识别的ON像素组相邻的OFF像素组,并且确定在识别的OFF像素组中的像素的数目(在图7的示例中“2”)。随后,CPU 32识别在参考线上在识别的OFF像素组左侧并且与识别的OFF像素组相邻的ON像素组,并且确定在识别的ON像素组中的像素的数目(在图7的示例中“2”)。类似地,在包括参考像素BP的ON像素组的右侧的参考线上,CPU 32确定在OFF像素组中包括的像素的数目(在图7的示例中“4”)和在ON像素组中包括像素的数目(在图7的示例中“2”)。因此,在图7的示例中,CPU 32从左边起识别五个数字“2、2、6、4、2”。
然后,CPU 32从被确定的五个数字当中识别最小值(在图7的示例中“2”)。如上所述,在条码包括一个粗条、被定位在粗条的两侧上的两个条,和被定位在粗条和两个条之间的两个空白的特定情形下,在粗条的两侧上的两个条和两个空白包括细条和最小空白中的至少一个。此外,通常,细条的宽度和最小空白的宽度彼此相等。因此,被识别的最小值指示与组成条码的细条(即,最小空白)的宽度相对应的像素的数目。然后,CPU 32通过将最小值乘以预定值(例如,“7”)确定空白的参考数目(例如,“14”)。注意的是,被用于确定空白的参考数目的预定值被预先设置为确保与空白的参考数目相对应的长度超过能够被包括在条码中的最大空白的宽度的这样的值。原稿通常在条码的两侧上包括空白。空白的参考数目用作用于查找在条码的两侧上的空白的参数。即,其长度大于或者等于空白的参考数目的空白不是被定位在组成条码的两个条之间的空白,而是存在于条码的两侧上的空白。识别存在于条码的左侧和右侧两者上的空白能够识别条码的左右端位置。
在图6的S214中,CPU 32通过使用在S210中识别的参考线和在S212中确定的空白的参考数目识别条码的两端坐标。将会参考图7描述S214的处理的内容。在参考线上,CPU32首先查找在粗条组200的左侧和右侧两者处具有大于或者等于空白的参考数目的像素的数目(在图7的示例中“14”)的空白区域(即,OFF像素组)。在图7的示例中,CPU 32能够找到左侧空白区域和右侧空白区域。然后,CPU 32识别在参考线上的在找到的左侧空白区域的右侧并且与左侧空白区域相邻的ON像素,并且将识别的ON像素确定为组成条码的左端的左端像素CL。类似地,CPU 32识别参考线上的在找到的右侧空白区域的左侧处并且与右侧空白区域相邻的ON像素,并且将识别的ON像素确定为组成条码的右端的右端像素CR。因此,CPU 32通过识别左端像素CL和右端像素CR识别条码的左端和右端位置。可替选地,CPU 32可以将被包括在找到的左侧空白区域中的最右边的OFF像素识别为左端像素CL,并且将被包括在找到的右侧空白区域中的最左边的OFF像素识别为右端像素CR。简言之,CPU 32可以识别在条码和空白区域之间的边界。
例如,当在原稿的左端或者右端附近的位置处存在条码时,在条码的左侧或者右侧上不存在大的空白。在图8的示例中,原稿的左侧和条码的左侧彼此接近,使得仅由四个(小于空白的参考数目)OFF像素组成的小的空白区域存在于粗条组200的左侧上。在这样的情况下,尽管不存在具有大于或者等于空白的参考数目的像素的数目的空白区域,但是CPU32识别在参考线上在小的空白区域的右侧处并且与小的空白区域相邻的ON像素,并且将识别的ON像素确定为左端像素CL。具体地,在S214中,在已经发现不存在在参考线上在粗条组200的左侧上具有大于或者等于空白的参考数目的像素的数目的空白区域之后,CPU 32进一步确定是否在参考线上在二进制图像120的左端与在参考线上的最左边的ON像素CL(在本示例中,四个像素)之间的距离小于预定距离(例如,十(10)个像素)。当距离小于预定距离时,CPU 32确定由于在原稿的左端和条码的左端之间的接近导致在条码的左侧处仅存在小的空白区域并且然后识别左端像素CL。
尽管未被图示,当由于在原稿的右端和条码的右端之间的接近导致在粗条组200的右侧上仅存在小的空白区域时,以与上述相似的方式识别右端像素CR。以这样的方式,即使当在原稿的末端和条码的末端之间的接近仅存在小的空白区域时,CPU 32能够适当地识别条码的末端位置。可替选地,CPU 32不需要考虑二进制图像120的末端。即,当仅在条码的左端或者右端处仅存在小的空白区域时,CPU 32不需要识别左端像素CL或者右端像素CR,并且不需要识别条码图像。
在图6的S216中,CPU 32在参考线上识别从S214中识别的左端像素CL起与左边分离了预定长度(例如,三个像素)的像素。这对应于通过向左延伸条码的左端获得的位置的识别。因此被识别的像素被称为“延伸的左端像素EL”,如在图7和图8中所示。类似地,CPU32在参考线上识别从在S214中识别的右端像素CR起与右边分离了预定长度的像素,作为如在图7和图8中所示的延伸的右端像素ER。因此识别延伸的末端像素EL和ER,确保在S220的接下来的处理步骤中识别的条码图像包含条码的左端和右端。可替选地,替代识别延伸的末端像素EL和ER,CPU 32可以使用左端像素CL和右端像素CR以识别条码图像。
在S220中,CPU 32通过使用在S202中识别的倾斜和被识别的四个坐标P1、P8、EL以及ER来识别条码图像。将会参考图9A描述此处理的内容。CPU 32首先从二进制图像120中识别具有通过四个坐标P1、P8、EL以及ER限定的矩形的区域。然后,当倾斜的值指示条码倾斜时,即,当坐标P1和P8的X坐标没有相互一致时,CPU 32根据被识别的倾斜旋转被识别的区域,以产生各个条的延伸方向和Y方向相互一致的条码图像BI。另一方面,当倾斜的值指示条码没有倾斜时,即,当坐标P1和P8的X坐标相互一致时,CPU 32在没有旋转被识别的区域的情况下将识别的区域确定为条码图像。当S220的处理被完成时,图6中的处理结束。
如上所述,在图3的S60中识别条码图像BI之后,CPU 32能够解码和删除条码图像BI(S62,和S66)。图9B图示从其已经删除条码图像BI的二进制图像120的状态。这防止相同的条码图像BI被再次识别,从而减少处理负荷。
在图3的S68中,CPU 32删除目标连接信息并且执行标志改变处理。当条码图像BI包括两个或者更多个粗条组时,即,当条码图像BI包括通过目标连接信息指示的粗条组和通过另一组连接信息指示的另一粗条组两者时,CPU 32执行标志改变处理以将在另一组连接信息中的解码标志P5从“OFF”变成“ON”。在图7和图8的示例中,不仅通过目标连接信息指示的粗条组200而且另一粗条组210存在于条码图像BI。因此,在图3的S40中,不仅指示粗条组200的连接信息而且指示粗条组210的连接信息被产生。在S68中,CPU 32删除目标连接信息以防止关于粗条组200的处理继续。CPU 32通过将用于粗条组210的连接信息中的坐标P1与条码图像BI的坐标P1、P8、EL以及ER进行比较获知粗条组210也存在于条码图像BI内。因此,CPU 32将在用于粗条组210的连接信息中的解码标志P5进一步从“OFF”变成“ON”。这确保针对用于粗条组210的连接信息的在S52的判断变成否定,并且基于粗条组210防止条码图像BI被再次识别,这减少处理负荷。可替选地,连接信息可以不包括解码标志P5,并且CPU32可以不在S68中执行标志改变处理。
(连接信息删除处理;图10)
参考图10,将会描述在图3的S80中执行的连接信息删除处理的内容。连接信息删除处理是用于删除不是在S68中删除的目标连接信息,而是指示除了粗条之外的对象(例如,字符)的这样的连接信息的处理。
在S80的连接信息删除处理中,首先,在S300中,CPU 32从被存储在存储器34中的一组或者多组连接信息当中选择一组连接信息(在下文中被称为“特定连接信息”)。当在存储器34中不存在连接信息时,CPU 32跳过S310至S340并且结束图10的处理例程。
在S310中,当CPU 32对当前目标线“j”已经执行图3中的S40的处理时,CPU 32确定是否CPU 32已经产生或者更新特定连接信息。在当前目标线处还没有执行特定连接信息的产生或者更新的事实意指新的候选组已经被连接到当前目标线处的特定连接信息。例如,现在假定在图10的二进制图像120中,“j=11”的线是当前目标线,并且在与前一个目标线“j=10”上的前一个候选组300相邻的位置处在“j=11”的目标线上不存在ON像素。注意的是,当在原稿中没有适当地打印条码时,条码中的粗条的一部分在原稿中可能丢失。在这样的情况下,候选组300不能被连接新的候选组的缺点出现。当在S40中在目标线上已经执行特定连接信息的产生或者更新(在310中是)时,CPU 32跳过S320至S332并且前进到S340。另一方面,当在S40中在目标线上还没有执行特定连接信息的产生或者更新(在S310中否)时,CPU 32前进到S320。
在S320中,CPU 32增加特定连接信息中的空白数目P6。然后,在S322中,CPU 32增加特定连接信息中的连接数目P2。结果,在图10的示例中,空白数目P6和连接数目P2分别被增加到“1”和“7”。此外,在S322中,CPU 32根据需要改变在特定连接信息中的左端坐标P3。具体地,CPU 32假定根据被包括在特定连接信息中的倾斜P7虚拟候选组310被连接到候选组300,尽管虚拟候选组310没有被实际地连接。虚拟候选组310具有与像素数目P4一致的像素的数目。在图10的示例中,虚拟候选组310是由通过X标志表示的六个OFF像素组成。注意,虚拟候选组310可以不仅由OFF像素组成,而是可以包括一个或者多个ON像素。因为倾斜P7指示“-1”,所以CPU 32确定虚拟候选组310使得虚拟候选组310被定位在候选组300的左边。在这样的情况下,CPU 32将特定连接信息中的左端坐标P3从“12”变成“11”。
在S330中,CPU 32确定是否在S320中增加的空白数目P6已经变成大于或者等于第二阈值Th2(例如,“3”)。当空白数目P6已经达到第二阈值Th2(在S330中是)时,CPU 32在S33中删除特定连接信息并且前进到S340。空白数目P6已经达到第二阈值Th2的事实意指特定连接信息很有可能指示除了粗条之外的对象。因为由此删除特定连接信息,所以确保在后续的处理步骤中将不会执行关于特定连接信息的处理(例如,在图4中的S120,和图3的S50和S52中的更新处理)。因此,将会减少处理负荷。另一方面,当空白数目P6小于第二阈值Th2(在S330中否)时,CPU 32跳过S332并且前进到S340。在这样的情况下,CPU 32在后续的处理步骤中继续特定连接信息的处理。
在S340中,CPU 32确定是否在S300中已经选择所有组的连接信息。当还没有选择所有组的连接信息(在S340中否)时,CPU 32返回到S300,在S300中CPU 32选择另一组连接信息并且再次执行S310至S332的处理。另一方面,当已经选择所有组的连接信息(在S340中是)时,CPU 32结束图10的处理例程。
在图10的示例中,在“j=12”的线上,与虚拟候选组310相邻的候选组存在。因此,当CPU 32在图4的S112中识别候选组320中时,CPU 32更新连接信息使得候选组320被连接到虚拟候选组310。CPU 32将连接数目P3从“7”更新成“8”,将左端候选P3从“11”更新成“12”,将空白数目P6从“1”更新成“0”,并且将倾斜P7从“-1”更新成“1”(如通过用于图10中的“j=12”的下划线所指示)。然后,当在S52中的用于连接信息的判定变成肯定(图3)时,CPU 32将会基于连接信息识别条码图像。以这样的方式,即使当组成条码的粗条的一部分丢失时,CPU 32也能够适当地识别条码图像。可替选地,当在S310中的判定变成否定时,在没有执行S320至S330的情况下CPU 32可以在S332中简单地删除特定连接信息。
(优点)
根据本实施例,PC 10查找空白区域,在从二进制图像120识别的粗条组200的左侧和右侧两者处均具有大于或者等于空白的参考数目的像素的数目,从而识别分别是条码的左侧和右侧端位置的左端像素CL和右端像素CR(图7和图8)。然后,PC 10使用左端像素CL和右端像素CR以识别包括粗条组200的条码图像BI(参见图9A)。因此,在粗条组200的两侧和中心中的每一个处,CPU 10不需要执行其每一个是由两个或者更多个条组成的保护条图案或者中心条图案的图案匹配。因此,识别条码图像BI所需的处理时间能够被减少。
此外,如上所述,已知诸如JAN码和EAN码的各种标准的条码。当通过执行条的图案匹配从原始图像识别条码图像BI的位置的方法被采用时,如果在原稿中包括的条码的标准未知则与多个标准的条码相对应的多种类型的图案匹配需要被执行。因此,识别条码图像BI的位置所需的处理时间增加。相反地,在本实施例中,PC 10将匹配与条码中的条的宽度有关并且对于多个标准的条码来说共同的(在图4的S112中是)特征的候选组识别为粗条候选,并且确定包括被识别的候选组的粗条组200(在图4中的S120和图6中的S200)。因此,不论在原稿中包括的条码的标准如何,CP 10能够快速地识别在二进制图像120中的粗条组200的位置,而不执行与多个标准的条码相对应的多种类型的图案匹配。通常,空白存在于条码周围,使得PC 10查找在粗条组200的左侧和右侧两者上的空白区域并且识别条码的左端和右端位置。因此,PC 10不需要执行与多个标准的条码相对应的处理,以便于识别条码图像BI的位置,从而减少识别条码图像BI的位置所需的处理时间。结果,PC 10能够快速地执行关于条码图像BI的输出处理。
(对应关系)
PC 10是“图像分析设备”的示例。在图2的S14中产生的二进制图像数据是“目标图像数据”的示例。二进制图像120、120A、120B均是“目标图像”的示例。OFF像素、由所有的OFF像素组成的区域、ON像素、以及由所有的ON像素组成的区域分别是“背景像素”、“背景区域”、“非背景像素”以及“非背景区域”的示例。二进制图像120的左右方向(X方向)和上下方向(Y方向)分别是“第一方向”和“第二方向”的示例。左侧、右侧、上侧以及下侧分别是“第一侧”、“第二侧”、“第三侧”以及“第四侧”的示例。参考线延伸的参考方向是“特定方向”的示例。图7中的左侧空白区域和右侧空白区域分别是“第一空白区域”和“第二空白区域”的示例。图8中的左侧小空白区域是“第一部分背景区域”的示例。左端像素CL和右端像素CR分别是“第一末端位置”和“第二末端位置”的示例。
粗条是“具有第一宽度的条”的示例。使S112的判断为肯定(图4)的候选组(例如,图6中的候选组250)是“第一部分候选区域”的示例。在S200(图6)中连接的相邻的组260、262、264、266以及268是“第二部分候选区域”的示例。在S200(图6)中确定的粗条组200(图7)是“条候选区域”的示例。S112(图4)的处理是“存在确定处理”的示例。在S112(图4)中的肯定判断是“匹配关于两个或者更多个宽度”的特征的示例。线是“线像素组”的示例。在图5中的“j=5”的线、“j=5”的线上的候选组、“j=6”的线、以及在“j=6”的线上的候选组分别是“第一线像素组”、“第一线像素组中的第一部分候选区域”、“第二线像素组”以及“在第二线像素组中的第一部分候选区域”。在连接信息中彼此关联的候选组是“关联区域”的示例。在图7和图8中的粗条组200和粗条组210分别是“第一关联区域”和“第二关联区域”的示例。在图10中的虚拟候选组310是“特定区域”的示例。
在图10的S330中使用的第二阈值Th2和在图3的S52中使用的第一阈值Th1分别是“第一预定数目”和“第二预定数目”的示例。在S112(图4)中的表达(b)中使用的值“2”和在表达(c)中使用的值“4”分别是“第一预定值”和“第二预定值”的示例。被用于在S212中确定空白的参考数目的预定值(例如,在图7中预定值=7)是“第三预定值”的示例。预定数目和上述预定值能够被适当地改变。
虽然参考其具体实施例已经进行了描述,但是对于本领域的技术人员来说显然的是,在没有脱离上述方面的精神和范围的情况下在此可以进行各种变化和修改。
(修改1)
例如,当在图4的S112中CPU 32已经识别候选组时CPU 32在S120中可以不产生连接信息。在这样的情况下,CPU 32可以将识别的候选组的Y坐标确定为条码的上端位置,并且将与识别的候选组向下分离了预定数目的像素的位置确定为条码的下端位置。然后,CPU32可以查找在识别的候选组的左侧和右侧两者上的空白区域。简言之,为了识别粗条候选,不需要确定关联区域。
(修改2)
当在图3的S64中已经成功地执行条码图像的解码处理时CPU 32可以结束图3的处理例程,而不执行关于后续的目标线的处理。在这样的情况下,从第一目标线到已经成功执行条码图像的解码的当前目标线的多条线是“j个线像素组”的示例。即,被包括在“j个线像素组”中的像素组的数目“j”可以小于被排列在二进制图像120的Y方向上的所有线像素的数目。
(修改3)
CPU 32可以通过执行S112和S120的处理,而不是执行S200的处理(图6),来识别粗条组。即,关联区域不可以包括相邻的组。
(修改4)
CPU 32在图6的S202中可以不识别粗条组的倾斜,并且在S210中可以不识别与粗条组的倾斜正交的参考线。在这样的情况下,例如,CPU 32可以在S210中将当前目标线识别为参考线。在这样的情况下,二进制图像120的左右方向是“特定方向”的示例。
(修改5)
在图4的S112中,CPU 32可以确定是否存在任何细条候选,替代确定是否存在任何粗条候选。例如,当中心值“nc”满足等式“nc=min”时,CPU 32可以将中心ON像素组确定为细条候选。CPU 32可以在其它的处理中使用细条替代粗条使得识别条码图像。即,“第一宽度”可以小于两个或者更多个宽度的第二宽度。在当前修改中,中心值“nc”满足等式“nc=min”的情况是“匹配关于两个或者更多个宽度的特征”的示例。
(修改6)
在图6的S212中,CPU 32可以将预先确定的预定数目的像素(例如,20个像素)确定为空白的参考数目。换言之,可以不通过将与第二宽度相对应的长度乘以预定值来确定“阈值”。
(修改7)
通过扫描仪50可以执行图2到图10的处理,并且在S66中可以将解码的结果从扫描仪50发送到PC 10。即,“图像分析设备”的示例包括扫描仪50。简言之,“图像分析设备”的示例包括能够执行图像的分析的这样的装置(例如,多功能机器和智能电话)。
(修改8)
在上述实施例中,CP 10的CPU 32执行驱动器程序36(软件)以实现图2到图10的处理。可替选地,可以通过诸如逻辑电路的硬件实现在图2至图10中的处理当中的至少一个处理。

Claims (11)

1.一种图像分析设备,包括控制器,所述控制器被配置成执行:
获取目标图像数据,所述目标图像数据是通过执行读取包含一维条码的原稿来产生的,所述一维条码由具有两个或者更多个不同宽度的多个条组成,所述两个或者更多个不同宽度包括第一宽度,所述目标图像数据表示包含背景区域和非背景区域的目标图像,所述背景区域表示所述原稿中的背景,并且所述非背景区域表示除了所述背景之外的区域;
识别条码图像,所述条码图像是所述目标图像的一部分并且表示所述一维条码;以及
关于被识别的所述条码图像执行输出处理;
所述识别条码图像包括:
确定所述目标图像中的条候选区域,所述条候选区域表示用于具有所述第一宽度的条的候选,所述条候选区域包含特征匹配区域,所述特征匹配区域匹配于涉及在所述一维条码中的条的所述两个或者更多个不同宽度的特征;
相对于特定方向,分别在所述条候选区域的第一侧和第二侧处查找第一空白区域和第二空白区域,所述第一空白区域和所述第二空白区域中的每一个是所述背景区域的一部分并且在所述特定方向上具有长于或者等于阈值的长度;
当在所述条候选区域的所述第一侧处找到所述第一空白区域时,将在所述第一空白区域和在所述第一空白区域的第二侧处并且与所述第一空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第一末端位置;
当在所述条候选区域的所述第二侧处找到所述第二空白区域时,将在所述第二空白区域和在所述第二空白区域的第一侧处并且与所述第二空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第二末端位置;以及
通过使用所述第一末端位置和所述第二末端位置,将包含所述条候选区域的区域识别为所述条码图像,
其中,当由于在所述原稿的第一侧和所述一维条码的第一侧之间的接近,导致具有比所述阈值短的在所述特定方向上的长度的第一部分背景区域存在于所述条候选区域的第一侧处的所述背景区域中,并且在所述条候选区域的第一侧处没有找到第一空白区域时,在所述第一部分背景区域和在所述第一部分背景区域的第二侧处并且与所述第一部分背景区域相邻的非背景区域之间的边界,被确定为所述一维条码的第一末端位置,并且
其中,当由于所述原稿的第二侧和所述一维条码的第二侧之间的接近,导致具有比所述阈值短的在所述特定方向上的长度的第二部分背景区域存在于所述条候选区域的第二侧处的背景区域中,并且在所述条候选区域的第二侧处没有找到第二空白区域时,在所述第二部分背景区域和在所述第二部分背景区域的第一侧处并且与所述第二部分背景区域相邻的非背景区域之间的边界,被确定为所述一维条码的第二末端位置。
2.根据权利要求1所述的图像分析设备,
其中,所述目标图像由多个像素组成,所述多个像素被二维地排列,使得在第一方向上排列两个或者更多个像素,并且在垂直于所述第一方向的第二方向上排列两个或者更多个像素,
其中,所述多个像素包括背景像素和非背景像素,所述背景像素表示所述原稿中的背景,并且所述非背景像素表示所述原稿中除了所述背景之外的区域,
其中,所述特征匹配区域包含第一部分候选区域,所述第一部分候选区域由在所述第一方向上连续排列的一个或者多个非背景像素组成,
其中,所述多个像素包含在所述第二方向上排列的“j”个线像素组,“j”是大于或者等于2的整数,每个线像素组包含在所述第一方向上排列的两个或者更多个像素,所述“j”个线像素组包括第一线像素组和与所述第一线像素组相邻的第二线像素组,
其中,对条候选区域的所述确定包括:
当所述第一部分候选区域存在于所述第一线像素组中,所述第一部分候选区域存在于所述第二线像素组中,并且所述第一线像素组中的所述第一部分候选区域和所述第二线像素组中的所述第一部分候选区域彼此相邻时,确定关联区域,在所述关联区域中所述第一线像素组中的所述第一部分候选区域和所述第二线像素组中的所述第一部分候选区域彼此关联;以及
确定所述条候选区域,使得所述条候选区域包含所述关联区域。
3.根据权利要求1所述的图像分析设备,
其中,所述两个或者更多个不同宽度进一步包括小于所述第一宽度的第二宽度,并且
其中,所述查找第一空白区域和第二空白区域包括通过将与所述第二宽度相对应的长度乘以第三预定值来确定所述阈值。
4.根据权利要求1所述的图像分析设备,其中,所述执行输出处理包括解码被识别的所述条码图像并且输出解码的结果。
5.一种图像分析设备,包括控制器,所述控制器被配置成执行:
获取目标图像数据,所述目标图像数据是通过执行读取包含一维条码的原稿来产生的,所述一维条码由具有两个或者更多个不同宽度的多个条组成,所述两个或者更多个不同宽度包括第一宽度,所述目标图像数据表示包含背景区域和非背景区域的目标图像,所述背景区域表示所述原稿中的背景,并且所述非背景区域表示除了所述背景之外的区域;
识别条码图像,所述条码图像是所述目标图像的一部分并且表示所述一维条码;以及
关于被识别的所述条码图像执行输出处理;
所述识别条码图像包括:
确定所述目标图像中的条候选区域,所述条候选区域表示用于具有所述第一宽度的条的候选,所述条候选区域包含特征匹配区域,所述特征匹配区域匹配于涉及在所述一维条码中的条的所述两个或者更多个不同宽度的特征;
相对于特定方向,分别在所述条候选区域的第一侧和第二侧处查找第一空白区域和第二空白区域,所述第一空白区域和所述第二空白区域中的每一个是所述背景区域的一部分并且在所述特定方向上具有长于或者等于阈值的长度;
当在所述条候选区域的所述第一侧处找到所述第一空白区域时,将在所述第一空白区域和在所述第一空白区域的第二侧处并且与所述第一空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第一末端位置;
当在所述条候选区域的所述第二侧处找到所述第二空白区域时,将在所述第二空白区域和在所述第二空白区域的第一侧处并且与所述第二空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第二末端位置;以及
通过使用所述第一末端位置和所述第二末端位置,将包含所述条候选区域的区域识别为所述条码图像,
其中,所述目标图像由多个像素组成,所述多个像素被二维地排列,使得在第一方向上排列两个或者更多个像素,并且在垂直于所述第一方向的第二方向上排列两个或者更多个像素,
其中,所述多个像素包括背景像素和非背景像素,所述背景像素表示所述原稿中的背景,并且所述非背景像素表示所述原稿中除了所述背景之外的区域,
其中,所述特征匹配区域包含第一部分候选区域,所述第一部分候选区域由在所述第一方向上连续排列的一个或者多个非背景像素组成,
其中,所述多个像素包含在所述第二方向上排列的“j”个线像素组,“j”是大于或者等于2的整数,每个线像素组包含在所述第一方向上排列的两个或者更多个像素,所述“j”个线像素组包括第一线像素组和与所述第一线像素组相邻的第二线像素组,
其中,对条候选区域的所述确定包括:
当所述第一部分候选区域存在于所述第一线像素组中,所述第一部分候选区域存在于所述第二线像素组中,并且所述第一线像素组中的所述第一部分候选区域和所述第二线像素组中的所述第一部分候选区域彼此相邻时,确定关联区域,在所述关联区域中所述第一线像素组中的所述第一部分候选区域和所述第二线像素组中的所述第一部分候选区域彼此关联;以及
确定所述条候选区域,使得所述条候选区域包含所述关联区域,
其中,确定关联区域包括:
相对于所述第二方向,从第三侧朝向第四侧,对所述“j”个线像素组中的至少一个线像素组连续地执行存在确定处理,对线像素组执行的所述存在确定处理确定所述第一部分候选区域是否存在于对象线像素组中;
当通过对第m线像素组执行的所述存在确定处理确定所述第一部分候选区域存在于所述第m线像素组中时,确定关联区域,使得所述关联区域包含存在于所述第m线像素组中的所述第一部分候选区域,所述第m线像素组被定位在所述第二方向上从所述第三侧开始的第m个,其中,m是大于或者等于1并且小于j的整数,并且
当通过对第(m+1)线像素组执行的所述存在确定处理确定所述第一部分候选区域存在于所述第(m+1)线像素组中,并且所述第(m+1)线像素组中的所述第一部分候选区域与所述关联区域相邻时,更新所述关联区域,使得被更新的所述关联区域包含存在于所述第m和所述第(m+1)线像素组两者中的所述第一部分候选区域,所述第(m+1)线像素组被定位在所述第二方向上从所述第三侧开始的第(m+1)个。
6.根据权利要求5所述的图像分析设备,
其中,当通过对所述第m线像素组执行的所述存在确定处理确定两个或者更多个第一部分候选区域存在于所述第m线像素组中时,分别为所述两个或者更多个第一部分候选区域确定两个或者更多个关联区域,使得每个关联区域包含相对应的所述第一部分候选区域,所述两个或者更多个关联区域包括第一关联区域和第二关联区域,
其中,通过使用所述第一关联区域来确定所述条候选区域,使得所述条候选区域包含所述第一关联区域,
其中,包含含有所述第一关联区域的所述条候选区域的区域被识别为所述条码图像,并且
其中,在被识别的所述条码图像包含所述第二关联区域的情况下,不基于所述第二关联区域确定包含所述第二关联区域的条候选区域。
7.根据权利要求5所述的图像分析设备,
其中,所述确定关联区域进一步包括:
当确定在与所述关联区域相邻的位置处在所述第(m+1)线像素组中不存在第一部分候选区域时,更新所述关联区域,使得被更新的所述关联区域进一步包含特定区域,所述特定区域包含存在于所述第(m+1)线像素组中并且与所述关联区域相邻的一个或者多个背景像素;以及
重复地更新所述关联区域,使得被更新的所述关联区域包含在所述第二方向上连续排列的多个特定区域,同时在被更新的所述关联区域中连续排列的所述特定区域的总数目小于第一预定数目,并且
当在被更新的所述关联区域中连续排列的所述特定区域的总数目变成大于或者等于所述第一预定数目时,所述关联区域的更新被停止,并且包含被更新的所述关联区域的条候选区域没有被确定。
8.根据权利要求5所述的图像分析设备,其中,所述确定关联区域进一步包括:
作为对被定位在所述第二方向上从所述第三侧开始的第n个的第n线像素组执行所述存在确定处理的结果,当在被更新的所述关联区域中在所述第二方向上连续排列的所述第一部分候选区域的数目变成等于第二预定数目时,对被定位在所述第二方向上从所述第三侧开始的第(n+1)个的第(n+1)线像素组不执行存在确定处理,并且更新所述关联区域,使得被更新的所述关联区域进一步包括第二部分候选区域,所述第二部分候选区域由被包含在所述第(n+1)线像素组中并且与所述关联区域相邻的至少一个非背景像素组成,其中,“n”是大于或者等于1且小于“j”的整数。
9.根据权利要求8所述的图像分析设备,其中,在一个或者多个第一部分候选区域和一个或者多个第二部分候选区域被包含在所述条候选区域中的情况下,所述特定方向垂直于所述一个或者多个第一部分候选区域和所述一个或者多个第二部分候选区域被排列的方向。
10.一种图像分析设备,包括控制器,所述控制器被配置成执行:
获取目标图像数据,所述目标图像数据是通过执行读取包含一维条码的原稿来产生的,所述一维条码由具有两个或者更多个不同宽度的多个条组成,所述两个或者更多个不同宽度包括第一宽度,所述目标图像数据表示包含背景区域和非背景区域的目标图像,所述背景区域表示所述原稿中的背景,并且所述非背景区域表示除了所述背景之外的区域;
识别条码图像,所述条码图像是所述目标图像的一部分并且表示所述一维条码;以及
关于被识别的所述条码图像执行输出处理;
所述识别条码图像包括:
确定所述目标图像中的条候选区域,所述条候选区域表示用于具有所述第一宽度的条的候选,所述条候选区域包含特征匹配区域,所述特征匹配区域匹配于涉及在所述一维条码中的条的所述两个或者更多个不同宽度的特征;
相对于特定方向,分别在所述条候选区域的第一侧和第二侧处查找第一空白区域和第二空白区域,所述第一空白区域和所述第二空白区域中的每一个是所述背景区域的一部分并且在所述特定方向上具有长于或者等于阈值的长度;
当在所述条候选区域的所述第一侧处找到所述第一空白区域时,将在所述第一空白区域和在所述第一空白区域的第二侧处并且与所述第一空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第一末端位置;
当在所述条候选区域的所述第二侧处找到所述第二空白区域时,将在所述第二空白区域和在所述第二空白区域的第一侧处并且与所述第二空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第二末端位置;以及
通过使用所述第一末端位置和所述第二末端位置,将包含所述条候选区域的区域识别为所述条码图像,
其中,所述目标图像由多个像素组成,所述多个像素被二维地排列,使得在第一方向上排列两个或者更多个像素,并且在垂直于所述第一方向的第二方向上排列两个或者更多个像素,
其中,所述多个像素包括背景像素和非背景像素,所述背景像素表示所述原稿中的背景,并且所述非背景像素表示所述原稿中除了所述背景之外的区域,
其中,所述特征匹配区域包含第一部分候选区域,所述第一部分候选区域由在所述第一方向上连续排列的一个或者多个非背景像素组成,
其中,所述多个像素包含在所述第二方向上排列的“j”个线像素组,“j”是大于或者等于2的整数,每个线像素组包含在所述第一方向上排列的两个或者更多个像素,所述“j”个线像素组包括第一线像素组和与所述第一线像素组相邻的第二线像素组,
其中,对条候选区域的所述确定包括:
当所述第一部分候选区域存在于所述第一线像素组中,所述第一部分候选区域存在于所述第二线像素组中,并且所述第一线像素组中的所述第一部分候选区域和所述第二线像素组中的所述第一部分候选区域彼此相邻时,确定关联区域,在所述关联区域中所述第一线像素组中的所述第一部分候选区域和所述第二线像素组中的所述第一部分候选区域彼此关联;以及
确定所述条候选区域,使得所述条候选区域包含所述关联区域,
其中,所述两个或者更多个不同宽度进一步包括小于所述第一宽度的第二宽度,并且
其中,所述确定条候选区域进一步包括:
当从被包含在所述“j”个线像素组内的目标线像素组中的五个部分组中获得的三个参数“nc”、“min”以及“max”不满足下述两个条件(1)和(2)中的任何一个时:
nc/min<第一预定值…(1);和
max/min>第二预定值…(2),
确定在所述五个部分组内的特定部分组匹配于涉及所述一维条码中的条的两个或者更多个不同宽度的特征,
其中,所述五个部分组包括:
第一部分组,所述第一部分组由在所述第一方向上连续排列的至少一个非背景像素组成;
第二部分组,所述第二部分组与所述第一部分组相邻并且由在所述第一方向上连续排列的至少一个背景像素组成;
第三部分组,所述第三部分组与所述第二部分组相邻并且由在所述第一方向上连续排列的至少一个非背景像素组成;
第四部分组,所述第四部分组与所述第三部分组相邻并且由在所述第一方向上连续排列的至少一个背景像素组成;以及
第五部分组,所述第五部分组与所述第四部分组相邻并且由在所述第一方向上连续排列的至少一个非背景像素组成,
其中,所述参数“nc”是被包括在所述第三部分组中的像素的数目,
其中,所述参数“min”是在分别被包括在所述五个部分组中的像素的数目当中的最小的数目,
其中,所述参数“max”是在分别被包括在所述五个部分组中的像素的数目当中的最大的数目,
其中,基于所述一维条码中的条的所述两个或者更多个不同宽度预先确定所述第一预定值和所述第二预定值,并且
其中,所述特定部分组是所述第三部分组。
11.一种用于分析图像的方法,所述方法包括:
获取目标图像数据,所述目标图像数据是通过执行读取包含一维条码的原稿来产生的,所述一维条码由具有两个或者更多个不同宽度的多个条组成,所述两个或者更多个不同宽度包括第一宽度,所述目标图像数据表示包含背景区域和非背景区域的目标图像,所述背景区域表示所述原稿中的背景,并且所述非背景区域表示除了所述背景之外的区域;
识别条码图像,所述条码图像是所述目标图像的一部分并且表示所述一维条码;以及
关于被识别的所述条码图像执行输出处理;
所述识别条码图像包括:
确定所述目标图像中的条候选区域,所述条候选区域表示用于具有所述第一宽度的条的候选,所述条候选区域包含特征匹配区域,所述特征匹配区域匹配于涉及所述一维条码中的条的所述两个或者更多个不同宽度的特征;
相对于特定方向,分别在所述条候选区域的第一侧和第二侧处查找第一空白区域和第二空白区域,所述第一空白区域和所述第二空白区域中的每一个是所述背景区域的一部分并且在所述特定方向上具有长于或者等于阈值的长度;
当在所述条候选区域的所述第一侧处找到所述第一空白区域时,将在所述第一空白区域和在所述第一空白区域的第二侧处并且与所述第一空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第一末端位置;
当在所述条候选区域的所述第二侧处找到所述第二空白区域时,将在所述第二空白区域和在所述第二空白区域的第一侧处并且与所述第二空白区域相邻的非背景区域之间的边界,确定为所述一维条码的第二末端位置;以及
通过使用所述第一末端位置和所述第二末端位置,将包含所述条候选区域的区域识别为所述条码图像,
其中,当由于在所述原稿的第一侧和所述一维条码的第一侧之间的接近,导致具有比所述阈值短的在所述特定方向上的长度的第一部分背景区域存在于所述条候选区域的第一侧处的所述背景区域中,并且在所述条候选区域的第一侧处没有找到第一空白区域时,在所述第一部分背景区域和在所述第一部分背景区域的第二侧处并且与所述第一部分背景区域相邻的非背景区域之间的边界,被确定为所述一维条码的第一末端位置,并且
其中,当由于所述原稿的第二侧和所述一维条码的第二侧之间的接近,导致具有比所述阈值短的在所述特定方向上的长度的第二部分背景区域存在于所述条候选区域的第二侧处的背景区域中,并且在所述条候选区域的第二侧处没有找到第二空白区域时,在所述第二部分背景区域和在所述第二部分背景区域的第一侧处并且与所述第二部分背景区域相邻的非背景区域之间的边界,被确定为所述一维条码的第二末端位置。
CN201710197350.5A 2016-03-30 2017-03-29 识别目标图像中的条码图像的图像分析设备 Active CN107403123B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-068649 2016-03-30
JP2016068649A JP6607122B2 (ja) 2016-03-30 2016-03-30 画像解析装置

Publications (2)

Publication Number Publication Date
CN107403123A CN107403123A (zh) 2017-11-28
CN107403123B true CN107403123B (zh) 2022-04-12

Family

ID=59958838

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710197350.5A Active CN107403123B (zh) 2016-03-30 2017-03-29 识别目标图像中的条码图像的图像分析设备

Country Status (3)

Country Link
US (1) US10032059B2 (zh)
JP (1) JP6607122B2 (zh)
CN (1) CN107403123B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7039882B2 (ja) * 2017-08-16 2022-03-23 富士フイルムビジネスイノベーション株式会社 画像解析装置及び画像解析プログラム
US11074472B2 (en) * 2017-11-14 2021-07-27 Symbol Technologies, Llc Methods and apparatus for detecting and recognizing graphical character representations in image data using symmetrically-located blank areas
JP7436959B2 (ja) 2020-07-20 2024-02-22 ブラザー工業株式会社 印刷装置、コンピュータプログラム、制御方法
CN112560534B (zh) * 2020-12-26 2023-02-28 苏州斯普锐智能系统股份有限公司 一种多参配置静态顺序解码输出方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2949958B2 (ja) 1991-10-07 1999-09-20 株式会社デンソー バーコード読取装置
JP3335265B2 (ja) 1995-06-29 2002-10-15 富士通株式会社 バーコード抽出装置
JPH09251508A (ja) 1996-03-18 1997-09-22 Hitachi Ltd 太バー認識によるバーコード読み取り方法
US6565003B1 (en) * 1998-12-16 2003-05-20 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode
JP4163406B2 (ja) * 2001-09-28 2008-10-08 シャープ株式会社 バーコード認識装置
JP4321103B2 (ja) * 2003-04-25 2009-08-26 株式会社デンソーウェーブ 情報コード読取装置及び情報コード読取り方法
JP4442512B2 (ja) 2005-05-24 2010-03-31 株式会社デンソーウェーブ 情報コード読取装置および情報コード読取方法
US8196836B2 (en) * 2007-06-28 2012-06-12 Fuji Xerox Co., Ltd. Image processing apparatus, image processing method and computer-readable medium
CN101877057A (zh) * 2009-12-02 2010-11-03 中兴通讯股份有限公司 一种条形码识别方法及装置
CN201927043U (zh) * 2010-06-01 2011-08-10 福建新大陆电脑股份有限公司 一维条码解码芯片
CN101840496B (zh) * 2010-06-01 2012-12-12 福建新大陆电脑股份有限公司 一维条码解码芯片
CN102279922B (zh) * 2010-06-12 2014-07-16 晨星软件研发(深圳)有限公司 应用于手持装置的条码影像辨识系统与相关方法
WO2012095846A1 (en) * 2011-01-16 2012-07-19 Eyecue Vision Technologies Ltd. System and method for identification of printed matter in an image
CN103034831B (zh) * 2011-09-30 2015-05-27 无锡爱丁阁信息科技有限公司 线性条码识别方法和系统
CN103336938B (zh) * 2013-06-05 2016-04-13 华南理工大学 一种基于一维条形码图像的识别方法
CN103294980A (zh) * 2013-06-18 2013-09-11 四川大学 基于图像处理的微型qr码识别方法
US9607200B2 (en) * 2014-10-09 2017-03-28 Cognex Corporation Decoding barcodes
CN104463066B (zh) * 2014-12-03 2017-05-10 上海电机学院 一种商品外包装一维条形码快速定位识别方法
CN104573674B (zh) * 2015-01-29 2017-11-28 杨克己 面向实时嵌入式系统的一维条码识别方法

Also Published As

Publication number Publication date
CN107403123A (zh) 2017-11-28
JP6607122B2 (ja) 2019-11-20
JP2017182455A (ja) 2017-10-05
US10032059B2 (en) 2018-07-24
US20170286737A1 (en) 2017-10-05

Similar Documents

Publication Publication Date Title
CN107403123B (zh) 识别目标图像中的条码图像的图像分析设备
US8503773B2 (en) Glyph selection and electronic document generation
JP5262869B2 (ja) 画像処理システム、画像処理サーバ、mfp及び画像処理方法
US8412705B2 (en) Image processing apparatus, image processing method, and computer-readable storage medium
US20040213458A1 (en) Image processing method and system
US11521365B2 (en) Image processing system, image processing apparatus, image processing method, and storage medium
JP2006031546A (ja) 文字方向識別装置、文書処理装置及びプログラム並びに記憶媒体
US11568623B2 (en) Image processing apparatus, image processing method, and storage medium
CN112733568A (zh) 一维条码识别方法、装置、设备及存储介质
JP5538812B2 (ja) 画像処理装置、画像処理方法及びプログラム
JP4977232B2 (ja) 文字読取結果確認装置および文字読取結果確認方法
US10984277B2 (en) Image analysis apparatus, image analysis method, and non-transitory computer readable medium
JP5915662B2 (ja) 画像生成方法、情報処理方法、プログラム、及び情報処理装置
JP2019003229A (ja) 画像解析装置
US10706337B2 (en) Character recognition device, character recognition method, and recording medium
JP6432179B2 (ja) 文書ファイル生成装置及び文書ファイル生成方法
JP7384603B2 (ja) 文書フォームの識別
EP3940628A1 (en) Image processing device, image reading device, image processing method, and program
US12008829B2 (en) System and method for improved OCR efficacy through image segmentation
US20240087129A1 (en) Information processing apparatus, non-transitory computer readable medium, and information processing method
JP5298830B2 (ja) 画像処理プログラム、画像処理装置及び画像処理システム
US20230260308A1 (en) System and method for improved ocr efficacy through image segmentation
US20210248411A1 (en) Information processing apparatus and non-transitory computer readable medium storing program
JP2007249580A (ja) 画像処理装置、画像処理プログラムおよび画像処理方法
KR101365404B1 (ko) 이미지 인식 방법 및 이를 이용한 인식 장치

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant