CN1334544A - 二维代码读取方法、信息记录媒体和二维代码读取装置 - Google Patents

二维代码读取方法、信息记录媒体和二维代码读取装置 Download PDF

Info

Publication number
CN1334544A
CN1334544A CN01119210A CN01119210A CN1334544A CN 1334544 A CN1334544 A CN 1334544A CN 01119210 A CN01119210 A CN 01119210A CN 01119210 A CN01119210 A CN 01119210A CN 1334544 A CN1334544 A CN 1334544A
Authority
CN
China
Prior art keywords
module
orientation
axis
detector
central point
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.)
Pending
Application number
CN01119210A
Other languages
English (en)
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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
Priority claimed from JP2000104970A external-priority patent/JP2001291051A/ja
Priority claimed from JP2000201279A external-priority patent/JP2002024752A/ja
Priority claimed from JP2000237086A external-priority patent/JP2002049889A/ja
Priority claimed from JP2000355940A external-priority patent/JP2002157549A/ja
Application filed by Seiko Epson Corp filed Critical Seiko Epson Corp
Publication of CN1334544A publication Critical patent/CN1334544A/zh
Pending legal-status Critical Current

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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Toxicology (AREA)
  • Electromagnetism (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Character Discrimination (AREA)
  • Image Processing (AREA)
  • Character Input (AREA)
  • Image Analysis (AREA)
  • Optical Recording Or Reproduction (AREA)
  • Automatic Tape Cassette Changers (AREA)

Abstract

提供一种二维代码读取方法、信息记录媒体和二维代码读取装置,对于MaxiCode符号的读取图像的解码处理,进行读取二维代码符号的读取图像的探测器图形的搜索、方向模块的搜索、数据模块的搜索和向数据字符的变换。对于MaxiCode符号的解码处理中的数据模块搜索处理,首先,设定方向轴,算出方向轴上的数据模块的位置信息和图形信息(步骤S1801)。然后,基于像素数据,变换为由[黑]=位1或[白]=位0形成的位图形(S1802)。接着,算出MaxiCode符号的数据模块的位置信息(步骤S1803)。然后,基于像素数据,变换为由[黑]=位1或[白]=位0形成的位图形(S1804),结束数据模块的搜索处理。

Description

二维代码 读取方法、信息记录 媒体和二维代码读取装置
本发明涉及二维代码读取方法、信息记录媒体和二维代码读取装置。尤其涉执行及对二维代码的符号进行读取的读取图像的探测器(finder)图形的搜索、方向模块的搜索、数据模块的搜索以及向数据字符的变换的二维代码读取方法,信息记录媒体和二维代码读取装置。
条型码是在小商品销售界中作为很早地且正确地进行对象的指定检查的装置发展起来的自动识别技术,现在应用于流通、物流、行政、医疗、研究、事件等很宽的领域。随着条型码的普及,其用途涉及多方面,连原来条型码不能适用的领域(小型化、大容量),也变得需要它起来。为满足这种需要,近年来开发的是二维代码。二维代码有层叠型和矩阵型两种。层叠型二维代码在纵向上重叠条型码后在纵向和横向上表示信息,可通过激光扫描仪或CCD扫描仪这样的扫描方法读取。另一方面,矩阵型二维代码通过白色或黑色单元把信息表示成镶嵌(mosaic)形状,可通过CCD图像读出器这样的图像感测(sensing)方法读取。
MaxiCode是一种矩阵型二维代码。尤其,MaxiCode设计成适合于物品的分类和跟踪管理等,在美国国内将其用于宅急送物资中心的发送地分类和装船分类管理等。下面,把MaxiCode表示的二维代码的符号叫作MaxiCode符号。
图59是表示MaxiCode符号的图。图59(a)是表示MaxiCode符号的整体图的一个例子,图59(b)是表示探测器图形和方向模块的图。
如图59(a)所示,MaxiCode符号5900中间存在一个叫作探测器图形5901的部分,其由6个同心圆构成的1个白色圆、2个白色环和3个黑色环构成。探测器图形5901是构成检测MaxiCode符号5900时的记号的切去符号。通过搜索探测器图形的中心点识别符号的中心位置。
另外,在探测器图形5901的周边上存在作为884个正六边形的白色或黑色单元的模块5902构成的模块组。模块组由方向模块组和数据模块组构成。方向模块组由表示MaxiCode符号5900的方向的18个方向模块构成。数据模块组由表示数据的864个数据模块构成,1个数据模块对应于1位数据。数据模块用于编码数据,并进行纠错处理。还有,位于符号的右上角的2个模块不被使用。
此外,如图59(b)所示,正六边形的模块5902具有内接于探测器图形5901的中央的白色圆的大小。方向模块组5903以探测器图形5901的中心为中心点O,在其圆周上以60度的间隔存在于6个方向。各个方向模块组5903由内侧方向模块5904、外侧方向模块5905和中央方向模块5906共3个方向模块构成,方向模块组5903总共由18个方向模块构成。通过搜索这18个方向模块识别MaxiCode符号的方向,读取对应于各个数据模块的数据。这里,对于方向模块组5903,内侧方向模块5904存在于离开中心点O最短的距离的位置,外侧方向模块5905存在于离开中心点O最长的距离的位置,中央方向模块5906存在于离开中心点O的距离为离开中心点O的内侧方向模块5904的距离和离开中心点O的外侧方向模块5905的距离之间。
在作为二维代码的符号的MaxiCode符号的读取中使用图像感测方式。即,读取MaxiCode符号,作为成像图像信息进行解读(下面称为“解码”)。
首先,从读取的图像信息搜索MaxiCode符号的探测器图形和方向模块,识别各个数据模块。接着,各个数据模块为“黑”时作为1、为“白”时作为0,变换为位图形。最后,通过把得到的位图形变换为对应的数据字符进行解码。因此,就MaxiCode符号的读取图像的解码处理而言,考虑各种解码处理方法。
必须求出探测器图形的中心点。搜索探测器图形的中心点的方法例如记载在特开平10-21322号公报中。该公报中,检索具有比π小的角度测量长度的全部缩短曲线,从检索到的全部的缩短曲线检索全部凸状缩短曲线,从检索到的各个凸状缩短曲线的终点确定一对接线方式,对于各对接线方式确定中间连线的方式,确定中间连线的交点,根据该交点搜索MaxiCode符号的探测器图形的中心点,之后,进行解码。但是,由于从缩短曲线检索全部凸状的缩短曲线,确定接线方式后搜索MaxiCode符号的探测器图形的中心点,出现的问题是搜索探测器图形的中心点的处理非常费时间。
另外,使用规定的模板搜索中心点的方法记载在特表平10-501082号公报中。但是,记载的是每60度分隔的仅6根记号轴通过中心圆的中心点,在中心圆的中心点重叠模板的中心点,但没有详细记载怎样重叠中心点。
还有,搜索方向模块是重要的,考虑用于搜索方向模块的各种处理方法。搜索方向模块是得到方向模块的位置信息和图形信息。得到方向模块的位置信息和图形信息是根据MaxiCode符号的模块大小,不仅能检测各个数据模块的位置,而且能识别检出的数据模块的颜色,即位数据。
图60是表示MaxiCode符号的模块组的图。如图60所示,模块组6000由方向模块构成的方向模块组6001a,6001b,6001c,6001d,6001e和6001f以及数据模块构成的数据模块组6002组成。另外,分别构成6个方向模块组6001a,6001b,6001c,6001d,6001e和6001f的3个方向模块的“黑”=1或“白”=0的位图形因方向而不同。因此,考虑用于搜索方向模块的各种处理方法,但由于该方法伴随的是复杂的处理,出现的问题是搜索方向模块的处理花费时间。
还有,对于根据搜索的方向模块检出数据模块位置、从对应于检出的模块的颜色的位图形变换为数据字符的一连串的处理,也考虑各种处理方法。但是,由于这些方法仍伴随复杂处理,也有处理中花费时间的问题。
此外,在MaxiCode符号的读取图像的解码处理中,可解码从正面读取的情况下的读取图像。但是,根据在分类的物品上附加的MaxiCode符号的场所、二维代码读取装置的设置场所,实际读取的MaxiCode符号的读取图像并不限于是从正面读取的读取图像。反而必须解码倾斜读取的读取图像的情况很多,那么不能解码的情况也多起来。
图62是表示MaxiCode符号的读取图像和实际的MaxiCode符号的关系的图。图62(a)是表示从正面读取的情况下的MaxiCode符号的读取图像和实际的MaxiCode符号的关系图,图62(b)是表示从倾斜读取的情况下的MaxiCode符号的读取图像和实际的MaxiCode符号的关系图。
如图62(a)所示,从正面读取的情况下的MaxiCode符号的读取图像和实际的MaxiCode符号是类似关系。即,在MaxiCode符号的读取图像中,读取图像的探测器图形和各个模块的相对位置与实际的MaxiCode符号中的探测器图形和各个模块相同。另外,读取图像的探测器图形和各模块图形与实际的MaxiCode符号中的探测器图形和各个模块的图形相似。
另一方面,如图62(b)所示,比较倾斜读取的MaxiCode符号的读取图像和实际的MaxiCode符号时,读取图像的探测器图形和各个模块的相对位置与实际的MaxiCode符号中的探测器图形和各个模块的相对位置不同。而且读取图像的探测器图形和各模块图形与实际的MaxiCode符号中的探测器图形和各个模块的图形并不相似,读取图像的图形产生了变形。因此,难以识别构成MaxiCode符号的数据模块的位置、数据模块的颜色。
因此,作为二维代码符号的MaxiCode符号的读取图像中,倾斜读取MaxiCode符号的情况下的读取图像的解码处理出错多,有不能解码的问题。
为此,必须修正失真,以把有失真的读取图像作成没有失真的读取图像。作为一般使用的修正失真方法,有叫作规一化的方法。
图63是表示根据规一化的图像失真修正图。图63(a)是表示失真种类的图,图63(b)是表示利用规一化修正的读取图像的解码处理的图。
如图63(a)所示,在失真图像中,有立体失真图像、旋转失真图像等,通过规一化修正,成为没有失真的图像。而且,如图63(b)所示,有失真的读取图像的解码处理是首先切去符号,规一化修正切去的符号,通过解码修正了的没有失真的图像,可读取写入在符号中的信息。
这里,如图59所示,MaxiCode符号不仅位于探测器图形的符号中心,由于单元是正六边形,符号周围部分和顶点的数据模块为“白”时,难以在数学上对符号的形状作特征。因此,出现的问题是MaxiCode符号不能根据作为一般修正失真方法的规一化正确执行失真修正。
即使正确执行了根据规一化的失真修正,也有在修正处理上要花费时间的问题。
本发明为解决以上的问题作出,其目的是提供一种二维代码读取方法、信息记录媒体和二维代码读取装置,在作为二维代码符号的MaxiCode符号的读取图像的解码处理中,用简单方法不增加计算机的负担来高速搜索探测器图形的中心点,通过根据二维代码符号与二维代码符号的读取图像之间的关系修正读取图像,可进行倾斜读取的情况下的读取图像的解码处理,在二维代码符号的读取图像的方向模块搜索范围的像素数据中,检出与颜色模板图形一致的像素数据,根据检出的像素数据搜索全部的方向模块,根据搜索到的方向模块搜索全部数据模块,通过根据搜索到的数据模块变换成数据字符,缩短解码处理时间。
本发明人重复了应解决上述已有问题的研究。结果,判断出在MaxiCode符号的读取图像中,通过从横切图像的扫描线上的检出图形中检索与横切探测器图形的中心点的扫描线上的规定基准图形一致的检出图形,可搜索探测器图形的中心点。
另外,判断出MaxiCode符号的读取图像中,通过全部检出与规定的颜色模板图形一致的、位于离开探测器图形的中心点规定距离处、并且以规定的角度间隔配置的像素数据的颜色图形,根据检出的像素数据,与原来相比可缩短检出方向模块的中心点位置和模块大小的处理时间。
而且,判断出实际的MaxiCode符号的探测器图形与倾斜读取的情况下的MaxiCocde符号的读取图像的探测器图形之间的关系式近似为圆和椭圆之间的关系式,通过根据该关系式进行读取图像的图像修正,不仅对正面读取的情况下的MaxiCode符号的读取图像,而且对在倾斜读取的情况下的MaxiCode符号的读取图像也能解码读取图像。
另外,判断出MaxiCode符号的读取图像中,根据存在于通过探测器图形的中心点与方向模块的方向轴上的“黑”模块组的区域,根据通过方向模块和数据模块的中心点来修正轴角度,能够修正有失真的读取图像的方向轴。
还有,判断出根据修正的方向轴上的同一颜色的模块组区域,修正具有失真的读取图像的方向轴上的模块的位置信息和图形信息,根据修正的方向轴上的模块的位置信息和图形信息,可修正方向轴之间的数据模块的位置。
而且,判断出通过由上述的读取图像的修正检出模块的位置信息和图形信息,可缩短作为二维代码符号的MaxiCode符号的读取图像的解码处理的处理时间。
此外,判断出把检出的数据模块变换为位列数据,把变换后的数据存储在二维位排列表中,根据规定的码字二维排列表,通过变换为码字,与原来相比可缩短把数据变换为数据字符的处理时间。
根据上述研究结果,提供如下发明。
本发明的二维代码读取方法的第一方面是这样一种二维代码读取方法,包括数据模块搜索步骤,根据二维代码符号的读取图像的探测器图形的位置信息、方向模块位置信息和方向模块的图形信息,通过计算出通过探测器图形的中心点与方向模块的方向轴来计算出构成二维代码符号的全部模块的位置信息和图形信息。
本发明的二维代码读取方法的第二方面是这样一种二维代码读取方法,上述数据模块搜索步骤包括:(a)方向轴上模块位置计算步骤,根据探测器图形的位置信息和方向模块的位置信息以及图形信息,计算出构成存在于方向轴上的模块组的多个模块的位置信息和图形信息;(b)方向轴上数据模块位图形检测步骤,检出由方向轴上模块位置计算步骤计算出的方向轴上存在的多个数据模块的位图形;(c)方向轴之间模块位置计算步骤,根据构成由方向轴上模块位置计算步骤计算出的方向轴上的模块组的多个模块的位置信息与图形信息,计算出构成由相邻的方向轴构成的方向轴之间的模块组的多个模块位置信息;(d)方向轴之间数据模块位图形检测步骤,检出由方向轴之间模块位置计算步骤计算出的方向轴之间存在的多个数据模块的位图形。
本发明的二维代码读取方法的第三方面是这样一种二维代码读取方法,上述方向轴上模块位置计算步骤包括:(a)方向轴角度修正步骤,修正方向轴的角度,以便通过构成方向轴上的模块组的多个模块的中心点;(b)方向轴上实模块宽度修正步骤,计算出由方向轴角度修正步骤修正的方向轴上存在的多个实模块的位置信息,根据计算出的位置信息修正作为多个实模块的图形信息的模块宽度;(c)方向轴上虚模块宽度修正步骤,根据由方向轴上实模块宽度修正步骤计算出的实模块的位置信息和图形信息,计算出存在于方向轴上的多个虚模块的位置信息,根据计算出的位置信息,修正作为多个虚模块的图形信息的模块宽度。
另外,本发明的二维代码读取方法的第四方面是这样一种二维代码读取方法,上述方向轴角度修正步骤包括:(a)第一修正中心点计算步骤,根据由方向轴上存在的1个或连续的多个“黑”模块构成的“黑”模块组的区域,计算出“黑”模块组中最靠近探测器图形的“黑”模块的第一修正中心点;(b)第二修正中心点计算步骤,根据包括与通过第一修正中心点计算步骤计算出的“黑”模块的第一修正中心点的方向轴相邻的方向轴平行的相邻预备轴上存在的“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出“黑”模块的第二修正中心点;(c)中心点算出步骤,根据由第二修正中心点计算步骤计算出的“黑”模块的第二修正中心点以及包括通过探测器图形的中心点的方向预备轴上存在的“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出“黑”模块的中心点;(d)方向轴修正角度计算步骤,算出通过中心点算出步骤计算出的“黑”模块的中心点和探测器图形的中心点的方向轴的修正角度。
另外,本发明的二维代码读取方法的第五方面是这样一种二维代码读取方法,上述方向轴上实模块宽度修正步骤包括:根据方向轴上存在的1个或连续的多个同色实模块构成的同色实模块组区域,计算出构成同色实模块组的实模块中心点和模块宽度的步骤。
另外,本发明的二维代码读取方法的第六方面是这样一种二维代码读取方法,上述方向轴上虚模块宽度修正步骤包括:(a)基准方向轴检测步骤,检出作为全部方向轴上修正量最小的方向轴的基准方向轴;(b)根据基准方向轴检测步骤检出的基准方向轴上存在的离开探测器图形最远的“黑”模块的图形信息,计算出方向轴上存在的多个虚模块的中心点和模块宽度的步骤;(c)根据基准方向轴上实模块和虚模块的位置信息,计算出基准方向轴以外的方向轴上存在的多个虚模块的中心点和模块宽度的步骤。
另外,本发明的二维代码读取方法的第七方面是这样一种二维代码读取方法,包括:探测器图形搜索步骤,搜索二维代码符号读取图像中的规定扫描方向的检出图形与规定的基准图形一致的扫描线,根据搜索到的多个扫描线,检出二维代码符号的读取图像中的探测器图形,取得探测器图形的位置信息和图形信息。
另外,本发明的二维代码读取方法的第八方面是这样一种二维代码读取方法,上述探测器图形搜索步骤包括:(a)对二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的所述第一检出图形和预先存储的规定基准图形的步骤;(d)通过该比较步骤,在第一检出图形和规定的基准图形一致时,以该扫描线作为第一中心线的步骤;(e)对探测器图形沿着与第一扫描方向不同的第二扫描方向扫描的步骤;(f)通过第二扫描步骤得到第二检出图形的步骤;(g)比较该取得步骤得到的第二检出图形和预先存储的规定基准图形的步骤;(h)通过该比较步骤,在第二检出图形和规定的基准图形一致时,以该扫描线作为第二中心线的步骤;(i)以第一中心线和第二中心线的交点作为探测器图形的中心点的步骤。
本发明的二维代码读取方法的第九方面是这样一种二维代码读取方法,上述探测器图形搜索步骤包括:(a)对二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的第一检出图形和预先存储的规定基准图形的步骤;(d)通过该比较步骤,在第一检出图形和规定的基准图形一致时,以该扫描线作为第一中心线的步骤;(e)以该第一中心线与探测器图形的外侧部件的两个交点的中点作为第一中心点的步骤;(f)平行于第一中心线移动之后、反复步骤(b)~(e),求出多个第一中心点的步骤;(g)计算多个第一中心点的对与第一扫描方向不同的第二扫描方向的分布数的步骤;(h)以与该分布数的第二扫描方向相对的最大场所作为与第二扫描方向相对的多个第一中心点存在最多的第一线段的步骤;(i)在通过与第二扫描方向相对的多个第一中心点存在最多的线的第二扫描方向上扫描的步骤;(j)通过第二扫描步骤得到第二检出图形的步骤;(k)比较该取得步骤得到的第二检出图形和预先存储的规定基准图形的步骤;(D通过该比较步骤,在第二检出图形和规定的基准图形一致时,以该扫描线作为第二中心线的步骤;(m)以该第二中心线与探测器图形的外侧部件的两个交点的中点作为第二中心点的步骤;(n)平行于第二中心线移动之后、反复步骤(j)~(m),求出多个第二中心点的步骤;(o)计算多个第二中心点的与第一扫描方向相对的分布数的步骤;(p)以与该分布数的第一扫描方向相对的最大场所作为与第一扫描方向相对的多个第二中心点存在最多的第二线段的步骤;(q)以第一线段和第二线段的交点作为探测器图形的中心点的步骤。
还有,本发明的二维代码读取方法的第十方面是这样一种二维代码读取方法,上述探测器图形搜索步骤包括:(a)对二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的第一检出图形和预先存储的规定基准图形的步骤;(d)通过该比较步骤,在第一检出图形和规定的基准图形一致时,以该扫描线和构成探测器图形的最外部的部件的两个交点的中点作为第一中心点的步骤;(e)平行于第一扫描方向移动之后进行扫描、反复步骤(b)~(d),得到多个第一中心点的步骤;(f)对探测器图形在与第一扫描方向不同的第二扫描方向上扫描的步骤;(g)通过第二扫描步骤得到第二检出图形的步骤;(h)比较该取得步骤得到的所述第二检出图形和预先存储的规定基准图形的步骤;(i)通过该比较步骤,在第二检出图形和规定的基准图形一致时,以该扫描线和构成探测器图形的最外部的部件的两个交点的中点作为第二中心点的步骤;(j)对于第二扫描方向,平行移动之后进行扫描、反复步骤(g)~(i),求出多个第二中心点的步骤;(k)以连接多个第一中心点的线与连接多个第二中心点的线的交点作为探测器图形的中心点的步骤。
还有,本发明的二维代码读取方法的第十一方面是这样一种二维代码读取方法,上述探测器图形搜索步骤包括:(a)对二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的第一检出图形和预先存储的规定基准图形的步骤;(d)通过该比较步骤,在第一检出图形和规定的基准图形一致时,以该扫描线作为第一中心线的步骤;(e)以该第一中心线与探测器图形的外侧部件的两个交点的中点作为第一中心点的步骤;(f)沿着该第一中心点的、与第一扫描方向不同的第二方向扫描的步骤;(g)通过第二扫描步骤得到第二检出图形的步骤;(h)比较该取得步骤得到的第二检出图形和预先存储的规定基准图形的步骤;(i)通过该比较步骤,在第二检出图形和规定的基准图形一致时,以该扫描线作为第二中心线的步骤;(j)以该第二中心线与探测器图形的外侧部件的两个交点的中点作为第二中心点的步骤;(k)从该第二中心线和所述探测器图形的外侧部件的两个交点的中点计算出该第一中心线与所述探测器图形的内侧部件的两个交点以及该第二中心线与所述探测器图形的内侧部件的两个交点的步骤;(1)以从该第一中心线与所述探测器图形的内侧部件的两个交点以及该第二中心线与所述探测器图形的内侧部件的两个交点确定的重心作为探测器图形的中心点的步骤。
另外,本发明的二维代码读取方法的第十二方面是这样一种二维代码读取方法,其特征在于第二扫描方向与第一扫描方向垂直。
另外,本发明的二维代码读取方法的第十三方面是这样一种二维代码读取方法,其特征在于探测器图形由黑色圆和白色圆的多个同心圆构成,规定基准图形和第一检出图形以及/或第二检出图形的比较是同心圆的黑色圆之间的端部间距与白色圆之间的端部间距的比较。
本发明的二维代码读取方法的第十四方面是这样一种二维代码读取方法,上述探测器图形搜索步骤包括:(a)比较在第一扫描方向上扫描得到的探测器图形的检出黑白图形和规定的基准黑白图形的第一步骤;(b)比较在第二扫描方向上扫描得到的探测器图形的检出黑白图形和规定的基准黑白图形的第二步骤;(c)由第一和第二步骤求出探测器图形的中心座标的第三步骤。
此外,本发明的二维代码读取方法的第十五方面是这样一种二维代码读取方法,包括图像修正步骤,计算出表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式,根据计算出的关系式修正二维代码符号的读取图像。
本发明的二维代码读取方法的第十六方面是这样一种二维代码读取方法,其特征在于在上述图像修正步骤中,通过表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式,根据规定修正精度,生成相关关系的关系表,通过生成的关系表修正读取图像。
本发明的二维代码读取方法的第十七方面是这样一种二维代码读取方法,其特征在于在上述图像修正步骤中,二维代码符号存在于规定平面上。
本发明的二维代码读取方法的第十八方面是这样一种二维代码读取方法,其特征在于在上述图像修正步骤中,读取图像是倾斜读取时的读取图像。
本发明的二维代码读取方法的第十九方面是这样一种二维代码读取方法,其特征在于在上述图像修正步骤中,表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式由倾斜角修正式构成,通过计算出倾斜角修正式修正读取图像。
本发明的二维代码读取方法的第二十方面是这样一种二维代码读取方法,其特征在于在读取图像中,圆是构成二维代码符号的要素之一或构成二维代码符号的要素中心点存在于规定圆的圆周上时,将变形了圆的读取图像上的图形近似为椭圆。
本发明的二维代码读取方法的第二十一方面是这样一种二维代码读取方法,其特征在于通过上述椭圆的倾斜角修正式,根据表示修正精度的规定修正分割角,生成倾斜角修正表。
本发明的二维代码读取方法的第二十二方面是这样一种二维代码读取方法,其特征在于把在修正分割角上相加规定的偏斜角的角度的倾斜角修正式的值追加到倾斜角修正表。
本发明的二维代码读取方法的第二十三方面是这样一种二维代码读取方法,其特征在于包括:方向模块搜索步骤,在二维代码符号读取图像中,搜索位于离开规定的点规定的距离处的、并且用规定的角度间隔配置的像素数据组的“黑”或“白”所构成的颜色图形与规定颜色模板图形一致的多个像素数据组,根据搜索到的多个像素数据组,检出构成二维代码符号的读取图像中的方向模块组的多个方向模块,得到多个方向模块的位置信息和图形信息。
本发明的二维代码读取方法的第二十四方面是这样一种二维代码读取方法,其特征在于上述方向模块搜索步骤中,规定颜色的模板图形由第一颜色模板图形、第二颜色模板图形和第三颜色模板图形构成。
本发明的二维代码读取方法的第二十五方面是这样一种二维代码读取方法,其特征在于上述方向模块搜索步骤中,规定的距离因第一颜色模板图形、第二颜色模板图形和第三颜色模板图形而不同。
本发明的二维代码读取方法的第二十六方面是这样一种二维代码读取方法,其特征在于上述规定的距离是向模块宽度上乘以规定值后的值。
本发明的二维代码读取方法的第二十七方面是这样一种二维代码读取方法,其特征在于上述模块宽度根据二维代码符号读取图像的探测器图形的图形信息和作为规定范围内存在的规定间隔的值的Rate数算出。
本发明的二维代码读取方法的第二十八方面是这样一种二维代码读取方法,其特征在于上述方向模块搜索步骤包括以根据规定距离搜索的多个像素数据组作为方向模块的中心点的多个相同距离候补数据,根据多个相同距离候补数据计算出规定距离上的方向模块的中心点的一个候补数据的步骤;以及从根据Rate数算出的、多个规定距离上的方向模块的中心点的候补数据算出方向模块的中心点位置的步骤。
本发明的二维代码读取方法的第二十九方面是这样一种二维代码读取方法,其特征在于上述方向模块搜索步骤包括变换二维代码符号的读取图像的位置信息,以使得规定方向模块的中心点位置变为规定位置的步骤。
本发明的二维代码读取方法的第三十方面是这样一种二维代码读取方法,其特征在于包括数据字符变换步骤,在上述二维代码符号的读取图像中,根据规定码字变换表,通过把构成数据模块组的数据模块的位置对应添加到规定的码字和规定的码字上的规定位数据,把数据模块的位数据变换为码字,把变换后的码字变换为规定的数据字符。
本发明的二维代码读取方法的第三十一方面是这样一种二维代码读取方法,其特征在于在上述数据字符变换步骤中,根据以作为二维排列的BT(n,m)作为要素的二维位排列表指定数据模块的位置。
本发明的二维代码读取方法的第三十二方面是这样一种二维代码读取方法,其特征在于在上述数据字符变换步骤中,规定码字变换表是以规定码字作为第i个码字、把规定码字中的规定所述位数据作为第i个码字的第j个位数据时,以作为满足下面的关系式的值的CT(n,m)为要素的码字二维排列表:
i=[CT(n,m)/256]
j=CT(n,m)-i*256
本发明的二维代码读取方法的第三十三方面是这样一种二维代码读取方法,其特征在于二维代码符号通过黑白交替的单元构成数据信息。
本发明的二维代码读取方法的第三十四方面是这样一种二维代码读取方法,其特征在于二维代码符号是MaxiCode符号。
本发明的二维代码读取装置的第一方面是这样一种二维代码读取装置,包括:数据模块搜索部,根据二维代码符号的读取图像的探测器图形的位置信息、方向模块位置信息和方向模块的图形信息,通过计算出通过探测器图形的中心点与方向模块的方向轴来计算出构成二维代码符号的全部模块的位置信息和图形信息。
本发明的二维代码读取装置的第二方面是这样一种二维代码读取装置,上述数据模块搜索部包括:(a)方向轴上模块位置计算部,根据探测器图形的位置信息和方向模块的位置信息以及图形信息,计算出构成存在于方向轴上的模块组的多个模块的位置信息和图形信息;(b)方向轴上数据模块位图形检测部,检出由方向轴上模块位置计算部计算出的方向轴上存在的多个数据模块的位图形;(c)方向轴之间模块位置计算部,根据构成由方向轴上模块位置计算部计算出的方向轴上的模块组的多个模块的位置信息与图形信息,计算出构成由相邻的方向轴构成的方向轴之间的模块组的多个模块位置信息;(d)方向轴之间数据模块位图形检测部,检出由方向轴之间模块位置计算部计算出的方向轴之间存在的多个数据模块的位图形。
本发明的二维代码读取装置的第三方面是这样一种二维代码读取装置,上述方向轴上模块位置计算部包括:(a)方向轴角度修正部,修正方向轴的角度,以便通过构成方向轴上的模块组的多个模块的中心点;(b)方向轴上实模块宽度修正部,计算出由方向轴角度修正部修正的方向轴上存在的多个实模块的位置信息,根据计算出的位置信息修正作为多个实模块的图形信息的模块宽度;(c)方向轴上虚模块宽度修正部,根据由方向轴上实模块宽度修正部计算出的实模块的位置信息和图形信息,计算出存在于方向轴上的多个虚模块的位置信息,根据计算出的位置信息,修正作为多个虚模块的图形信息的模块宽度。
另外,本发明的二维代码读取装置的第四方面是这样一种二维代码读取装置,上述方向轴角度修正部包括:(a)第一修正中心点计算部,根据由方向轴上存在的1个或连续的多个“黑”模块构成的“黑”模块组的区域,计算出“黑”模块组中最靠近探测器图形的“黑”模块的第一修正中心点;(b)第二修正中心点计算部,根据包括与通过第一修正中心点计算部计算出的“黑”模块的第一修正中心点的方向轴相邻的方向轴所平行的相邻预备轴上存在的“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出“黑”模块的第二修正中心点;(c)中心点计算部,根据由第二修正中心点计算部计算出的“黑”模块的第二修正中心点以及包括通过探测器图形的中心点的方向预备轴上存在的“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出“黑”模块的中心点;(d)方向轴修正角度计算部,算出通过中心点计算部计算出的“黑”模块的中心点和探测器图形的中心点的方向轴的修正角度。
另外,本发明的二维代码读取装置的第五方面是这样一种二维代码读取装置,上述方向轴上实模块宽度修正部包括计算部,根据方向轴上存在的1个或连续的多个同色实模块构成的同色实模块组区域,计算出构成同色实模块组的实模块中心点和模块宽度。
另外,本发明的二维代码读取装置的第六方面是这样一种二维代码读取装置,上述方向轴上虚模块宽度修正部包括:(a)基准方向轴检测部,检出作为全部方向轴上修正量最小的方向轴的基准方向轴;(b)第一计算部,根据基准方向轴检测部检出的基准方向轴上存在的离开探测器图形最远的“黑”模块的图形信息,计算出方向轴上存在的多个虚模块的中心点和模块宽度;(c)第二计算部,根据基准方向轴上实模块和虚模块的位置信息,计算出基准方向轴以外的方向轴上存在的多个虚模块的中心点和模块宽度。
另外,本发明的二维代码读取装置的第七方面是这样一种二维代码读取装置,包括探测器图形搜索部,搜索二维代码符号读取图像中的规定扫描方向的检出图形与规定的基准图形一致的扫描线,根据搜索到的多个扫描线,检出二维代码符号的读取图像中的探测器图形,取得探测器图形的位置信息和图形信息。
另外,本发明的二维代码读取装置的第八方面是这样一种二维代码读取装置,上述探测器图形搜索部包括:(a)对探测器图形在多个方向上扫描的扫描部;(b)通过在多个方向上扫描该扫描部取得多个图形的获取部;(c)存储规定的模板的存储部;(d)分别比较多个图形和存储部中存储的规定模板的比较部;(e)通过比较部,在图形和模板一致时,从通过扫描部的扫描线中至少确定两个中心线、通过该两个中心线确定探测器图形的中心座标的确定部。
本发明的二维代码读取装置的第九方面是这样一种二维代码读取装置,上述探测器图形搜索部包括:(a)存储事先确定了黑白图形的各自的长度的模板的存储部;(b)在第一和第二扫描方向上扫描探测器图形得到黑白图形的扫描部;(c)将通过该扫描部扫描得到的探测器图形的黑白图形与存储部中存储的模板相比的比较部;(d)确定部,在第一扫描方向上扫描得到的黑白图形和模板的黑白图形一致时,由该比较部确定扫描部扫描的第一扫描线为探测器图形的第一中心线,在第二方向上扫描得到的黑白图形和模板的黑白图形一致时,比较部确定扫描部扫描的第二扫描线为探测器图形的第二中心线,把第一中心线和第二中心线的交点确定为探测器图形的中心点。
还有,本发明的二维代码读取装置的第十方面是这样一种二维代码读取装置,包括图像修正部,计算出表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式,根据计算出的关系式修正二维代码符号的读取图像。
本发明的二维代码读取装置的第十一方面是这样一种二维代码读取装置,其特征在于在上述图像修正部中,通过表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式,根据规定修正精度,生成相关关系的关系表,通过生成的关系表修正读取图像。
本发明的二维代码读取装置的第十二方面是这样一种二维代码读取装置,其特征在于在上述图像修正部中,二维代码符号存在于规定平面上。
本发明的二维代码读取装置的第十三方面是这样一种二维代码读取装置,其特征在于在上述图像修正部中,读取图像是倾斜读取时的读取图像。
本发明的二维代码读取装置的第十四方面是这样一种二维代码读取装置,其特征在于在上述图像修正部中,表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式由倾斜角修正式构成,通过计算出倾斜角修正式修正读取图像。
本发明的二维代码读取装置的第十五方面是这样一种二维代码读取装置,其特征在于在读取图像中,圆为构成二维代码符号的要素之一或构成二维代码符号的要素中心存在于规定圆的圆周上时,将变形了圆的读取图像上的图形近似为椭圆。
本发明的二维代码读取装置的第十六方面是这样一种二维代码读取装置,其特征在于通过上述椭圆的倾斜角修正式,根据表示修正精度的规定修正分割角,生成倾斜角修正表。
本发明的二维代码读取装置的第十七方面是这样一种二维代码读取装置,其特征在于把在修正分割角上相加规定的偏斜角的角度的倾斜角修正式的值追加到倾斜角修正表。
本发明的二维代码读取装置的第十八方面是这样一种二维代码读取装置,其特征在于包括方向模块搜索部,在二维代码符号读取图像中,搜索位于离开规定的点规定的距离处的、并且用规定的角度间隔配置的像素数据组的“黑”或“白”所构成的颜色图形与规定颜色模板图形一致的多个像素数据组,根据搜索到的多个像素数据组,检出二维代码符号的读取图像中的构成方向模块组的多个方向模块,得到多个方向模块的位置信息和图形信息。
本发明的二维代码读取装置的第十九方面是这样一种二维代码读取装置,其特征在于上述方向模块搜索部中,所述规定的颜色模板图形由第一颜色模板图形、第二颜色模板图形和第三颜色模板图形构成。
本发明的二维代码读取装置的第二十方面是这样一种二维代码读取装置,其特征在于上述方向模块搜索部中,规定的距离因第一颜色模板图形、第二颜色模板图形和第三颜色模板图形而不同。
本发明的二维代码读取装置的第二十一方面是这样一种二维代码读取装置,其特征在于上述规定的距离是向模块宽度上乘以规定值后的值。
本发明的二维代码读取装置的第二十二方面是这样一种二维代码读取装置,其特征在于上述模块宽度根据二维代码符号读取图像的探测器图形的图形信息和作为规定范围内存在的规定间隔值的Rate数算出。
本发明的二维代码读取装置的第二十三方面是这样一种二维代码读取装置,其特征在于上述方向模块搜索部包括:(a)以根据规定距离搜索的多个像素数据组作为方向模块的中心点的多个相同距离候补数据,根据多个相同距离候补数据计算出规定距离上的方向模块的中心点的一个候补数据的第一计算部;(b)从根据Rate数算出的多个规定距离上的方向模块的中心点的候补数据算出方向模块的中心点位置的第二计算部。
本发明的二维代码读取装置的第二十四方面是这样一种二维代码读取装置,其特征在于上述方向模块搜索部包括变换二维代码符号的读取图像的位置信息,以便使得规定方向模块的中心点位置变为规定位置的变换部。
本发明的二维代码读取装置的第二十五方面是这样一种二维代码读取装置,其特征在于包括数据字符变换部,在上述二维代码符号的读取图像中,根据规定码字变换表,通过把构成数据模块组的数据模块的位置对应添加到规定的码字和规定的码字上的规定位数据,把数据模块的位数据变换为码字,把变换后的码字变换为规定的数据字符。
本发明的二维代码读取装置的第二十六方面是这样一种二维代码读取装置,其特征在于在上述数据字符变换部中,根据以作为二维排列的BT(n,m)作为要素的二维位排列表指定数据模块的位置。
本发明的二维代码读取装置的第二十七方面是这样一种二维代码读取装置,其特征在于在上述数据字符变换部中,规定码字变换表是以规定码字作为第i个码字、把规定码字中的规定位数据作为第i个码字的第j个位数据时,以作为满足下面的关系式的值的CT(n,m)为要素的码字二维排列表:
i=[CT(n,m)/256]
j=CT(n,m)-i*256。
本发明的二维代码读取装置的第二十八方面是这样一种二维代码读取装置,其特征在于二维代码符号通过白黑交替的单元构成数据信息。
本发明的二维代码读取装置的第二十九方面是这样一种二维代码读取装置,其特征在于二维代码符号是MaxCode符号。
本发明的信息记录媒体的第一方面是记录具有上述二维代码符号读取方法的步骤的程序的信息记录媒体。
本发明的信息记录媒体的第二方面,上述信息记录媒体是激光盘、软盘、硬盘、磁光盘、数字多能盘、磁带或存储卡。
图1是二维代码读取装置的构成框图;
图2是二维代码读取装置的功能框图;
图3是二维代码读取方法中的解码处理的流程图;
图4是解码处理中的探测器图形搜索处理的流程图;
图5是本发明的探测器图形的中心点搜索方法的流程图(水平搜索);
图6是本发明的探测器图形的中心点搜索方法的流程图(垂直搜索);
图7是本发明的探测器图形的中心点搜索方法的流程图(中心点确定);
图8是解码处理中的探测器图形搜索处理的流程图;
图9是本发明的探测器图形的假设中心点搜索方法的流程图;
图10是本发明的探测器图形的中心点算出方法的流程图(中心点确定);
图11是解码处理中的图像修正处理的流程图;
图12是解码处理中的方向模块搜索处理的流程图;
图13是方向模块搜索处理中的方向模块候补数据搜索处理的流程图;
图14是方向模块候补数据搜索处理中的内侧方向模块候补检测处理的流程图;
图15是方向模块候补数据搜索处理中的外侧方向模块候补检测处理的流程图;
图16是方向模块候补数据搜索处理中的中央方向模块候补检测处理的流程图;
图17是方向模块候补数据搜索处理中的方向模块候补确定处理的流程图;
图18是方向模块搜索处理中的方向模块确定处理的流程图;
图19是解码处理中的数据模块搜索处理的流程图;
图20是数据模块搜索处理中的方向轴上模块位置算出处理的流程图;
图21是方向轴上模块位置算出处理中的方向轴角度修正处理的流程图;
图22是方向轴上模块位置算出处理中的方向轴上实模块宽度修正处理的流程图;
图23是方向轴上模块位置算出处理中的方向轴上虚模块宽度修正处理的流程图;
图24是模块中心点算出处理的流程图;
图25是解码处理中的数据字符变换处理的流程图;
图26(a)是表示通过探测器图形的中心点的线段上的颜色图形的图;
图26(b)是表示探测器图形模板的图;
图27(a)是表示探测器图形扫描方向和扫描行的图;
图27(b)是表示事件种类的图形增减的图;
图28是表示确定中心线后上下变更扫描行的顺序的图;
图29是表示算出探测器图形的中心点的图;
图30是表示沿垂直方向扫描时的扫描线的图和表示检测图形增减的图;
图31是表示算出探测器图形的中心点的图;
图32是表示本发明的实施例(椭圆)的图;
图33是表示本发明其它实施例的图;
图34是表示本发明其它实施例(椭圆)的图;
图35从斜向读取的读取图像与实际的MaxiCode符号的关系图;
图36是圆与椭圆的关系图;
图37(a)是表示实际的MaxiCode符号的方向模块的图;
图37(b)是表示读取图像中的方向模块的图;
图38(a)是表示模块宽度的图;
图38(b)是模块宽度与内侧方向模块的中心点位置的关系图;
图39是表示颜色模板图形的图;
图40是表示搜索角度θ中的假设方向模块的位置的图;
图41(a)是表示对应于数据变换前的同一方向模块的候补数据的图;
图41(b)是表示对应于数据变换后的同一方向模块的候补数据的图;
图42是表示Rate数n中的方向模块的候补数据的确定方法的图;
图43是表示方向模块的中心点的位置确定的图;
图44(a)是表示数据变换工序的图;
图44(b)是表示方向模块的排列序号的图;
图45(a)是表示轴上的实模块与虚模块的图;
图45(b)是表示轴上的数据模块的位置的图;
图46(a)是表示轴间的实模块与虚模块的图;
图46(b)是表示轴间的数据模块的位置的图;
图47是表示方向轴的角度修正的图;
图48(a)是表示方向轴上的模块组的区域L的图;
图48(b)是表示构成模块组的模块的中心点的图;
图49是表示方向轴i和邻接方向轴i’的关系的图;
图50是表示模块的第2修正中心点的候补点P1的算出处理的图;
图51是表示模块的第2修正中心点的候补点P2的算出处理的图;
图52是表示模块的中心点P的算出处理的图;
图53是表示模块的中心点的算出处理的图;
图54是表示码字的图;
图55(a)是MaxiCode符号的模块数据的位置与二维位排列表的关系图;
图55(b)是表示二维位排列表的存储数据的图;
图56是表示码字二维排列表的图;
图57是存储在二维位排列表中的位数据和码字二维排列表的基本数据的关系图;
图58是表示变形字符设置表的图;
图59(a)是MaxiCode符号的整体图;
图59(b)是表示探测器图形和方向模块的图;
图60是表示MaxiCode符号的模块组的图;
图61是表示实际的MaxiCode符号中的探测器图形和方向模块的图;
图62(a)是从正面读取时的MaxiCode符号的读取图像与MaxiCode符号的关系图;
图62(b)是从斜向读取时的MaxiCode符号的读取图像与MaxiCode符号的关系图;
图63(a)是表示失真种类的图;
图63(b)是表示利用规一化修正的解码处理的图。
参考附图来说明本发明的一个实施例。另外,下面说明的实施例是用于说明的,并非对发明范围进行限制。因此,本领域人员可采用对这些要素或全部要素进行同等替换的实施例,这些实施例也包含在本发明的范围内。
图1是本发明的二维代码读取装置的主要组成部件的框图。下面说明各个组件。
二维代码读取装置100配置有光源101、具有开口102的光传感器103、接收机与AD变换器104、CPU105、VRAM106以及ROM107。
光源101用于照射MaxiCode符号110,由LED(发光二极管)或半导体激光器构成。光传感器103用于接收从MaxiCode符号110反射来的光,并把接收到的光变换为电信号,而由一维或二维CCD(电荷耦合元件)等构成。接收机和AD变换器104接收来自光传感器103的电信号,并变换为可在CPU105中处理的信号。CPU105对于作为信号的成像图像执行解码处理。
光传感器103生成作为从MaxiCode符号110的构成组件反射的调制光的模拟信号。即,光传感器103的CCD阵列中的各个图像元件代表性地输出确定灰度电平信号,即与视频数据信号同样的在特定图像元件上运动的光量或强度的模拟信号。
接收机和AD变换器104的接收机部接收作为调制光的模拟信号,接收机和AD变换器104的变换机部把接收到的模拟信号变换为数字信号,发送到CPU105中。即,接收机和AD变换器104最好是把灰度电平的信号变换为例如具有用于CPU105中处理的灰度16电平的数字信号。接收机和AD变换器104在VRAM106上存储作为数字信号的MaxiCode符号110的成像图像。
CPU105对存储的成像图像进行图像处理后,可经接口把处理结果输出到周围机器或主机(图中未示出)。
而且,可在主机上执行CPU105的图像处理。
接收机和AD变换器104与CPU105在VRAM106上结合。ROM107内置启动CPU105的程序。另外,存储后面说明的规定值。还有,MaxiCode符号110的中央的同心圆是探测器图形111。
本发明的二维代码读取装置包括数据模块搜索部,根据二维代码符号读取图像中的探测器图形的位置信息、方向模块的位置信息和方向模块的图形信息,通过计算出通过探测器图形的中心点和方向模块的方向轴,计算出构成二维代码符号的全部模块位置信息和图形信息。
本发明的二维代码读取装置包括探测器图形搜索部,搜索二维代码符号读取图像中的规定扫描方向的检出图形与规定基准图形一致的扫描线,根据搜索到的多个扫描线,检出二维代码符号读取图像中的探测器图形,得到探测器图形的位置信息和图形信息。
本发明的二维代码读取装置包括图像修正部,计算出表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式,根据计算出的关系式修正二维代码符号的读取图像。
另外,本发明的二维代码读取装置包括方向模块搜索部,在二维代码符号读取图像中,搜索位于离开规定的点规定的距离处的、并且以规定的角度间隔配置的像素数据组的“黑”或“白”所构成的颜色图形与规定颜色模板图形一致的多个像素数据组,根据搜索到的多个像素数据组,检出二维代码符号的读取图像中的构成方向模块组的多个方向模块,得到多个方向模块的位置信息和图形信息。
本发明的二维代码读取装置包括数据字符变换部,在二维代码符号的读取图像中,根据规定码字变换表,通过把构成数据模块组的数据模块的位置对应添加到规定的码字和规定的码字上的规定位数据,把数据模块的位数据变换为码字,并把变换后的码字变换为规定的数据字符。
对于上述本发明的二维代码的读取装置,下面参考附图来作说明。
图2是二维代码的读取装置的功能框图,下面说明各功能。
二维代码的读取装置包括控制部201、像素数据存储部202、探测器图形搜索部203、图像修正部204、方向模块搜索部205、数据模块搜索部206和数据字符变换部207。
像素数据存储部202把经图中未示出的光传感器103读取的成像图像的图像信息作为与像素位置对应添加的像素数据存储在VRAM106的像素数据存储部210中。
探测器图形搜索部203根据存储在VRAM106的像素数据存储部210中的像素数据和解码信息存储部220上存储的规定基准图形,搜索MaxiCode符号的探测器图形,计算出作为探测器图形的图形信息的探测器图形的中心点、探测器图形的大小以及探测器图形的形状。而且,把计算出的探测器图形的图形信息存储在VRAM106的探测器图形信息存储部211中。
图像修正部204从探测器图形搜索部203搜索到的探测器图形的像素数据计算出的探测器图形的图形信息和实际的MaxiCode符号的图形信息计算出由光传感器103倾斜读取的图像信息的倾斜角修正式,由计算出的倾斜角修正式生成倾斜角修正表,然后,根据倾斜角修正表修正作为读取的MaxiCode符号的图像信息的像素数据。而且,将计算出的倾斜角修正式或倾斜角修正表以及修正过的像素数据构成的MaxiCode符号的修正图像信息存储在VRAM106的图像修正信息存储部212中。
方向模块搜索部205根据图像修正部204修正过的MaxiCode符号的图像信息、实际的MaxiCode符号的图形信息以及解码信息存储部220中预先存储的规定颜色模板图形搜索方向模块,计算出在6个方向上3个3个存在的18个方法模块的位置信息和图形信息。另外,从计算出的方向模块的位置信息确定MaxiCode符号的方向。而且,将计算出的方向模块的位置信息和图形信息存储在VRAM106的方向模块信息存储部213中。
数据模块搜索部206根据探测器图形搜索部203计算出的探测器图形的图形信息和方向模块搜索部205计算出的方向模块的位置信息和图形信息,通过进行光传感器103读取的图像信息的失真修正,搜索MaxiCode符号上的全部的数据模块,计算出数据模块的位置信息和图形信息。而且,将计算出的数据模块的位置信息和图形信息存储在VRAM106的数据模块信息存储部214中。
数据字符变换部207进行将计算出的全部数据模块的颜色例如在数据模块为“白”时作为位0、在数据模块为“黑”时作为位1的位图形变换(后面叫作“位变换”)。位变换后的数据被存储在二维位排列表中,根据解码信息存储部220上预先存储的码字二维排列表,变换为表示一个文字部分数据的数据码字和表示纠错信息的纠错码字(后面叫作“码字变换”)。码字变换后的数据码字还使用纠错码字,通过进行纠错处理恢复正确的数据码字。
根据在解码信息存储部220上预先存储的变形字符设置表,将纠错处理过的数据码字变换为数据字符。变换后的数据字符被存储在VRAM106的解码结果存储部215中。而且,作为数据字符变换的中间处理数据的位变换后的数据、码字变换后的数据以及纠错后的数据也被存储在VRAM106的解码结果存储部215中。
控制部201将像素数据存储部202、探测器图形搜索部203、图像修正部204、方向模块搜索部205、数据模块搜索部206以及数据字符变换部207的每一个相互关联来进行控制。
本发明的二维代码读取方法包括数据模块搜索步骤,根据二维代码符号读取图像中的探测器图形的位置信息、方向模块的位置信息和方向模块的图形信息,通过计算出通过探测器图形的中心点和方向模块的方向轴,计算出构成二维代码符号的全部模块位置信息和图形信息。
本发明的二维代码读取方法包括探测器图形搜索步骤,搜索二维代码符号读取图像中的规定扫描方向的检出图形与规定基准图形一致的扫描线,根据搜索到的多个扫描线,检出二维代码符号读取图像中的探测器图形,得到探测器图形的位置信息和图形信息。
本发明的二维代码读取方法包括图像修正步骤,计算出表示二维代码符号与二维代码符号的读取图像之间的相关关系的关系式,根据计算出的关系式修正二维代码符号的读取图像。
另外,本发明的二维代码读取方法包括方向模块搜索步骤,在二维代码符号读取图像中,搜索位于离开规定的点规定的距离处的、并且以规定的角度间隔配置的像素数据组的“黑”或“白”所构成的颜色图形与规定颜色模板图形一致的多个像素数据组,根据搜索到的多个像素数据组,检出二维代码符号的读取图像中的构成方向模块的多个方向模块,得到多个方向模块的位置信息和图形信息。
本发明的二维代码读取方法包括数据字符变换步骤,在二维代码符号的读取图像中,根据规定码字变换表,通过把构成数据模块组的数据模块的位置对应添加到规定的码字和规定的码字上的规定位数据,把数据模块的位数据变换为码字,并把变换后的码字变换为规定的数据字符。
对于上述本发明的二维代码的读取方法,下面参考附图来作说明。
图3是二维代码的读取方法的解码处理的流程图。
首先,把经光传感器103读取的成像图像的图像信息作为与像素位置对应添加的像素数据,将像素数据存储在VRAM106的像素数据存储部210中(S301)。
像素数据由表示像素的位置的座标值和表示图像的灰度电平的灰度级值构成。这里,越接近黑色灰度级值越小。而且,像素数据的灰度级值根据在解码信息存储部220上预先存储的规定的灰度级阀值变换为“黑”=1和“白”=0的图形值。即,像素的灰度级值在灰度级阀值以下时,图形值变为“黑”=1,像素的灰度级值在灰度级阀值以上时,图形值变为“白”=0。这里,“黑”=1和“白”=0的两个值也可以作为图像数据存储在图像数据存储部210中。另外,灰度级阀值是可改变的值。
接着,从VRAM106的像素数据存储部210中存储的像素数据搜索作为MaxiCode符号的切去符号的探测器图形(S302)。
通过探测器图形的搜索,计算出作为探测器图形的图形信息的探测器图形的中心点、探测器图形的大小以及探测器图形的形状。实际的MaxiCode符号的探测器图形如图59(b)所示,由6个同心圆生成的1个白色圆、2个白色环以及3个黑色环构成。因此,作为探测器图形的图形信息,计算出探测器图形的中心点的位置座标以及探测器图形的白色部与黑色部的颜色边界的位置座标。
接着,通过将搜索到的探测器图形的图形信息与实际的MaxiCode符号的探测器图形的图形信息相比,由经光传感器103倾斜读取时的读取图像信息的倾斜角计算出倾斜角修正式,根据规定的修正精度由计算出的倾斜角修正式生成倾斜角修正表,而且,从生成的倾斜角修正表修正像素数据的倾斜角(S303)。
图35是表示倾斜读取时的读取图像信息与实际的MaxiCode符号的关系的图。图35是在由与x轴和Z轴垂直的y轴构成的右手系的三维空间中,从正向看y轴时的图。
如图35所示,把x-y平面上的图形S表示为S=S(x,y,0),图形S上的点表示为A点、B点。另外,取x-Z平面上的点P。把图形S作为MaxiCode符号的探测器图形的圆、把AB线段作为探测器图形的直径、把点P作为光传感器103上读取时的焦点、把读取图像的中心点作为点C时,读取图像变为和线PC垂直的平面上的图像,读取线段AB的线段部分成为线段A’B’。另外,由于三角形A’B’P和三角形A”B”P形状类似,所以也可以认为读取线段AB后的线段是线段A”B”。这里,探测器图形的中心点为点O。
倾斜读取的读取图像与实际MaxiCode符号的关系通过计算出下面的关系式f和g或h来判断:
A”=f(A’)=f(g(A))=h(A)
B”=f(B’)=f(g(B))=h(B)
C=f(C’)=f(g(C))=h(C)
另外,通过计算出下面的关系式f-1和g-1或h-1,也可判断读取图像与实际MaxiCode符号的关系。
A=g-1(A’)=g-1(f-1((A”))=h-1(A”)
B=g-1(B’)=g-1(f-1((B”))=h-1(B”)
C=g-1(C’)=g-1(f-1((C”))=h-1(C”)
因此,关系式f和g或h、关系式f-1与g-1或h-1构成倾斜读取时的读取图像与实际MaxiCode符号的关系式,即倾斜角修正式。而且,根据所规定的修正精度由计算出的倾斜角修正式来生成倾斜角修正表。
根据生成的倾斜角修正表进行实际MaxiCode符号的读取图像中的必要像素数据的图像修正。
还有,通过搜索MaxiCode符号的方向模块,可搜索全部的数据模块,从而不需要图像修正构成MaxiCode符号的读取图像的全部像素数据、仅对方向模块所在范围内的像素数据作图像修正就可以了。因此,计算出的倾斜角修正式在MaxiCode符号的方向模块存在的范围内成立就足够了。
接着,全部检出作了与在解码信息存储部220中预先存储的规定颜色模板一致的图像修正的像素数据,根据检出的像素数据,计算出方向模块的位置信息和图形信息(S304)。
如图60所示,方向模块是表示MaxiCode符号的方向的模块,配置在MaxiCode符号确定的位置上。因此,搜索方向模块,通过计算出方向模块的位置信息和图形信息,可知MaxiCode符号的方向。而且,通过知道MaxiCode符号的方向,就知道MaxiCode符号的各个模块的位置,知道了各个模块的颜色。
接着,根据连接计算出的方向模块和探测器图形的中心点的方向轴、方向模块的位置信息和方向模块的图形信息,通过修正光传感器103读取的图像信息的失真,将构成MaxiCode符号的所有数据模块分为在方向轴上的数据模块和方向轴之间的区域上存在的数据模块,计算出各个数据模块的位置信息和图形信息(S305)。
接着,识别计算出的各个数据模块的颜色、位变换全部的数据模块、把位变换后的数据存储在二维位排列表中,根据解码信息存储部220上预先存储的规定码字二维排列表,把数据变换为码字、进行纠错处理后,根据在解码信息存储部220上预先存储码字的规定的变形字符设置表变换为数据字符(S306),结束解码处理。这里,即使不是具备上述的步骤S302到步骤S306全部的方法,只要配备上述步骤S302到步骤S306中的任何一个步骤即可。
举例来说明上述的探测器图形搜索步骤。其细节参考图4、图26、图27、图28和图29说明。
图4是MaxiCode符号的解码处理中的探测器图形搜索处理的流程图。
首先,在第一扫描方向上扫描MaxiCode符号的读取图像,通过比较扫描线上的检出图形(后面称为“颜色图形关系式”)与基准图形(后面称为“探测器图形模板”),检索靠近探测器图形中心点存在的扫描线,从检索到的扫描线计算出中心点。而且,通过多次执行同样的处理,检索多根扫描线,计算出每一扫描线上得到的多个中心点(S401)。这里,将第一扫描方向扫描的探测器图形的中心点附近的扫描线叫作假设的第一扫描方向中心线,把多个中心点叫作假设的第一扫描方向中心点、把多个中心点的集合叫作假设的第一扫描方向中心点组。因此,检索多根假设的第一扫描方向中心线,计算出多个假设的第一扫描方向中心点构成的假设的第一扫描方向中心点组。另外,第一方向也可以作为图像的水平方向。
图26是说明探测器图形模板的图。图26(a)是表示通过探测器图形的中心点的线上的颜色图形的图,图26(b)是表示探测器图形模板的图。
如图26(a)所示,通过在探测器图形的中心点的线2601上在箭头方向检索颜色图形的结果表示为“白”=高以及“黑”=低的增减图。另外,如图26(b)所示,在增减图中,将从最初的黑色部分(图中的A)的一端到接着的黑色部分(图中的C)的一端的距离设置为1时,从最初的白色部分(图中的B)的一端到接着的白色部分(图中的D)的一端的距离也为1。并且从包括中心部的白色圆的黑色部分的一端(图中的E)到黑色部分的一端(图中的G)以及从白色部分的一端(图中的F)到白色部分的一端(图中的H)为1.26。
因此,从左向右扫描中心点(A向L),依次取黑~黑(A~C)、白~白(B~D)、黑~黑(C~E)、、、、白~白(J~L)的比例时,下面的颜色图形关系式成立。这里,例如AC表示从A点到C点的距离。
AC∶BD∶CE∶DF∶EG∶FH∶GI∶HJ∶IK∶JL=1∶1∶1∶1∶1.26∶1.26∶1∶1∶1∶1
上述的探测器图形的颜色图形关系式作为探测器图形模板预先存储在ROM107的解码信息存储部220上。
另外,从右向左扫描中心点(L向A),依次取黑~黑(L~J)、白~白(K~I)黑~黑(J~H)、、、、、白~白(C~A)的比例时,同样,下面的关系式成立。
LJ∶KI∶JH∶IG∶HF∶GE∶FD∶EC∶BD∶CA=1∶1∶1∶1∶1.26∶1.26∶1∶1∶1∶1
因此,首先如图27(a)所示,在水平方向(第一扫描方向)上扫描包括MaxiCode符号的读取图像的全部图像2701的中心点附近,根据扫描线2702上的颜色图形生成增减图(图27(b)),计算出扫描线上的颜色图形关系式。之后,对计算出的颜色图形关系式和ROM107上的解码信息存储部220上存储的探测器图形模板(图26(b))之间的关系进行图形匹配,在一致的情况下,以该扫描线为水平方向的假设的中心线(假设的第一扫描方向中心线)。这里,作为假设的中心线是因为有时黑白数据以与探测器模板同样的间隔并排排列。
如图27(b)所示,在增减图中,在颜色图形关系式的对比对象个数与探测器图形模板的比较对象个数不一致时,已知扫描线不通过探测器图形的中心上存在的白色圆2703。此时,如图28所示,对于整个图像2801的中心线1,按上下顺序从2,3,...进行扫描,进行颜色图形关系式与探测器图形模板之间的图形匹配,求出一致的扫描线,最接近探测器图形模板的扫描线作为水平方向的中心线。
该中心线的最外的黑色圆内侧(相当于图26(b)中的B的点)~相反侧的点(相当于图26(b)中的K的点)(即探测器图形的白色最外圆的两端)的中心点为假设的中心点(假设的第一扫描方向的中心点)。
这里,不是以探测器图形的黑色最外圆的两端部的中点作为中心点,而以白色最外圆的两端部的中点作为中心点,这是由于探测器图形的黑色的最外圆上接触黑色像素的数据,会判错最外圆。
另外,与探测器图形模板一致的扫描线不能唯一确定,也可得到多个水平方向的中心线的候补。此时,把中心点的x座标四舍五入,仅将整数值相同的作为x座标的候补,多个假设的中心点(假设的第一扫描方向中心点组)被存储在RAM上。相对于水平扫描线垂直的方向上的假设的中心点分布最多的场所推定为垂直方向的假设的中心点最可能存在的地方。
接着,从水平方向的假设的中心线开始在上下远离的方向反复扫描,该读取数据被存储在VRAM106的探测器图形信息存储部211上。
接着,在与第一扫描方向不同的第二扫描方向上扫描,通过比较扫描线上的颜色图形关系式和探测器图形模板,检索靠近探测器图形中心点存在的扫描线,从检索到的扫描线计算出中心点。而且,通过多次执行同样的处理,检索多根扫描线,计算出每一扫描线上得到的多个中心点(S402)。这里,将在第二扫描方向扫描的探测器图形的中心点附近的扫描线叫作假设的第二扫描方向中心线,把中心点叫作假设的第二扫描方向中心点、把多个中心点的集合叫作假设的第二扫描方向中心点组。因此,检索多根假设的第二扫描方向中心线,计算出多个假设的第二扫描方向中心点构成的假设的第二扫描方向中心点组。
在相对于水平方向旋转90度的第二扫描方向(垂直方向)上进行扫描,进行与水平方向相同的图形匹配。在垂直方向上进行扫描中,最初,通过较早从水平方向的假设的中心线求出的假设的中心点,扫描与该假设的中心线垂直的线(较早求出的垂直线)。并不最早扫描整个图像的中心部,通过在垂直方向上最早扫描经在水平方向上扫描求出的假设的中心点的线,由于该假设的中心点作为探测器图形的真正中心点的可能性最高,提高了求出中心点的速度。
与水平方向同样,以具有与图26(b)的探测器图形模板一致的颜色图形关系式的扫描线作为垂直方向的中心线。水平方向和垂直方向的中心点的座标重叠的部分作为探测器图形的中心点。与水平方向相同,在垂直方向上扫描,以探测器图形的白色的最外圆的两端的中点作为中心点。另外,求出用垂直线扫描求出的多个假设的中心点(假设的第二扫描方向中心点组)的水平方向最可能存在的场所。
接着,在从垂直方向的中心线开始在左右远离的方向上反复扫描,把该读取数据存储在VRAM106的探测器图形信息存储部211上(参考图28)。
这里,水平方向和垂直方向的扫描顺序哪一个在前面都可以。
最后,根据计算出的假设的第一扫描方向中心点组和假设的第二扫描方向中心点组计算出探测器图形中心点(S403)。
图29是表示计算探测器图形中心点的图。
如图29所示,与从假设的第一扫描方向中心点组计算出的第一扫描方向垂直的直线和与从假设的第二扫描方向中心点组计算出的第二扫描方向垂直的直线的交点作为探测器图形的中心点。即,将在水平方向上扫描后求出的中心点确实存在的垂直线与在垂直方向上扫描后求出的中心点确实存在的水平线的交点作为探测器图形的中心点求出。
还有,本发明中,在第一扫描方向(水平方向)上扫描来图形匹配后,在第二扫描方向(垂直方向)上扫描90度进行图形匹配,但是,可以不是90度,如果可以得到交点,第一扫描方向与第二扫描方向相交的角度可以是任一角度。但是,在采用上述的水平方向扫描后存在中心点的概率在垂直方向上最大的情况下的分布点作为垂直线的方法的情况下,希望第一扫描方向与第二扫描方向垂直。另外,读取数据后,在VRAM上作为x,y座标的2维数据来展开并存储的情况下,第一扫描方向与第二扫描方向垂直使从读取到展开数据的处理简单。
图5是探测器图形搜索处理中的假设的第一扫描方向中心点组搜索处理的流程图的一个例子。
首先,对于探测器图形在水平方向上搜索,把搜索方向设置在两个方向上(S501)。这里,两个方向是相对于水平方向的上下方向。接着,从第(摄影的图像高度的一半)行开始搜索(S502)。这是因为在包含二维条型码符号的图像的正中央一带有符号,并且正中央一带有Maxi代码或AZTEC代码的探测器图形的情况多。
接着,在水平方向上得到一行数据(S503),形成增减图(参考图27(b))(S504)。比较根据增减图计算出的颜色图形关系式与上述的探测器图形模板是否一致(S505)。
颜色图形关系式与探测器图形模板不一致时(S505为否),或其水平方向的行扫描没有结束时(S507为否),对于与探测器图形不同的图像数据作出增减图,因此,重新作出增减图,计算出颜色图形关系式(S508到S504),再次与探测器图形模板比较(S505)。
颜色图形关系式与探测器图形模板一致时(S505为是),求出并存储最外圆的黑色圆的内侧之间(图26(a)中为B~K)的中点的x、y座标,作为探测器图形的中央圆的中心点的座标(S506)。
如果一行数据的扫描结束(S507为是),求出该行的中心点座标的候补个数,如果与探测器图形模板一致,由于座标点的个数为1(S509为否),进入步骤S510。
进入步骤S510,向上方向把CCD传感器上的搜索行偏离一行(图28的第2行),反复步骤S503到S509。在向上偏离一行的结果,中心点座标个数为1的情况下(S509为否),进入步骤S510,由于在步骤S501搜索方向为两个,CCD传感器向下偏离2行(图28的第3行)后,反复步骤S503到S509。向下偏离二行的结果是没有看到中心点座标时(步骤S509为是),进入步骤S511,判断到此为止扫描的1-3行得到的候补点的合计数目是否为1以上。若在1以上(步骤S511为是),从步骤S512进入步骤S513,把搜索方向设定成向上方向。这里,设定在向上方向上是因为即使再向向下方向扫描,也不能看到探测器图形,从而防止了浪费。这里,由于设置成向上方向,在向下方向上扫描时(图28的第3行),由于开始看不见中点,于是在向下方向上作为没有中点而立标签,从下一个扫描开始,如图28的第4行那样,把扫描行变更到前面的图28的第2行的上面的行。即,只扫描已扫描完的最上行的上面行。
此时,在步骤S513设置为向上方向后,反复步骤S503到步骤S509。图28的第4行中看不到中点,因此,步骤S509为是、步骤S511为是,而且步骤S512为否,水平方向扫描结束后,进入步骤S514。
另外,在一行扫描结束时刻,如果与探测器图形模板不一致(S505为否,S507为是,S509为否),则进入步骤S510,把扫描行向上下各偏离一行,返回步骤S503。
另外,进行两个方向扫描时,向上方向的行扫描最初看不到中点时,作为在上方向没有中点而立标签,从接着的扫描开始,仅对已经扫描结束了的最下面一行的下行扫描。
在步骤S514中,成为候补的座标点的x座标的小数点以下被去除,数出去除的x座标之间的个数(S515),将属于个数最多的位置上的x座标(小数点以下两位)和与此相随的y座标(小数点以下两位)确定为最终候补(S516)。
图6是表示探测器图形搜索处理的假设的第二扫描方向中心点组搜索处理的流程图的一个例子。
进行与图5的水平方向的搜索基本相同的处理。除图5的水平方向的处理中的一行在图6中作为一列、图5的搜索方向的上或下方向在图6中为左或右方向、图5的x座标在图6中为y座标之外,进行与水平方向相同的搜索。由于重复了同样的处理,因此不再作具体说明。
另一方面,与图5的步骤S502中(图像高度的1/2)相对,图6的步骤S602中,不同的是使用搜索水平方向求出的x座标的值。这里,使用搜索水平方向(扫描)求出的x座标的值是由于x座标的值已经被基本知道了,并且由于从那里搜索垂直方向可处理更快。
图6的步骤S616中,存储y座标的小数点以下被去除的部分中的个数最多的y座标(小数点以下2位)和与此相随的x座标(小数点以下2位)。
图7是表示探测器图形搜索处理中的探测器图形中心点计算处理流程图的一个例子。
进入图7的步骤S701,求出与图6的垂直方向搜索中求出的个数最多的y座标(整数部分)一致的图5的水平方向搜索中存储的y座标(整数部分),将与该y座标相对的x座标(小数点以下2位)作为中心点的x座标(小数点以下2位)。而且,在步骤S704中,求出与图5的水平方向搜索中求出的个数最多的x座标(整数部分)一致的图6的垂直方向搜索中存储的x座标(整数部分),将与该x座标相对的y座标(小数点以下2位)作为中心点的y座标(小数点以下2位)。
步骤S702及步骤S705中不能选择座标值时,判断为不能得到中心点。
而且,说明探测器图形搜索步骤的另外的实施例。
检索水平方向扫描探测器图形得到的黑白颜色图形,根据黑白显示顺序简单比较与作为探测器图形颜色模板的“黑白黑白黑白黑白黑白黑”是否一致(不必要比较比率)。结果,扫描得到的黑白颜色图形与探测器图形颜色模板一致时,该扫描线可假定为与探测器图形的大致中心部相交(图26(a))。求出该扫描线与构成探测器图形的最外部的部件(MaxiCode中黑色3重圆的最外圆)的交点(图26(a)的B点到k点),并将该中点作为假设的中心点。
如上所述,为了避免因与探测器图形相接的黑色像素的存在引起的误读取,以最外黑色圆的内圆周为基准。
稍微与该扫描线的平行偏离,并以B点到K点的中点为中心点。多次反复这些。
扫描通过该水平方向上扫描得到的多个中心点的线,作为第二扫描方向(垂直方向)。与水平方向同样地以B点到K点的中点为中心点反复操作。
连接水平方向(第一扫描方向)得到的多个中心点的线与连接垂直方向(第二扫描方向)得到的多个中心点的线的交点可作为中心座标得到(图33的放大图中的点划线之间的交点)。
根据该实施例,即使是在倾斜摄影探测器图形时,或在探测器图形不是圆而成为椭圆的情况下,也可正确求出中心点。此时,最好第一扫描方向和第二扫描方向中至少一个为椭圆的长轴或短轴方向(参考图34)。
而且,举出另外的例子来说明上述的探测器图形搜索步骤。其细节参考图8,图26,图27,图28和图30以及图31来说明。
图8是MaxiCode符号的解码处理中的探测器图形搜索处理的流程图。
首先,在第一扫描方向上扫描MaxiCode符号的读取图像,通过比较扫描线上的检出图形(下面称为“颜色图形关系式”)与基准图形(以下称为“探测器图形模板”),检索探测器图形中心附近存在的扫描线,从检索出的扫描线计算中心点。而且,从该中心点在与第一扫描方向不同的第二扫描方向上进行扫描,同样通过比较垂直方向的颜色图形关系式与探测器图形模板,从检索出的扫描线计算探测器图形的假设的中心点(步骤S801)。这里,将第一扫描方向上扫描的探测器图形的中心点附近的扫描线叫作第一扫描方向中心线,中心点叫作第一扫描方向中心点,把第二扫描方向上扫描的探测器图形的中心点附近的扫描线叫作第二扫描方向。另外,也可以将第一扫描方向作为图像的水平方向,也可以将第二扫描方向作为图像的垂直方向。
图26是说明探测器图形模板的图。图26(a)是表示通过探测器图形的中心点的线上的颜色图形的图,图26(b)是表示探测器图形模板的图。
如图26(a)所示,将通过在探测器图形的中心点的线2601上在箭头方向检索颜色图形的结果表示为“白”=高以及“黑”=低的增减图。另外,如图26(b)所示,在增减图中,将从最初的黑色部分(图中的A)的一端到接着的黑色部分(图中的C)的一端的距离设置为1时,从最初的白色部分(图中的B)的一端到接着的白色部分(图中的D)的一端的距离也为1。并且从包括中心部的白色圆的黑色部分的一端(图中的E)到黑色部分的一端(图中的G)以及从白色部分的一端(图中的F)到白色部分的一端(图中的H)为1.26。
因此,从左向右扫描中心点(A向L),依次取黑~黑(A~C)、白~白(B~D)、黑~黑(C~E)、、、、白~白(J~L)的比例时,下面的颜色关系式成立。这里,例如AC表示从A点到C点的距离。
AC∶BD∶CE∶DF∶EG∶FH∶ GI∶HJ∶IK∶JL=1∶1∶1∶1∶1.26∶1.26∶1∶1∶1∶1
上述的探测器图形的颜色图形关系式作为探测器图形模板预先存储在ROM107的解码信息存储部220上。
另外,从右向左扫描中心部(L向A),依次取黑~黑(L~J)、白~白(K~I)黑~黑(J~H)、、、、、白~白(C~A)的比例时,同样,下面的关系式成立。
LJ∶KI∶JH∶IG∶HF∶GE∶FD∶EC∶BD∶CA=1∶1∶1∶1∶1.26∶1.26∶1∶1∶1∶1
因此,首先如图27(a)所示,在水平方向(第一扫描方向)上扫描包括MaxiCode符号的读取图像的全部图像2701的中心点附近,根据扫描线2702上的颜色图形生成增减图(图27(b)),计算出扫描线上的颜色图形关系式。之后,对计算出的颜色图形关系式和ROM 107上的解码信息存储部220上存储的探测器图形模板(图26(b))之间的关系进行图形匹配,在一致的情况下,以该扫描线作为水平方向的假设的中心线(第一扫描方向中心线)。这里,作为假设的中心线是因为有时黑白数据以与探测器图形模板同样的间隔并排排列。
如图27(b)所示,在增减图中,在颜色图形关系式的对比对象个数与探测器图形模板的比较对象个数不一致时,已知扫描线不通过探测器图形的中心上存在的白色圆2703。此时,如图28所示,对于整个图像2801的中心线1,按上下顺序从2,3,...进行扫描,进行颜色图形关系式与探测器图形模板之间的图形匹配,求出一致的扫描线,将最接近探测器图形模板的扫描线作为水平一方向的中心线。
将该中心线的最外的黑色圆内侧(相当于图26(b)中的B的点)~相反侧的点(相当于图26(b)中的K的点)(即探测器图形的白色最外圆的两端)的中心点为假设的中心点(第一扫描方向中心点)。
这里,不是以探测器图形的黑色最外圆的两端部的中点作为中心点,而以白色最外圆的两端部的中点作为中心点,这是由于探测器图形的黑色的最外圆上接触黑色像素的数据,会判错最外圆。
图30是第二扫描方向上扫描的情况的图。从第一扫描方向中心点3001在与第一扫描方向不同的第二扫描方向上扫描,通过比较扫描线3002上的颜色图形关系式与探测器图形模板,检索探测器图形的中心点附近存在的扫描线,从检索到的扫描线计算出探测器图形的假设的中心点。
在相对于水平方向旋转90度的第二扫描方向(垂直方向)上进行扫描,进行与水平方向相同的图形匹配。在垂直方向上进行扫描中,最初,通过较早从水平方向的中心线求出的中心点,扫描与该中心线垂直的线(较早求出的垂直线)。此时,不是在垂直方向扫描一整行经扫描水平方向而求出的中心点的线,第一扫描方向中心点为中心来仅计算出一个探测器图形模板的颜色图形关系式,与探测器图形模板比较。
由此,由于该中心点作为探测器图形的真正中心点的可能性最高,提高了求出中心点的速度。
如果具有与图26(b))的探测器图形模板一致的颜色图形关系式,与水平方向同样,在垂直方向扫描以探测器图形的白色的最外圆的两端的中点作为探测器图形的假设的中心点。图26(b))的探测器图形模板与颜色图形关系式不一致时,从水平方向的中心线在上下方向上远离的方向上再次反复扫描水平方向,把其读取数据存储在VRAM106的探测器图形信息存储部211上(参考图28)。
这里,水平方向和垂直方向的扫描顺序哪一个在前面都可以。
最后,根据计算出的探测器图形的假设的中心点计算出探测器图形的中心点(S802)。
图31是表示计算探测器图形中心点的图。
如图31所示,在从探测器图形的假设的中心点3101重新向第1扫描方向3102上进行左右扫描,最初把颜色图形从白向黑变化的点作为P1、P2。而且,在从探测器图形的假设的中心点3101重新向第2扫描方向3103进行上下扫描,最初把颜色图形从白向黑变化的点作为P3、P4。算出以该P1、P2、P3、P4为顶点的四边形的重心3104,求出探测器图形的中心点。虽然可将探测器图形的假设的中心点作为探测器图形的真的中心点,但因为若有失真,则产生偏离的情况多,所以需再次算出探测器图形的真的中心点。
另外,根据本发明,在第1扫描方向(水平方向)上扫描进行图形匹配后,虽然在第2扫描方向(垂直方向)扫描90度来进行图形匹配,但可以不是90度,只要能得到交点,则第1扫描方向和第2扫描方向的交叉角度可以是任一角度。另外,读取数据后,在VRAM上展开为x,y坐标的二维数据并存储时,虽然第1扫描方向和第2扫描方向垂直,但作为从读取到展开数据的处理变得简单。
图9是表示探测器图形搜索处理中的假设的中心点搜索处理的流程图的一个例子。
首先,从第(拍摄的图像高度/2)行开始搜索(S901)。这是由于在包含二维代码符号的图像的基本正中间一带处有符号,并且,在正中间一带存在Maxi码和AZTEC码的探测器图形的情况多。
接着,在取得水平方向上的一行数据(S902),制成增减图(参照图27(b))(S903)。比较基于增减图算出的颜色图形关系式和上述探测器图形模板是否一致(S904)。
在颜色图形关系式与探测器图形模板不一致时(S904;否)时,另外,其水平行的扫描未结束时(S905;否)时,因为对与探测器图形不同的图像数据制成增减图,所以重新制成增减图,算出颜色图形关系式(S907→S903),再次与探测器图形模板进行比较(S904)。
当颜色关系式与探测器图形模板一致时(S904;是),求出最外圆的黑圆的内侧相互间(图26(a)中,B-K)的中点,作为探测器图形的中央圆的中心点的坐标。
接着,以在步骤S909求出的中点为中心,如图30所示,在垂直方向上取得1个模板的数据(S910)。并且制成增减图(S911),算出颜色图形关系式,与探测器图形模板进行比较(S912)。
颜色图形关系式与探测器图形模板不一致时(S912;否),由于步骤S909中求出的中点不是探测器图形的中心,所以再次返回水平行的扫描(S912→S905)。
颜色图形关系式与探测器图形模板一致时(S912;是),作为探测器图形的中央圆的中心点的坐标,将最外圆的黑圆的内侧相互间(图27(a)中,B-K)的中点设定为假设的中心点(S913)。
并且,在一行的扫描结束的时刻,如果与探测器图形模板不一致(S904;否、S912;否、S905;是),则进入步骤S906。未结束对全部行的扫描时(S906;否),如图30所示,在上下方向上错开每一行地扫描行(S908),返回步骤S902。在结束对全部行的扫描时(S906;是)时,看不见探测器图形的中心点,搜索失败并结束。
图10是表示探测器图形搜索处理中的探测器图形的中心点搜索处理的流程图的一个例子。
首先,从图9中求出的探测器图形的假设的中心点向水平方向左右方向上取得数据(S1001),将像素的颜色从白变黑的点作为P1、P2(S1002)(参照图31)。并且,从图9中求出的探测器图形的假设的中心点向垂直方向上下取得数据(S1003),将像素的颜色从白变黑的点作为P3、P4(S1004)(参照图31)。
接着,规定以P1、P2、P3、P4为顶点的四边形,算出其重心的x,y坐标(S1005)。将该算出的重心确定为探测器图形的中心(S1006)。
在该实施例中,从斜向拍摄探测器图形时,或即使探测器图形不为圆形而变为椭圆时,也能正确地求出中心点。探测器图形变为椭圆时,由图9求出的探测图形的假设的中心点3201从探测器图形的中心偏移的情况多(参照图32(a))。因此,通过求出图10中算出的重心3202,能够正确地搜索到探测器图形的中心点(参照图32(b))。
对于上述的图像修正步骤,举一例子说明。其详细内容参照图11、图36和图37及图61来说明。
图11是MaxiCode符号的解码处理中的图像修正处理的流程图。
如图3中的说明,根据Maxicode符号解码处理的步骤S302来搜索探测器图形,算出作为探测器图形的图形信息的探测器图形的中心点的位置坐标和探测器图形的白色部与黑色部的颜色交界处的位置坐标组。另外,由于通过搜索Maxicode符号的方向模块,能够搜索全部的数据模块,从而对方向模块存在的范围的像素数据进行图像修正就足够了。因此,算出的倾斜角修正式为在Maxicode符号的方向模块存在的范围成立的关系式就足够了。
此外,根据Maxicode符号,探测器图形和方向模块处于接近的位置上。因此,也能将探测器图形的倾斜角修正式适用于方向模块。
因此,根据图像修正处理,首先,从探测器图形的中心点的位置坐标和探测器图形的白色部和黑色部的颜色交界处的位置坐标组来判定能否将探测器图形的环形近似为椭圆(S1101)。这里,探测器图形的环形为读取的图像中构成Maxicode符号的探测器图形的圆变形后的图形。
在能将探测器图形的环形近似为椭圆时(S1101;是),进入下一处理(S1103)。作为能将探测器图形的环形近似为椭圆的判定条件,例如,如图35所示,读取图像的中心点C和探测器图形的中心点O的距离在规定的判定区域范围内,即,在读取图像的中心点C的附近存在探测器图形的中心点O,并且,焦点P与中心点C的距离与作为探测器图形的直径的线段AB的长度比(=线段PC的长度/线段AB的长度)为规定的判定临界值以上时,即,与焦点P与中心点C的距离相比,探测器图形的直径非常小时,能将探测器图形的环形近似为椭圆。
另一方面,在不能将探测器图形的环形近似为椭圆时(S1101;否),基于Maxicode符号中的探测器图形的中心位置坐标和探测器图形的白色部与黑色部的颜色交界处的位置坐标组,算出倾斜角修正式(S1102),进入下一步骤S1107。
另外,基于实际的Maxicode符号中探测器图形的形状和读取图像的探测器图形的形状之间的关系,也可以代替算出倾斜角修正式,直接生成倾斜角修正表后,进入下一步骤S1107。
接着,在能够将探测器图形的环形近似为椭圆时,考虑实际的探测图形的圆与读取图像的探测图形的椭圆的关系。
图36为表示圆与椭圆的关系的图。如图36所示,根据从斜向读取的读取图像,圆变形为椭圆时,圆上的点P偏移到椭圆上的点P’。椭圆的长轴在水平轴上,中心点为点O,长轴为线段AC,短轴为线段BD。角度AOP为θ,角度AOP’为θ’时,角度θ与角度θ’之间的关系表示为下述的倾斜角修正式。这里,γ为椭圆率(=线段BO的长度/线段AO的长度)。另外,下面,*表示乘法。
θ’=arctan(γ*tanθ)
因此,保持角度θ的圆上的点P偏移至保持角度θ’的椭圆上的点P’。
接着,基于倾斜角修正式生成倾斜角修正表。即,在每个决定修正精度的修正分割角α处生成角度θ和角度θ’之间的θ-θ’变换值表。
首先,基于决定倾斜角修正表中的修正精度的修正分割角α来设定角度分割(S1103)。即,基于修正分割角α,算出修正全角(360度)用的分割数,设定角度分割。这里,α为60的公约数。通过表示Maxicode符号的方向的方向模块沿Maxicode符号的中心点的周围分别以60度的角度配置,角度分割以每60度来分割全角,另外,以每修正分割角α来分割60度。即,角度分割由成为下述关系式的二维排列(i,j)来表示角度θ。这里,i为从0至5的整数,j为从0至n的整数。
n=60/α-1
θ(i,j)=60*i+α*j
例如,若α=1,即,如果θ-θ’变换值表的精度为1度,则角度θ(i,j)由6x60的矩阵来表示。i=0-5,j=0-59的整数。
接着,为了通过仅从偏斜角、从角度θ移动后的值生成变换表,设定偏斜角(S1104)。
如上所述,根据Maxicode符号,内侧方向模块、外侧方向模块和中央方向模块等三个方向模块存在于同一方向上。因此,将内侧方向模块和外侧方向模块存在的方向与中央方向模块存在的方向之间的角度作为偏斜角。
图37表示内侧方向模块和外侧方向模块的角度与中央方向模块的角度关系的图。图37(a)是表示实际的MaxiCode符号的方向模块的图,图37(b)是表示读取图像中的方向模块的图。
如图37(a)所示,如果将内侧方向模块3701和外侧方向模块3702的方向与水平轴的夹角为角度θ1,中央方向模块3703与水平轴的夹角为角度θ2,偏斜角为β,则β用下式表示。
β=θ1-θ2
如图61所示,将点O作为MaxiCode符号的中心点,将点D作为内侧方向模块的中心点和外侧方向模块的中心点的中间点,将点A和点β作为外侧方向模块的中心点,将点C作为中央方向模块的中心点,将模块的宽度作为W时,成立下述关系式。
线段OD的长度=6.5*W
线段DC的长度=31/2/2*W
tanβ=31/2(2*6)
通过上述,偏斜角β用下式表示。
β=arctan(31/2/(2*6))=约7.59
因此,如图37(a)所示,内侧方向模块3701和外侧方向模块3702与水平轴所成的角度θ1(i,j)与中央方向模块3703与水平轴所成的角度θ2(i,j)之间的关系式如下。
θ2(i,j)=θ1(i,j)-β
接着,基于角度分割生成经过椭圆近似的倾斜修正角表(S1105)。
如图36所示,根据从倾斜读取的读取图像,圆变形为椭圆时,圆上的点P变到椭圆上的点P’。因此,如图37(b)所示,将点P’作为内侧方向模块3704或外侧方向模块3705的中心点时,内侧方向模块3704和外侧方向模块3705与水平轴所成的角度θ1’(i,j)用下述的倾斜角修正式表示。
θ1’(i,j)=arctan(γ*tanθ1(i,j))(i=0、1、2时)
           =θ1’(i-3,j)+180(i=3、4、5时)
另外,偏斜角为β时,中央方向模块3706与水平轴所成的角度θ2’(i,j)用下述倾斜角修正式表示。
θ2’(i,j)=arctan(γ*tanθ2(i,j))
θ2(i,j)=θ1(i,j)-β(i=0、1、2时)
         =θ2’(i-3,j)+180(i=3、4、5时)
因此,通过上述倾斜角修正式,算出角度分割的角度θ1时的角度θ2、角度θ1’和角度θ2’,将算出的值作为倾斜角修正表的要素。
接着,判定是否算出了角度分割后的全部的角度中的倾斜角修正表的要素(S1106)。算出角度分割后的全部的角度中的倾斜角修正表的要素时(S1106;是),进入下一处理(S1107)。没有算出角度分割后的全部的角度中的倾斜角修正表的要素时(S1106;否),反复步骤S1105的处理,直到算出全部的角度中的倾斜角修正表的要素。
接着,基于生成的倾斜角修正表,修正读取图像的像素数据(S1107)。
最后,将生成的倾斜角修正表存储在VRAM106的图像修正信息存储部212中(S1108)。这里,也可以代替倾斜角修正表而存储倾斜角修正式和分割信息。此外,也可以存储倾斜角修正表、修正关系式和分割信息。
对于上述的方向模块搜索步骤,举一例子进行说明。其详细内容参照图12、图38、图39和图61来说明。
图12是MaxiCode符号的解码处理中的方向模块搜索处理的流程图。
首先,设定方向模块的搜索范围(S1201)。
图61是表示实际的MaxiCode符号中的探测器图形和方向模块的关系的图。如图61所示,根据实际的MaxiCode符号,连接内侧方向模块的中心点的图形6101为一边是模块宽度W的六倍的正六边形,连接外侧方向模块的中心点的图形6102为一边是模块宽度W的七倍的正六边形。这里,模块宽度W为相邻的两个模块的中心点之间的距离。另外,点O为MaxiCode符号的中心点,点E为内侧方向模块的中心点,点D是内侧方向模块的中心点和外侧方向模块的中心点的中间点,点A和点β是外侧方向模块的中心点,点C是中央方向模块的中心点。
因此,内侧方向模块的中心点存在于以线段OE为半径的圆周上,外侧方向模块的中心点存在于以线段OA为半径的圆周上,中央方向模块的中心点存在于以线段OC为半径的圆周上,分别与模块的宽度W有关。线段OE的长度、线段OA的长度和线段OC的长度用下式表示。
线段OE的长度=6.000*W
线段OA的长度=7.000*W
线段OC的长度=((线段OD的长度)2+(线段DC的长度)2)1/2
            =约6.543*W
图38是说明MaxiCode符号的读取图像中的方向模块的搜索范围的图。图38(a)是表示模块宽度的图。图38(b)是表示模块宽度与内侧方向模块的中心点的位置关系的图。
如图38(a)所示,从探测器图形的白色部3801和黑色部3802的颜色交界处图形3803的半径算出模块宽度W。如图61所示,对于从正面读取的MaxiCode符号读取图像而言,虽然颜色交界处图形6103为圆形,但如图38(a)所示,对于从斜向读取的MaxiCode符号的读取图像而言,颜色交界处图形3803变为近似于椭圆的图形。
另外,如图61所示,当作为圆的颜色交界处图形6103上的点为点F、圆的半径为R’时,下述的关系式成立。
R’<4.0*W
因此,在将图38(a)的颜色交界处图形3803的半径为R时,模块宽度W由下式表示。Rate数为附加于半径R与模块宽度W的关系的变量,其值为n。即,这里,设上述的规定间隔为0.05,Rate数n为从4.00开始以每0.05的间隔至3.00的值。
W=R/n
如图38(b)所示,由于内侧方向模块的中心点存在于半径L1的圆周上,所以一边变化Rate数,一边搜索内侧方向模块的中心点。这里,半径L1为L1=6.000*W。
同样地由于外侧方向模块的中心点和中央方向模块的中心点存在于半径L2和半径L3的圆周上,所以一边变化Rate数,一边搜索外侧方向模块的中心点和中央方向模块的中心点。这里,半径L2和半径L3为L2=7.000*W,L3=6.543*W。
另外,如图61所示,连接中心点O和中央方向模块的中心点C的直线与连接中心点和外侧方向模块的中心点A的直线形成角度β的角度。这里,角度β为中央方向模块的偏斜角。中央方向模块的偏斜角用下式表示。
tanβ=(线段DC的长度)/(线段OD的长度)β=约7.59
通过上述,设定方向模块的搜索范围。
接着,制成由[黑]=1和[白]=0的位图形来表示内侧方向模块组、外侧方向模块组和中央方向模块组的颜色模板图形(S1202)。这里,设存在于六个方向的六个内侧方向模块的集合为内侧方向模块组,六个外侧方向模块的集合为外侧方向模块组,六个中央方向模块的集合为中央方向模块组。
图39是表示颜色模板图形的图。如图39所示,用从方向0至方向5来表示六个方向。颜色模板图形通过两次重复从方向0至方向5的[黑]=1和[白]=0的位图形来制成。
因此,制成的内侧方向模块组、外侧方向模块组和中央方向模块组的颜色模板图形如下所述。
内侧方向模块组的颜色模板图形=[101101101101]
外侧方向模块组的颜色模板图形=[001011001011]
中央方向模块组的颜色模板图形=[101110101110]
下面,基于Rate数来搜索与颜色模板图形一致的内侧方向模块组、外侧方向模块组和中央方向模块组的方向模块候补数据(S1203)。这里,当没有与颜色模板图形一致的方向模块时,没有方向模块候补数据。
下面,判定是否搜索到基于设定的全部的Rate数的方向模块候补数据(S1204)。在搜索到基于设定的全部的Rate数的方向模块候补数据时(S1204;是),进入下一步骤S1205。另一方面,在未搜索到基于设定的全部的Rate数的方向模块候补数据时(S1204;否),反复步骤S1203,直至搜索到基于全部的Rate数的方向模块候补数据。
接着,判定是否存在方向模块候补数据(S1205)。当存在方向模块候补数据时(S1205;是),从方向模块候补数据确定方向模块(S1206),结束方向模块搜索处理。
另一方面,当不存在方向模块候补数据时(S1205;否),作为不能搜索到方向模块,执行错误处理(S1207),结束解码处理。
下面更详细地说明搜索上述方向模块候补数据的处理。
图13是方向模块搜索处理中的方向模块候补数据搜索处理的流程图。
如对图12的步骤S1201进行的说明那样,基于Rate数n,内侧方向模块组存在于半径L1的圆周上,外侧方向模块组存在于半径L2的圆周上,中央方向模块组存在于半径L3的圆周上。另外,中央方向模块的偏斜角为角度β。并且,构成内侧方向模块组的六个内侧方向模块以探测器图形的中心点为中心、以60度的间隔配置。构成外侧方向模块组的六个方向模块和构成中央方向模块组的六个中央模块也是同样。
因此,通过以每60度分割全角、而且以每搜索分割角α分割60度的下述二维排列(i,j)来表示方向模块的搜索角度θ,搜索方向模块。这里,i为从0到5的整数,i为从0到n的整数。
n=60/α-1
θ(i,j)=60*i+α*j
例如,如果搜索分割角α为α=1,则角度θ(i,j)由6*60的矩阵表示。i=0-5的整数,j=0-59的整数。另外,由i表示的角度区域为区域i。例如,i=0,即,0<=θ<60为区域0。
首先,对搜索角度θ来说,检测出与内侧方向模块组的颜色模板图形一致的内侧方向模块组,检测出内侧方向模块的候补数据(S1301)。
接着,判定是否能够检测出内侧方向模块的候补数据(S1302)。能够检测出时(S1302;是),进入下一步骤S1303。另一方面,当不能够检测出时(S1302;否),进入用于进入搜索下一角度的步骤S1307。
接着,检测出与外侧方向模块组的颜色模板图形一致的外侧方向模块组,检测出外侧方向模块的候补数据(S1303)。
接着,判定是否能够检测出外侧方向模块的候补数据(S1304)。当能检测出时(S1304;是),进入下一步骤S1305。另一方面,当不能检测出时(S1304;否),进入用于进入搜索下一角度的步骤S1307。
接着,检测出与中央方向模块组的颜色模板图形一致的中央方向模块组,检测出中央方向模块的候补数据(S1305)。
接着,判定是否能够检测出中央方向模块的候补数据(S1306)。当能检测出时(S1306;是),进入用于进入搜索下一角度的步骤S1307。另一方面,当不能检测出时(S1304;否),也进入用于进入搜索下一角度的步骤S1307。
接着,判定是否对全部的搜索角度进行了搜索(S1307)。当对全部的搜索角度进行了搜索时(S1307;是),进入下一步骤S1308。另一方面,当未对全部的搜索角度进行搜索时(S1307;否),重复步骤S1301至步骤S1306,直至对全部的搜索角度进行了搜索。
这里,方向模块以探测器图形的中心点为中心、以60度的间隔来配置,因此,可以认为搜索角度θ的搜索范围是从0度到不满60度之间的搜索分割角。因而,可以认为搜索角度θ为区域0。
接着,判定是否存在内侧方向模块的候补数据、外侧方向模块的候补数据和中央方向模块的候补数据(S1308)。当存在内侧方向模块的候补数据、外侧方向模块的候补数据和中央方向模块的候补数据时(S1308;是),确定基于Rate数n搜索的,由内侧方向模块的候补数据、外侧方向模块的候补数据和中央方向模块的候补数据形成的方向模块候补数据(S1309),结束方向模块候补数据搜索处理。
另一方面,当不存在内侧方向模块的候补数据、外侧方向模块的候补数据和中央方向模块的候补数据时(S1308;否),作为没有基于Rate数n搜索到的方向模块的候补数据,执行错误处理(S1310),结束方向模块候补数据搜索处理。
另外,在上述的方向模块候补数据搜索处理中,检测出内侧方向模块候补数据的步骤S1301、检测出外侧方向模块候补数据的步骤S1303和检测出中央方向模块候补数据的步骤S1305与处理的顺序无关。最好能检测出内侧方向模块候补数据、外侧方向模块候补数据和中央方向模块候补数据。
下面更详细地说明检测出上述的方向模块候补数据搜索处理中的内侧方向模块候补数据的处理。
图14是方向模块候补数据搜索处理中的内侧方向模块候补检测处理的流程图。
首先,由于内侧方向模块存在于六个方向上,所以假定在搜索角度θ中存在一个内侧方向模块,算出存在于六个方向的假设的内侧方向模块的位置(S1401)。
图40是表示搜索角度θ中的假设的方向模块的位置的图。这里,设探测器图形的中心点为点O,存在于区域i的半径L1的圆周上的假设的内侧方向模块的中心点为点Aij,线段OAij与x轴所成的角为θij。另外,设存在于半径L2的圆周上的假设的外侧方向模块的中心点为点A’ij,存在于半径L3的圆周上的假设的中央方向模块的中心点为点A”ij,中央方向模块的偏斜角为β。此外,设点Aij的坐标为(xij,yij),点A’ij的坐标为(x’ij,y’ij),点A”ij的坐标为(x”ij,y”ij),点θij为θ(i,j)。
如图40所示,存在于区域0中的点A0j的位置如下表示。
x0j=L1*sin(θ0j)
y0j=L1*cos(θ0j)
θ0j=θ(0,j)
因此,存在于六个方向的假设的内侧方向模块的中心点Aij以下式表示。
xij=L1*sin(θij)
yij=L1*cos(θij)
θij=θ(i,j)=θ0j+60*i
接着,取出对应于算出的六个方向存在的假设的内侧方向模块的位置的像素数据的颜色,变换为[黑]=1或[白]=0的位图形(S1402)。这里,将由存在于变换后的六个方向的假设的内侧方向模块的位图形构成的假设的内侧方向模块组的位图形作为假设的内侧方向模块图形。
接着,比较假设的内侧方向模块图形和一部分内侧方向模块组的颜色模板图形,判定是否一致(S1403)。对于内侧方向模块组的颜色模板图形而言,将从图形的左侧第k个值至第(k+6)个值的图形作为内侧颜色模板部分图形。比较内侧颜色模板部分图形和假设的内侧方向模块图形,判定是否一致。这里,k为开始序号。k从1变化至6就足够了。
内侧颜色模板部分图形与假设的内侧方向模块图形一致时(S1403;是),作为内侧方向模块的候补数据检测出存在于六个方向上的假设的内侧方向模块(S1404),进入与下一内侧颜色模板部分图形比较用的步骤S1405。
另一方面,当内侧颜色模板部分图形与假设的内侧方向模块图形不一致时(S1403;否),进入与下一内侧颜色模板部分图形比较用的步骤S1405。
例如,如果假设的内侧方向模块图形为[110110]时,因为内侧方向模块组的颜色模板图形为[101101101101],所以与作为k=3和k=6时的内侧颜色模板部分图形的[110110]一致。因此,将假设的内侧方向模块作为内侧方向模块的候补数据。但是,如果假设的内侧方向模块图形为[100110],则没有一致的内侧颜色模板部分图形。
接着,判定是否比较了全部的内侧颜色模板部分图形和假设的内侧方向模块图形(S1405)。即,判定是否对1到6的开始序号k进行比较。当未比较全部的内侧颜色模板部分图形和假设的内侧方向模块图形时(S1405;否),重复步骤S1403和步骤S1404,直至结束全部的内侧颜色模板部分图形与假设的内侧方向模块图形的比较。
当比较完全部的内侧颜色模板部分图形与假设的内侧方向模块图形时(S1405;是),判定是否检测出内侧方向模块的候补数据(S1406)。当检测出内侧方向模块的候补数据时(S1406;是),结束内侧方向模块候补检测处理。另一方面,当未检测出内侧方向模块的候补数据时(S1406;否),作为无候补数据(S1407),结束内侧方向模块候补检测处理。
接着,更详细地说明检测上述的方向模块候补数据搜索处理中的外侧方向模块候补数据的处理。
图15是方向模块候补数据搜索处理中的外侧方向模块候补检测处理的流程图。
首先,由于外侧方向模块存在于六个方向上,所以假定在搜索角度θ中存在一个外侧方向模块,算出存在于六个方向的假设的外侧方向模块的位置(S1501)。
如图40所示,存在于区域0中的点A’0j的位置如下表示。
x’0j=L2*sin(θ0j)
y’(0j=L2*cos(θ0j)
θ0j=θ(0,j)
因此,存在于六个方向的假设的外侧方向模块的中心点A’ij以下式表示。
x’ij=L2*sin(θij)
y’ij=L2*cos(θij)
θij=θ(i,j)=θ0j+60*i
接着,取出对应于算出的六个方向上存在的假设的外侧方向模块的位置的像素数据的颜色,变换为[黑]=1或[白]=0的位图形(S1502)。这里,将由存在于变换后的六个方向的假设的外侧方向模块的位图形构成的假设的外侧方向模块组的位图形作为假设的外侧方向模块图形。
接着,判定是否是与内侧方向模块的候补数据一致的开始序号k(S1503)。对于外侧方向模块组的颜色模板图形,与内侧颜色模板部分图形一样,基于开始序号k,制成外侧颜色模板部分图形。
当与内侧方向模块的候补数据一致的开始序号为k时(S1503;是),比较假设的外侧方向模块图形与外侧颜色模板部分图形,判定是否一致(S1504)。
另一方面,当与内侧方向模块的候补数据一致的开始序号不为k时(S1503;否),进入与下一外侧颜色模板部分图形比较用的步骤S1506。
当外侧颜色模板部分图形与假设的外侧方向模块图形一致时(S1504;是),作为外侧方向模块的候补数据检测出存在于六个方向上的假设的外侧方向模块(S1505),进入与下一外侧颜色模板部分图形比较用的步骤S1206。
另一方面,当外侧颜色模板部分图形与假设的外侧方向模块图形不一致时(S1504;否),进入与下一外侧颜色模板部分图形比较用的步骤S1506。
判定是否比较了全部的外侧颜色模板部分图形和假设的外侧方向模块图形(S1506)。当未比较完全部的外侧颜色模板部分图形和假设的外侧方向模块图形时(S1506;否),重复步骤S1503、步骤1504和步骤S1505,直至结束全部的外侧颜色模板部分图形与假设的外侧方向模块图形的比较。
当比较完全部的外侧颜色模板部分图形与假设的外侧方向模块图形时(S1506;是),判定是否检测出外侧方向模块的候补数据(S1507)。当检测出外侧方向模块的候补数据时(S1507;是),结束外侧方向模块候补检测处理。另一方面,当未检测出外侧方向模块的候补数据时(S1507;否),作为无候补数据(S1508),结束外侧方向模块候补检测处理。
接着,更详细地说明检测上述的方向模块候补数据搜索处理中的中央方向模块候补数据的处理。
图16是方向模块候补数据搜索处理中的中央方向模块候补检测处理的流程图。
首先,由于中央方向模块存在于六个方向上,所以假定在搜索角度θ中考虑了偏移角β的角度(θ-β)中存在一个中央方向模块,算出存在于六个方向的假设的中央方向模块的位置(S1601)。
如图40所示,存在于区域0中的点A”0j的位置如下表示。
x”0j=L3*sin(θ0j-β)
y”0j=L3*cos(θ0j-β)
θ0j=θ(0,j)
因此,存在于六个方向的假设的中央方向模块的中心点A”ij以下式表示。
x”ij=L3*sin(θij-β)
y”ij=L3*cos(θij-β)
θij=θ(i,j)=θ0j+60*i
接着,取出对应于算出的六个方向上存在的假设的中央方向模块的位置的像素数据的颜色,变换为[黑]=1或[白]=0的位图形(S1602)。这里,将由存在于变换后的六个方向的假设的中央方向模块的位图形构成的假设的中央方向模块组的位图形作为假设的中央方向模块图形。
接着,判定是否是与外侧方向模块的候补数据一致的开始序号k(S1603)。这里,外侧方向模块的候补数据为内侧方向模块的候补数据,并且是外侧方向模块的候补数据。对于中央方向模块组的颜色模板图形,与内侧颜色模板部分图形一样,基于开始序号k,制成中央颜色模板部分图形。
当与外侧方向模块的候补数据一致的开始序号为k时(S1603;是),比较假设的中央方向模块图形与中央颜色模板部分图形,判定是否一致(S1604)。
另一方面,当与外侧方向模块的候补数据一致的开始序号不为k时(S1603;否),进入与下一中央颜色模板部分图形比较用的步骤S1606。
当中央颜色模板部分图形与假设的中央方向模块图形一致时(S1604;是),作为中央方向模块的候补数据检测出存在于六个方向上的假设的中央方向模块(S1605),进入与下一中央颜色模板部分图形比较用的步骤S1606。
另一方面,当中央颜色模板部分图形与假设的中央方向模块图形不一致时(S1604;否),进入与下一中央颜色模板部分图形比较用的步骤S1606。
判定是否比较了全部的中央颜色模板部分图形和假设的中央方向模块图形(S1606)。当未比较完全部的中央颜色模板部分图形和假设的中央方向模块图形时(S1606;否),重复步骤S1603、步骤1604和步骤S1605,直至结束全部的中央颜色模板部分图形与假设的中央方向模块图形的比较。
当比较完全部的中央颜色模板部分图形与假设的中央方向模块图形时(S1606;是),判定是否检测出中央方向模块的候补数据(S1607)。当检测出中央方向模块的候补数据时(S1607;是),结束中央方向模块候补检测处理。另一方面,当未检测出中央方向模块的候补数据时(S1607;否),作为无候补数据(S1608),结束中央方向模块候补检测处理。
下面,更详细地说明确定上述的方向模块候补数据搜索处理中的方向模块候补数据的处理。
图17是方向模块候补数据搜索处理中的确定方向模块候补处理的流程图。
基于检测出的多个内侧方向模块的候补数据来确定Rate数n中的一个内侧方向模块的候补数据。
方向模块的确定是基于检测出的方向模块的候补数据,通过判别同一方向模块的候补数据,取得判别后的候补数据的平均来求出。
图41是表示对应于同一方向模块的候补数据的数据变换的图。图41(a)是表示对应于数据变换前的同一方向模块的候补数据的图,图41(b)是表示对应于数据变换后的同一方向模块的候补数据的图。
如图41(a)所示,具有检测出的同一方向模块的候补数据跨跃区域i和区域(i+1)而存在的情况。点A10、点A11、点A12和点A0m为跨跃区域0和区域1而存在的同一方向模块的候补数据。这里,作为检测出的方向模块候补数据的点Aij表示存在于区域i中的第j个搜索分割角的数据。因此,在上述的点Aij的表现方法中,不能表示为同一方向模块的候补数据。因而,如图41(b)所示,将由点Aij表示的数据变换为表示为同一方向模块的候补数据的数据点Bpq。这里,p表示方向模块序号,q表示候补序号。另外,点Aij的位置坐标与点Bpq的位置坐标为相同值。
首先,判定作为候补数据的点Aij是否是与Bpq同一方向模块的候补数据(S1701)。当是同一方向模块的候补数据时(S1701;是),将点Aij数据变换为Bpq(S1702),进入下一步骤S1705。
例如,如图41所示,将作为同一方向模块的候补数据的点A00变换为点B00,点A01变换为点B01,点A02变换为点B02。另外,将作为形成60度差异的其它方向模块的候补数据的点A10变换为点B10,点A11变换为点B11,点A12变换为点B12。
另一方面,在不是同一方向模块的候补数据时(S1701;否),判定作为候补数据的点Aij是否为与点Bpq相差60度的点Bp+1q同一方向模块的候补数据(S1703)。
当是相差60度的方向模块的候补数据时(S1703;是),将点Aij数据变换为点Bp+1q(S1704),进入下一步骤S1705。另一方面,当不是相差60度的方向模块的候补数据时(S1703;否),不进行数据变换,进入下一步骤1705。
例如,如图41所示,点A0m虽然是与点B02不同的方向模块的候补数据,但是与点B12同一方向模块的候补数据。因此,将作为方向模块的候补数据的点A0m数据变换为点B13。
这里,相差60度的方向模块的候补数据是例如,点A0m与点B12之间的距离,即点A0m与点A12之间的距离成为下述关系的情况。
点A0m与点A12之间的距离<模块的高度V
另外,模块的高度V由使用模块的宽度W的下式表示。
V=(2/31/2)*W
接着,就检测出的全部的方向模块的候补数据而言,判定是否进行了数据变换(S1705)。就检测出的全部的方向模块的候补数据而言,当进行了数据变换时(S1705;是),进入下一步骤S1706。另一方面,就检测出的全部的方向模块的候补数据而言,未进行数据变换时(S1705;否),重复步骤S1701至步骤S1704的处理,直至数据变换全部的候补数据。
最后,算出数据变换后的同一方向模块的候补数据的平均坐标,将算出的坐标确定为Rate数n中的方向模块的候补数据的坐标(S1706)。这里,作为平均坐标为就x-y坐标系而言的候补数据中的x坐标和y坐标的各自的单纯平均坐标值。另外,就极坐标而言,是半径为Rate数n时的角度平均值。
图42是表示Rate数n中的方向模块的方向模块的候补数据的确定方法的图。
如图42所示,当将作为检测出的同一方向模块的候补数据的点B10、点B11、点B12、点B13的平均坐标点作为点Cn1时,点Cn1成为Rate数n中的方向模块的候补数据。
下面更详细说明上述方向模块搜索处理中的确定方向模块的处理。
图18是方向模块搜索处理中的方向模块确定处理的流程图。
首先,算出基于Rate数n检测出的方向模块的候补数据的平均坐标,确定方向模块的中心点的位置(S1801)。
图43是表示确定方向模块的中心点的位置的图。
如图43所示,当将作为基于Rate数n检测出的方向模块的候补数据的点C3.55、0,点C3.5、0,点C3.45、0的平均坐标点作为点D0时,点D0成为方向模块的中心点的位置。
接着,算出连接确定的方向模块的中心点和探测器图形的中心点的直线与水平轴所成的角θ(S1802)。
然后,算出方向模块的宽度W(S1803)。
最后,为了检测出Maxicode符号的数据模块的位置,基于方向模块的位置来变换读取图像的图像信息的数据(S1804)。
图44是表示通过旋转的数据变换的图。图44(a)是表示数据变换工序的图,图44(b)是表示方向模块的排列序号的表。
如图44(a)所示,将方向模块序号变换为排列序号。方向模块序号为表示存在方向模块的区域的序号,排列序号依照图44(b)的表。
举一例子对上述的数据模块搜索步骤进行说明。参照图19、图45和图46来说明其详细内容。
图19是Maxicode符号的解码处理中的数据模块搜索处理的流程图。
首先,设定通过探测器图形的中心点、内侧方向模块的中心点和外侧方向模块的中心点的方向轴,算出方向轴上的数据模块的位置信息和图形信息(S1901)。
图45是表示方向轴上的模块的图。图45(a)是表示方向轴上的实模块和虚模块的图,图45(b)是表示方向轴上的数据模块的位置的图。
如图45(a)所示,设定通过探测器图形的中心点、内侧方向模块的中心点和外侧方向模块的中心点的方向轴,添加轴序号。另外,为了算出数据模块的位置,考虑在方向轴上存在于Maxicode符号中的模块(下面称为[实模块])和不存在于Maxicode符号中的模块(下面称为[虚模块])。
如图45(b)所示,对于轴序号0的方向轴上,考虑由10个实模块和8个虚模块所形成的模块组,算出各模块的中心点的位置。另外,对于轴序号1的方向轴上,考虑由11个实模块和7个虚模块所形成的模块组,对于轴序号2的方向轴上,考虑由11个实模块和6个虚模块所形成的模块组,对于轴序号3的方向轴上,考虑由9个实模块和8个虚模块所形成的模块组,对于轴序号4的方向轴上,考虑由11个实模块和6个虚模块所形成的模块组,对于轴序号5的方向轴上,考虑由11个实模块和7个虚模块所形成的模块组。这里,虽然轴序号1的方向轴上的实模块为12个,但比内侧方向模块更接近于探测器图形的中心的实模块是独自求出模块的中心点的位置,进行位变换。因此,对于轴序号1的方向轴,最好考虑由11个实模块和7个虚模块所形成的模块组。
接着,基于对应于算出的各模块的中心点的位置的像素数据,变换为由[黑]=位1或[白]=位0构成的位图形(S1902)。这里,虚模块不变换为位图形。
然后,算出存在于方向轴间的区域中的MaxiCode符号的数据模块的位置信息(S1903)。
图46是表示方向轴间的模块的图。图46(a)是表示方向轴间的实模块和虚模块的图,图46(b)是表示方向轴间的数据模块的位置的图。
如图46(a)所示,将由轴序号0和轴序号1形成的三角形区域作为假设符号区域0,将由轴序号1和轴序号2形成的三角形区域作为假设符号区域1,将由轴序号2和轴序号3形成的三角形区域作为假设符号区域2,将由轴序号3和轴序号4形成的三角形区域作为假设符号区域3,将由轴序号4和轴序号5形成的三角形区域作为假设符号区域4,将由轴序号5和轴序号0形成的三角形区域作为假设符号区域5。另外,对于假设符号区域i,MaxiCode符号的区域由实模块(实线六边形)构成,MaxiCode符号的区域以外由虚模块(虚线六边形)构成。
如图46(b)所示,用直线连接轴序号i的方向轴上的模块的中心点和轴序号i+1的方向轴上的模块的中心点,将连接的直线分割成(方向轴间的模块数量+1)间隔的点作为各模块的中心点。即,对于假设符号区域0,形成18条直线,当将方向轴上的内侧方向模块的中心点作为点A1和点A’1时,连接点A1和点A’1的直线被分割成6个,分割的点成为模块的中心点。另外,连接点Ak和点A’k的直线被分割成(k+5)个,分割的点成为模块的中心点。
然后,基于对应于算出的各模块的中心点的位置的像素数据,变换为由[黑]=位1或[白]=位0形成的位图形(S1904),结束数据模块搜索处理。另外,步骤S1904的位图形的变换仅对实模块执行。
下面,参照图20和图47来详细说明算出上述方向轴上的数据模块的位置信息和图形信息的处理。
图20是数据模块搜索处理中的方向轴上的数据模块位置算出处理的流程图。
首先,将内侧方向模块作为开始搜索的模块,向方向轴上的符号外侧方向搜索[黑]模块组(S2001)。即,基于存储在VRAM106的像素数据存储部210中的像素数据,将内侧方向模块的中心点作为开始点,搜索方向轴上的连续的[黑]的像素数据。这里,[黑]模块组为通过一个或连续的多个[黑]模块构成的模块组。
接着,基于搜索到的[黑]模块组来执行方向轴的角度修正(S2002)。由于符号的读取图像失真,图3的步骤S304搜索到的方向模块的位置信息不一定限制为方向模块的中心点的位置信息。因此,在基于方向模块的位置信息和探测器图形的中心点的位置信息算出的方向轴上,数据模块的中心点不一定存在。另外,即使方向模块的位置信息为方向模块的中心点的位置信息,对于图像失真大的符号的外侧,数据模块的中心点不限于存在于方向轴上。因此,基于方向模块的位置信息和探测器图形的中心点的位置信息算出的方向轴以通过方向模块和数据模块的中心点附近来进行轴的角度修正。
图47是表示方向轴的角度修正的图。如图47所示,通过在步骤S2001中修正方向轴的角度,通过模块的中心点附近。
接着,判定是否全部搜索到方向轴上的[黑]模块组(S2003)。即,判定是否执行了基于全部[黑]的模块组的方向轴的角度修正。未全部搜索方向轴上的[黑]模块组时(S2003;否),返回步骤S2001,重复步骤S2001和步骤S2002,直至全部搜索到方向轴i上的[黑]模块组。
另一方面,当全部搜索到方向轴上的[黑]模块组时(S2003;是),将执行了基于全部的[黑]模块组的方向轴的角度修正后的方向轴i确定为修正后的方向轴(S2004)。通过执行基于全部[黑]模块组的方向轴的角度修正,即使在修正图像失真大时,也能够以通过存在于符号外侧的数据模块的中心点附近来修正方向轴i。
接着,判定是否修正了六个方向的全部的方向轴(S2005)。在未修正六个方向的全部方向轴时(S2005;否),返回步骤S2001,重复步骤S2001至步骤S2004,直至修正了六个方向的全部方向轴。
另一方面,在修正了六个方向的全部方向轴时(S2005;是),修正存在于角度修正后的方向轴上的全部实模块的宽度(S2006),最后,修正角度修正后的方向轴上的虚模块的宽度(S2007),结束处理。
下面,参照图21、图24、图48、图49、图50、图51和图52来详细说明上述方向轴的角度修正处理。
图21是方向轴上的数据模块位置算出处理中的方向轴的角度修正处理的流程图。
首先,对于存在于方向轴i上的[黑]模块组,将离存在于模块组中的探测器图形最近的[黑]模块的第1修正中心点作为P0,算出点P0的位置信息(S2101)。这里,方向轴i为基于六个方向的方向模块使探测器图形的中心点指向中心的六个方向轴中的任意一个。方向轴的轴序号i向逆时针方向增加。但是,i=0-5、方向轴i为方向轴5时,方向轴i+1变为方向轴0。另外,算出模块的中心点的位置信息的处理由后述的图24来说明。
接着,将方向轴i与方向轴(i+1)之间的角度作为θi时,以点P0为中心,将方向轴i沿逆时针方向仅旋转θi的轴作为邻接预备轴i’,并且,搜索包含存在邻接预备轴i’上的点P0的[黑]模块的[黑]模块组(S2102)。
图49是表示方向轴i与邻接预备轴i’的关系的图。如图49所示,以点P0为中心,将方向轴i沿逆时针方向仅旋转θi的轴为邻接预备轴i’。
接着,基于搜索到的邻接预备轴i’上的[黑]模块组,再次将存在点P0的[黑]模块的第2修正中心点的候补作为点P1,算出点P1的位置信息(S2103)。
图50是表示作为模块的第2修正中心点的候补的点P1的位置信息的算出处理的图。如图50所示,将包含在[黑]模块组中的全部模块的邻接预备轴i’上的大小认为是相同的,算出点P1的位置信息。
接着,当方向轴(i-1)与方向轴i之间的角度为θi-1时,以点P0为中心,将方向轴i沿逆时针方向仅旋转θi-1的轴作为邻接预备轴i”,并且,搜索包含存在邻接预备轴i”上的点P0的[黑]模块的[黑]模块组(S1804)。这里,当方向轴i为方向轴0时,方向轴(i-1)变为方向轴5。
接着,基于搜索到的邻接预备轴i”上的[黑]模块组,再次将存在点P0的[黑]模块的第2修正中心点的候补作为点P2,算出点P2的位置信息(S2105)。
图51是表示作为模块的第2修正中心点的候补的点P2的位置信息的算出处理的图。如图51所示,将包含在[黑]模块组中的全部模块的邻接预备轴i”上的大小认为是相同的,算出点P2的位置信息。
然后,比较邻接预备轴i’的角度修正与邻接预备轴i”的角度修正,检测出修正误差小的一方(S2106)。当邻接预备轴i’的角度修正的误差小时(S2106;i’),当将存在点P0的[黑]模块的第2修正中心点作为点P3时,将点P1作为点P3(S2107)。另一方面,当邻接预备轴i”的角度修正的误差小时(S2106;i”),当将存在点P0的[黑]模块的第2修正中心点作为点P3时,将点P2作为点P3(S2108)。例如,修正误差的大小通过包含在方向轴上的[黑]模块组的全部模块的数量来判定。即,因为将全部的模块的大小认为是相同的,所以模块的数量越少,误差变得越小。如图50和图51所示,因为邻接预备轴i’上的模块数量比邻接预备轴i”上的模块数量多,所以将点P2作为第2修正中心点的点P3。
然后,当将通过点P3和探测器图形的中心点的轴作为方向预备轴j时,搜索包含存在方向预备轴j上的点P3的[黑]模块的[黑]模块组(S2109),算出作为存在点P3的[黑]模块的中心点的点P的位置信息(S2110)。
图52是表示作为模块中心点的点P的位置信息的算出处理的图。如图52所示,将包含于存在点P3的[黑]模块的[黑]模块组中的全部模块的方向预备轴j上的大小认为是相同的,算出作为模块的中心点的点P的位置信息。
接着,将通过作为模块的中心点的点P和探测器图形的中心点的方向轴k作为角度修正方向轴i的方向轴,算出方向轴k与水平方向轴之间的角度αi(S2111)。如图52所示,通过点P和探测器图形的中心点的直线,即角度修正方向轴i后的方向轴成为方向轴k。这里,方向轴k与方向预备轴j在同一直线上。
最后,算出构成[黑]模块组的方向轴k上的[黑]模块的宽度(S2112),结束处理。
图24是方向轴上的模块的中心点的位置信息算出处理的流程图。
首先,基于存储在VRAM106中的像素数据存储部210中的像素数据,测定横切由一个或多个连续模块构成的模块组的边界的方向轴i的长度L(S2401)。
图48是表示算出模块的中心点的位置信息的处理的图。图48(a)是表示方向轴上的模块组的区域L的图。图48(b)是表示构成模块组的模块的中心点的位置信息的图。
如图48(a)所示,基于像素数据的[黑]和[白]的交界点来测定横切由[黑]模块构成的模块组的交界的方向轴i的长度L。这里,交界点为点A和点B。因此,L=AB。
接着,基于由算出的长度L和图3的方向模块搜索处理(S304)算出的模块的宽度W,算出值n’(=L/W),基于将值n’四舍五入后的值或交界值表来算出构成模块组的模块的个数n(S2402)。
对于图48(a),n=2,构成模块组的[黑]模块的个数为2个。
最后,基于构成模块组的模块的顺序r,算出模块的中心点的位置信息(S2403)。这里,对于方向轴i上,模块组中设探测器图形最边上的模块的序号为r=1,离探测器图形最远的模块的序号为r=n。另外,构成模块组的模块全部为相同大小,假设全部的模块的中心点通过方向轴i,算出模块的中心点的位置信息。即,将长度L分成(2r-1)∶(2n-2r+1)的点作为第r个模块的中心点。如图48(b)所示,在将r=1时的模块的中心点作为点P0时,点P0为将长度L(线段AB)分成1∶3的点。
图22是方向轴上的数据模块位置算出处理中的修正方向轴上的实模块的宽度的处理的流程图。
首先,将内侧方向模块作为开始搜索的模块,在方向轴i上的朝符号的外侧方向搜索由[黑]实模块构成的模块组(S2201)。
接着,算出构成搜索的模块组的全部实模块的中心点的位置信息(S2202),算出实模块的宽度(S2203)。
然后,对于方向轴i上,判定在比符号的最内侧的[黑]的实模块更内侧是否存在[白]的实模块(S2204)。当存在[白]的实模块时(S2204;是),将符号最内侧的[黑]的实模块的宽度作为[白]的实模块的宽度(S2205)。
然后,对于方向轴i上,将存在于搜索的同一颜色的模块组的符号最外侧的模块作为开始搜索的模块,在方向轴i上朝符号的外侧方向搜索与由上次搜索到的模块组不同颜色的实模块构成的模块组(S2206)。
然后,算出构成搜索到的模块组的全部实模块的中心点的位置信息(S2207),算出实模块的宽度(S2208)。
接着,对于方向轴i上,判定是否搜索到包含存在于符号最外侧的[黑]的实模块的模块组(S2209)。当未搜索到时(S2209;否),返回步骤S2201,重复步骤S2206-步骤S2208,直到搜索到包含存在于符号最外侧的[黑]的实模块的模块组。
另一方面,当搜索到时(S2209;是),就六个方向的全部方向轴而言,判定是否算出了实模块的中心点的位置信息和实模块的宽度(S2210)。当对全部方向轴执行了算出处理时(S2210;是),结束处理。另一方面,当未对全部方向轴执行算出处理时(S2210;否),返回步骤S2201,重复步骤S2201-步骤S2209,直到对全部方向轴执行了算出处理。
图23是方向轴上的数据模块位置算出处理中的修正方向轴上的虚模块的宽度的处理的流程图。
首先,从六个方向的方向轴中检测出作为失真最小的方向轴的基准方向轴m(S2301)。例如,基于通过如图22所示的修正实模块的宽度算出的、存在于符号最外侧的[黑]的实模块的宽度Wi和通过图3的方向模块搜索处理(S304)算出的实模块的宽度WOi的比率Ri,用下式表示方向轴失真的大小Ei。这里,i为轴序号。
Ei=|Ri-1|=|Wi/WOi-1|
因此,对于六个方向的方向轴,算出失真大小Ei,失真最小的方向轴成为基准方向轴m。
接着,假设基准方向轴m上的未算出的实模块的宽度和虚模块的宽度与存在于符号最外侧的[黑]的实模块的宽度相同,算出基准方向轴m上的未算出的全部实模块的中心点和虚模块的中心点的位置信息(S2302)。另外,将基准方向轴m作为方向轴i,基于方向轴i上的实模块和虚模块的中心点的位置信息,考虑方向轴(i+1)上的模块的中心点的位置信息。
然后,基于探测器图形的中心点的位置信息、方向轴i上的模块的中心点的位置信息和存在于方向轴(i+1)上的符号最外侧的[黑]的实模块的中心点的位置信息,算出从存在于方向轴(i+1)上的符号的最外侧的[黑]的实模块的中心点到存在于方向轴(i+1)上的假设符号区域的最外侧的虚模块的中心点的距离L(S2303)。这里,假设符号区域为图46中说明的区域。
接着,基于算出的距离L和在从存在于方向轴(i+1)上的符号的最外侧的[黑]的实模块到存在于方向轴(i+1)上的假设符号区域的最外侧的虚模块中存在的模块的个数,算出方向轴(i+1)上的未算出的全部实模块中心点和虚模块的中心点的位置信息(S2304)。
图53是表示算出距离L和未算出的模块的中心点的位置信息的处理的图。
如图53所示,将探测器图形的中心点作为点O,将存在于方向轴(i+1)上的符号的最外侧的[黑]的实模块的中心点作为点A’,将存在于方向轴(i+1)上的假设符号区域的最外侧的虚模块的中心点作为点B’,将存在于方向轴i上的假设符号区域的最外侧的虚模块的中心点作为点B。另外,从方向轴i上的内侧方向模块的个数与从方向轴(i+1)上的内侧方向模块到存在于符号最外侧的[黑]的实模块的个数相同,将方向轴i上的模块的中心点作为点A。另外,由下式算出从点A’至点B’的距离。
L=A’B’=AB·(OA’/OA)
并且,假设从存在点A’的模块到存在点B’的模块的(n+1)个模块全部相同,算出模块的中心点的位置信息。
最后,就六个方向的全部方向轴而言,判定是否算出了未算出的全部实模块的中心点和虚模块的中心点的位置信息(S2305)。当对全部方向轴执行了算出处理时(S2305;是),结束处理。另一方面,当未对全部方向轴执行算出处理时(S2305;否),返回步骤S2303,重复步骤S2303和步骤S2304,直到对所有方向轴执行了算出处理。
下面,对上述的数据字符变换步骤举一例子进行详细说明。
图25是MaxiCode符号的解码处理中的数据字符变换处理的流程图。
数据字符变换由将数据模块变换为[黑]=1或[白]=0的位图形、将由变换后的位图形形成的位数据变换为码字、将码字变换为数据字符构成。
图54是表示码字的图。
如图54所示,码字为表示数据1文字的位列,由六个数据模块形成的六位数据和两位的位0的数据构成。因此,码字变换算出位变换后的位数据对应于第i个码字的第j个位数据时的i和j。
首先,将MaxiCode符号中的数据模块的位置的位图形作为位数据后,存储在二维位排列表中(S2501)。这里,用BT(n,m)表示二维位排列表。另外,n为n=0-29的整数,m为m=0-32的整数。
图55是表示二维位排列表的图。图55(a)是表示MaxiCode符号的模块数据的位置与二维位排列表的关系的图。图55(b)是表示二维位排列表的存储数据的图。
如图55所示,例如,存在于从MaxiCode符号的右边第三列、从上数第三行中的模块数据的位数据储存在二维位排列表的BT(27,2)中。
接着,基于码字二维排列表的基本数据,将存储在二维位排列表中的位数据作为码字变换中的第i个码字的第j个位数据(S2502)。
图56是表示码字二维排列表的图。这里,用CT(n,m)表示码字二维排列表。另外,n为n=0-29的整数,m为m=0-32的整数。
码字二维排列表的CT(n,m)与码字变换中的i和j由下述关系式表示。
i=[CT(n,m)/256]
j=CT(n,m)-i*256
如图56所示,例如,码字二维排列表的CT(27,2)为8452。因此,i=[8452/256]=33,j=8452-33*256=4,成为第33个码字的第4个位数据。并且,通过将由BT(n,m)表示的位值1或0仅位移(5-j)位后的值代入第i个码字中来进行软件处理。
图57是表示存储于二维位排列表中的位数据和码字二维排列表的基本数据关系的图。
如图57所示,二维位排列表BT(n,m)的位数据变为由码字二维排列表CT(n,m)算出的第i个码字的第j个位数据。例如,BT(27,2)=0变为第33个码字的第4个位数据。
然后,判定是否码字变换了全部数据模块(S2503)。当码字变换了全部数据模块时(S2503;是),进入下一步骤S2504。另一方面,当未码字变换全部数据模块时(S2503;否),重复步骤S2501和步骤S2502,直到码字变换了全部的数据模块。
接着,通过纠错处理把由变换操作和数据破损等丢失信息的位排列恢复为正确的信息(S2504)。纠错处理也有不能通过丢失信息的位排列的信息量来恢复为正确的信息的情况。
因此,通过纠错处理,判定是否能够恢复为正确的信息(S2505)。当通过纠错处理能够恢复为正确的信息时(S2505;是),基于变形字符设置表,将全部码字变换为数据字符(S2506),结束解码处理。图58是表示部分变形字符设置表的图。
另一方面,当通过纠错处理不能够恢复为正确的信息时(S2505;否),执行作为不能识别MaxiCode符号的错误处理(S2507),结束解码处理。
另外,本发明的信息记录媒体能够记录具有上述二维代码读取方法工序的程序。
另外,本发明的信息记录媒体还可以是激光盘、软盘、硬盘、磁光盘、数字多能盘、磁带或存储卡。
通过上述说明,本发明可达到以下的效果。
对于MaxiCode符号的读取图像,通过从横切图像的扫描线上检测出的图形中检索与横切探测器图形的中心点的扫描线上的规定基准图形一致的检测图形,能够简单而快捷地搜索探测器图形的中心点。因此,能够简单地进行二维条型码的解码。
另外,对于读取二维代码的符号的读取图像的方向模块的搜索范围的像素数据,检测出与颜色模板图形一致的像素数据,基于检测出的像素数据,通过搜索全部方向模块的方向模块搜索方法,能够缩短作为二维代码的符号的MaxiCode符号的读取图像的解码处理的处理时间。
并且,将实际的MaxiCode符号的探测器图形与从斜向读取时的MaxiCode符号的读取图像的探测器图形之间的关系式近似为圆与椭圆的关系式,通过基于该关系式进行读取图像的图像修正,不仅对从正面读取时的MaxiCode符号读取图像、而且对从斜向读取时的MaxiCode符号读取图像,也能解码读取图像。
另外,对于MaxiCode符号读取图像,本发明的失真修正适用于平面的失真,基于存在于通过探测器图形的中心点和方向模块的方向轴上的[黑]模块组的区域,使通过方向模块和数据模块的中心点来修正轴的角度,能够修正存在失真的读取图像的方向轴。
另外,基于修正后的方向轴上的同一颜色的模块组的区域,修正存在失真的读取图像的方向轴上的模块的位置信息和图形信息,基于修正后的方向轴上的模块的位置信息和图形信息,能够修正方向轴间的数据模块的位置。
并且,通过由上述读取图像的修正来检测模块的位置信息和图形信息,能够缩短作为二维代码的符号的MaxiCode符号的读取图像的解码处理的处理时间。
另外,通过将检测出的数据模块的位数据存储于二维位排列表中,基于码字二维排列表来进行码字变换,并且,变换为数据字符的数据字符变换方法,能够缩短作为二维代码的符号的MaxiCode符号的读取图像的解码处理的处理时间。
另外,将记录了上述二维代码读取方法的程序的信息记录媒体作为软件商品,既能容易散发也能容易销售。
另外,能够提供具有执行上述二维代码读取方法的装置的二维代码读取装置。

Claims (65)

1.一种二维代码读取方法,其特征在于包括数据模块搜索步骤,根据二维代码符号的读取图像的探测器图形的位置信息、方向模块位置信息和所述方向模块的图形信息,通过计算出通过所述探测器图形的中心点与所述方向模块的方向轴来计算出构成二维代码符号的全部模块的位置信息和图形信息。
2.根据权利要求1的二维代码读取方法,其特征在于上述数据模块搜索步骤包括:(a)方向轴上模块位置计算步骤,根据所述探测器图形的位置信息和所述方向模块的位置信息以及图形信息,计算出构成存在于所述方向轴上的模块组的多个模块的位置信息和图形信息;(b)方向轴上数据模块位图形检测步骤,检出由所述方向轴上模块位置计算步骤计算出的所述方向轴上存在的多个所述数据模块的位图形;(c)方向轴之间模块位置计算步骤,根据构成由所述方向轴上模块位置计算步骤计算出的所述方向轴上的模块组的多个模块的位置信息与图形信息,计算出构成由相邻的方向轴构成的方向轴之间的模块组的多个模块位置信息;(d)方向轴之间数据模块位图形检测步骤,检出由所述方向轴之间模块位置计算步骤计算出的所述方向轴之间存在的多个所述数据模块的位图形。
3.根据权利要求2的二维代码读取方法,其特征在于上述方向轴上模块位置计算步骤包括:(a)方向轴角度修正步骤,修正所述方向轴的角度,以便通过构成所述方向轴上的模块组的多个模块的中心点;(b)方向轴上实模块宽度修正步骤,计算出由所述方向轴角度修正步骤修正的所述方向轴上存在的多个实模块的位置信息,根据计算出的位置信息修正作为多个所述实模块的图形信息的模块宽度;(c)方向轴上虚模块宽度修正步骤,根据由所述方向轴上实模块宽度修正步骤计算出的所述实模块的位置信息和图形信息,计算出存在于所述方向轴上的多个虚模块的位置信息,根据计算出的位置信息,修正作为多个所述虚模块的图形信息的模块宽度。
4.根据权利要求3的二维代码读取方法,其特征在于上述方向轴角度修正步骤包括:(a)第一修正中心点计算步骤,根据由所述方向轴上存在的1个或连续的多个“黑”模块构成的“黑”模块组的区域,计算出所述“黑”模块组中最靠近所述探测器图形的“黑”模块的第一修正中心点;(b)第二修正中心点计算步骤,根据包括与通过所述第一修正中心点计算步骤计算出的所述“黑”模块的第一修正中心点的所述方向轴相邻的方向轴平行的相邻预备轴上存在的所述“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出所述“黑”模块的第二修正中心点;(c)中心点算出步骤,根据由所述第二修正中心点计算步骤计算出的所述“黑”模块的第二修正中心点以及包括通过所述探测器图形的中心点的方向预备轴上存在的所述“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出所述“黑”模块的中心点;(d)方向轴修正角度计算步骤,算出通过所述中心点算出步骤计算出的所述“黑”模块的中心点和所述探测器图形的中心点的方向轴的修正角度。
5.根据权利要求3的二维代码读取方法,其特征在于上述方向轴上实模块宽度修正步骤包括:根据所述方向轴上存在的1个或连续的多个同色实模块构成的同色实模块组区域,计算出构成所述同色实模块组的实模块中心点和模块宽度的步骤。
6.根据权利要求3的二维代码读取方法,其特征在于上述方向轴上虚模块宽度修正步骤包括:(a)基准方向轴检测步骤,检出作为全部方向轴上修正量最小的方向轴的基准方向轴;(b)根据所述基准方向轴检测步骤检出的所述基准方向轴上存在的离开所述探测器图形最远的“黑”模块的图形信息,计算出所述方向轴上存在的多个虚模块的中心点和模块宽度的步骤;(c)根据所述基准方向轴上所述实模块和所述虚模块的位置信息,计算出所述基准方向轴以外的所述方向轴上存在的多个虚模块的中心点和模块宽度的步骤。
7.一种二维代码读取方法,其特征在于包括:探测器图形搜索步骤,搜索二维代码符号读取图像中的规定扫描方向的检出图形与规定的基准图形一致的扫描线,根据搜索到的多个所述扫描线,检出所述二维代码符号的读取图像中的探测器图形,取得所述探测器图形的位置信息和图形信息。
8.根据权利要求7的二维代码读取方法,其特征在于上述探测器图形搜索步骤包括:(a)对所述二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的所述第一检出图形和预先存储的所述规定基准图形的步骤;(d)通过该比较步骤,在所述第一检出图形和所述规定的基准图形一致时,以该扫描线作为第一中心线的步骤;(e)对于所述探测器图形沿着与所述第一扫描方向不同的第二扫描方向扫描的步骤;(f)通过该第二扫描步骤得到第二检出图形的步骤;(g)比较该取得步骤得到的所述第二检出图形和预先存储的所述规定基准图形的步骤;(h)通过该比较步骤,在所述第二检出图形和所述规定的基准图形一致时,以该扫描线作为第二中心线的步骤;(i)以所述第一中心线和所述第二中心线的交点作为所述探测器图形的中心点的步骤。
9.根据权利要求7的二维代码读取方法,其特征在于上述探测器图形搜索步骤包括:(a)对所述二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的所述第一检出图形和预先存储的所述规定基准图形的步骤;(d)通过该比较步骤,在所述第一检出图形和所述规定的基准图形一致时,以该扫描线作为第一中心线的步骤;(e)以该第一中心线与所述探测器图形的外侧部件的两个交点的中点作为第一中心点的步骤;(f)平行于所述第一中心线移动之后、反复所述步骤(b)~(e),求出多个第一中心点的步骤;(g)计算所述多个第一中心点的对与所述第一扫描方向不同的第二扫描方向的分布数的步骤;(h)以与该分布数的所述第二扫描方向相对的最大场所作为与所述第二扫描方向相对的所述多个第一中心点存在最多的第一线段的步骤;(i)在通过与所述第二扫描方向相对的所述多个第一中心点存在最多的线的所述第二扫描方向上扫描的步骤;(j)通过第二扫描步骤得到第二检出图形的步骤;(k)比较该取得步骤得到的所述第二检出图形和预先存储的所述规定基准图形的步骤;(1)通过该比较步骤,在所述第二检出图形和所述规定的基准图形一致时,以该扫描线作为第二中心线的步骤;(m)以该第二中心线与所述探测器图形的外侧部件的两个交点的中点作为第二中心点的步骤;(n)平行于所述第二中心线移动之后、反复所述步骤(j)~(m),求出多个第二中心点的步骤;(o)计算所述多个第二中心点的与所述第一扫描方向相对的分布数的步骤;(p)以与该分布数的所述第一扫描方向相对的最大场所作为与所述第一扫描方向相对的所述多个第二中心点最多存在的第二线段的步骤;(q)以所述第一线段和所述第二线段的交点作为所述探测器图形的中心点的步骤。
10.根据权利要求7的二维代码读取方法,其特征在于上述探测器图形搜索步骤包括:(a)对所述二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的所述第一检出图形和预先存储的所述规定基准图形的步骤;(d)通过该比较步骤,在所述第一检出图形和所述规定的基准图形一致时,以该扫描线和构成探测器图形的最外部的部件的两个交点的中点作为第一中心点的步骤;(e)平行于所述第一扫描方向移动之后进行扫描、反复所述步骤(b)~(d),得到多个所述第一中心点的步骤;(f)对所述探测器图形在与所述第一扫描方向不同的第二扫描方向上扫描的步骤;(g)通过第二扫描步骤得到第二检出图形的步骤;(h)比较该取得步骤得到的所述第二检出图形和预先存储的所述规定基准图形的步骤;(i)通过该比较步骤,在所述第二检出图形和所述规定的基准图形一致时,以该扫描线和构成所述探测器图形的最外部的部件的两个交点的中点作为第二中心点的步骤;(j)对于所述第二扫描方向,平行移动之后进行扫描、反复所述步骤(g)~(i),求出多个所述第二中心点的步骤;(k)以连接多个所述第一中心点的线与连接多个所述第二中心点的线的交点作为所述探测器图形的中心点的步骤。
11.根据权利要求7的二维代码读取方法,其特征在于上述探测器图形搜索步骤包括:(a)对所述二维代码符号的读取图像在第一扫描方向上扫描的步骤;(b)由该第一扫描步骤取得第一检出图形的步骤;(c)比较该取得步骤得到的所述第一检出图形和预先存储的所述规定基准图形的步骤;(d)通过该比较步骤,在所述第一检出图形和所述规定的基准图形一致时,以该扫描线作为第一中心线的步骤;(e)以该第一中心线与所述探测器图形的外侧部件的两个交点的中点作为第一中心点的步骤;(f)沿着所述第一中心点的与所述第一扫描方向不同的第二方向扫描的步骤;(g)通过第二扫描步骤得到第二检出图形的步骤;(h)比较该取得步骤得到的所述第二检出图形和预先存储的所述规定基准图形的步骤;(i)通过该比较步骤,在所述第二检出图形和所述规定的基准图形一致时,以该扫描线作为第二中心线的步骤;(i)以该第二中心线与所述探测器图形的外侧部件的两个交点的中点作为第二中心点的步骤;(k)从所述第二中心线和所述探测器图形的外侧部件的两个交点的中点计算出所述第一中心线与所述探测器图形的内侧部件的两个交点以及所述第二中心线与所述探测器图形的内侧部件的两个交点的步骤;(1)以从所述第一中心线与所述探测器图形的内侧部件的两个交点以及所述第二中心线与所述探测器图形的内侧部件的两个交点确定的重心作为探测器图形的中心点的步骤。
12.根据权利要求8到11的任何一个的二维代码读取方法,其特征在于所述第二扫描方向与所述第一扫描方向垂直。
13.根据权利要求8到11的任何一个的二维代码读取方法,其特征在于所述探测器图形由黑色圆和白色圆的多个同心圆构成,所述规定基准图形和所述第一检出图形以及/或第二检出图形的比较是所述同心圆的黑色圆之间的端部间距与白色圆之间的端部间距的比较。
14.根据权利要求7的二维代码读取方法,其特征在于上述探测器图形搜索步骤包括:(a)比较在第一扫描方向上扫描得到的所述探测器图形的检出黑白图形和规定的基准黑白图形的第一步骤;(b)比较在第二扫描方向上扫描得到的所述探测器图形的检出黑白图形和所述规定的基准黑白图形的第二步骤;(c)由所述第一和所述第二步骤求出所述探测器图形的中心座标的第三步骤。
15.一种二维代码读取方法,其特征在于包括图像修正步骤,计算出表示二维代码符号与所述二维代码符号的读取图像之间的相关关系的关系式,根据计算出的所述关系式修正所述二维代码符号的读取图像。
16.根据权利要求15的二维代码读取方法,其特征在于在上述图像修正步骤中,通过表示所述二维代码符号与所述二维代码符号的读取图像之间的相关关系的所述关系式,根据规定修正精度,生成相关关系的关系表,通过生成的所述关系表修正读取图像。
17.根据权利要求15或16的二维代码读取方法,其特征在于在上述图像修正步骤中,所述二维代码符号存在于规定平面上。
18.根据权利要求15到17的任何一个的二维代码读取方法,其特征在于在上述图像修正步骤中,所述读取图像是倾斜读取时的读取图像。
19.根据权利要求18的二维代码读取方法,其特征在于在上述图像修正步骤中,表示所述二维代码符号与所述二维代码符号的读取图像之间的相关关系的所述关系式由倾斜角修正式构成,通过计算出所述倾斜角修正式修正读取图像。
20.根据权利要求19的二维代码读取方法,其特征在于在所述读取图像中,圆是构成所述二维代码符号的要素之一或构成所述二维代码的符号的要素中心点存在于规定圆的圆周上时,将变形了所述圆的所述读取图像上的图形近似为椭圆。
21.根据权利要求20的二维代码读取方法,其特征在于通过上述椭圆的所述倾斜角修正式,根据表示修正精度的规定修正分割角,生成倾斜角修正表。
22.根据权利要求21的二维代码读取方法,其特征在于把在所述修正分割角上相加规定的偏斜角的角度的所述倾斜角修正式的值追加到所述倾斜角修正表。
23.一种二维代码读取方法,其特征在于包括:方向模块搜索步骤,在二维代码符号读取图像中,搜索位于离开规定的点规定的距离处的、并且以规定的角度间隔配置的像素数据组的“黑”或“白”所构成的颜色图形与规定颜色模板图形一致的多个像素数据组,根据搜索到的多个所述像素数据组,检出构成所述二维代码符号的读取图像中的方向模块组的多个方向模块,得到所述多个方向模块的位置信息和图形信息。
24.根据权利要求23的二维代码读取方法,其特征在于上述方向模块搜索步骤中,所述规定颜色的模板图形由第一颜色模板图形、第二颜色模板图形和第三颜色模板图形构成。
25.根据权利要求23或24的二维代码读取方法,其特征在于上述方向模块搜索步骤中,所述规定的距离因所述第一颜色模板图形、所述第二颜色模板图形和所述第三颜色模板图形而不同。
26.根据权利要求25的二维代码读取方法,其特征在于上述规定的距离是向模块宽度上乘以规定值后的值。
27.根据权利要求26的二维代码读取方法,其特征在于上述模块宽度根据所述二维代码符号读取图像的探测器图形的图形信息和作为规定范围内存在的规定间隔的值的Rate数算出。
28.根据权利要求27的二维代码读取方法,其特征在于上述方向模块搜索步骤包括以根据所述规定距离搜索的多个所述像素数据组作为所述方向模块的中心点的多个相同距离候补数据,根据多个所述相同距离候补数据计算出所述规定距离上的所述方向模块的中心点的一个候补数据的步骤;以及从根据所述Rate数算出的多个所述规定距离上的方向模块的中心点的候补数据算出方向模块的中心点位置的步骤。
29.根据权利要求23或28的二维代码读取方法,其特征在于上述方向模块搜索步骤包括变换二维代码符号的读取图像的位置信息,以使得规定的所述方向模块的中心点位置变为规定位置的步骤。
30.一种二维代码读取方法,其特征在于包括数据字符变换步骤,在二维代码符号的读取图像中,根据规定码字变换表,通过把构成数据模块组的数据模块的位置对应添加到规定的码字和规定的所述码字上的规定位数据,把数据模块的位数据变换为所述码字,把变换后的所述码字变换为规定的数据字符。
31.根据权利要求30的二维代码读取方法,其特征在于在上述数据字符变换步骤中,根据以作为二维排列的BT(n,m)作为要素的二维位排列表指定所述数据模块的位置。
32.根据权利要求30或31的二维代码读取方法,其特征在于在上述数据字符变换步骤中,所述规定码字变换表是以规定所述码字作为第i个码字、把规定所述码字中的规定所述位数据作为第i个码字的第j个位数据时,以作为满足下面的关系式的值的CT(n,m)为要素的码字二维排列表:
i=[CT(n,m)/256]
j=CT(n,m)-i*256。
33.根据权利要求1到32的任何一项的二维代码读取方法,其特征在于所述二维代码符号通过白黑交替的单元构成数据信息。
34.根据权利要求1到32的任何一项的二维代码读取方法,其特征在于所述二维代码符号是MaxiCode符号。
35.一种二维代码读取装置,其特征在于包括:数据模块搜索部,根据二维代码符号的读取图像的探测器图形的位置信息、方向模块位置信息和所述方向模块的图形信息,通过计算出通过所述探测器图形的中心点与所述方向模块的方向轴来计算出构成所述二维代码符号的全部模块的位置信息和图形信息。
36.根据权利要求35的二维代码读取装置,其特征在于上述数据模块搜索部包括:(a)方向轴上模块位置计算部,根据所述探测器图形的位置信息和所述方向模块的位置信息以及图形信息,计算出构成存在于所述方向轴上的模块组的多个模块的位置信息和图形信息;(b)方向轴上数据模块位图形检测部,检出由所述方向轴上模块位置计算部计算出的方向轴上存在的多个所述数据模块的位图形;(c)方向轴之间模块位置计算部,根据构成由所述方向轴上模块位置计算部计算出的所述方向轴上的模块组的多个模块的位置信息与图形信息,计算出构成由相邻的所述方向轴构成的方向轴之间的模块组的多个模块位置信息;(d)方向轴之间数据模块位图形检测部,检出由所述方向轴之间模块位置计算部计算出的所述方向轴之间存在的多个所述数据模块的位图形。
37.根据权利要求36的二维代码读取装置,其特征在于上述方向轴上模块位置计算部包括:(a)方向轴角度修正部,修正所述方向轴的角度,以便通过构成所述方向轴上的模块组的多个模块的中心点;(b)方向轴上实模块宽度修正部,计算出由所述方向轴角度修正部修正的所述方向轴上存在的多个实模块的位置信息,根据计算出的位置信息修正作为多个所述实模块的图形信息的模块宽度;(c)方向轴上虚模块宽度修正部,根据由所述方向轴上实模块宽度修正部计算出的所述实模块的位置信息和图形信息,计算出存在于所述方向轴上的多个虚模块的位置信息,根据计算出的位置信息,修正作为多个所述虚模块的图形信息的模块宽度。
38.根据权利要求37的二维代码读取装置,其特征在于上述方向轴角度修正部包括:(a)第一修正中心点计算部,根据由所述方向轴上存在的1个或连续的多个“黑”模块构成的“黑”模块组的区域,计算出所述“黑”模块组中最靠近所述探测器图形的“黑”模块的第一修正中心点;(b)第二修正中心点计算部,根据包括与通过所述第一修正中心点计算部计算出的所述“黑”模块的所述第一修正中心点的所述方向轴相邻的方向轴平行的相邻预备轴上存在的所述“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出所述“黑”模块的第二修正中心点;(c)中心点计算部,根据由所述第二修正中心点计算部计算出的所述“黑”模块的第二修正中心点以及包括通过所述探测器图形的中心点的方向预备轴上存在的所述“黑”模块的1个或连续的多个“黑”模块所构成的“黑”模块组的区域,计算出所述“黑”模块的中心点;(d)方向轴修正角度计算部,算出通过所述中心点计算部计算出的所述“黑”模块的中心点和所述探测器图形的中心点的方向轴的修正角度。
39.根据权利要求37的二维代码读取装置,其特征在于上述方向轴上实模块宽度修正部包括计算部,根据所述方向轴上存在的1个或连续的多个同色实模块构成的同色实模块组区域,计算出构成所述同色实模块组的实模块中心点和模块宽度。
40.根据权利要求37的二维代码读取装置,其特征在于上述方向轴上虚模块宽度修正部包括:(a)基准方向轴检测部,检出作为全部方向轴上修正量最小的方向轴的基准方向轴;(b)第一计算部,根据所述基准方向轴检测部检出的所述基准方向轴上存在的离开所述探测器图形最远的“黑”模块的图形信息,计算出所述方向轴上存在的多个虚模块的中心点和模块宽度;(c)第二计算部,根据所述基准方向轴上所述实模块和所述虚模块的位置信息,计算出所述基准方向轴以外的所述方向轴上存在的多个虚模块的中心点和模块宽度。
41.一种二维代码读取装置,其特征在于包括探测器图形搜索部,搜索二维代码符号读取图像中的规定扫描方向的检出图形与规定的基准图形一致的扫描线,根据搜索到的多个所述扫描线,检出所述二维代码符号的读取图像中的探测器图形,取得所述探测器图形的位置信息和图形信息。
42.根据权利要求41的二维代码读取装置,其特征在于上述探测器图形搜索部包括:(a)对所述探测器图形在多个方向上扫描的扫描部;(b)通过在多个方向上扫描该扫描部取得多个图形的获取部;(c)存储规定的模板的存储部;(d)分别比较所述多个图形和所述存储部中存储的规定模板的比较部;(e)通过所述比较部,在所述图形和所述模板一致时,从通过所述扫描部的扫描线中至少确定两个中心线、通过该两个中心线确定所述探测器图形的中心座标的确定部。
43.根据权利要求41的二维代码读取装置,其特征在于上述探测器图形搜索部包括:(a)存储事先确定了黑白图形的各自的长度的模板的存储部;(b)在第一和第二方向上扫描探测器图形得到黑白图形的扫描部;(c)将通过该扫描部扫描得到的探测器图形的黑白图形与所述存储部中存储的所述模板相比的比较部;(d)确定部,在所述第一扫描方向上扫描得到的黑白图形和所述模板的黑白图形一致时,由所述比较部确定所述扫描部扫描的第一扫描线为所述探测器图形的第一中心线,在所述第二方向上扫描得到的黑白图形和所述模板的黑白图形一致时,所述比较部确定所述扫描部扫描的第二扫描线为所述探测器图形的第二中心线,把所述第一中心线和所述第二中心线的交点确定为探测器图形的中心点。
44.一种二维代码读取装置,其特征在于包括图像修正部,计算出表示二维代码符号与所述二维代码符号的读取图像之间的相关关系的关系式,根据计算出的所述关系式修正所述二维代码符号的读取图像。
45.根据权利要求44的二维代码读取装置,其特征在于在上述图像修正部中,通过表示所述二维代码符号与所述二维代码符号的读取图像之间的相关关系的所述关系式,根据规定修正精度,生成相关关系的关系表,通过生成的所述关系表修正读取图像。
46.根据权利要求44或45的二维代码读取装置,其特征在于在上述图像修正部中,所述二维代码符号存在于规定平面上。
47.根据权利要求44到46的任何一项的二维代码读取装置,其特征在于在上述图像修正部中,所述读取图像是倾斜读取时的读取图像。
48.根据权利要求47的二维代码读取装置,其特征在于在上述图像修正部中,表示所述二维代码符号与所述二维代码符号的读取图像之间的相关关系的所述关系式由倾斜角修正式构成,通过计算出所述倾斜角修正式修正读取图像。
49.根据权利要求48的二维代码读取装置,其特征在于在所述读取图像中,圆为构成所述二维代码符号的要素之一或构成所述二维代码符号的要素中心存在于规定圆的圆周上时,将变形了所述圆的所述读取图像上的图形近似为椭圆。
50.根据权利要求49的二维代码读取装置,其特征在于通过上述椭圆的倾斜角修正式,根据表示修正精度的规定修正分割角,生成倾斜角修正表。
51.根据权利要求50的二维代码读取装置,其特征在于把在所述修正分割角上相加规定的偏斜角的角度的所述倾斜角修正式的值追加到所述倾斜角修正表。
52.一种二维代码读取装置,其特征在于包括方向模块搜索部,在二维代码符号读取图像中,搜索位于离开规定的点规定的距离处的并且用规定的角度间隔配置的像素数据组的“黑”或“白”所构成的颜色图形与规定颜色模板图形一致的多个像素数据组,根据搜索到的多个所述像素数据组,检出构成所述二维代码符号的读取图像中的方向模块组的多个方向模块,得到所述多个方向模块的位置信息和图形信息。
53.根据权利要求52的二维代码读取装置,其特征在于上述方向模块搜索部中,所述规定的颜色模板图形由第一颜色模板图形、第二颜色模板图形和第三颜色模板图形构成。
54.根据权利要求52或53的二维代码读取装置,其特征在于上述方向模块搜索部中,规定的距离因所述第一颜色模板图形、所述第二颜色模板图形和所述第三颜色模板图形而不同。
55.根据权利要求54的二维代码读取装置,其特征在于上述规定的距离是向模块宽度上乘以规定值后的值。
56.根据权利要求55的二维代码读取装置,其特征在于上述模块宽度根据所述二维代码符号读取图像的探测器图形的图形信息和作为规定范围内存在的规定间隔值的Rate数算出。
57.根据权利要求56的二维代码读取装置,其特征在于上述方向模块搜索部包括:(a)以根据所述规定距离搜索的多个所述像素数据组作为所述方向模块的中心点的多个相同距离候补数据,根据多个所述相同距离候补数据计算出所述规定距离上的所述方向模块的中心点的一个候补数据的第一计算部:以及(b)从根据所述Rate数算出的多个所述规定距离上的方向模块的中心点的候补数据算出方向模块的中心点位置的第二计算部。
58.根据权利要求52或57的二维代码读取装置,其特征在于上述方向模块搜索部包括变换二维代码符号的读取图像的位置信息,以使得规定方向模块的中心点位置变为规定位置的变换部。
59.一种二维代码读取装置,其特征在于包括数据字符变换部,在上述二维代码符号的读取图像中,根据规定码字变换表,通过把构成数据模块组的数据模块的位置对应添加到规定的码字和规定的所述码字上的规定位数据,把数据模块的位数据变换为所述码字,把变换后的所述码字变换为规定的数据字符。
60.根据权利要求59的二维代码读取装置,其特征在于在上述数据字符变换部中,根据以作为二维排列的BT(n,m)作为要素的二维位排列表指定所述数据模块的位置。
61.根据权利要求59或60的二维代码读取装置,其特征在于在上述数据字符变换部中,所述规定码字变换表是以规定所述码字作为第i个码字、把所述规定码字中的规定所述位数据作为第i个码字的第j个位数据时,以作为满足下面的关系式的值的CT(n,m)为要素的码字二维排列表:
i=[CT(n,m)/256]
j=CT(n,m)-i*256。
62.根据权利要求35到61的任何一项的二维代码读取装置,其特征在于所述二维代码符号通过白黑交替的单元构成数据信息。
63.根据权利要求35到61的任何一项的二维代码读取装置,其特征在于所述二维代码符号是MaxiCode符号。
64.一种信息记录媒体,其特征在于其上记录具有权利要求1到34的任何一项的二维代码符号读取方法的步骤的程序。
65.根据权利要求64的信息记录媒体,其特征在于上述信息记录媒体是激光盘、软盘、硬盘、磁光盘、数字多能盘、磁带或存储卡。
CN01119210A 2000-04-06 2001-04-06 二维代码读取方法、信息记录媒体和二维代码读取装置 Pending CN1334544A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP2000104970A JP2001291051A (ja) 2000-04-06 2000-04-06 二次元バーコードの読み取り方法及び装置、情報記録媒体
JP104970/2000 2000-04-06
JP2000201279A JP2002024752A (ja) 2000-07-03 2000-07-03 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置
JP201279/2000 2000-07-03
JP2000237086A JP2002049889A (ja) 2000-08-04 2000-08-04 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置
JP237086/2000 2000-08-04
JP2000355940A JP2002157549A (ja) 2000-11-22 2000-11-22 二次元コード読み取り方法、情報記録媒体及び二次元コード読み取り装置
JP355940/2000 2000-11-22

Publications (1)

Publication Number Publication Date
CN1334544A true CN1334544A (zh) 2002-02-06

Family

ID=27481198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN01119210A Pending CN1334544A (zh) 2000-04-06 2001-04-06 二维代码读取方法、信息记录媒体和二维代码读取装置

Country Status (8)

Country Link
US (1) US6604682B2 (zh)
EP (1) EP1143372B1 (zh)
KR (1) KR100579356B1 (zh)
CN (1) CN1334544A (zh)
AT (1) ATE321310T1 (zh)
DE (1) DE60118051T2 (zh)
ES (1) ES2256106T3 (zh)
HK (1) HK1043852A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100377167C (zh) * 2006-03-17 2008-03-26 北京紫光捷通科技有限公司 一种用于二维码识别的二维码区域精确定位方法
CN100456797C (zh) * 2004-09-09 2009-01-28 村田机械株式会社 二维编码信息处理装置
CN1971591B (zh) * 2005-11-24 2010-05-19 佳能株式会社 用于检测二维代码的方法和二维代码检测器
US8472039B2 (en) 2007-07-10 2013-06-25 Samsung Electronics Co., Ltd. Copy apparatus having a copy prevention function and a copy prevention method thereof
CN106156684A (zh) * 2016-06-30 2016-11-23 南京理工大学 一种二维码识别方法及装置

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6705526B1 (en) * 1995-12-18 2004-03-16 Metrologic Instruments, Inc. Automated method of and system for dimensioning objects transported through a work environment using contour tracing, vertice detection, corner point detection, and corner point reduction methods on two-dimensional range data maps captured by an amplitude modulated laser scanning beam
US20060082557A1 (en) * 2000-04-05 2006-04-20 Anoto Ip Lic Hb Combined detection of position-coding pattern and bar codes
US20020016750A1 (en) * 2000-06-20 2002-02-07 Olivier Attia System and method for scan-based input, storage and retrieval of information over an interactive communication network
US6666377B1 (en) 2000-07-18 2003-12-23 Scott C. Harris Bar code data entry device
US20040098664A1 (en) * 2002-11-04 2004-05-20 Adelman Derek A. Document processing based on a digital document image input with a confirmatory receipt output
CN100392673C (zh) * 2002-12-03 2008-06-04 西尔弗布鲁克研究有限公司 旋转对称标签
JP4133298B2 (ja) * 2002-12-19 2008-08-13 株式会社リコー デジタルカメラ装置
CN2591284Y (zh) * 2002-12-27 2003-12-10 萧呈方 散热风扇
JP4257132B2 (ja) * 2003-02-21 2009-04-22 富士通株式会社 バーコード読取装置およびバーコード読取方法
SE0301143D0 (sv) * 2003-04-17 2003-04-17 C Technologies Ab Sätt och anordning för inläsning av data
US7156311B2 (en) * 2003-07-16 2007-01-02 Scanbuy, Inc. System and method for decoding and analyzing barcodes using a mobile device
US7387250B2 (en) * 2003-12-04 2008-06-17 Scanbuy, Inc. System and method for on the spot purchasing by scanning barcodes from screens with a mobile device
US20050227217A1 (en) * 2004-03-31 2005-10-13 Wilson Andrew D Template matching on interactive surface
US7296747B2 (en) * 2004-04-20 2007-11-20 Michael Rohs Visual code system for camera-equipped mobile devices and applications thereof
KR100560330B1 (ko) * 2004-04-21 2006-03-30 에이디정보통신 주식회사 색상 보정이 가능한 대용량 2차원 칼라 바코드인코딩/디코딩 시스템 및 그 방법
US8316068B2 (en) 2004-06-04 2012-11-20 Telefonaktiebolaget Lm Ericsson (Publ) Memory compression
US7593593B2 (en) 2004-06-16 2009-09-22 Microsoft Corporation Method and system for reducing effects of undesired signals in an infrared imaging system
US7309015B2 (en) * 2004-07-14 2007-12-18 Scanbuy, Inc. Mobile device gateway providing access to instant information
US20060050961A1 (en) * 2004-08-13 2006-03-09 Mohanaraj Thiyagarajah Method and system for locating and verifying a finder pattern in a two-dimensional machine-readable symbol
US7201321B2 (en) * 2004-08-27 2007-04-10 Symbol Technologies, Inc. Electro-optically reading direct part markings on workpieces by image capture
US7578436B1 (en) * 2004-11-08 2009-08-25 Pisafe, Inc. Method and apparatus for providing secure document distribution
WO2006089247A2 (en) * 2005-02-16 2006-08-24 Pisafe, Inc. Method and system for creating and using redundant and high capacity barcodes
US8226011B2 (en) * 2005-04-06 2012-07-24 Eidgenoessische Technische Hochshcule Zuerich Method of executing an application in a mobile device
BRPI0520326A2 (pt) 2005-04-13 2009-05-05 Michael Rohs método para a decodificação de um código visual
US7775428B2 (en) 2005-05-06 2010-08-17 Berkun Kenneth A Systems and methods for generating, reading and transferring identifiers
JP4670464B2 (ja) * 2005-05-10 2011-04-13 日本電気株式会社 情報読取装置、情報処理装置、情報通信システム、情報読取方法、及びプログラム
EP1904952A2 (en) * 2005-05-23 2008-04-02 Nextcode Corporation Efficient finder patterns and methods for application to 2d machine vision problems
US7911444B2 (en) * 2005-08-31 2011-03-22 Microsoft Corporation Input method for surface of interactive display
US7974435B2 (en) * 2005-09-16 2011-07-05 Koplar Interactive Systems International Llc Pattern-based encoding and detection
US7571864B2 (en) 2005-12-16 2009-08-11 Pisafe, Inc. Method and system for creating and using barcodes
US7584891B2 (en) * 2005-12-19 2009-09-08 Pitney Bowes Inc. Black fluorescent optical codes and process for printing and reading
US8016187B2 (en) * 2006-02-21 2011-09-13 Scanbury, Inc. Mobile payment system using barcode capture
US8150163B2 (en) 2006-04-12 2012-04-03 Scanbuy, Inc. System and method for recovering image detail from multiple image frames in real-time
US7857219B2 (en) * 2006-05-26 2010-12-28 Symbol Technologies, Inc. Imaging reader target object finder system
WO2008073455A1 (en) * 2006-12-11 2008-06-19 Koplar Interactive Systems International, L.L.C. Spatial data encoding and decoding
US8212857B2 (en) 2007-01-26 2012-07-03 Microsoft Corporation Alternating light sources to reduce specular reflection
WO2008118425A1 (en) 2007-03-23 2008-10-02 Ltt, Ltd Method and apparatus for using a limited capacity portable data carrier
US7780084B2 (en) 2007-06-29 2010-08-24 Microsoft Corporation 2-D barcode recognition
JP5432714B2 (ja) * 2007-08-03 2014-03-05 学校法人慶應義塾 構図解析方法、構図解析機能を備えた画像装置、構図解析プログラム及びコンピュータ読み取り可能な記録媒体
US20090111584A1 (en) * 2007-10-31 2009-04-30 Koplar Interactive Systems International, L.L.C. Method and system for encoded information processing
EP2248068B1 (en) * 2008-01-29 2014-04-30 Veritec, Inc. Two-dimensional symbol and method for reading same
JP5567908B2 (ja) * 2009-06-24 2014-08-06 キヤノン株式会社 3次元計測装置、その計測方法及びプログラム
US9098764B2 (en) * 2009-07-20 2015-08-04 The Regents Of The University Of California Image-based barcode reader
US8531401B2 (en) 2009-08-13 2013-09-10 Hewlett-Packard Development Company, L.P. Computer accessory device
US20110066504A1 (en) * 2009-09-17 2011-03-17 Ehud Chatow System for providing promotion information
US8788325B2 (en) * 2009-11-30 2014-07-22 Ncr Corporation Techniques for generating a product path with custom advertisements
CN101882220B (zh) * 2010-06-01 2013-07-17 福建新大陆电脑股份有限公司 一种基于动态模板的条码图像校正方法及校正点获取方法
KR101109510B1 (ko) * 2010-07-02 2012-01-31 (주) 애니모비 2차원 바코드 인식방법
US9396421B2 (en) 2010-08-14 2016-07-19 Rujan Entwicklung Und Forschung Gmbh Producing, capturing and using visual identification tags for moving objects
FR2968797A1 (fr) * 2010-12-10 2012-06-15 Samuel Boury Procede de generation d'un marqueur a apposer sur la surface d'un objet
FR2968796B1 (fr) 2010-12-10 2014-04-25 Samuel Boury Procede de detection d'un marqueur appose sur la surface d'un objet et systeme de mise en oeuvre
AU2010257441B2 (en) * 2010-12-24 2012-09-20 Canon Kabushiki Kaisha Method, apparatus and system for identifying candidate pairs of finder patterns of a barcode
EP2695147B1 (fr) 2011-04-05 2019-03-06 Franck Guigan Code-barres de sécurité
KR101865197B1 (ko) * 2011-11-29 2018-07-16 삼성전자주식회사 휴대용 단말기에서 코드 이미지를 획득하기 위한 장치 및 방법
CN102708349B (zh) * 2012-05-11 2014-11-05 深圳市天朗时代科技有限公司 一种矩阵式二维码的解码方法
EP2711866A1 (en) * 2012-09-21 2014-03-26 Biomerieux Method and system for detecting a 2D barcode in a circular label
US9171203B2 (en) 2013-09-10 2015-10-27 Dropbox, Inc. Scanbox
JP6393226B2 (ja) * 2015-03-31 2018-09-19 日本電産サンキョー株式会社 スタック型バーコード読取装置およびスタック型バーコード読取方法
US9760819B2 (en) 2015-12-14 2017-09-12 International Business Machines Corporation Encoding and decoding data in two-dimensional symbology
EP3199953B1 (en) * 2016-02-01 2021-03-24 Roche Diagniostics GmbH Method for teaching positioning of a bar code scanner and apparatus for processing a sample or reagent
CN106897648B (zh) 2016-07-22 2020-01-31 阿里巴巴集团控股有限公司 识别二维码位置的方法及其系统
US9928632B1 (en) 2017-06-14 2018-03-27 Capital One Services, Llc Systems and methods for generating and reading intrinsic matrixed bar codes
CN107590522B (zh) * 2017-08-23 2020-08-21 阿里巴巴集团控股有限公司 一种识别码生成及识别的方法及装置
US10802498B2 (en) 2018-05-30 2020-10-13 Datalogic Ip Tech S.R.L. Target direction estimation using centroid follower
CN110332897A (zh) * 2019-08-08 2019-10-15 珠海博明视觉科技有限公司 一种提高系统对小圆测量精度的补偿模型
JP7408334B2 (ja) 2019-10-03 2024-01-05 Thk株式会社 画像処理装置及び移動体制御システム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4889367A (en) * 1988-10-07 1989-12-26 Frito-Lay, Inc. Multi-readable information system
US5189292A (en) * 1990-10-30 1993-02-23 Omniplanar, Inc. Finder pattern for optically encoded machine readable symbols
JP2764224B2 (ja) 1993-03-01 1998-06-11 ユナイテツド パーセル サービス オブ アメリカ インコーポレイテツド 補足目標の位置を求める方法および装置
US5591956A (en) * 1995-05-15 1997-01-07 Welch Allyn, Inc. Two dimensional data encoding structure and symbology for use with optical readers
GB9408626D0 (en) * 1994-04-29 1994-06-22 Electronic Automation Ltd Machine readable binary code
PT766191E (pt) 1994-06-07 2000-08-31 United Parcel Service Inc Metodo e equipamento para descodificacao de simbolos a duas dimensoes no dominio espacial
US5515447A (en) 1994-06-07 1996-05-07 United Parcel Service Of America, Inc. Method and apparatus for locating an acquisition target in two-dimensional images by detecting symmetry in two different directions
JP3448120B2 (ja) * 1994-12-27 2003-09-16 シャープ株式会社 デジタル情報記録担体
US5637849A (en) * 1995-05-31 1997-06-10 Metanetics Corporation Maxicode data extraction using spatial domain features
US5786583A (en) 1996-02-16 1998-07-28 Intermec Corporation Method and apparatus for locating and decoding machine-readable symbols
US5742041A (en) * 1996-05-29 1998-04-21 Intermec Corporation Method and apparatus for locating and decoding machine-readable symbols, including data matrix symbols
US5761219A (en) * 1996-07-12 1998-06-02 Intermec Technologies Corporation Error correction for PDF417 and other machine-readable symbologies
EP0917081B1 (en) * 1997-11-17 2001-10-10 DATALOGIC S.p.A. Maxicode locating method
US6267296B1 (en) * 1998-05-12 2001-07-31 Denso Corporation Two-dimensional code and method of optically reading the same
TW434520B (en) * 1998-06-30 2001-05-16 Sony Corp Two-dimensional code recognition processing method, device therefor and medium
US6412695B1 (en) * 2000-04-07 2002-07-02 Motorola, Inc. Optical code and delineator apparatus and method

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100456797C (zh) * 2004-09-09 2009-01-28 村田机械株式会社 二维编码信息处理装置
CN1971591B (zh) * 2005-11-24 2010-05-19 佳能株式会社 用于检测二维代码的方法和二维代码检测器
CN100377167C (zh) * 2006-03-17 2008-03-26 北京紫光捷通科技有限公司 一种用于二维码识别的二维码区域精确定位方法
US8472039B2 (en) 2007-07-10 2013-06-25 Samsung Electronics Co., Ltd. Copy apparatus having a copy prevention function and a copy prevention method thereof
CN101344748B (zh) * 2007-07-10 2014-05-14 三星电子株式会社 具有复印防止功能的复印装置及其复印防止方法
CN106156684A (zh) * 2016-06-30 2016-11-23 南京理工大学 一种二维码识别方法及装置
CN106156684B (zh) * 2016-06-30 2019-01-18 南京理工大学 一种二维码识别方法及装置

Also Published As

Publication number Publication date
DE60118051D1 (de) 2006-05-11
KR100579356B1 (ko) 2006-05-12
EP1143372B1 (en) 2006-03-22
ATE321310T1 (de) 2006-04-15
US6604682B2 (en) 2003-08-12
EP1143372A2 (en) 2001-10-10
ES2256106T3 (es) 2006-07-16
KR20010098464A (ko) 2001-11-08
HK1043852A1 (zh) 2002-11-08
EP1143372A3 (en) 2002-04-24
DE60118051T2 (de) 2006-08-31
US20020020747A1 (en) 2002-02-21

Similar Documents

Publication Publication Date Title
CN1334544A (zh) 二维代码读取方法、信息记录媒体和二维代码读取装置
CN1291352C (zh) 彩色图象处理装置及方法、图案抽取装置及方法
CN1131495C (zh) 特征信息赋予方法及装置
CN1282937C (zh) 数据媒体处理装置及数据媒体处理方法
CN1220162C (zh) 用于从文档图象抽取标题的标题抽取设备及方法
CN1126025C (zh) 窗口显示装置
CN1269066C (zh) 信息处理设备和方法
CN1194318C (zh) 物体区域信息记述方法和物体区域信息生成装置
CN1302408C (zh) 认证系统、认证装置、终端装置以及认证方法
CN100341328C (zh) 媒体播发装置及媒体播发方法
CN1156791C (zh) 模式识别设备与方法
CN1926881A (zh) 运动矢量检测装置、运动矢量检测方法和计算机程序
CN1897556A (zh) 信息处理设备、信息处理方法和信息处理程序
CN1961338A (zh) 图像处理设备和方法、记录介质以及程序
CN1949833A (zh) 具有二维光电检测器的成像设备
CN1607541A (zh) 图象处理方法
CN1649384A (zh) 图像处理设备、图像处理程序、及存储介质
CN1910577A (zh) 图像文件一览显示装置
CN1178461C (zh) 图像编码装置、图像译码装置、传真装置
CN1155884C (zh) 通过大范围的同值关系的解析来消除传输命令的优化装置
CN1304617A (zh) 插值处理装置及记录插值处理程序的记录媒体
CN1879126A (zh) 平均维持插值运算电路、像素插值电路、平均维持插值运算方法及像素插值方法
CN1276388C (zh) 检测图象中的人脸的方法和设备
CN1180432C (zh) 时间码运算装置
CN1612132A (zh) 视线诱导度算出系统、程序及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1043852

Country of ref document: HK