本发明涉及用于读条形码记号的条形码记号读取装置,特别是涉及使用了摄像机等的二元摄像设备的条形码记号读取装置。 现在,条形码记号在许多国家中采用,其种类也非常多。代表性的条形码记号有JAN/UPC/EAN码、ITF(5隔2行扫描)码、CODE39、NW-7码、CODE128等。在最近,由于希望表示更多的信息、而粘贴所占面积更小等要求,工始提出信息量多、记录密度高的二元条形码记号。此种二元条形码记号有CODE16K、CODE49、PDF417、DATA CODE等。
至于说到关于读条形码记号的装置的话,用于读取JAN/EAN码、ITF(5隔2行扫描)码、CODE39、NW-7码、CODE128等(这些相对于二元条形码记号来说被称为一元条形码记号)的装置,种类多,读取技术已经确定。这种装置的有代表性的型式有:笔型、接触型、激光型。而另一方面,用于读取二元条形码记号的装置,现状是种类少,其读取技术也尚未确立。
但是,条形码记号基本的读取方法,对二元条形码记号的场合也和以往的一元条形码的场合大体上是一样的。即,用光源照射条形码记号,将由条形码记号反射来地光集中于读取装置内部的受光元件上。以后的情形是将此集中的信号在由微处理机等构成的电气回路中作解码处理而读取条形码记号。
用于读取条形码记号的装置中有一种被称作固定式的装置。它是将读条形码记号的装置固定起来,操作者拿着记录有条形码记号的平片或商品等放在读取装置下接受该装置的读取。
这种固定式的条形码读取装置由摄像机架、解码盒、及监视器构成。
其中,上述摄像机架由摄像机、支撑该摄像机的支柱、及操作者放置记录有条形码记号的平片或商品等的底板所构成。
上述解码盒是通过摄像机电缆线接受上述摄像机的输出,将来自此摄像机输出信号的条形码记号的记录内容译解出来,将条形码记号所记录内容转送到主计算机和终端装置去的部件。
上述监视器是输入了解码盒的视频输出的部件,是用来让操作者确认记录在平片或商品等之上的条形码记号是否确定进入了摄像机的视野之内的部件,对条形码记号较大的场合很必要。
这样使用监视器而确认记录在平片或商品等之上的条形码记号是否确定进入了摄像机的视野内的装置中,操作者必须观看监视器的画面判断是否进入视野。然而,此判断基准因操作者个人差别很大,同样的画面,某个操作者看了就让进行解码处理,而另一操作者说不定就要重新放置记录有条形码记号的平片或商品之类。这样,对前面的场合,本是不可能解码的就这样去解码,等到报警告知不能解码再去重新放置记录有条形码记号的平片或商品等,解码处理的时间已白浪费。反之,对后面那个操作者的场合,特别是对于具备差错订正功能的二元条形码,条形码记号没有完全进入摄像机视野内而当缺一部分的状态也仍有可能解码,因为解码是可能的,重新放记录有条形码记号的平片或商品等,其劳力和时间是浪费的。
本发明鉴于以上各点,以提供一种没有个人差异、能判断记号在平片或商品等之上的条形码记号是否确实进入了摄像机视野内的二元条形码读取装置为目的。
根据本发明,所提供的条形码记号读取装置具备:用于对由条和空隔组成的条形码记号摄像的摄像机;贮存由该摄像机所得条形码记号的摄像信息的存储器;根据上述存储器的输出,检出由上述摄像机摄像所得条形码记号在上述摄像机的摄像范围内的位置的位置检出部;以及,根据该位置检出部的输出,判断由上述摄像机摄得的条形码记号从上述摄像机的摄像范围越出的方向的方向判断部。
即,根据本发明的条形码记号读取装置中,由位置检出部根据存储器的输出而检出摄像机摄得的条形码记号在上述摄像机的摄像范围内的位置,再根据此位置检出部的输出,方向判断部判断上述摄像机摄得的条形码记号从上述摄像机的摄像范围越出的方向。
从而,由此方向判断部判断的条形码记号之越出方向输出给例如条形码记号位置表示器,只在必要的时候,直接向操作者指出条形码记号的位置。
图1是表示本发明第1个实施例的构成的外观图;
图2是表示第1实施例的框图;
图3是为了说明作为二元条形码记号一个例子的PDF417条形码记号的结构的图;
图4是将PDF417条形码记号图像投影在帧存储器上的模式图;
图5是表示解码处理回路动作的概要的流程图;
图6是图5中标识检出程序的流程图;
图7是说明标识检出方法的标识向帧存储器投影的图形;
图8是为说明求标识斜率的方法的标识在帧存储器上投影的图形;
图9是标识在右边越出(画面)场合下向帧存储器的标识投影图形;
图10是标识在右上处越出场合下的向帧存储器的标识投影图形;
图11是标识在下边越出的场合下的向帧存储器的标识投影图菜;
图12是标识在右下处越出的场合下的向帧存储器标识投影图形;
图13是标识越出情况复杂的场合下的向帧存储器的标识投影图形;
图14是表示标识位置表示器的一个例子的图;
图15A到图15I是表示分别与标识的越出状态相对应的图14的标识位置表示器的表示状态的图;
图16A是表示标识位置表示器的另一例子的图;
图16B是表示在图16A的标识位置表示器上显示图13的状态的图;
图17是表示标识位置表示器又一个例子的7段LED的图;
图18A到图18I是分别表示用了图17的7段LED的场合下对应于标识越出状态的显示状态的图;
图19是表示标识位置表示器的其它例子的图;
图20是表示标识位置表示器的又一个其它例子的图;
图21A到图21I是分别表示与在图20的标识位置表示器上标识越出状态相对应的显示状态的图;
图22是为说明第1实施例的变形例概要情况的流程图;
图23是表示本发明第2实施例的图;
图24是表示本发明第3实施例的图;
图25是表示本发明第4实施例的图;以及
图26是用于说明第4实施例的动作概要的流程图。
图1是本发明第1实施例的条形码记号读取装置的外观图,图2是构成框图。
本实施例的条形码记号读取装置由摄像机架5和解码盒6构成。其中,上述摄像机架5由摄像机2、支撑该摄像机2的支柱3、及载有记录了条形码记号1的平片或商品等的底板4所构成。上述解码盒6通过摄像机电缆线8接收上述摄像机2的输出,从此摄像机输出信号中检出条形码记号位置,用标识位置表示器65表示条形码记号的位置的同时,对条形码记号1的记录内容解码,将此条形码记号1的记录内容转送到主计算机7和图中未表示的终端装置中去。
此解码盒6由示于图2那样的一系列电气回路组合而成。即,解码盒6由视频回路61、帧存储器62、数据处理回路63、主接口回路64、及标识位置表示器65所构成。其中上述数据处理回路63在功能上有位置检出部63A、越出方向判断部63B、显示控制部63C、及解码部63D。
下面,参照图2的构成框图详细说明如此构成的条形码记号读取装置的动作。
由图上没有画出的照明装置照亮含有条形码记号1的平片或商品等,其反射光射入摄像机2(参阅图1)。在摄像机2中将光信号变换成电信号,并附加同步信号等,作为视频信号经由摄像电缆线8送到解码盒6中的视频回路61中去。
在视频回路61中将上述同步信号从输入的视频信号中分离,再经模/数(A/D)变换而数字化。此数字化信号贮存于帧存储器62内。
接着,解码处理回路63的位置检出部63A扫描贮存在帧存储器62内的含有条形码记号1的平片上的图像而将图像信息从帧存储器62中读出,检出条形码记号1是否在帧存储器62的画面框内,即在摄像机2的视野范围内是否有标记1,并且,有条形码记号1的话,进行该条形码记号1在上述视野范围内的位置检出。这个条形码记号1的位置检出后,解码处理回路63的越出方向判断部63B判断用上述位置检出部63A检出条形码记号1的位置在上述摄像机2的视野范围的哪个方向上越出了。然后解码处理回路63的显示控制部63C根据此越出方向的判断结果将条形码记号1的位置输出到标识位置表示器65去。再,数据处理回路63的解码部63D实施条形码记号1的解码。
然后,在根据这个解码部63D对条形码记号1作解码时,解码处理回路63控制主接口回路64,将其信息转送到图1的主计算机7或图中未示出的终端装置去。再有,上述数据解码回路63向上述视频回路61输出指示将图像装入帧存储器62的装入开始信号。
以下,用图3简单说明条形码记号1的记号结构。这里,作为条形码记号,使用二元条形码记号PDF417。
该图中示出了PDF417的标识的结构。此条形码记号1具有标识部11,它是用由条和空隔组合而成的条形码符号群构成的,应该予以解码的信息成分区域,以及在标识部前后配置的开始/终止符号的开始码12和终止码13。一个码,除了终止码13均由4个条和空隔组成,终止码13由5个条和4个空隔组成。此外,开始和终止码12、13都由被称为“大条”的粗条12A,13A开始。
标识部11由邻接开始码12和终止码13而存在的被称为行指示器11A的码、和夹在它们之间记述了实际数据的多个数据列11B的标识阵列11C所构成。在行指示器11A中记述了标识的行方向、列方向尺寸和安全标识等内容。这里,安全标识是PDF417有差错订正能力的标识,有九段的标识。从而,如果解读这行指示器的信息,能决定条形码记号的信息量等。
还有,此图3,表示的是有4×2标识阵列的条形码记号。
现在,假想在帧存储器62的像素配置中将具有4×1的标识阵列的PDF417的条形码记号图像投影上去所得的模式图示于图4。以下,将投影在帧存储器62上的条形码记号1的投影像称之为条形码标识66。例如检出标识66,意味着从投影在帧存储器62上的条形码记号1的投影像中检出了条形码记号。另外,对于该图上的大量的孔格不是表示一个像素,而是n×n个像素大小。
在解码处理回路63中,根据以下要说明的算法进行标识检出,读出标识信息,进行解码,转送到图1中的主计算机7或图中未示出的终端装置去。
即,图5是表示出此数据处理回路63的动作的算法概要流程图。在本说明书中流程图按照程序语言C的表达方式写出的。
首先,调用前处理程序(步骤S1),初期设定各种参数值。此后,调用装入图像程序(步骤S2)。在此装入图像程序中,向视频回路61发出装入开始信号,将图像连续地装入2个画面(Bank0,Bank1)到帧存储器62中。即,帧存储器62具有二个画面的贮存容量。此处所谓连续,是先存入一个画面的图像到Bank0中去,随后再将一个画面的图像数据存入Bank1。此时,从最初发出开始信号将最新的帧数据装入Bank0,此装入结束之后,再一次发出装入开始信号将最新的帧数据装入Bank1,为此,二个画面数据之间存在摄像时间差(此时间差是在Bank0的存储时间+0~1/30秒)。
接下来,调用在后面要详细叙述的标识检出程序(步骤S3),用所装入的图像数据之内的Bank0检查标识存在否,如标识存在则检出标识信息,再判断标识位置,将标识位置显示在标识位置表示器65。操作者按照确认标识位置表示器65,可以确认标识有没有全部进入摄像机2的视野内,或者在右边越出了,或者在左边越出了等等,将含有条形码记号1的平片或商品等移动到适当的位置。其后,判断在上述步骤S3的标识检出处理的结果(步骤S4),标识不存在的场合,再一次将控制移到上述步骤S1而调用前处理程序。
另一方面,如果标识存在,调用手颤检出程序(步骤S5),用在上述步骤S2装入图像数据的Bank1来推定手颤的影响。这里,所谓手颤,指的是将含有条形码记号1的平片或商品等放在条形码记号读取装置装置下场合以高频率造成的图像抖动。随后,判断在上述步骤S5检出的结果(步骤S6),发生手颤的场合,再一次将控制移到上述步骤S1,调用前处理程序。
在不发生手颤的场合,调用决定阈值程序(步骤S7),决定在步骤SB的最佳扫描程序和步骤SD的跳跃扫描程序中为了抽出作为处理对象的线上边缘之间的宽度信息这种处理中要用的阈值。再调用决定行数和列数程序(步骤S8)读出标识66的行指示器11A,决定标识的尺寸等。然后,判断在上述步骤S8的决定程序标识尺寸等是否决定了(步骤S9),还没有决定的场合,再一次将控制移到上述步骤S1调用前处理程序。
另一方面,标识尺寸等已决定了的场合,调用决定扫描方程式的程序(步骤SA),定义为全面扫描标识66的各种变数。后面调用最佳扫描程序(步骤SB),使用在上述步骤SA中定义的各种变数以最佳的间隔全面扫描标识,读取标识信息。这是所谓最佳扫描是在标识没有缺欠的场合,以最小的计算量就可以全部确定标识信息这样的最佳间隔来进行扫描。再判断用上述步骤SB的最佳扫描读取的信息解码是否可能(步骤SC),解码是可能的场合,将控制移到步骤SF的解码处理。
而在解码不可能的场合,调用跳跃扫描程序(步骤SD)。在这个跳跃扫描程序中使用在上述步骤SA中定义的各种变数全面扫描标识,读取标识信息。然后,判断用在这个步骤SD读取的信息是否可能解码(步骤SE),可能解码的场合将控制移到步骤SF的解码处理。在解码是不可能时,再次将控制移到上述步骤S1调用前处理程序。
在步骤SF中,进行对在上述步骤SB的最佳扫描程序或上述步骤SD的跳跃扫描程序中读取的信息的校核。这种校核在只单纯确认解码结果的场合(JAN/UPC/EAN码,ITF(5隔2行扫描)码、CODE39、NW-7码、CODE128等以往的一元条形码的时候),也有,但在伴有差错订正的场合(PDF714和DATA CODE等二元条形码记号的时候)也有。此后,在同一步骤SF中,控制主接口回路64,将读取的信息转送主计算机7或图中未示出的终端装置。
各程序的详细内容,由久保发明并转让给本发明的申请人,详细记载在以1993年5月25日的日期在美国申请的正进行中的美国专利申请第066,968号中,其内容被编入本发明。
因此,这里的是本实施例的特征部分,是与上述进行中的美国专利申请第066,968号不同的程序,参照图6的流程图和图7的标识投影图形说明的只是在上述步骤S3中调用的标识检出程序。此标识检出程序包括标识的有无,和检出标识的位置信息二类标识检出处理,检出标识的位置信息就是求取为了将和标识平行的图像数据从帧存储器62中抽出的抽出范围(变数TOP和BOTTOM)和标识的斜率(变数SLOPE)。这里,变数TOP的值表示标识的顶端座标而变数BOTTOM的内容表示标识的底端座标。变数SLOPE的内容表示标识的斜率。
在这个标识检出程序中,首先,将处理对象取为帧存储器62的Bank0(步骤S31)。再将标识检出特征位初值化(步骤S32)。此标识检出特征位由开始检出特征位start-flag和终止检出特征位stop-flag组成。这些标识检出特征位,在后述的其它处理中,被用在指示应该选择处理开始码12及终止码13中的哪一个。因为,在开始码12和终止码13都被检出的场合,有必要选择可靠性比较高的一个。
接着,调用开始/终止码检出程序(步骤S33)。以检出装入帧存储器62的Bank0中的图像数据里是否存在开始/及终止码12、13。然后,检出图7中的座标e、f、g、h(但,并不限于全部要检出这些4个座标变数,例如,在示于图8的场合,也许不必求出座标变数f及h)。根据这个程序,如确定检出了开始及终止码,开始码12的场合定义图7的帧存储器62上的座标变数g,而终止码13的场合定义座标变数h。座标变数e表示最初找到开始码12的座标、f表示最初找到终止码13的座标、g表示最后找到开始码12的座标、h表示最后找到终止码13的座标。
其后,判断座标变数g、h中哪一个是否已被定义了(步骤S34),未被定义的场合,作为无标识退出此处理。即,持有无标识的信息返回。在本说明书中为了按照C语言的表述方式而写成的方式,如按照FORTRAN等表述方式,则要写成明确提出无标识的特征位后再说返回这种书写方式。
以上这样进行了标识有无的检出。
下面,进行标识的位置信息的检出,即标出用于从帧存储器62中抽出和标识平行的图像数据的抽出范围(变数TOP和BOTTOM)以及标识的斜率(变数SLOPE)。
即,在上述步骤S34中,判断座标变数g、h中哪一个被定义的场合,判断座标变数g是否被定义(步骤S35),如未被定义,就进至步骤S37。但,在座标变数g已定义的场合,调用在后面要详述的开始边缘位置检出程序(步骤S36),进行开始边缘位置的检出。此开始边缘检出由座标变数e及g(座标变数g被定义了的话当然座标变数e也被定义了)定义图7所示的座标变数i及m,再定义座标变数a及d。又,start-flag为ON(有效),定义座标变数TOP及BOTTOM。这里,座标变数a及d分别是标识四个角座标中的一个。
接着,判断座标变数h是否被定义(步骤S37),如没有被定义,进到步骤S39)。但是,在座标变数h定义了的场合,调用后面要详述的终止边缘位置检出程序(步骤S38),进行终止边缘位置的检出。此终止边缘位置检出从座标变数f及h(座标变数h被定义了的话当然座标变数f也被定义了)定义如图7所示的座标变数j及k,再定义座标变数b及c。又,stop-flag为ON(有效),定义座标变数TOP及BOTTOM。这里,座标变数b及c分别表示标识的4个角座标中的一个。
接着,判断start-flag,stop-flag是否同时都为ON(步骤S39),二者都不是ON的场合就进到步骤S3E。还有,图中的符号“&&”表示理论积。
在二者特征位同时为ON的场合,将start-flag,stop-flag二者一起一次复原(步骤S3A),比较线段(a-d)(b-c)(步骤S3B),选择开始码12和终止码13中线段长的一个作为处理对象。这是因为在通常使用时,某一个码相对于另外一个为短的最大理由是图形越出(画面)的情况,故而要选择长的一个为处理基准。
之后,在线段(a-d)比线段(b-c)短的时候,将座标变数b的值代入座标变数TOP中,将座标变数C的值代入座标变数BOTTOM中,定义用于决定标识信息抽出范围的数据,再选择stop-flaag为ON(步骤S3C)。
反之,线段(a-d)的长度在线段(b-c)之上的时候,分别将座标变数a的值代入座标变数TOP中,将座标变数d的值代入座标变数BOTTOM中,定义用于决定标识信息的抽出范围的数据,再选择start-flag为ON(步骤S3D)。
下面,调用标识的斜率求取程序(步骤S3E),从这些座标变数TOP及BOTTOM求标识的斜率(变数SLOPE)。到这里为止,是和上述进行中的美国专利申请第066,968号的标识检出程序相同的。
接着,从座标变数a、d、b、c的信息判断标识66的位置(帧62上的位置),向标识位置表示器65输出(步骤S3F)。关于此步骤S3F,在后面要比较详细说明。
最后,和在步骤S3E步骤中得到的变数一起以持有有标识的信息而返回。
现在说明在上述标识检出程序中步骤S36所调用的开始边缘位置检出程序。
首先使开始检出特征start-flag为ON之后,定义和线段e-g平行的直线的方程式,例如求得线段e-g平行的直线的方程式,例如求得线段e-g的方程式y=astx+bst。让此直线穿过开始码粗条12A来定义截距bst。因而得到了穿过开始码粗条12A的直线,设此直线和界定画面的方程式(帧存储器62的边界直线)的交点分别为A、A'(参照图7),再从座标e、g的中点向线A-A'作垂线,定义其交点As。
然后,从点As在此直线A-A'上顺着向A点的方向观察数据时,检查是否存在边缘。如检出了边缘,将检出的座标存入座标变数i。即,将检出座标设为点i。在未检出边缘时,则将此线A-A'和界定画面的方程式的交点,即点A设为点i。
现在这回从As在上述线A-A'向A'的方向顺次观察数据时,检查是否存在边缘。如检出了边缘,将此检出的座标存入座标变数m。即将检出座标设为点m。在未检出边缘时,则将此线A-A'和界定画面的方程式的交点,即点A'设为点m。
从用座标变数i表示的点i向通过用座标变数e,g表示的点e、g的直线作垂线,将其交点座标存入座标变数a中。即,求得通过点i和线A-A'直交的直线方程式,求它和通过点e、g的直线的交点,将此交点设为点a。另外,此交点在画面以外的时候,则将通过点e、g的直线和界定画面的方程式的交点作为点a。
同样,从用座标变数m表示的点m向通过用座标变数e、g表示的点e、g的直线作垂线,将其交点座标存入座标变数d中。即,求通过点m与线A-A'直交的直线方程式,求它和通过点e、g的直线的交点,将此交点设为点d。在此交点成为画面外的值的时候,则将通过点e、g的直线和界定画面的方程式的交点作为点d。
将以上求得的座标变数a的值存入座标变数TOP中,将座标变数d的值存入座标变数BOTTOM中之后,将控制转回原来的程序。
在标识检出程序中步骤S38调用的终止边缘位置检出程序也和这个开始边缘位置检出程序大体同样地进行。
即,先使终止检出特征位stop-flag为ON后,定义和线段f-h平行的直线方程式,例如求得线段f-h的方程式y=aspx+bsp。让此直线穿过终止码粗条13A这样来定义截距bsp。因而得到了穿过终止码粗条13A的直线,设此直线和界定画面的方程式的交点分别为B、B'(参阅图7),再从座标f、h的中点向线B-B'作垂线,定义其交点Bs。
然后,从点Bs在此直线B-B'顺着向B点方向观察数据时,检查边缘存在与否。如检出了边缘,将此检出座标存入座标变数j。即,把检出座标设为点j。在未检出边缘时,则将此线B-B'和界定画面的方程式的交点,即点B作为点j。
这次从点Bs在上述线B-B'上顺着向B'点方向观察数据时,检查边缘存在与否。如检出了边缘,将该检出座标存入座标变数k。即,以检出座标为点k。如未出边缘时,则将此线B-B'和界定画面的方程式的交点,即点B'作为点K。
从用座标变数j表示的点j向通过用座标变数f,h表示的点f、h的直线作垂线,将其交点的座标存入座标变数b中。即,求通过点j和线B-B'直交的直线的方程式,求得它和通过点f、h的直线的交点,以这交点为点b。当此交点成为画面外的值时,将通过点f、h的直线和界定画面的方程式的交点作为点b。
同样,从用座标变数k表示的点k向通过用座标变数f、h表示的点f、h的直线作垂线,将此交点的座标存入座标变数c。即,求通过点k和线B-B'直交的直线的方程式,将它和通过点f、h的直线的交点求出,以此交点作为点c。当此交点成为画面外的值时,则以通过点f、h的直线与界定画面的方程式的交点为点c。
将以上求得的座标变数b的值存入座标变数TOP中,将座标变数C的值存入座标变数BOTTOM中之后,将控制回到原来的程序。
下面,参照用于图8的行扫描场合的场合求标识的斜率的说明图,说明上述标识检出程序中步骤S3E所调用的求标识斜率的程序。在该图中表示了用行扫描选择开始码12为基准的场合的例子。
即,先判断是行扫描还是列扫描。在行扫描的场合,先把座标变数BOTTOM的x座标值被座标变数BOTTOM的y座标值减去座标值减去座标变数TOP的y座标值所得之差去除,然后把座标变数TOP的x座标值被座标变数BOTTOM的y座标值减去座标变数TOP的y座标值后的差值去除,将此二个商的差存入斜率变数SLOPE。随后,将座标变数BOTTOM的y座标值和座标变数TOP的x座标相乘的结果被座标变数BOTTOM的y座标值减去座标变数TOP的y座标值后的差值去除,再将座标变数BOTTOM的x座标和座标变数TOP的y座标相乘的结果被座标变数BOTTOM的y座标值减去座标变数TOP的y座标的值后的差值去除,将此二个商之差存入截距变数intercept中。
在列扫描的场合,先将座标变数BOTTOM的y座标值被座标变数BOTTOM的x座标值减去座标变数TOP的x座标值后的差值去除,再将座标变数TOP的y座标值被座标变数BOTTOM的x座标值减去座标变数TOP的x座标值后的差值去除,将此二个商之差存入斜率变数SLOPE中。其次,将座标变数BOTTOM的x座标和座标变数TOP的y座标相乘的被座标变数BOTTOM的x座标值减去座标变数TOP的x座标值后的差值去除,再将座标变数BOTTOM的y座标和座标变数TOP的x座标相乘的结果被座标变数BOTTOM的x座标值减去座标变数TOP的x座标后的差值去除,将此二个商数之差存入截距变数intercept中。
由此,检出了标识的有无,和标识位置信息,即算出了用于从帧存储器62抽出和标识平行的图形数据的抽出范围(变数TOP及BOTTOM)和标识斜率(变数SLOPE)。
下面,说明关于在上述步骤S3F实行的、判断标识位置、将标识位置表示在标识位置表示器65上的方法。
先用图9到图13来说明关于判断标识位置的方法。
图9是标识在右边溢出的场合。这是考虑为用座标变数a及d表示的点a、点d已被定义,而座标变数b及c没有被定义的场合。在此场合中,先设想一条通过用座标变数a、d表示的点a、点d的直线,在此直线点a引一根在标识方向的直线,以和帧存储器62的边界相交的点为a'。关于点d也同样求得和帧存储器62的边界相交的点d'。根据在帧存储器62的边界上何处生成2交点,由以下定义标识越出方向。
情况(1) 在帧存储器62的边界直线: 定义为在(
O,O)-(x-O)上生成2个交 上部越出
点时
情况(2) 在帧存储器62的边界直线: 定义为在右
边(x,O)-(x,y)上生成2个 边越出
交点时
情况(3) 在帧存储器62的边界直线: 定义为在下
(O,y)-(x,y)上生成2个 部越出
交点时
情况(4) 在帧存储器62的边界直线: 定义为在左
(O,O)-(O,y)上生成2个交 边越出
点时
情况(5) 在帧存储器62的边界直线: 定义为在右
(O,O)-(x,O)上生成1个交 上部越出
点,在帧存储器62的边界直线(x,
O)-(x,y)上生成1个交点时
情况(6) 在边界直线(x,O)-, 定义在右下
(x,y)上: 部越出
生成1个交点,在边界直线(O,y)
-(x,y)上生成1个交点时
情况(7) 在边界直线(O,y)- 定义为在左
(x,y)上: 下部越出
生成1-交点,在边界直线(O,O)
-(O,y)上生成1个交点时
情况(8) 在边界直线(O,O)- 定义为在左
(O,y)上: 上部越出
生成1个交点,在边界直线(O,O)
-(x,O)上生成1个交点时
因而,图9的例子因为属于上述情况(2),可以判断为标识在右边越出。
图10是标识在右上部越出的场合。即,如该图示定义了座标变数a及d,不能定义座标变数b及c。和图9例子同样地考虑,属情况(5),可以判断为标识在右上部溢出。
图11是标识在下部越出的场合。但是,如该图示是座标变数a、d、b、c全都被定义了的场合。这种场合,在用4个座标变数表示的4个点中因哪一个点和帧存储器62的边界直线直接相接触而可以和图例子同样地来判断。
这个场合,如前所示,在从As点顺线A-A'方向观察数据时,因为不能检出边缘,就以线A-A'和帧存储器62的边界直线相交的点A'作为点m,从用座标变数m表示的点m向通过用座标变数e、g表示的点e、g的直线作垂线时,其交点成为画面外的点d”。因而,座标变数d变成通过点e、g的直线和边界直线的交点。
图12是标识在右下越出的场合。但是,如该图所示是座标变数b及c不能定义,座标变数a及d能定义,但用座标变数d表示的点d和帧存储器62的边界直线相接的场合。此场合也是延伸迄今为止的议论可以判断的事。
图13是标识越出情况复杂的场合。即,如图所示的座标变数a、d、b、c全都定义了,可是用4个座标变数表示的4个点中3个点是和帧存储器62的边界直线直接的场合。这种场合也可能延伸迄今为止的议论来判断。这种复杂越出场合用在后面要详述的标识位置表示器65的构成次序也可能向操作者告知越出方向。
下面,说明关于标识位置表示器65的表示方法。
图14是标识位置表示器65的例子。如该图,标识位置表示器65由铸模孔状安排的5个发光二极管(LED)所构成。该图所示为5个LED全部点亮(在图中表示灯点亮用影线,下同)。
参照图15A~图15I,在下面说明使用这样5个LED的标识位置表示器65的动作。这些图分别将标识相对于帧存储器62的位置和当时标识位置表示器65的5个LED的点亮状态对应起来表示的。
即,解码处理回路63,如图15A所示,判断标识位置在帧存储器62的中央时,也即像图7那样座标变数a、d、b、c全都被定义,用4个座标变数表示的4个点全都和帧存储器62的边界直线不相接触时,标识位置表示器65的5个LED中像该图那样只点亮中间那个LED。
如图15B所示标识被判断为在帧存储器62的右上方越出(实际上右上越出的部分在帧存储器62上是见不到的,在该图上为了表示怎样越出的而画了标识全体。以下也是这样)的时候(上述情况(5),上述5个LED中点亮右上角的LED。
如图15C所示,标识被判断为在帧存储器62的左上方越出时(上述情况98),上述5个LED中点亮左上角的LED。
如图15D所示,标识被判断为在帧存储器62的左下方越出时(上述情况(7)),上述5个LED中点亮左下角的LED。
如图15E所示,标识被判断为在帧存储器62的右下方越出时(上述情况(6),上述5个LED中点亮右下角的LED。
如图15F所示,标识被判断为在帧存储器62的上方越出时(上述情况(1)),上述5个LED中点亮上部二个LED。
如图15G所示,标识被判断为在帧存储器62的右方越出时(上述情况(2)),上述5个LED中点亮右边2个LED。
如图15H所示,标识被判断为在帧存储器62的左方越出时(上述情况(4)),上述5个LED中点亮左边2个LED。
最后,如图15I所示,标识被判断为在帧存储器62的下方越出时(上述情况(3)),上述5个LED中点亮下边的2个LED。
此外,标识在帧存储器62中不存在时,哪个LED也不点亮。
这样,解码处理回路63的越出方向判断部63B根据位置检出部63A判断标识检出处理的结果,基于这个判断结果,显示控制部63C控制标识位置表示器65表示出标识的位置,由此操作者可以确认条形码记号1没有全部进入摄像机2的视野内呢,在右边越出了呢,在左边越出了呢等等,没有个人的差别,就可将含有标识1的平片等移动到适当的位置上。
还有,在本说明中标识位置表示器65是由5个LED构成的,但用如图16A所示那样9个LED也可能有同样的功能,使用时可以表示更精细标识位置信息。例如,如图13那种复杂溢出情况时,可以如图16B那样表示告知操作者。不言而喻,使用5个,9个以外数目的LED也可能构成标识位置表示器65是可以理解的。
图17是表示标识位置表示器65的另外的例子,作为标识位置表示器65使用了7段LED数字显示元件,即,如图那样是可以表示“0”~“9”的数字的元件。
使用这样元件的场合,如示于图18A~18I,能表示种种状态。例如,标识在帧存储器62中央位置时,LED数字显示元件中点亮中央一段LED(图18A),标识在帧存储器62右上方越出时(上述情况(5))LED数字显示元件中点亮右上方2个LED(图18B)。以下同样,有图18C-图18I各种-情况。
如此,使用LED数字显示元件也可能构成标识位置表示器65。此场合,LED数字显示元件没表示条形码记号读取装置中差错信息用的表示部,并作用于此途的元件也是可以的。
图19是标识位置表示器65的另外的例子,作为标识位置表示器65,是使用了由液晶显示器件(LCD)可以表示字符的器件的场合。例如,标识在帧存储器62中央位置时,表示为“标识:中央位置”,标识在帧存储器62的右上方越出时,表示为“标识:上方位置”。标识位置表示器65使用LCD要比使用LED价格高,但其表示可能对操作者容易理解。
图20是表示标识位置表示器65的其它例子的图,作为标识位置表示器65的是将16个特殊的LED(8个长方形型的LED65A1~65A8和8个箭头型LED65B1~65B8)按如图所示配置而成。
以下说明使用这样的16个LED的标识位置表示器65的动作。
即,通过表示在图21A,标识位于帧存储器62中央时16个LED中点亮中央的8个长方形LED65A1~65A8。
标识在帧存储器62的右上越出时(上述情况(5)),如图21B所示,16个LED箭头表示为左下,点亮3个LED65A2,65A6,65B6。
标识在帧存储器62的左上越出时(上述情况(8)),如图21C所示,16个LED中箭头表示为右下,点亮3个LED65A8,65A4,65B4。
标识在帧存储器62的左下越出时(上述情况(7)),如图21D所示,16个LED中箭头表示为右上,点亮3个LED65A6,65A2,65B2。
标识在帧存储器62的右下越出时(上述情况(6)),如图21E所示,16个LED中箭头表示为左上,点亮3个LED65A2,65A6,65B6。
标识在帧存储器62的左上越出时(上述情况(8)),如图21C所示,16个LED中箭头表示为右下,点亮3个LED65A8,65A4,65B4。
标识在帧存储器62的左下越出时(上述情况(7)),如图21D所示,16个LED中箭头表示为右上,点亮3个LED65A6,65A2,65B2。
标识在帧存储器62的右下越出时(上述情况(6)),如图21E所示,16个LED中箭头表示为左上,点亮3个LED65A4,65A8,65B8。
标识在帧存储器62的上方越出时(上述情况(1)),如图21F所示,16个LED中箭头表示为下,点亮3个LED65A1,65A5,6下B5。
标识在帧存储器62的右方越出时(上述情况(2)),如图21G表示,16个LED中箭头表示为左,点亮3个LED65A3,65A7,65B7。
标识在帧存储器62的左方越出时(上述情况(4)),如图21H所示,16个LED中箭头表示为右,点亮3个LED65A7,65A3,65B3。
标识在帧存储器62的下方越出时(上述情况(3)),如图21I所示,16个LED中箭头表示为上,点亮3个LED65A5,65A1,65B1。
此外,标识在帧存储器62中不存在时,哪个LED也不点亮。
本例中,标识在任一方都不越出,在标识位置表示器65上表示为向任一方向动都可以。
如此,作为标识位置表示器65,可以取各种构成。
如以上说明,数据处理回路63判断标识检出处理的结果,将标识位置表示在标识位置表示器65上,由此操作者可以确认定形码记号没有全部进入摄像机机2的视野内呢,在右边越出呢,在左边越出呢等等,没有个人差别,可以将含有条形码记号1的平片或商品等移动到适当的位置上。
作为数据处理回路63,可能由CPU,程序存储器,工作存储器和高速运算回路组成。此外,作为CPU,如果使用非常高速的元件,例如DSP(数字信号处理器)的话,则DSP可能兼有CPU和高速运算回路的功能。
作为摄像机2,使用以二元CCD(电荷耦合器件)和摄像管为代表的面传感器是一般的,而作为对条形码记号摄像的方法,不限定摄像机之类,例如组合一元摄像元件和一元扫描机构,组合光电检出器和二元扫描机构也可以的。
在以上说明中,用了条形码记号PDF 714格式的条形码,但并不限定于此,CODE 49,CODE 16K,DATA CODE等其他二元条形码和以往的JAN,ITF等一元条形码也可以用。例如,在二元条形码DATA CODE中,从检出L字型的外廓来检出标识,从和帧存储器的位置关系可以判断标识的位置。还有,关于以往的一元条形码,例如特开平2-23483号公报中所公开的,多线检出平行的条来检出标识,从和帧存储器的位置关系可判断标识位置。
在以上说明中,图5的步骤S3,S4在标识不存在的场合,再次将控制移到步骤S1,调用前处理程序,在标识存在的场合,调用手颤检出程序(步骤S5),即说明即使上下左右越出,标识也是存在的话,就将控制移到步骤S5。这在有差错订正功能的PDF 714和DATA CODE之类二元条形码记号,即使标识在上下左右越出了,仍有可以读取的场合存在,这个场合仍不能读取时(通常,由差错信息输出和读取结束但蜂鸣器不叫等来判断),操作者看标识位置表示器65得知标识在上下左右越出的情况,移动含有条形码记号1的平片或商品等到不越出的位置。即,标识位置表示器65用于不能读取条形码记号时确认标识位置。
另一方面,在图5的步骤S3,S4中,在上下左右任一边越出时即使标识存在,也有可能再次移动控制到步骤S1去。这时,操作者一边确认标识位置表示器65,一边将含有条形码记号1的平片或商品等移到没有越出的位置上。移到不越出的位置(图15A那样5个LED中点亮中央的LED的场合,即如图7那样座标变数a、d、b、c全部被定义,用4个座标变数表示的4个点全部不与帧存储器62的边界直线相接的位置)后,自动地调用手颤检出程序(步骤S5)。就是,图22那样的流程图。因此,可以确实地读取条形码记号1的信息。
还有,考虑图5的步骤S3,S4标识越出的情况,越出很大时,再次将控制移到步骤S1,只有小的越出时,才可能移控制到步骤S5去。例如,如图7那样座标变数a、d、b、c全被定义了,用4个座标变数表示的4个点全都与帧存储器62的边界直线不相接的场合,和图11那样至多2个点和帧存储器62的边界直线相接的场合(图11是只相接1个点的例子),控制被移到步骤S5,图10那样座标变数a、d、b、c全部来被定义的场合,再将控制移到步骤S1。
另外,对应于上述解码盒6的横置/纵置,标识位置表示器65有适当的显示,设转换开关等也可以,根据何种检出手段自动地检出解码盒6的设置状态进行转换也是可以的。
图23中表示了本发明的第2实施例。和第1实施例基本相同,只是标识位置表示器65的位置不同。就是,在第1实施例中说明的是标识位置表示器65附在解码盒6上的场合,而本实施例中,标识位置表示器65设在摄像机架5的底板4上。
这样构成的话,操作者把含有条形码记号1的平片等放到底板4上去时,可以一边看此标识位置表示器65,一边进行操作。
图24中表示了本发明的第3实施例。和第1实施例基本相同,只标识位置表示器65不同,就是,在本实施例的中把标识位置表示器65放在摄像机的前端上。
由于这种构成,操作者在把含有条形码记号1的平片等放上底板4时,就可以一边看装在底板4上方摄像机2上的标识位置表示器65,一边操作。
在此种手持型式中,由于读取部将条形码记号完全罩住,因此操作者完全不知道条形码记号1怎样倾斜,向何方越出,所以在手持型式装置的背上装标识位置表示器65让操作者知道条形码记号1的位置说来是非常重要的。
还有,在手持式型式中设开始读取开关21这种有通知手持扫描器20的解码处理回路63开始读取的功能是有用的。操作者观察标识位置表示器65,当条形码记号1在帧存储器62的中央位置时,按此开始读取开关21。由此数据处理回路63开始读。这场合的数据处理回路63按照图26那样的流程图进行动作。
这样一来,条形码记号1在帧存储器62的中央位置,即能确实地读取时,让数据处理回路63作读取动作。
另外,解码盒6内藏于手持扫描器20中也可以,像第1实施例那样和手持扫描器20分开也可以。
在以上第1至第4实施例,表示用越出方向判断部63B判断的条形码记号1的越出,但应用基于此越出方向判断结果面自动地将条形码记号1移到适当的位置上也是可能的。
如以上所详述的,根据本发明,提供一种没有个人差异、可以判断记录在平片或商品等上面的条形码记号是否确实进入摄像机的视野内的二元条形码记号读取装置。