专利名称:条形码读取装置以及计算机程序制品的制作方法
技术领域:
本发明涉及条形码读取装置以及计算机程序制品。
背景技术:
目前已知有使用激光来扫描一维条形码(barcode)的条形码读取装置。该条形码读取装置在横向方向摆动射出激光,接收由条形码反射的反射光得到图像数据,使用预定阈值对该图像数据进行解码,由此来扫描条形码。该图像数据具有将对应于条形码的图像得到的黑条(black bar)的数据宽度和白空(white space)的数据宽度顺次(交替)排列而得的数据结构。此外,所谓预定阈值是用于判定黑条和白空的数据宽度(粗细)的阈值。
根据条形码读取装置的种类、光学系统(透镜的倍率)、条的粗细等,预先设定在图像数据编码中使用的阈值。此外,还已知有通过来自外部的设定输入来使图像数据编码中使用的阈值可变的条形码读取装置(例如,参照日本特开平6-290294号公报)。但是,在现有的条形码读取装置中,有时在激光的摆动宽度(照射宽度)的两端部分反射光不充足,得到的图像数据不稳定,因此存在有可能无法准确地取得黑条和白空的比率这样的特性。因此,若在激光的摆动宽度的两端部分扫描条形码,则有可能黑条和白空的比率看起来不准,解码这样的图像数据的结果是可能误读。作为避免误读的方法,想到了在现有的条形码读取装置中严格调整阈值的方法。所谓严格调整阈值是指将图像数据相对于阈值的误差的允许度调整得较低。但是,在单纯地严格调整阈值时,针对黑条和白空的比率正确的激光摆动宽度中央部分的扫描数据的读取也变得严格,因此,在相同宽度的黑条或白空的印刷比率即使略微存在误差时、或离开读取距离时等情况下,有可能无法读取。
发明内容
本发明的课题是提高条形码读取的正确性以及响应性。本发明的条形码读取装置,其具备扫描部,其通过射出激光并接收反射光来扫描条形码,从而取得图像数据;判定部,其将由所述扫描部取得的图像数据中、所述激光的摆动宽度的端部分判定为数据不稳定范围,将不是该数据不稳定范围的部分判定为数据稳定范围;以及解码部,其对于由所述判定部判定出的数据不稳定范围,将图像数据相对于阈值的误差的允许度设定得较低,并使用该阈值和允许度来对该数据不稳定范围进行解码,对于由所述判定部判定出的数据稳定范围,将图像数据相对于所述阈值的误差的允许度设定得较高,并使用该阈值和允许度来对该数据稳定范围进行解码,其中,所述阈值用于判定所述条形码的黑条和白空的数据宽度。本发明的计算机程序产品,其可被用于条形码读取装置的计算机读取,该计算机程序产品对执行计算机处理的命令进行编码,其中,所述计算机处理包括以下步骤扫描步骤,通过射出激光并接收反射光来扫描条形码,从而取得图像数据;判定步骤,将通过所述扫描步骤取得的图像数据中、所述激光的摆动宽度的端部分判定为数据不稳定范围,将不是该数据不稳定范围的部分判定为数据稳定范围;以及解码步骤,对于通过所述判定步骤判定出的数据不稳定范围,将图像数据相对于阈值的误差的允许度设定得较低,并使用该阈值和允许度来对该数据不稳定范围进行解码,对于通过所述判定部判定出的数据稳定范围,将图像数据相对于所述阈值的误差的允许度设定得较高,并使用该阈值和允许度来对该数据稳定范围进行解码,其中,所述阈值用于判定所述条形码的黑条和白空的数据宽度。根据本发明,能够提高条形码读取的正确性以及响应性。
图I是表示本发明实施方式的条形码读取装置的结构的框图。图2是表示扫描部的结构的框图。
图3是表示扫描处理的流程图。图4是表示扫描处理的初始化处理的流程图。图5是表示关于条形码的全部图像数据宽度、左端的数据不稳定范围、数据不稳定以及稳定范围、条形码开始位置的示意图。图6是表示扫描处理的条形码开始位置解析处理的流程图。图7是表示关于条形码的I字符的数据宽度、字符开始位置、从左端到字符开始位置为止的数据宽度的示意图。图8是表示扫描处理的数据不稳定范围判定处理的流程图。图9是表不扫描处理的4值化处理的流程图。
具体实施例方式以下,参照附图对本发明涉及的实施方式进行详细说明。此外,本发明并不局限于图示的例子。首先,参照图I和图2对本实施方式的装置结构进行说明。图I是表示本实施方式的条形码读取装置10的结构的框图。图2是表示扫描部18的结构的框图。如图I所示,本实施方式的条形码读取装置10是读取并管理作为读取对象物的一维条形码的手持终端。条形码读取装置10例如在仓库、小商店店铺等中使用。条形码例如是对摆放于仓库或店铺等的商品附加的条形码。条形码读取装置10具备CPU(中央处理器)11、操作部12、RAM(随机存取存储器)13、显示部14、R0M (只读存储器)15、无线通信部16、闪速存储器(Flash Memory) 17、扫描部18、报知部19、电源部20。除电源部20的条形码读取装置10的各部分经总线21相互连接。CPUll控制条形码读取装置10的各部分。CPUll从R0M15读出各种程序中指定的程序并在RAM13中展开,通过展开后的程序间的协作来执行各种处理。CPUll按照扫描程序151将扫描部18取得到的图像数据中激光的摆动宽度的两端部分判定为数据不稳定范围,将不是该数据不稳定范围的中央部分判定为数据稳定范围。然后,CPUll对于所述判定出的数据不稳定范围,将图像数据相对于阈值的误差的允许度设定得较低,使用该阈值和允许度来对该数据不稳定范围进行解码,该阈值用于判定所述条形码的黑条和白空的数据宽度。然后,CPUll对于所述判定出的数据稳定范围,将图像数据相对于所述阈值的误差的允许度设定得较高,使用该阈值和允许度来对该数据稳定范围进行解码。操作部12具备由文字数据键等各种键构成的键群,向CPUll输出来自用户的各键的按下输入所对应的操作信息。操作部12至少具有使用扫描部18的条形码扫描触发键。RAM13是易失性半导体存储器,具有用于存储各种数据和各种程序的工作区域。显不部14 是具备 LCD (Liquid Crystal Display :液晶显不器)、EL (ElectroLuminescent :场致发光)显示器等显示面板的显示部,根据从CPUll输入的显示信息在显示面板上进行各种显示。R0M15是用于存储各种数据和各种程序的读出专用的半导体存储器。R0M15中存 储扫描程序151。无线通信部16是便携电话通信方式的无线通信部。无线通信部16具备天线、调制部、解调部、信号处理部等,与基站进行无线通信。无线通信部16通过信号处理部对要发送的信息的信号进行信号处理,通过调制部调制、从天线以无线电波形式发送到基站。该基站经通信网络与通信目标设备连接、此外,无线通信部16还通过解调部对通过天线从基站接收到的无线电波的接收信号进行解调,由信号处理部进行信号处理得到接收信息。这样,无线通信部16经由基站与通信目标设备进行通信。此外,无线通信部16还可以为无线LAN (Local Area Network :局域网)方式的无线通信部,经接入点与通信目标设备进行通 目。闪速存储器17是可读写地存储信息的非易失性半导体存储器。扫描部18是按照CPUll的控制信号对一维条形码进行扫描来得到条形码的图像数据,并将该图像数据输出到CPUll的激光扫描部。如图2所示,扫描部18具备发光部181、振动镜(vibration mirror) 182、受光部183、增益电路184、二值化电路185。发光部181发光射出激光L。振动镜182按照CPUll的控制信号通过马达(省略图示)等振动,由此对从发光部181射出的激光L进行反射从而扩展到左右。受光部183是接收由振动镜182反射后的激光L实际照到读取对象物(条形码)后的反射光并将其变换成电信号的模块。增益电路184对由受光部183受光得到的反射光的电信号进行放大从而使波形最佳化。二值化电路185将由增益电路184最佳化后的电信号变换成作为条形码的图像数据的二值数据并将其输出到CPU11。CPUll对从二值化电路185输入的图像数据进行解码(decode)。报知部19是根据CPUll的控制输出蜂鸣音的报知部。将报知部19控制成在条形码扫描成功时输出蜂鸣音。电源部20是锂离子电池等二次电池,向条形码读取装置10的各部分进行电源供
5 口 ο接下来,参照图3 图9对条形码读取装置10的动作进行说明。图3是表示扫描处理的流程图。图4是表示扫描处理的初始化处理的流程图。图5是表示关于条形码B的全部图像数据宽度T、数据不稳定范围Tl、数据不稳定和稳定范围T2、条形码开始位置Posl的示意图。图6是表示扫描处理的条形码开始位置解析处理的流程图。图7是表示关于条形码B的I字符(character)的数据宽度Char、字符开始位置Pos、从左端到字符开始位置Pos为止的数据宽度Sum的示意图。图8是表示扫描处理的数据不稳定范围判定处理的流程图。图9是表示扫描处理的4值化处理的流程图。由条形码读取装置10执行的扫描处理是扫描读取对象条形码来读取信息的处理。预先由用户调整条形码读取装置10的位置以及姿态,使得读取对象条形码与扫描部18的激光出射方向对准。更具体来讲,使扫描部18的激光的摆动宽度方向与条形码长度方向对准。这里,以读取Codel28条形码为例进行说明,Codel28条形码是由6个元素(element) (3个黑条和3个白空)构成在条形码中含有的各字符(character)的规格(standard)。但是,并不局限于此,还可以是读取由Codel28以外的6个元素构成在条形码中含有的各字符的规格的条形码的结构、或者是由6以外的个数的元素构成各字符的规格的条形码的结构。 在条形码读取装置10中以用户按下操作部12的条形码扫描触发按钮为触发条件,CPUll通过从R0M15读出并在RAM13中适当展开后的扫描程序151之间的协作来执行扫描处理。CPUll在开始扫描处理的同时开始计时器的计数。首先,CPUll根据计时器的计数值来判定从扫描处理开始是否经过预先设定的规定时间而超时(步骤Sll)。该规定时间是用于结束扫描处理的超时时间。当超时时(步骤Sll “是”),结束扫描处理。当没有超时时(步骤Sll “否”),CPUll完成从扫描部18取得条形码的图像数据(步骤S12)。设图像数据具有从条形码图像的左侧向右侧排列的黑条和白空的各数据宽度
的数组(array)Dat [O]、Dat [I] > Dat [2].......例如,条形码的左侧横向的白空的数据宽
度为数组Dat [O],条形码的最左的黑条的数据宽度为数组Dat [I]。然后,CPUll对在步骤S12取得的条形码的图像数据进行初始化处理(步骤S13)。这里,参照图4和图5对步骤S13的初始化处理进行说明。首先,CPUll对图像数据的数据宽度的变量T设定0,对循环计数器i设定O (步骤S131)。然后,CPUll判定循环计数器i是否小于在步骤S12取得的图像数据的黑条和白空的个数DatNum(步骤S132)。当i < DatNum时(步骤S132 ;“是”),CPUll将数组Dat [i]与变量T相加算出新的变量T,并将循环计数器i增加I (步骤S133),转移到步骤S132。当i彡DatNum时(步骤S132 ;“否”),CPUll将预先设定的常数a与变量T相乘,算出数据不稳定范围(的数据宽度)T1 (步骤S134)。然后,CPUll将使用了预先设定的常数b的(1-b)与变量T相乘,算出数据不稳定和稳定范围(的数据宽度)T2(步骤S135),结束初始化处理。如图5所示,在步骤S134的时刻,变量T为在步骤S12取得的图像数据的全部图像数据宽度Τ。设条形码B为步骤S12中的图像数据读取对象条形码。此外,激光的摆动宽度的轨迹LI是从扫描部18射出并照射到含有条形码B的纸上的激光的摆动宽度的轨迹。使轨迹LI横切条形码B的全部黑条。此外,在步骤S12中取得与轨迹LI对应长度的图像数据。数据不稳定范围Tl是在轨迹LI的左端部分解码不稳定的范围的数据宽度(dataWidth)。数据不稳定和稳定范围T2是从全部图像数据长T中除去在轨迹LI的右端部分解码不稳定的范围而得的范围的数据宽度。即,数据不稳定和稳定范围T2是轨迹LI上的数据不稳定范围Tl和数据稳定的数据稳定范围的长度。此外,轨迹LI的右端部分的数据不稳定范围为TXa的值。常数a、b分别为表示数据不稳定范围相对于激光摆动宽度的轨迹LI整体的比例的值、为O I. 00之间的值。此外,常数a、b为根据扫描部18 (条形码读取装置10)的光学特性和激光摆动的速度特性而决定的值、是预先存储(包含)在扫描程序151中的值。所谓激光摆动的速度特性,是在扫描部18的激光摆动宽度中条形码上的激光摆动的速度不为固定的特性。更具体地讲,例如激光从左向右摆动时,条形码上的激光摆动的速度以加速—稳定一减速的方式变化。因此,在激光摆动宽度的两端,图像数据的黑条和白空的数据宽度的比率误差有可能变大。返回图3,在步骤S13的执行以后,CPUll执行条形码开始位置解析处理(步骤S14)。这里,参照6对步骤S14的条形码开始位置解析处理进行说明。 首先,CPUll将条形码开始位置的变量Posl设定为I (步骤S141)。然后,CPUll对变量Sum设定数组Dat [O](步骤S142)。变量Sum是图像数据中从左端开始到变量Posl的黑条或白空的一个左黑条或白空为止的宽度的值的变量。然后,CPUll判定变量Posl+1是否小于个数DatNum(步骤S143)。在步骤S143中,变量Posl+Ι不超过图像数据条形码的右端则判定为正常,同样地超过图像数据条形码的右端则判定为异常。当变量Posl+1 < DatNum时(步骤S143 ;“是”),为正常,CPUll判定数组Dat [Posl+1] XlO是否小于数组Dat [Posl-1](步骤S144)。在步骤S144中,判断数组Dat [Posl+Ι]的10倍的值是否小于与其相同颜色左侧相邻的数组Dat [Posl-Ι],该相同颜色左侧相邻的数组Dat[Posl-l]是否是图像数据条形码的左侧相邻的较大白空部分。当Dat[Posl+l] XlO 彡 Dat[Posl_l]时(步骤 S144 否”),数组 Dat [Posl-1]不是较大白空部分,CPUll将数组Dat[Posl]与变量Sum相加计算出新的变量Sum(步骤S145)。然后,CPUll使变量Posl增加I (步骤S146),转移到步骤S143。当Dat [Posl+1] XlO < Dat [Posl-Ι]时(步骤 S144 是”),数组 Dat [Posl-1]是较大白空部分,CPUlI对字符开始位置的变量Pos设定作为条形码开始位置的变量Posl (步骤S147)。如图7所示,变量Pos为在后述的数据不稳定范围判定处理中使从条形码开始位置Posl开始向右侧移动的字符开始位置的变量。然后,CPUll设定表示检测出条形码开始位置的旨意(步骤S148),结束条形码开始位置解析处理。当Posl+Ι彡DatNum时(步骤S143 ;“否”),为异常,CPUll设定表示未检测出条形码开始位置的旨意(步骤S149),结束条形码开始位置解析处理。返回图3,在步骤S14的执行以后,CPUll根据步骤S14(步骤S148、S149)中的设定结果来判定是否检测出条形码开始位置(步骤S15)。当检测出条形码开始位置时(步骤S15 ;“是”),CPUll判定变量Pos+6的值是否小于个数DatNum(步骤S16)。在步骤S16中进行加法运算的6是条形码的I字符量的黑条和白空的数量。当Pos+6 < DatNum时(步骤S16 ;“是”),CPUll执行数据不稳定范围判定处理(步骤S17)。这里,参照图8来说明步骤S17的数据不稳定范围判定处理。
首先,CPUll将数组 Dat[Pos]、Dat[Pos+l]、Dat[Pos+2]、Dat[Pos+3]、Dat[Pos+4],Dat[Pos+5]相加,计算出I字符量的图像数据的数据宽度的变量Char(步骤S171)。然后,CPUll判定变量Sum是否小于数据不稳定范围Tl (步骤S172)。如图7所示,变量Sum是图像数据中从左端开始到变量Pos的黑条或白空的左侧相邻的黑条或白空为止的数据宽度的变量。在步骤S172中,判定不包含变量Pos字符的数据宽度的变量Sum是否在轨迹LI左侧的数据不稳定范围Tl内。当Sum彡Tl时(步骤S172 否”),判定为变量Sum在数据不稳定范围Tl外。然后,CPUll将在步骤S171中计算出的变量Char与变量Sum相加计算出新的变量Sum(步骤S173)。然后,CPUll判定变量Sum是否大于数据不稳定和稳定范围T2 (步骤S174)。在步骤S174中,判定包含变量Pos字符的数据宽度的变量Sum是否在轨迹LI右侧的数据不稳定范围内。当T2彡Sum时(步骤S174 ;“否”),变量Sum在右侧的数据不稳定范围外,CPUll 判定为当前的变量Pos的字符位置为数据不稳定范围外(数据稳定范围内)(步骤S175),结束数据不稳定范围判定处理。当Sum < Tl时(步骤S172 是”),变量Sum在数据不稳定范围Tl内,CPUll将在步骤S171中计算出的变量Char与变量Sum相加计算出新的变量Sum(步骤S176)。进而,CPUll将当前的变量Pos的字符位置判定为数据不稳定范围内(步骤S177),结束数据不稳定范围判定处理。T2 < Sum时(步骤S174 ;“是”),变量Sum在右侧的数据不稳定范围内,转移到步骤S177。在数据不稳定范围判定处理中,如果变量Pos所对应的字符即使部分包含在数据不稳定范围Tl或者右侧的数据不稳定范围中,也判定为该字符在数据不稳定范围内。返回图3,在步骤S17的执行以后,CPUll根据步骤S17(步骤S175、S176)的判定结果,判定图像数据的I字符量(变量Pos所对应的变量Char的量的图像数据)是否在数据不稳定范围内(步骤S18)。当图像数据的I字符量不在数据不稳定范围内时(步骤S18 ;“否”),I字符量在轨迹LI的中央部分的数据稳定范围,CPUll对变量c设定O (步骤S19)。当图像数据的I字符量在数据不稳定范围内时(步骤S18 ;“是” ),CPUll对变量c设定O. 25 (步骤S20)。变量c是表示对于黑条和白空的比率误差允许到何种程度的参数。变量c越小越允许误差地进行图像数据的解析。即,变量c是与图像数据相对于阈值的误差的允许度相对应的变量,该阈值是用于判定图像数据的解码中黑条和白空的数据宽度的阈值。然后,CPUll进行4值化判定处理(步骤S21)。这里,参照图9来说明步骤S21的4值化判定处理。在Codel28的规格中,黑条和白空的数据宽度被设定4种值(粗细)。4值化判定处理是在I字符量的图像数据中使用阈值和变量c来判定3个黑条中各黑条和3个白空中各白空的数据宽度是4种值中哪一个的处理。首先,CPUll将变量Char除以11而得的值设定为变量M(步骤S211)。在Codel28的规格中,I字符量的图像数据的数据宽度为11模数(Ilmodules)为固定。在步骤S211中通过将I字符量的变量Char除以11 (模数),将I模数所对应的图像数据的数据宽度作为变量M计算出来。然后,CPUl I将变量M的O. 5倍的值设定为变量B05,将变量M的I. 5倍的值设定为变量B15,将变量M的2. 5倍的值设定为变量B25,将变量M的3. 5倍的值设定为变量B35,将变量M的4. 5倍的值设定为变量B45 (步骤S212)。变量B05、B15、B25、B35、B45依次是与I模数的O. 5、I. 5、2. 5、3. 5、4. 5倍对应的图像数据的数据宽度的变量。在4值化判定处理中,将变量洲5、815、825、835、845作为用于判定黑条和白空的数据宽度(4值化)的阈值来使用。然后,CPUll对循环计数器i设定变量Pos (步骤S213)。然后,CPUll判定循环计数器i是否小于变量Pos+6 (步骤S214)。当i < Pos+6时(步骤S214 ;“是”),CPUll判定数组Dat [i]是否小于变量B15 (步骤S215)。当Dat [i] < B15时(步骤S215 ;“是”),CPUll对循环计数器i所对应的黑条或白空的数据宽度的4值数组R[i]设定1(步骤S216)。然后,CPUll将从数组Dat [i]中减去变量B05而得的值设定为变量W1,将从变量B15中减去数组Dat[i]而得的值设定为变量W2(步骤S217)。变量Wl是数组Dat [i]与数组Dat [i]左侧的阈值(变量B05、B15、B25或 B35)之间的距离的变量。变量W2是数组Dat[i]右侧的阈值(变量B15、B25、B35或B45)与数组Dat [i]之间的距离的变量。当Dat[i]彡B15时(步骤S215 ;“否”),CPUll判定Dat [i]是否小于变量B25(步骤 S218)。当 Dat[i] <B25 时(步骤 S218 ;“是”),CPUll 对数组 R[i]设定 2(步骤 S219)。然后,CPUll将从数组Dat [i]中减去变量B15而得的值设定为变量W1,将从变量B25中减去数组Dat [i]而得的值设定为变量W2 (步骤S220)。当Dat[i]彡B25时(步骤S218 否”),CPUll判定数组Dat [i]是否小于变量B35(步骤 S221)。当 Dat[i] < B35 时(步骤 S221 ;“是”),CPUll 对数组 R[i]设定 3 (步骤S222)。然后,CPUll将从数组Dat [i]中减去变量B25而得的值设定为变量W1,将从变量B35中减去数组Dat [i]而得的值设定为变量W2 (步骤S223)。当Dat[i]彡 B35 时(步骤 S221 否”),CPUll 对数组 R[i]设定 4(步骤 S224)。然后,CPUll将从数组Dat [i]中减去变量B35而得的值设定为变量W1,将从变量B45中减去数组Dat [i]而得的值设定为W2 (步骤S225)。步骤S217、S220、S223、S225的执行以后,CPUll判定变量Wl是否小于将变量c与变量M相乘而得的值(步骤S226)。当Wl彡MXc时(步骤S226 ;“否”),变量Wl (数组Dat [i])在允许误差内,CPUll判定变量W2是否小于将变量c与变量M相乘而得的值(步骤 S227)。当W2彡MXc时(步骤S227 ;“否”),变量W2 (数组Dat [i])在允许误差内,CPUll使循环计数器i增加1(步骤S228),转移到步骤S214。当Wl < MXc时(步骤S226 ;“是”),CPUll设定表示变量Pos所对应的I字符的黑条和白空的4值化失败的旨意(步骤S229),结束4值化处理。当W2 < MXc时(步骤S227 ;“是”),转移到步骤S229。当变量W1、W2较小时,I值与2值的差、2值与3值的差等,原本应该为不同级别的数据宽度的差异小,比率变得不准确,误读的危险性变高,因此在步骤S229中设定表示4值化失败的旨意。当i彡Pos+6时(步骤S214 否”),CPUll设定表示变量Pos所对应的I字符的黑条和白空的4值化成功的旨意(步骤S230),结束4值化处理。返回图3,CPUll根据在步骤S21 (步骤S229、S230)的4值化处理的结果,判别变量Pos所对应的I字符的黑条和白空的4值化是否成功(步骤S22)。当4值化成功时(步骤S22 ;“是”),CPUll将在步骤S21的4值化判定处理中得到的字符的数组R[i]变换成字符码(步骤S23)。然后,CPUll判定在步骤S23中变换后的字符码是否是表示条形码右端的停止码(步骤S24)。当不是停止码时(步骤S24 ;“否”),CPUll使变量Pos增加6 (步骤S25),转移到步骤S15。当是停止码时(步骤S24 ;“是”),CPU11使用在步骤S23中变换后的字符码进行校验数位(check digit)等校验处理,根据其校验结果最终判定解码是否成功(步骤S26)。步骤S18 S26为一系列的解码处理。当解码失败时(步骤S26 ;“否”),CPUll等待从扫描部18输入下一图像数据(步骤S27),转移到步骤S11。当没有检测出条形码开始位置时(步骤S15 ;“否”),在Pos+6彡DatNum时(步骤S16 ;“否”),或者4值化失败时(步骤S22 ;“否”),转移到步骤S27。
当解码成功时(步骤S26 ;“是”),CPUll在显示部14中显示包含在步骤S23中得到的字符码的解码结果,并使报知部19输出蜂鸣音(步骤S28),结束扫描处理。在步骤S28中,解码结果例如存储在闪速存储器17中。以上,根据本实施方式,条形码读取装置10将由扫描部18取得的条形码图像数据中、激光摆动宽度的端部分判定为数据不稳定范围,将该数据不稳定范围以外的中央部分判定为数据稳定范围。然后,条形码读取装置10对于所述判定出的数据不稳定范围,将图像数据相对于阈值(变量洲5、815、825、835、845)的误差的允许度设定得较低(使变量c升高),使用该阈值和允许度对该数据不稳定范围进行解码,所述阈值用于判定所述条形码的黑条和白空的粗细。另外,条形码读取装置10对于所述判定出的数据稳定范围,将图像数据相对于所述阈值的误差的允许度设定得(设定为通常级别)较高(使变量c降低),使用该阈值和允许度对该数据稳定范围进行解码。因此,能够提高条形码的数据不稳定范围的读取准确性,并且能够提高条形码的数据稳定范围的读取响应性。另外,条形码读取装置10还将由扫描部18取得的图像数据中从左端开始预定的第一比例(变量a)的数据宽度、从右端开始预定的第二比例(变量b)的数据宽度判定为数据不稳定范围。因此,能够根据扫描部18的光学特定和激光摆动的速度特定来设定变量a、b,能够判定左端和右端的数据不稳定范围。此外,不仅可以设定为变量a =变量b,还可以设定为变量a古变量b。此外,条形码读取装置10对于由扫描部18取得的图像数据,将图像数据相对于条形码的I字符内的阈值的误差的允许度设定为相同值,将数据不稳定范围和数据稳定范围的边界上的字符的误差的允许度设定得较低。因此,即使在数据不稳定范围和数据稳定范围的边界上产生波动,也能够提高边界上的字符的读取准确性。在以上的说明中,公开了使用ROM作为本发明涉及程序的计算机可读取介质的例子,但并不局限于该例子。作为计算机可读取的其它介质,还可以应用闪速存储器等非易失性存储器、CD-ROM等可移动存储介质。另外,作为经由通信线路来提供本发明涉及的程序数据的介质,载波(传输波)也适用于本发明。
此外,上述实施方式中的描述是本发明涉及的条形码读取装置和程序的一个例子,并不局限于此。在上述实施方式中,设为条形码读取装置10是手持终端的结构,但并不局限于此。作为条形码读取装置10,还可以为使用与具有激光方式的扫描部的PDA (PersonalDigital Assistant :个人数字助理)、ECR(Electronic Cash Register :电子现金收入记录机)相连接的条形码读取装置等其它条形码读取装置的结构。此外,在上述实施方式中,将条形码的I字符内的误差的允许度设定为相同,将数据不稳定范围和数据稳定范围的边界上的字符的阈值所对应的误差的允许度设定得较低,但并不局限于此。例如,也可以为将数据不稳定范围和数据稳定范围的边界上的字符的阈值所对应的误差的允许度设定得较高的结构。此外,还可以为按条形码的元素(黑条和白空)来设定误差的允许度的结构。 此外,毋庸赘言,对于上述实施方式中的条形码读取装置10的各构成要素的细节结构和细节动作,在不脱离本发明精神的范围内可以进行适当变更。对本发明实施方式进行了说明,但本发明的范围并不局限于上述的实施方式,本发明的范围包括在权利要求书中记载的发明范围和其同等的范围。
权利要求
1.一种条形码读取装置,其特征在于,具备 扫描部,其通过射出激光并接收反射光来扫描条形码,从而取得图像数据; 判定部,其将由所述扫描部取得的图像数据中、所述激光的摆动宽度的端部分判定为数据不稳定范围,将不是该数据不稳定范围的部分判定为数据稳定范围;以及 解码部,其对于由所述判定部判定出的数据不稳定范围,将图像数据相对于阈值的误差的允许度设定得较低,并使用该阈值和允许度来对该数据不稳定范围进行解码,对于由所述判定部判定出的数据稳定范围,将图像数据相对于所述阈值的误差的允许度设定得较高,并使用该阈值和允许度来对该数据稳定范围进行解码,其中,所述阈值用于判定所述条形码的黑条和白空的数据宽度。
2.根据权利要求I所述的条形码读取装置,其特征在干, 所述判定部将由所述扫描部取得的图像数据中、从左端开始预定的第一比例的数据宽度、从右端开始预定的第二比例的数据宽度判定为所述数据不稳定范围。
3.根据权利要求I所述的条形码读取装置,其特征在干, 所述解码部对于由所述扫描部取得的图像数据,将所述条形码的I字符内的所述误差的允许度设定为相同值,将所述数据不稳定范围和所述数据稳定范围的边界上的字符的所述误差的允许度设定得较低。
4.一种计算机程序产品,其可被用于条形码读取装置的计算机读取,该计算机程序产品对执行计算机处理的命令进行编码,所述计算机程序产品的特征在干, 所述计算机处理包括以下步骤 扫描步骤,通过射出激光并接收反射光来扫描条形码,从而取得图像数据; 判定步骤,将通过所述扫描步骤取得的图像数据中、所述激光的摆动宽度的端部分判定为数据不稳定范围,将不是该数据不稳定范围的部分判定为数据稳定范围;以及 解码步骤,对于通过所述判定步骤判定出的数据不稳定范围,将图像数据相对于阈值的误差的允许度设定得较低,并使用该阈值和允许度来对该数据不稳定范围进行解码,对于通过所述判定部判定出的数据稳定范围,将图像数据相对于所述阈值的误差的允许度设定得较高,并使用该阈值和允许度来对该数据稳定范围进行解码,其中,所述阈值用于判定所述条形码的黑条和白空的数据宽度。
全文摘要
本发明提供一种条形码读取装置,其具备扫描部,其通过射出激光并接收反射光来扫描条形码,从而取得图像数据;判定部,其将由所述扫描部取得的图像数据中、所述激光的摆动宽度的端部分判定为数据不稳定范围,将不是该数据不稳定范围的部分判定为数据稳定范围;以及解码部,其对于由所述判定部判定出的数据不稳定范围,将图像数据相对于阈值的误差的允许度设定得较低,并使用该阈值和允许度来对该数据不稳定范围进行解码,对于由所述判定部判定出的数据稳定范围,将图像数据相对于所述阈值的误差的允许度设定得较高,并使用该阈值和允许度来对该数据稳定范围进行解码,其中,所述阈值用于判定所述条形码的黑条和白空的数据宽度。
文档编号G06K7/10GK102682262SQ20121002450
公开日2012年9月19日 申请日期2012年2月3日 优先权日2011年2月4日
发明者北川彻 申请人:卡西欧计算机株式会社