JP2000215268A - バ―コ―ド読取方法及び記録媒体 - Google Patents

バ―コ―ド読取方法及び記録媒体

Info

Publication number
JP2000215268A
JP2000215268A JP11270926A JP27092699A JP2000215268A JP 2000215268 A JP2000215268 A JP 2000215268A JP 11270926 A JP11270926 A JP 11270926A JP 27092699 A JP27092699 A JP 27092699A JP 2000215268 A JP2000215268 A JP 2000215268A
Authority
JP
Japan
Prior art keywords
bar
inspection
line
bar code
image data
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.)
Granted
Application number
JP11270926A
Other languages
English (en)
Other versions
JP3994595B2 (ja
Inventor
Hisashi Shigekusa
久志 重草
Masami Tanaka
正己 田中
Tadao Oshima
忠夫 大島
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.)
Denso Corp
Original Assignee
Denso 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
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP27092699A priority Critical patent/JP3994595B2/ja
Priority to US09/438,847 priority patent/US6332574B1/en
Publication of JP2000215268A publication Critical patent/JP2000215268A/ja
Application granted granted Critical
Publication of JP3994595B2 publication Critical patent/JP3994595B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/1092Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing by means of TV-scanning
    • 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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning
    • 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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/1093Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1491Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Mechanical Optical Scanning Systems (AREA)

Abstract

(57)【要約】 【課題】 取り込んだバーコード画像が歪んでいても、
適切に読み取ることができるようにする。 【解決手段】主検査線あるいは副検査線を用いてバーコ
ードの端部に存在するガードバーGb1を見つけ、その
傾きを検出する(S170)。そして、そのガードバー
Gb1に垂直な読取走査線を設定し(S180)、その
読取走査線に沿って走査する(S190)。その結果、
他端のガードバーGb2を検出できなかった場合には
(S200:NO)、確実に検出されたバーまで戻って
そのバーの傾きを検出し(S210)、S180へ戻っ
て、そのバーに垂直な読取走査線を新しく設定し、S1
90以降の処理を繰り返す。これをバーコードの他端の
ガードバーGb2を検出するまで繰り返す。そして、1
本あるいは2本以上設定された読取走査線によって走査
したデータに基づいてデコードを行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、商品の販売管理な
どに広く使用されているバーコードの読取方法などに関
する。
【0002】
【従来の技術】従来、商品の販売管理などにバーコード
が広く使用されているが、このバーコードには、図16
(A)に示すように高さ及び幅が一般的なサイズのもの
に対し、図16(B)に示すように高さが比較的高いも
のや、図16(C)に示すように高さが比較的低いもの
など様々である。このようなバーコードに対して1次元
画像として読み取る場合には、図17(A)に示すよう
に、読取ラインがバー/スペースに垂直な位置関係であ
ることが望ましい。このような位置関係であれば、読取
ラインが全てのバー/スペースを貫くこととなるからで
ある。また、図17(B)に示すように、バーコードが
回転していたり位置がずれていても、ある程度までであ
れば読取可能である。但し、図17(C)に示すよう
に、バーコードの回転度合いや位置ずれ度合いが大きく
なると、読取ラインが一部のバー/スペースしか貫かな
くなるため、読取不可能となる。
【0003】そこで、バーコード全体を2次元画像とし
て捉え、その2次元画像に基づいてバーコードの読み取
りを行う手法が考えられている(図18(A)参照)。
例えば特開平7−93451号公報には1次元CCDセ
ンサを移動させて2次元的に走査するものが開示され、
特開平10−198754号公報には2次元CCDセン
サで2次元的に走査するものが開示されている。
【0004】特開平10−198754号公報に記載の
ものは、2次元画像の横方向に主検査線、縦方向に副検
査線をそれぞれ複数本設定するものであるが、少なくと
も1本の主検査線あるいは副検査線がバーコードを貫い
ていないと読取は不可能であり、やはり、バーコードの
回転に対しては回転程度が大きくなると読取ができなく
なる。
【0005】一方、特開平7−93451号公報に記載
のものは、2次元画像中のバーコードの傾き角度を計算
し、バーコードの傾きに応じて読取ラインを傾けて設定
するようにしている(図18(B)参照)。具体的に
は、バーコードの端部のバーの傾き角度を計算し、その
バーと垂直な角度に読取走査線を設定するのである。こ
のようにすれば、2次元画像中のバーコードが形状自体
は変わらず単に回転するだけであれば、理論上、バーコ
ードがどのように回転していても読み取ることができる
と言える。また、図18(C)に示すように、バーコー
ドの一部が画像領域からはみ出していても、読取走査線
が設定できれば、バーコードの読取は可能となる。
【0006】
【発明が解決しようとする課題】しかしながら、このよ
うな手法によって読取が可能である状態には限界があ
る。例えば、図19(A)に示すように、読取装置がバ
ーコードを正面から捉えている場合には、図19(イ)
に示すようにバーコードの画像自体に歪みがなく、読取
は可能である。これに対して、図19(B)に示すよう
に、読取装置がバーコードに対して後方に傾いている場
合には、図19(ロ)に示すようにバーコードの画像自
体に歪みが生じる。つまり、前方側を上底、後方側を下
底とする略台形形状となる。この場合には、歪み度合い
が小さければ読取走査線を上手く設定すれば読取は可能
であるが、歪み度合いが大きくなると、読取走査線がバ
ーコード全体を貫かなくなる可能性が出てくる。また、
図19(C)に示すように、読取装置がバーコードに対
して左方に傾いている場合には、図19(ハ)に示すよ
うにバーコードの画像自体に歪みが生じる。つまり、右
方側を上底、左方側を下底とする略台形形状となる。こ
の場合には、読取走査線を上手く設定すればバーコード
全体を貫くこととなり、読み取れる可能性は高い。
【0007】そして、図19(B)のように読取装置が
バーコードに対して後方に傾くと共に、図19(C)に
示すように読取装置がバーコードに対して左方に傾く状
態が重なると、元々長方形であったバーコードの画像
は、図19(ニ)に示すように平行な辺がない四辺形と
なる。この状況では、図19(ロ)に示す状態よりも、
さらに読取走査線がバーコード全体を貫かなくなる可能
性が高くなる。つまり、読取装置とバーコードとの相対
的な位置関係によって、取り込んだバーコード画像の歪
み度合いが大きくなると、従来の手法では読取ができな
くなってくる。
【0008】読取装置の使用に際しては、このようなバ
ーコード読取の際の制約条件が極力少ない方が好まし
い。つまり、2次元画像内においてバーコードがどのよ
うに回転していても読み取れることは当然とし、上述し
たように読取装置とバーコードとの相対的な位置関係に
よって、取り込んだバーコード画像が歪んでいても読み
取れることが希求される。
【0009】そこで、本発明は、取り込んだバーコード
画像が歪んでいても、適切に読み取ることができるよう
にすることを目的とする。
【0010】
【課題を解決するための手段及び発明の効果】請求項1
記載のバーコードの読取方法は、2次元画像検出手段に
て検出された2次元的な画像データを一時的に記憶した
画像データメモリ上に、2次元画像検出手段における水
平方向及び垂直方向にそれぞれ対応する画像データ検査
線を設定し、その設定された画像データ検査線に沿って
画像データを走査することにより、画像データ中に含ま
れているバーコードの両端に存在するガードバーの内の
一方を検出する。そして、その検出したガードバー上を
起点とすると共に当該ガードバーに垂直な読取走査線を
設定し、その設定された読取走査線に沿って所定の走査
方向へ走査することにより、画像データ内に含まれてい
るバーコードを読み取ることを前提とする。
【0011】画像データ検査線は水平方向及び垂直方向
の2方向に設定されているため、例えば2次元画像中に
おいてバーコードが水平方向に近い角度で存在すれば、
水平方向の画像データ検査線を用いることでガードバー
を適切に検出できる。そして、傾く角度が大きくなる
と、水平方向の画像データ検査線とガードバーとの交差
角度が小さくなり、適切にガードバーを検出できなくな
る可能性が高いため、その場合には、垂直方向の画像デ
ータ検査線を用いれば適切に検出できる。このように、
バーコードがどのように回転していても、水平方向及び
垂直方向のいずれかを用いればガードバーの検出はでき
る。
【0012】但し、一方のガードバー上の起点から読取
走査線に沿ってバーコードを走査した結果、その読取走
査線がバーコードの他方のガードバーを貫かないでバー
コードの存在領域外へ逸れてしまう場合も考えられる。
例えば、図19(B)のように読取装置がバーコードに
対して後方に傾き、図19(ロ)に示すようにバーコー
ド画像が略台形形状に歪んだ場合、あるいは後方に傾く
と共に図19(C)に示すように読取装置がバーコード
に対して左方に傾く状態が重なって、図19(ニ)に示
すように平行な辺がない四辺形となった場合には、読取
走査線がバーコードの他方のガードバーを貫かないでバ
ーコードの存在領域外へ逸れてしまう可能性が高い。こ
の状況では、バーコード端部のガードバーに垂直な読取
走査線を設定するだけでは、その読取走査線がバーコー
ド全体を貫かなくなる可能性がある。
【0013】しかし本発明方法によれば、そのような場
合であっても、バーコード全体を走査することができ
る。つまり、読取走査線がバーコードの存在領域外へ逸
れてしまった場合には、その読取走査線を走査方向とは
逆に辿って、その読取走査線に基づいて確実に認識され
ているバーの位置まで戻り、その確実に認識されている
バー上を起点とすると共に当該バーに垂直な読取走査線
を新たに設定する(図7参照)、という処理を、最終的
に設定された読取走査線が他方のガードバーを貫くまで
繰り返し行うからである。なお、図7に例示した状態で
は、読取走査線を1回だけ新たに設定するだけで対処で
きたが、当然ながら、その新たに設定した読取走査線が
バーコードの存在領域から外れれば、読取走査線を再度
設定することとなる。
【0014】読取装置の使用に際しては、バーコード読
取の際の制約条件が極力少ない方が好ましいのである
が、本発明方法によれば、2次元画像内においてバーコ
ードがどのように回転していても読み取れることは当然
であり、さらに読取装置とバーコードとの相対的な位置
関係によって、取り込んだバーコード画像が歪んでいて
も適切にバーコードを読み取ることができる。
【0015】また、請求項2に示す読取方法であっても
同様に、取り込んだバーコード画像が歪んでいても適切
にバーコードを読み取ることができる。上述した請求項
1の場合には、設定した読取走査線がバーコードの他方
のガードバーを貫かないでバーコードの存在領域外へ逸
れてしまった場合に、新たな走査線を設定する手法であ
ったが(図7参照)、この請求項2の読取方法の場合に
は、次のようにして読取走査線を設定する。すなわち、
一方のガードバー上の起点から読取走査線に沿って所定
距離走査した時点あるいは所定数のバーを走査した時点
で、直近のバー上を起点とすると共に当該バーに垂直な
読取走査線を新たに設定する、という処理を、最終的に
設定された読取走査線が他方のガードバーを貫くまで繰
り返し行うのである(図9参照)。なお、図9の場合に
は最初の読取走査線に加えて新たな読取走査線を2回設
定することでバーコード全体を貫くこととなったが、バ
ーコードの大きさと新たな読取走査線を設定する条件と
に応じて変わってくる。
【0016】この新たな読取走査線を設定する条件は、
所定距離走査した時点あるいは所定数のバー及びスペー
スを走査した時点であるが、例えば請求項3に示すよう
に、所定数のバーを1とすれば、順次設定した読取走査
線によって確実にバーコード全体を貫くこととなる。
【0017】なお、当然であるが、請求項3のように
「新たな読取走査線を設定する条件を厳しく」した場合
には、読取走査線の再設定処理が多くなるので、処理負
荷は増える。所定距離を短くした場合も同様である。ま
た、請求項1の手法と比較しても同様であり、本請求項
2の手法の方が、読取走査線の再設定処理が多くなる。
但し、バーコード全体を貫く読取走査線の設定という観
点からすれば、その確実性は相対的に高いと言える。
【0018】また、上述したバーコード読取方法におい
て読取走査線の起点を設定する場合には、次の点を工夫
することができる。まず、請求項4に示すように、読取
走査線のガードバー上での起点として、画像データ検査
線とガードバーとの交点を設定したり、あるいは、新た
な読取走査線の確実に認識されているバーあるいは直近
のバー上での起点として、直前に設定された読取走査線
と確実に認識されているバーあるいは直近のバーとの交
点を設定することが考えられる。
【0019】但し、例えば画像データ検査線とガードバ
ーとの交点がガードバーの上下いずれかの端部付近であ
る場合には、ガードバーと垂直な方向への読取走査線を
設定する際に不都合が生じる場合が想定される。例えば
その交点付近のガードバーの配置状態を見て傾きを把握
しようとした場合、端部であるため上手くいかないこと
も考えられる。また、ガードバーの端部付近を起点とし
た読取走査線の場合には、歪んだバーコードに対して早
期にバーコードの存在領域外へ逸れてしまう可能性が高
くなることも想定される。
【0020】そこで、請求項5に示すように、読取走査
線のガードバー上での起点として、画像データ検査線と
ガードバーとの交点から、端部付近であると判定された
側の端部とは反対側へ所定量だけ移動した位置を設定す
ることが好ましい。同様に、新たな読取走査線と確実に
認識されているバーあるいは直近のバーとの交点が、当
該確実に認識されているバーあるいは直近のバーの上下
いずれかの端部付近である場合には、新たな読取走査線
の確実に認識されているバーあるいは直近のバー上での
起点として、直前に設定された読取走査線と確実に認識
されているバーあるいは直近のバーとの交点から端部付
近であると判定された側の端部とは反対側へ所定量だけ
移動した位置を設定することが好ましい。
【0021】あるいは、同様の観点から、請求項6に示
すように、読取走査線のガードバー上での起点として、
ガードバーの中央位置を設定したり、新たな読取走査線
の確実に認識されているバーあるいは直近のバー上での
起点として、確実に認識されているバーあるいは直近の
バーの中央位置を設定することも好ましい。
【0022】ところで、これまで説明したバーコード読
取方法においては、読取走査線をガードバーと垂直に設
定し、その読取走査線がバーコードの他方のガードバー
を貫かないでバーコードの存在領域外へ逸れてしまった
場合には、その読取走査線を走査方向とは逆に辿って、
その読取走査線に基づいて確実に認識されているバーに
垂直な読取走査線を新たに設定することを基本としてい
た。つまり、バーに垂直な読取走査線を設定すること
で、バーコードの歪みに対処するようにした。
【0023】しかし、必ずしもバーに垂直な読取走査線
を設定するという技術思想ではなく、請求項7に示すよ
うな設定手法も採用できる。すなわち、まず、一方のガ
ードバーの中央位置を起点とした読取走査線を設定す
る。そして、その読取走査線に沿ってバーコードを走査
した結果、その読取走査線がバーコードの他方のガード
バーを貫かないでバーコードの存在領域外へ逸れてしま
った場合には、その読取走査線を走査方向とは逆に辿っ
て、その読取走査線に基づいて確実に認識されているバ
ーの位置まで戻り、その確実に認識されているバーの中
央位置とガードバー上の起点(つまり中央位置)とを結
ぶ新たな読取走査線を設定する、という処理を、最終的
に設定された読取走査線が他方のガードバーを貫くまで
繰り返し行うのである。この場合には、バーの中央位置
同士を結ぶ読取走査線を設定していくことにより、やは
りバーコードの歪みに対処することができる。
【0024】一方、上述したバーコード読取方法におい
ては、水平方向及び垂直方向の画像データ検査線に沿っ
て画像データを走査することにより、画像データ中に含
まれているバーコードの両端に存在するガードバーの内
の一方を検出することを前提としていたが、請求項8に
示すように、この水平方向及び垂直方向の画像データ検
査線は、それぞれ複数本設定することが好ましい。こう
すれば、ガードバーをより検出し易くなるからである。
【0025】もちろん、画像データ検査線の間隔を非常
に細かく設定すれば、確実にガードバーを設定すること
はできるが、処理負荷は大きくなる。そこで、複数本設
定することを前提としながら、請求項9に示すように、
2次元画像検出手段の画面中央付近に相当する範囲では
相対的に密に設定することが考えられる。2次元画像検
出手段の画面中央付近にバーコードの画像が存在する可
能性が高いため、このようにすれば、全体としては画像
データ検査線の数を過度に多くせずに済む。
【0026】また、2次元画像検出手段の画面中央付近
にバーコードの画像が存在する可能性が高いという着目
点からずれば、請求項10に示すように、複数本の水平
方向及び垂直方向の画像データ検査線を用いる順番は、
2次元画像検出手段の画面中央付近から外側へ向かう順
番とすることが好ましい。このようにすれば、早期にガ
ードバーを検出できることとなる。
【0027】なお、水平方向及び垂直方向の画像データ
検査線の用い方としては、請求項11に示すように、い
ずれか一方の画像データ検査線を全て用いても検出でき
なかった場合に他方の画像データ検査線を用いて検出す
ることが考えられる。例えば2次元画像中においてバー
コードが水平方向に近い角度で存在する可能性が高いこ
とを前提とするならば、最初に水平方向の画像データ検
査線を用いることが好ましい。水平方向から多少傾いて
いても、水平方向の画像データ検査線のいずれかによっ
てガードバーが検出されるからである。そして、傾く角
度が大きくなって水平方向の画像データ検査線では適切
にガードバーを検出できなくなった場合には、垂直方向
の画像データ検査線を用いればよい。もちろん、2次元
画像中においてバーコードが垂直方向に近い角度で存在
する可能性が高ければ、最初に垂直方向の画像データ検
査線を用いればよい。
【0028】また、画像データ検査線に沿って走査する
対象となる画像データに関しては、画像データメモリ上
における1画像領域全てを対象としてもよいが、請求項
12に示すように、予めバーコードが存在する可能性の
高いと考えられる詳細検査対象領域を設定し、その領域
内に限ってガードバーを見つける処理を行っても良い。
具体的には、画像データメモリ上における1画像領域を
複数の検査区域に分割し、その分割された検査区域毎
に、その区域内に含まれる画像データに基づいて明暗の
変化点の数を計数する。そして、その計数された明暗変
化点数に基づいてバーコードが存在する可能性の高い検
査区域を抽出し、その抽出された検査区域を詳細検査対
象領域として設定するのである。
【0029】この詳細検査対象領域設定処理にて設定さ
れた詳細検査対象領域内に限定し、上述の請求項1〜1
1のいずれか記載のバーコード読取方法を適用し、画像
データ内に含まれているバーコードを読み取れば、全体
として処理効率が向上する。つまり、複数画素を1まと
めにした検査区域単位で、コードが存在する可能性の高
い領域を詳細検査対象領域として推定し、その後、その
推定された領域内においてのみ従来通りの1画素毎の明
暗パターンを検査するので、その検査範囲が小さくて済
む。また、詳細検査対象領域の推定にあっては、検査区
域毎に計数した明暗変化点数の大小比較のみ、すなわち
整数値の相対比較であるため、処理負荷は小さくて済
む。したがって、概略的な存在領域を推定した後にバー
コードの正確な位置を検出してデータ解読をする処理ま
で含めたコード読取処理に要する時間を短縮させること
ができる。
【0030】なお、検査区域に関しては、特にその形状
が限定されるものではないが、処理効率を考慮すると、
請求項13に示すように設定することが好ましい。すな
わち、画像領域を水平方向へ走査するための主走査線及
び垂直方向へ走査するための副走査線とそれぞれ平行な
線によって区画される矩形の区域を検査区域とするので
ある。2次元画像検出手段(例えばCCDエリアセン
サ)においては主走査線及び副走査線方向にマトリック
ス状に画素が配列されているので、このように矩形領域
に設定した方がデータが扱いやすい。
【0031】また、このように詳細検査対象領域を設定
した後のガードバーを検出する手法について、請求項1
4に示すような工夫をしてもよい。請求項1〜11のい
ずれか記載のバーコード読取方法においては2次元画像
検出手段における水平方向及び垂直方向にそれぞれ対応
していた画像データ検査線を用いてガードバーを検出し
ていたが、そのような画像データ検査線に代えて、次に
示すような第1の検査線を画像データ検査線として採用
する。つまり、詳細検査対象領域設定処理によって設定
された詳細検査対象領域を構成する検査区域毎に明暗パ
ターンの特徴を調べて類型化し、最も多数の検査区域が
属する類型を検出する。そして、その検出された最頻類
型に属する任意の検査区域内に存在するバー又はスペー
スの傾きを算出し、その算出されたバー又はスペースの
傾きに直交する傾きを有する第1の検査線を設定するの
である。
【0032】このように設定された第1の検査線は、当
該検査線自体を設定する際に、読み取ろうとしているバ
ーコードのバー又はスペースの傾きと直交するようにし
てあるため、この第1の検査線を画像データ検査線とし
て用いれば、ガードバーを検出できる可能性が高くな
る。つまり、請求項1で示した水平方向及び垂直方向の
画像データ検査線を設定する理由は、画像データ中にお
いてバーコードがどのように傾いているかが判らないた
め、どのように傾いていても対応できるように考慮した
ためである。
【0033】それに対して第1の検査線の場合には、バ
ー又はスペースの傾きと直交、つまりバーコードの傾き
を反映した検査線を設定できるため、より処理効率が向
上する。つまり、水平方向及び垂直方向の画像データ検
査線を設定する場合には、水平方向の検査線でしか見つ
けられないようにバーコードが傾いていると、垂直方向
の検査線で見つけようとする処理が結果的には無駄とな
ってしまうが、この第1の検査線を用いる場合にはその
ような無駄がない。
【0034】なお、請求項15に示すように、画像デー
タ検査線として採用する第1の検査線が、詳細検査対象
領域の概略中心位置を通るように設定すれば、より処理
効率アップが期待できる。必ずしも、詳細検査対象領域
の中心にバーコードが存在しているとは限らないが、確
率的には、詳細検査対象領域の中心にバーコードが存在
している可能性が高いため、このような第1の検査線に
よってガードバーを検出できる可能性が高くなる。
【0035】また、詳細検査対象領域の概略中心位置を
通る場合、通らない場合共に、第1の検査線を画像デー
タ検査線として採用した結果、バーコードを読み取れな
い場合も生じうる。その場合の対処としては、次のよう
にして設定した第2の検査線を用いてガードバーの検出
を行うことが考えられる。
【0036】請求項16に示す場合には、第1の検査線
と平行な第2の検査線を少なくとも1本設定し、その設
定された第2の検査線を画像データ検査線として採用す
る。また、請求項17に示す場合には、第1の検査線と
は傾きが異なり、且つ詳細検査対象領域内において第1
の検査線と交差する第2の検査線を少なくとも1本設定
し、その設定された第2の検査線を前記画像データ検査
線として採用する。これらのいずれも、2本以上の第2
の検査線を設定した場合には、例えば第1の検査線に近
いものから順番に採用して順次ガードバーの検出を行え
ばよい。
【0037】なお、第1の検査線とは傾きが異なり、且
つ詳細検査対象領域内において第1の検査線と交差する
ような第2の検査線を設定する際には、請求項18に示
すように、第2の検査線が第1の検査線と交差する点
を、詳細検査対象領域の概略中心位置とすることが考え
られる。
【0038】ところで、上述した請求項14〜18にお
いては、詳細検査対象領域を構成する検査区域毎に明暗
パターンの特徴を調べて類型化していたが、この類型化
する際には、例えば請求項19に示すように、検査区域
内の明暗変化点数が略同一であるものを同一の明暗パタ
ーンを有するものとして類型化することが考えられる。
また、請求項20に示すように、検査区域内の縦横の明
暗変化点数の比が略同一であるものを同一の明暗パター
ンを有するものとして類型化してもよい。
【0039】これらはバーコードの性質に基づいてい
る。つまり、バーコードの場合には、バー又はスペース
の太さに差異はあるものの、ある程度の本数が検査区域
内に含まれれば、概略の明暗変化点数は近いものとなる
と考えられる。特に、文字などが含まれる検査区域の場
合の明暗変化点数と比べれば、かなり明確な違いとなっ
て現れると考えられるため、明暗変変化点の総数に基づ
くことは適切である。
【0040】また、バーコードの場合には、バー又はス
ペースが直線であるため、バー又はスペースの端部が含
まれなければ、縦の明暗変化点数と横の明暗変化点数の
比はやはり同じ様な値になる可能性が高い。特に、文字
などが含まれる検査区域の場合の明暗変化点数の比と比
べれば、総数の場合よりさらに明確に区別できると考え
られる。したがって、この比に基づく類型化も非常に有
効である。さらに、この縦横の明暗変化点数比を用いる
場合には、次のような利点もある。つまり、第1の検査
線は、「バー又はスペースの傾きθ」に直交するような
傾きを持つように設定する必要がある。ここで、検査区
域が矩形の場合には、その縦横の明暗変化点数の比はt
anθであると近似しても特に問題がない。そのため、
類型化する処理中で、その後の第1検査線の傾きを設定
するために必要な「バー又はスペースの傾きθ」も同時
に得ることができるため、別個、傾き算出処理をしなく
てもよくなる。
【0041】なお、以上の説明でも判るように、明暗変
化点数あるいはその比で類型化する場合には、ある程度
の本数のバー又はスペースが検査区域内に含まれている
必要がある。例えば、バー又はスペースの幅が検査区域
の幅よりも大きければ、明暗変化点数が1となり、また
明暗変化点数の比も1となることが考えられ、その場合
には適切な類型化が難しくなるからである。そのため、
請求項21に示すように、検査区域については、複数の
サイズの中から選択可能にしておくことが好ましい。こ
の複数のサイズについては、実際に使用される可能性の
高いバーコードの種類などを考慮して設定する。また、
選択については、利用者がマニュアルで切り替えて選択
してもよいし、自動的に選択できるようにしてもよい。
自動的に選択する場合には、例えばあるサイズで処理を
実行して適切に読み取れなかった場合には次のサイズに
切り替えて再度処理を実行する、といった手法が考えら
れる。
【0042】なお、このようなバーコードの読取方法を
実行する機能は、例えば、デジタル回路やコンピュータ
システム側で起動するプログラムとして備えられる。プ
ログラムで実現する場合、例えば、フロッピーディス
ク、光磁気ディスク、CD−ROM、ハードディスク等
の機械読み取り可能な記録媒体に記憶し、必要に応じて
コンピュータシステムにロードして起動することにより
用いることができる。この他、ROMやバックアップR
AMを機械読み取り可能な記録媒体として前記プログラ
ムを記憶しておき、このROMあるいはバックアップR
AMをコンピュータシステムに組み込んで用いても良
い。
【0043】
【発明の実施の形態】以下に、本発明の好適な実施例を
図面に基づいて説明する。尚、本発明の実施の形態は、
下記の実施例に何ら限定されるものではなく、本発明の
技術的範囲に属する限り種々の形態を採り得ることはい
うまでもない。
【0044】[第1実施例]図1は上述した発明が適用
された実施例としてのバーコード読取装置1のブロック
図を示す。本実施例のバーコード読取装置1は、カメラ
部制御装置10とシステム制御装置30の2つの制御装
置を備えており、それぞれで分担して制御を行ってい
る。
【0045】まず、カメラ部制御装置10側に関連する
構成としては、CCDエリアセンサ11と、AGCアン
プ12と、ローパスフィルタ(LPF)13と、基準電
圧生成部14と、負帰還アンプ15と、補助アンプ16
と、2値化回路17と、周波数分析器18と、A/D変
換器19と、画像メモリ20と、画像メモリコントロー
ラ21と、メモリ22と、照明発光ダイオード(照明L
ED)30などが挙げられる。
【0046】CCDエリアセンサ11は、2次元的に配
列された複数の受光素子であるCCDを有しており、外
界を撮像してその2次元画像を水平方向の走査線信号と
して出力する。この走査線信号はAGCアンプ12によ
って増幅されて補助アンプ16及びA/D変換器19に
出力される。
【0047】AGCアンプ12は、外部から入力したゲ
インコントロール電圧に対応する増幅率で、CCDエリ
アセンサ11から出力された走査線信号を増幅するので
あるが、このゲインコントロール電圧は負帰還アンプ1
5から出力される。この負帰還アンプ15には、AGC
アンプ12から出力される走査線信号をローパスフィル
タ13で積分して得た出力平均電圧Vavと、基準電圧生
成部14からの基準電圧Vstとが入力されており、これ
らの電圧差△Vに所定ゲインを掛けたものがゲインコン
トロール電圧として出力される。
【0048】補助アンプ16は、AGCアンプ12によ
って増幅された走査線信号を増幅して2値化回路17に
出力する。この2値化回路17は、上記走査線信号を、
閾値に基づいて2値化して周波数分析器18に出力す
る。周波数分析器18は、2値化された走査線信号の内
から所定の周波数成分比を検出し、その検出結果は画像
メモリコントローラ21に出力される。
【0049】一方、A/D変換器19は、AGCアンプ
12によって増幅されたアナログの走査線信号をディジ
タル信号に変換して、画像メモリコントローラ21に出
力する。画像メモリコントローラ21は、アドレスバス
及びデータバスによって画像メモリ20と接続されてい
ると共に、やはりアドレスバス及びデータバスによって
カメラ部制御装置10及びメモリ22と接続されてい
る。
【0050】カメラ部制御装置10は、ここでは32b
itのRISCCPUを用いて構成されており、基準電
圧生成部14、A/D変換器19及び照明LED25を
制御することができるようにされている。基準電圧生成
部14に対する制御とは、基準電圧を変更設定するなど
の制御である。また、照明LED25は、読取対象のバ
ーコードに対して照明用の赤色光を照射するものであ
る。
【0051】また、カメラ部制御装置10は、システム
制御装置30との間でデータのやり取りができるように
されている。一方、システム制御装置30側に関連する
構成としては、認識用LED31と、ブザー32と、液
晶ディスプレイ(LCD)33と、キーパット34と、
読み取り用スイッチ35と、シリアルI/F回路36
と、IrDAI/F回路37と、FLASHメモリ38
と、DRAM39と、リアルタイムクロック40と、メ
モリバックアップ用電池41などを備えている。
【0052】認識用LED31は、読み取り対象の画像
情報が適切にデコードされた場合に点灯され、所定時間
後に消灯される。また、ブザー32も、読み取り対象の
画像情報が適切にデコードされた場合に鳴動される。液
晶ディスプレイ33は、読み込んだバーコードなどを表
示するためなどに用いられる。本実施例では2階調表示
のLCDとして構成されている。キーパット34は、例
えばテンキーや各種ファンクションキーを備えており、
情報入力のために用いられる。読み取り用スイッチ35
は、利用者が読取処理の開始を指示するためのスイッチ
である。
【0053】IrDAI/F回路37は、IrDA(In
frared Data Association )規格に準じた方法により図
示しない外部装置との間で通信を行うものであり、図示
しない通信用発光素子を介してデータを外部装置に送信
したり、図示しない通信用受光素子を介して外部装置か
らの信号(例えばシステムを動かすためのプログラムや
送信を待機する命令等)を受信する。
【0054】システム制御装置30、FLASHメモリ
38、DRAM39、リアルタイムクロック40は、ア
ドレスバス及びデータバスによって相互に接続されてい
る。画像メモリ20と接続されていると共に、やはりア
ドレスバス及びデータバスによってカメラ部制御装置1
0及びメモリ22と接続されている。
【0055】カメラ部制御装置10は、ここでは16b
itのCPUを用いて構成されており、上述したキーパ
ット34や読み取り用スイッチ35の入力を受け付けた
り、認識用LED31やブザー32への出力を制御した
り、シリアルI/F回路36やIrDAI/F回路37
を介した通信制御を行なう。そして、カメラ部制御装置
10を介して入力したバーコードの画像を液晶ディスプ
レイ33に表示させることもできる。
【0056】このような構成を備えた本実施例のバーコ
ード読取装置1は、CCDエリアセンサ11から出力さ
れる走査線信号をAGCアンプ12によって増幅し、そ
の増幅された走査線信号をA/D変換器19によってデ
ィジタルデータに変換したものを取り込み、そのデータ
に基づいて、2次元画像内に含まれているバーコードを
読み取る。A/D変換器19によってディジタルデータ
に変換された1画面分のデータは画像メモリ20に一時
記憶される。具体的には、図2(A)に示すように、C
CDエリアセンサ11の左上の画素を開始点の画素P1
とし、左から右へ移動すると共に、上から下へ移動する
ような順番で最終的には右下の画素が終了点の画素Pn
となる。そして、図2(B)に示すように、その順番
(P1〜Pn)で画像メモリ20内の所定のアドレスA
(P1)〜A(Pn)に格納される。なお、以下の説明
においては、実際には画像メモリ20内のデータを用い
て処理するのであるが、視覚的に理解が容易となるよう
に、図2(A)に対応するような2次元の画像領域を想
定して進めることとする。
【0057】本実施例におけるバーコードの読取手法は
次の通りである。まず、この2次元画像領域上に、図3
に示すような主検査線及び副検査線を設定する。主検査
線は画像領域に対して水平方向の検査線であり、副検査
線は画像領域に対して垂直方向の検査線である。なお、
主検査線が「水平方向の画像データ検査線」に相当し、
副検査線が「垂直方向の画像データ検査線」に相当す
る。
【0058】そして、図4,5に示すように、その設定
された主検査線又は副検査線に沿って画像データを走査
することにより、画像データ中に含まれているバーコー
ドの両端に存在するガードバーの内の一方(図4,5中
ではGb1で示す。)を検出する。なお、図3に示すよ
うに、主検査線は画像を左から右へ検査していき、副検
査線は画像を上から下へ検査していく。
【0059】そして、その検出したガードバーGb1上
を起点とすると共にガードバーGb1に垂直な読取走査
線を設定する。本実施例では、最初に主検査線を用いて
走査し(図4参照)、全ての主検査線を用いてもガード
バーGb1を検出できなければ、次に副検査線を用いて
ガードバーGb1検出を行うようにしている。
【0060】ガードバーGb1の検出に際しては、図6
に示すように、主検査線がバーの候補に交差した点(交
点)の周辺を探索して、そのバー候補が直線であること
を認識する。この認識は、次のようにして行う。すなわ
ち、検出したガードバーGb1の交点を中心として所定
距離だけ両方向にバーを辿り、水平方向の変化分ΔAと
垂直方向の変化分ΔBを所定数求め、全ての傾きΔB/
ΔAがほぼ一定値であれば、直線であると判断する。直
線でなければバーではない。
【0061】また、読取走査線の設定は次のようにして
行う。読取走査線の起点は、主検査線とガードバーGb
1との交点である。また、ガードバーGb1の傾きがΔ
B/ΔAであれば、それに垂直な直線の傾きはΔA/Δ
Bである。したがって、主検査線とガードバーGb1と
の交点を起点とした傾きΔA/ΔBの直線を、読取走査
線として設定するのである。つまり、読取走査線の設定
に際しては、ガードバーGb1や読取走査線の傾き角度
を計算するといった面倒な処理はしない。
【0062】このようにガードバーGb1の垂直な読取
走査線を設定した場合、2次元画像中において元々長方
形のバーコードが歪んでいなければ、その読取走査線
は、他方のガードバーGb2を必ず貫くこととなる(図
4,5参照)。そのため、その読取走査線に沿って走査
して得たデータに基づけば、バーコードの情報を適切に
デコードすることができる。
【0063】しかし、バーコード読取装置とバーコード
との位置関係によって、2次元画像中のバーコードが図
19(ロ)に示すように略台形形状に歪んだり、図19
(ニ)に示すように平行な辺がない四辺形に歪むことが
考えられる。この場合、図7に示すように、一方のガー
ドバーGb1上の起点から読取走査線に沿ってバーコー
ドを走査した結果、その読取走査線がバーコードの他方
のガードバーGb2を貫かないでバーコードの存在領域
外へ逸れてしまう可能性がある。その場合に本実施例で
は、読取走査線がバーコードの存在領域外へ逸れた位置
から読取走査線を走査方向とは逆に辿り、その読取走査
線に基づいて確実に認識されているバーの位置まで戻
る。そして、その確実に認識されているバー上を起点と
すると共に当該バーに垂直な読取走査線を新たに設定す
る(図7参照)。なお、図7においては、読取走査線を
1回だけ新たに設定するだけで他方のガードバーGb2
を貫いているが、必要に応じて2回以上新たな読取走査
線を設定すればよい。
【0064】このようにして、バーコード画像が歪んで
いることによって、最初に設定した読取走査線だけでは
対処できない場合には、2本以上の読取走査線を設定
し、その読取走査線に沿って走査して得たデータに基づ
くことで、歪んだバーコード画像からも情報を適切にデ
コードすることができる。バーコード読取装置1の使用
に際しては、バーコード読取の際の制約条件が極力少な
い方が好ましいため、本実施例は非常に有効である。
【0065】図8は、カメラ部制御装置10が実行する
バーコード読取処理を示すフローチャートである。主要
な内容については上述したので、全体的な流れについて
簡単に説明する。最初のステップS110では、変数
i,jをそれぞれ1に設定し、続くS120において主
検査線(i)を設定する。続いて、その主検査線(i)
に沿って検査した結果に基づいてバーコードの特徴パタ
ーンの有無を判定し(S130)、無ければ、変数iを
インクリメントし(S140)、変数iが主検査線の設
定本数Mよりも大きいか否かを判断する(S150)。
変数i≦設定本数Mであれば(S150:NO)、S1
20へ戻って、前回とは別の主検査線を設定する。この
ようにして、バーコードの特徴パターンを見つけるま
で、主検査線を変更しながら検査していく。本実施例で
は、画像領域中の中央付近にバーコードの画像が存在す
る可能性が高いという観点から、複数本設定された主検
査線の使用順番は、画像領域の中央付近から外側へ向か
う順番とされている。
【0066】そして、S130の判定によりバーコード
の特徴パターンが有った場合には、S160へ移行して
ガードバーGb1を検出する。そして、ガードバーGb
1の傾きを検出し(S170)、そのガードバーGb1
に垂直な読取走査線を設定する(S180)。そして、
その読取走査線に沿って走査し(S190)、その結
果、他端のガードバーGb2を検出できなかった場合に
は(S200:NO)、S210へ移行し、確実に検出
されたバーまで戻ってそのバーの傾きを検出する。そし
て、S180へ戻り、そのバーに垂直な読取走査線を新
しく設定し、S190以降の処理を繰り返す。
【0067】一方、バーコードの他端のガードバーGb
2を検出した場合には(S200:YES)、S210
にて誤り検査を行い、誤りが無ければ、S220にて読
み取ったデータを文字データに変換して出力し、誤りが
有ればそのまま本処理ルーチンを終了する。
【0068】また、S150にて肯定判断、すなわち、
設定された主検査線を全て用いて検査してもバーコード
の特徴パターンを見つけられなかった場合には、S24
0〜S270において、今度は副検査線を用いた検査を
実行する。この内容は主検査線の場合のS120〜S1
50の処理と同様であり、副検査線(j)をj=1〜N
(設定本数)まで順番に用いてバーコードの特徴パター
ンを見つける処理を行う。なお、この場合も、複数本設
定された副検査線の使用順番は、画像領域の中央付近か
ら外側へ向かう順番とされている。
【0069】図8に示す例では、「一連の読み取り操作
を終えて終了する」としたが、より正確さを期する場
合、図8に示す処理を複数回繰り返し、同じ結果が得ら
れた場合に終了するようにすることもできる。 [第2実施例]上記第1実施例の場合には、設定した読
取走査線がバーコードの他方のガードバーGb2を貫か
ないでバーコードの存在領域外へ逸れてしまった場合
に、新たな走査線を設定する手法であったが、次に示す
設定手法を用いても同様に実現できる。
【0070】つまり、第2実施例の場合の読取走査線の
設定手法は、一方のガードバーGb1上の起点から読取
走査線に沿って所定距離走査した時点あるいは所定数の
バー及びスペースを走査した時点で、直近のバー上を起
点とすると共に当該バーに垂直な読取走査線を新たに設
定する、という処理を、最終的に設定された読取走査線
が他方のガードバーGb2を貫くまで繰り返し行うとい
うものである(図9参照)。なお、図9の場合には最初
の読取走査線に加えて新たな読取走査線を2回設定する
ことでバーコード全体を貫くこととなったが、バーコー
ドの大きさと新たな読取走査線を設定する条件とに応じ
て変わってくる。
【0071】図10は、この第2実施例の場合のバーコ
ード読取処理を示すフローチャートである。S1110
〜S1170及びS1220〜S1270の処理内容
は、上述した第1実施例の場合の図8のフローチャート
におけるS110〜S170及びS220〜S270と
全く同様であるので説明は省略し、変更部分についての
み説明する。
【0072】S1170にてガードバーGb1の傾きを
検出した後、S1180では、そのガードバーGb1の
中点に読取走査線の起点を設定し、そのガードバーGb
1に垂直な読取走査線を設定する(S1190)。そし
て、その読取走査線に沿って所定本数のバーを走査する
(S1200)。その結果、バーコードの他端のガード
バーGb2を検出したかどうかを判断し(S121
0)、他端のガードバーGb2を検出しなかった場合に
は(S1210:NO)、S1190へ戻り、S120
0にて所定本数走査したバーを基準とし、そのバーに垂
直な読取走査線を設定する。
【0073】なお、図10に示すように示すフローチャ
ートにおいては、所定本数のバーを走査した時点で(S
1200)、新たな読取走査線を設定するようにしてい
るが、所定距離であってもよい。また、所定本数のバー
を1とすれば、順次設定した読取走査線によって確実に
バーコード全体を貫くこととなる。なお、当然である
が、所定本数を少なくしたり所定距離を短くすることに
よって、「新たな読取走査線を設定する条件を厳しく」
した場合には、読取走査線の再設定処理が多くなるの
で、処理負荷は増える。但し、バーコード全体を貫く読
取走査線の設定という観点からすれば、その確実性は相
対的に高いと言える。
【0074】[第3実施例]上述した第1あるいは第2
実施例の場合には、読取走査線の設定手法に違いはある
が、読取走査線をガードバーGb1等と垂直に設定する
という点では共通していた。しかし、必ずしもガードバ
ーGb1等に垂直な読取走査線を設定するという手法で
はなくてもよい。
【0075】本第3実施例での読取走査線の設定手法は
次の通りである。すなわち、図11に例示するように、
最初は一方のガードバーGb1の中央位置を起点として
ガードバーGb1に垂直な読取走査線を設定する。そし
て、その読取走査線に沿ってバーコードを走査した結
果、その読取走査線がバーコードの他方のガードバーG
b2を貫かないでバーコードの存在領域外へ逸れてしま
った場合には、その読取走査線を走査方向とは逆に辿っ
て、その読取走査線に基づいて確実に認識されているバ
ーの位置まで戻る。そして、その確実に認識されている
バーの中央位置bとガードバー上の起点(つまり中央位
置)とを結ぶ新たな読取走査線を設定する。この新たな
読取走査線は、最初に設定した読取走査線と異なり、ガ
ードバーGb1に対して垂直ではない。なお、図11の
場合には新たな読取走査線を1回設定しただけでバーコ
ード全体を貫くこととなったが、最終的に設定された読
取走査線が他方のガードバーGb2を貫くまで必要に応
じて2回以上新たな読取走査線を設定する。このように
しても、やはりバーコードの歪みに対処することができ
る。
【0076】[第1〜第3実施例の別態様]以上説明し
た第1〜第3実施例では、図7,9,11などに示した
ように、バーコードの両側に存在するガードバーの内、
画像領域中において相対的に左側に存在するガードバー
Gb1に読取走査線の起点を設定する場合について説明
した。しかし、例えば図12に示すように画像領域中に
おいて相対的に右側に存在するガードバーGb2に読取
走査線の起点を設定して、上述した説明の場合とは逆方
向、つまり画像領域の右から左へ向かう読取走査線を設
定することも可能である。バーコードの配置や傾き状態
によっては、主検査線にてガードバーGb2の方を最初
に検出する場合もあるからである。なお、図12は、図
7にて説明した第1実施例の場合に対応する逆向きの読
取走査線を示している。
【0077】また、読取走査線の起点を設定する際に
は、次の点を工夫することができる。上述した第1実施
例では、読取走査線のガードバーGb1上での起点とし
て、主検査線とガードバーGb1との交点を設定した。
また、最初に設定した読取走査線がバーコードから逸れ
た場合に新たな読取走査線を設定する際も、同様に交点
を起点とした。但し、例えば図13に示すように、主検
査線とガードバーGb1との交点がガードバーGb1の
端部付近である場合には、ガードバーGb1と垂直な方
向への読取走査線を設定する際に不都合が生じる場合が
想定される。図6にて説明したように、その交点付近の
ガードバーGb1の配置状態を見て傾き(ΔB/ΔA)
を把握し、それに基づいて読取走査線の傾き(ΔA/Δ
B)を設定しているが、端部であるため上手くいかない
ことも考えられる。また、ガードバーGb1の端部付近
を起点とした読取走査線の場合には、歪んだバーコード
に対して早期にバーコードの存在領域外へ逸れてしまう
可能性が高くなることも想定される。
【0078】そこで、図13に示すように、読取走査線
のガードバーGb1上での起点として、主検査線とガー
ドバーGb1との交点から、端部付近であると判定され
た側の端部とは反対側へ所定量だけ移動した位置を起点
として設定する。もちろん、読取走査線のガードバーG
b1上の起点だけでなく、新たな読取走査線を設定する
場合の、バー上の起点についても同様である。
【0079】また、所定量だけ移動するのではなく、同
様の観点から、読取走査線の起点として、ガードバーG
b1の中央位置や、確実に認識されているバーの中央位
置bを起点として設定してもよい(図14参照)。特
に、図15に示すように、ガードバーGb1自体が短
く、主検査線とガードバーGb1との交点から両側に向
かってバーの状態を見ていった場合に、両端に行き着い
てしまうことも考えられる。この場合には、バーの長さ
が所定値以上の場合だけ採用し、その中央位置を起点と
した読取走査線を設定することが考えられる。
【0080】[第4実施例]上述した第1〜第3実施例
では、画像データ20に記憶された1画像領域全てを、
画像データ検査線に沿った走査対象としたが、本第4実
施例では、予めバーコードが存在する可能性の高いと考
えられる詳細検査対象領域を設定し、その領域内に限っ
てガードバーGb1を見つけるようにしている。
【0081】本第4実施例のバーコード読取装置の構成
は、基本的には、図1に示した第1実施例の構成と同様
であるが、本実施例特有の構成の2値化回路50を備え
ている。したがって、図1に示した2値化回路17とは
符号を異ならせて記載する。また、画像メモリ20の内
部構成についても多少メモリ構成が異なっている。さら
には、A/D変換器19にてディジタル信号に変換され
た画像データは2値化回路50にも出力され、また、カ
メラ部制御装置10が2値化回路50にリードライト制
御信号やアドレス制御信号を出力できるようにされてい
る。それ以外の構成については、特段変更されていない
ので、詳しい説明は省略する。
【0082】まず、画像メモリ20の内部構成について
説明する。画像メモリ20は、画像データメモリ20
a、変化点数メモリ20b及び2次元画像メモリ20c
を備えている。画像データメモリ20aには、A/D変
換器19にてディジタル信号に変換された画像データを
記憶しておくためのものである。なお、変化点数メモリ
20b及び2次元画像メモリ20cについては、以下に
説明する2値化回路との関係で説明する。
【0083】続いて、2値化回路50の詳細について、
図20,21を参照して説明する。図20は2値化回路
50を構成する要素について概略的な機能別にまとめた
ブロック図であり、図21は、さらに詳細な機能別にま
とめたブロック図である。図20に示すように、2値化
回路50は、明比較器51と、暗比較器52と、明暗判
定器53と、カウンタ54と、余裕値記憶ブロック55
と、ブロックアドレス制御回路56とを備えている。そ
して、A/D変換器19にてディジタル信号に変換され
て出力された画像データは、明比較器51と、暗比較器
52と、明暗判定器53とに入力する。明比較器51及
び暗比較器52から出力されるデータは明暗判定器53
に入力され、明暗判定器53からの出力データはカウン
タ54及び画像メモリ20内の2次元画像メモリ20c
へ入力される。また、カウンタ54からの出力、つまり
カウント値は、画像メモリ20内の変化点数メモリ20
bへ入力される。
【0084】また、カメラ部制御装置10からのリード
ライト制御信号は、明比較器51、暗比較器52、明暗
判定器53、余裕値記憶ブロック55、ブロックアドレ
ス制御回路56のそれぞれに入力している。一方、カメ
ラ部制御装置10からのアドレス制御信号は、ブロック
アドレス制御回路56へ入力しており、そのブロックア
ドレス制御回路56からの制御信号は、画像メモリ20
内の変化点数メモリ20bへ入力されている。なお、カ
メラ部制御装置10からのアドレス制御信号は、画像メ
モリ20内の画像データメモリ20a及び2次元画像メ
モリ20cにも入力されている。
【0085】以上は、2値化回路50の概略的な説明で
あったので、図21を参照してさらに詳しく説明する。
なお、図21においては、図20に示した要素を構成す
るブロックであることを示すため、同じ数字の後に小文
字の英字を付した。例えば明比較器51であれば、比較
ブロック51aと、明データ記憶ブロック51bと、減
算ブロック51cと、暗上限記憶ブロック51dとを備
えるという具合である。それ以外の要素についても同様
に示した。
【0086】明比較器51の構成要素については説明し
たが、暗比較器52は、比較ブロック52aと、暗デー
タ記憶ブロック52bと、加算ブロック52cと、明下
限記憶ブロック52dとを備える。また、明暗判定器5
3は、除算ブロック53aと、中間値記憶ブロック53
bと、明比較ブロック53cと、暗比較ブロック53d
と、中間比較ブロック53eと、明比較ブロック53
c、暗比較ブロック53d及び中間比較ブロック53e
からの出力信号を入力して、所定の判定条件に基づく明
暗判定を行う明暗判定ブロック53fと、直前値記憶回
路53gと、比較ブロック53hとを備えている。な
お、カウンタ54及び余裕値記憶ブロック55は図2に
示したものと同じである。また、ブロックアドレス制御
回路56は、主走査区分設定ブロック56aと、副走査
区分設定ブロック56bと、区域制御ブロック56cと
を備えている。
【0087】続いて、これらの要素間の信号のやりとり
について説明する。まず、図20の明比較器51に属す
る構成に関して、図21を参照して説明する。A/D変
換器19(図20参照)から出力された(A/D変換後
の)画像データは、比較ブロック51a及び明データ記
憶ブロック51bに入力する。比較ブロック51aには
明データ記憶ブロック51bからの出力信号も入力して
おり、すなわち比較ブロック51aでは、順次入力され
る画像データの明るさを示すデータを従前に入力された
データと比較し、より明るい方を明データ記憶ブロック
51bへ出力する。したがって、明データ記憶ブロック
51bには、それまでに入力された中で最も明るいデー
タ(以下、これを明データと称す。)が更新されながら
記憶されることとなる。なお、本実施例においては、具
体例として後述するように、明るさを1〜15で示して
おり、数字が大きくなるほど明るいことを前提として説
明を進めることとなる。
【0088】そして、減算ブロック51cでは、余裕値
記憶ブロック55より出力された暗余裕値を、この明デ
ータ記憶ブロック51bより出力される明データから減
算して暗上限記憶ブロック51dに出力する。したがっ
て、暗上限記憶ブロック51dには、暗上限値として、
明データから暗余裕値を減算した値が更新されながら記
憶されることとなる。なお、この暗上限値とは、明暗判
定の際に「暗」と判定する上限の値を指し、それまでの
入力データの内で最も明るいとされる明データから所定
の暗余裕値を減算した値よりも大きな値となる範囲では
とても暗とは認められない、という判定のために用いる
ものである。
【0089】次に、図20の暗比較器52に属する構成
に関して、図21を参照して説明する。A/D変換後の
画像データは、比較ブロック52a及び暗データ記憶ブ
ロック52bに入力する。比較ブロック52aには暗デ
ータ記憶ブロック52bからの出力信号も入力してお
り、すなわち比較ブロック52aでは、順次入力される
画像データの明るさを示すデータを従前に入力されたデ
ータと比較し、より暗い方を暗データ記憶ブロック52
bへ出力する。したがって、暗データ記憶ブロック52
bには、それまでに入力された中で最も暗いデータ(以
下、これを暗データと称す。)が更新されながら記憶さ
れることとなる。そして、加算ブロック52cでは、余
裕値記憶ブロック55より出力された明余裕値を、この
暗データ記憶ブロック52bから出力される暗データに
加算して明下限記憶ブロック52dに出力する。したが
って、明下限記憶ブロック52dには、明下限値とし
て、暗データに明余裕値を加算した値が更新されながら
記憶されることとなる。なお、この明下限値とは、明暗
判定の際に「明」と判定する下限の値を指し、それまで
の入力データの内で最も暗いとされる暗データに所定の
明余裕値を加算した値よりも小さな値となる範囲ではと
ても明とは認められない、という判定のために用いるも
のである。
【0090】次に、図20の明暗判定器53に属する構
成に関して、図21を参照して説明する。除算ブロック
53aには明データ記憶ブロック51bからの明データ
と暗データ記憶ブロック52bからの暗データが入力し
ており、それらが加算した後に2で除されて、明データ
と暗データの中間の値が算出されることとなる。つま
り、その時点までに入力されている明るさを示すデータ
の内、最も明るいデータと最も暗いデータの中間の値が
算出されて中間値記憶ブロック53bに記憶される。
【0091】また、明比較ブロック53c、暗比較ブロ
ック53d及び中間比較ブロック53eには、それぞれ
A/D変換後の画像データが入力している。そして、明
比較ブロック53cでは、その入力された画像データの
明るさを明下限記憶ブロック52dからの明下限値と比
較し、その比較結果を明暗判定ブロック53fに出力す
る。一方、暗比較ブロック53dでは、その入力された
画像データの明るさを暗上限記憶ブロック51dからの
暗上限値と比較し、その比較結果を明暗判定ブロック5
3fに出力する。さらに、中間比較ブロック53eで
は、その入力された画像データの明るさを中間値記憶ブ
ロック53bからの中間値と比較し、その比較結果を明
暗判定ブロック53fに出力する。
【0092】この明暗判定ブロック53fにおいては、
次のような明暗判定を行う。すなわち、明であるか否か
の判定には、明比較ブロック53cにおける判定結果と
中間比較ブロック53eからの比較結果を用いて、入力
値≧中間値、且つ入力値≧明下限値であれば明と判断す
る。一方、暗であるか否かの判定には、暗比較ブロック
53dにおける判定結果と中間比較ブロック53eから
の比較結果を用いて、入力値<中間値、且つ入力値≦暗
下限値であれば暗と判断する。明暗の判定ができた場合
には、当然その判定結果を出力するが、上述した明暗の
判定条件をいずれも満たさない場合には明暗判定ができ
ないものとして、前回の判定結果を出力するようにされ
ている。なお、例えば明であれば1、暗であれば0とし
て出力する。
【0093】この明暗判定ブロック53fでの判定結果
は、図20に示す画像メモリ20内の2次元画像メモリ
20cへ出力されると共に、直前値記憶回路53g及び
比較ブロック53hにも出力される。そして、比較ブロ
ック53hは、明暗判定ブロック53fからの出力値
を、直前値記憶回路53gに記憶された直前値と比較
し、変化している場合にのみカウンタ54へ出力する。
つまり、明暗が変化するとカウンタ54へ出力されるの
である。なお、カウンタ54は、比較ブロック53hか
らの出力に基づいて明暗が変化した数を計数し、その計
数した明暗変化点数を、画像メモリ20中の変化点数メ
モリ20bへ出力する。
【0094】次に、図20のブロックアドレス制御回路
56に属する構成に関して、図21を参照して説明す
る。区域制御ブロック56cは、カメラ部制御装置10
(図20参照)からのアドレス制御信号に基づくと共
に、主走査区分設定ブロック56a及び副走査区分設定
ブロック56bからの設定に応じて区域制御を行う。詳
しくは、設定された検査区域の主走査線上の区分点と副
走査線上の区分点とから検査区域毎の変化点数の格納ア
ドレスを制御し、カウンタ54を制御する。なお、区域
制御ブロック56cからの区域制御信号は、画像メモリ
20中の変化点数メモリ20bへも出力されている。
【0095】また、主走査区分設定ブロック56a及び
副走査区分設定ブロック56bは、カメラ部制御装置1
0(図20参照)からのリードライト制御信号によって
制御されている。なお、上述した暗上限記憶ブロック5
1d、明下限記憶ブロック52d、中間値記憶ブロック
53b及び余裕値記憶ブロック55も、このリードライ
ト制御信号によって制御されている。
【0096】以上は、本実施例のバーコード読取装置の
構成説明であったが、次に、カメラ部制御装置10が実
行するバーコード読取処理について、図22のフローチ
ャートなどを参照して説明する。最初のステップS21
00では、各検査区域の主走査線方向の明暗変化点数の
算出を行う。これについて詳述する。本実施例において
は、画像データメモリ20aに一時記憶された1画像領
域分のデータの全てを対象としてバーコード読取処理を
行うのではなく、バーコードが存在すると思われる領域
を詳細検査対象領域として設定した後、バーコード読取
処理を行う。そして、このバーコードの詳細検査対象領
域の設定に際しては、画像データメモリ20a上におけ
る1画像領域を複数の検査区域に分割し、その分割され
た検査区域毎に、その区域内に含まれる画像データに基
づいて明暗の変化点の数を計数して、その計数値に基づ
いて推定を行う。そこで、まず、S2100にて実行さ
れる明暗変化点数の算出処理について、図23,24を
参照して説明する。
【0097】最初に検査区域について説明する。図24
(a)に示すように、画像領域を水平方向へ走査するた
めの主走査線及び垂直方向へ走査するための副走査線と
それぞれ平行な線によって区画される矩形の区域を検査
区域とする。これは、CCDエリアセンサ11において
は主走査線及び副走査線方向にマトリックス状に画素が
配列されているので、このように矩形領域に設定した方
がデータが扱い易いからである。
【0098】なお、図24(a)においては、画像領域
を横G個×縦H個の検査区域に分割し、各検査区域が横
a画素×縦b画素とされている。なお、図においてはG
=8,H=10,a=b=8とされており、この想定で
は、画像領域のサイズが横80×縦64画素となってし
まう。一般的に、640×480画素といったレベルの
解像度のものが用いられるが、ここでは、図に基づく直
感的理解を容易にするために、あえてこのような簡易モ
デルを用いることとする。
【0099】そして、このような設定の検査区域におい
て、バーコードの一部を図24(b)に示すように捉え
た場合を考える。明暗変化点は、各主走査線について計
数するため、この場合は、8本の主走査線について、そ
れぞれ、4,4,4,4,4,3,3,3となり、それ
らの合計数が29となる。したがって、この検査区域の
主走査線方向の明暗変化点数は29となる。このように
して、各検査区域の明暗変化点数を求めるのである。
【0100】明暗変化点数をカウントするまでの処理内
容については、図21の構成説明に際して概略を説明し
たが、さらに補足説明する。CCDエリアセンサ11か
ら出力される画素毎の画像データについて、それまでに
検出された最も明るい画像データと最も暗いデータの中
間値を明暗判定の基準値とする。例えば数字が大きくな
るほど明るくなる画像データを「1〜15」の範囲で考
える。最初15のデータが入ってくると、明データと暗
データは共に15であり、中間値も15となる。その
後、15が続けて入ってきている間は変化なしである
が、例えば9が入ってくると、暗データが9に更新さ
れ、中間値は12となる。さらに、1が入ってくると、
暗データが1に更新され、中間値は8となる。これが収
束値となる。したがって、その後は8を基準として明暗
判定する。
【0101】また、明暗判定の基本は中間値との比較で
あるため、入力値≧中間値であれば明、入力値<中間値
であれば暗とするが、本実施例では、明暗判定の確実性
を増すために不感帯を設けている。つまり、入力値≧中
間値であっても、入力値が明下限値未満であれば明とは
判定せず、同様に、入力値<中間値であっても、入力値
が暗上限よりも大きければ暗とは判定しない。つまり、
入力値≧中間値、且つ入力値≧明下限値の場合にのみ明
とし、入力値<中間値、且つ入力値≦暗上限値の場合に
のみ暗とする。これらの条件に合致しない場合には明暗
判定はせず、上述したように前回の判定結果を援用す
る。
【0102】そのため、具体的には次のようになる。な
お、ここでは暗上限値は最大値−5であるとし、明下限
値は最小値+5を想定し、中間値の計算においては小数
点以下は切り上げている。また、明暗判定できない場合
を×で示してある。 入力順番 入力値 15,15, 8, 1, 1, 1, 8,15 最大値(明) 15,15,15,15,15,15,15,15 最小値(暗) 15,15, 8, 1, 1, 1, 1, 1 中間値 15,15,12, 8, 8, 8, 8, 8 暗上限値 10,10,10,10,10,10,10,10 明下限値 20,20,13, 6, 6, 6, 6, 6 明暗判定 × × 暗 暗 暗 暗 明 明 この具体例においては、入力順番,における入力値
が15であるので、最大値、最小値及び中間値が共に1
5になり、暗上限値は10、明下限値は20となる。入
力値(15)≧中間値(15)であるため「明」の可能
性があるが、入力値(15)は明下限値(20)以上で
はないので、明とは判定されない。当然「暗」とは判定
されないので、明暗判定不可能(×)とされる。
【0103】そして、入力順番において入力値が8と
なると、最小値も8となり、中間値が12となる。する
と、入力値(8)<中間値(12)となり、且つ入力値
(8)も暗上限値(10)以下となるので、暗と判定さ
れる。入力順番,では明暗判定不可能(×)であっ
たものがで暗となったので、この場合には明暗変化が
あったものと考える。
【0104】続くにおける入力値は1であるので、最
小値も1となり、中間値が8となる。すると、入力値
(1)<中間値(8)となり、且つ入力値(1)も暗上
限値(10)以下であるので、暗と判定される。なお、
この時点で最大値15と最小値1が出現しているので、
暗上限値10及び明下限値6はこれ以降同じとなる。入
力順番,でも同様である。
【0105】そして、入力順番において入力値が8と
なると、入力値(8)≧中間値(8)となり、且つ入力
値(8)も明下限値(6)以上となるので、明と判定さ
れる。入力順番では暗と判定されていたものがで明
となったので、この場合には明暗変化があったものと考
える。したがって、ここで示した例でいえば、明暗変化
点数が2となる。なお、入力順番では入力値が8であ
るが暗と判定されていたが、それは取り得る最小値
(1)がその時点で出現していなかったからである。上
述したように、入力順番までにおいて最大値15と最
小値1が出現して、暗上限値10及び明下限値6はこれ
以降同じとなるため、今後は、入力値が8以上であれば
明と判定され、8未満であれば暗と判定されることとな
る。
【0106】それではここで、各検査区域の明暗変化点
数を求めるための処理を図23のフローチャートを参照
して説明する。最初のステップS2110では、変数
g,hを共に初期値1に設定し、続くS120において
は、J番目の走査線に沿ってI番目の画像データを検査
して、変化点数を累積カウントする。
【0107】続いて、検査した画像データの位置を示す
Iがa×gであるか否かを判定する(S2130)。こ
れは、主走査線に沿って横方向にg検査区域分だけ検査
したか否かを判定する処理であり、Iがa×gとなって
いなければ(S2130:NO)、主走査線に沿ってg
検査区域分を検査していないので、S2120へ戻る。
一方、Iがa×gとなれば、主走査線に沿ってg検査区
域分だけ検査したこととなるので(S2130:YE
S)、S2140へ移行する。
【0108】S2140では、S2120にて得た累積
カウント値を(g,h)区域の明暗変化点数に加算して
記憶する。そして、変数gをインクリメント(g=g+
1)してから(S2150)、変数gが検査区域の横方
向の総数Gよりも大きいか否かを判定する(S216
0)。これは、1画像領域の横方向分だけ主走査線によ
る検査をしたか否かを判定する処理であり、g>Gとな
っていなければ(S2160:NO)、S2120へ戻
る。一方、g>Gとなれば、1画像領域の横方向分だけ
主走査線による検査をしたこととなるので(S216
0:YES)、S2170へ移行する。
【0109】S2170では、変数hが検査区域の縦方
向の総数Hに一致したか否かを判定する。これは、1画
像領域の縦方向分だけ主走査線による検査をしたか否か
を判定する処理であり、hとHが一致していなければ
(S2170:NO)、検査に用いている走査線が何番
目のものであるかを示すJがb×hであるか否かを判定
する(S2180)。これは、主走査線に沿った検査を
縦方向にh検査区域分行ったか否かを判定する処理であ
り、Jがb×hとなっていなければ、まだ主走査線に沿
った検査を縦方向にh検査区域分行っていないので
((S2180:NO)、S120へ戻る。一方、Jが
b×hとなれば、主走査線に沿った検査を縦方向にh検
査区域分行ったこととなるので(S2180:YE
S)、S2190へ移行する。
【0110】S2190で変数hをインクリメント(h
=h+1)してから、S2120へ戻る。このような処
理を繰り返し、S2170にて肯定判断となった場合に
は、1画像領域の縦方向分だけ主走査線による検査をし
た、つまり1画像領域の全てについて検査したこととな
るので、本処理を終了し、図22のS2200へ移行す
る。
【0111】S210での明暗変化点数の計数処理がな
されると、各検査区域単位での明暗変化点数が得られ
る。その各検査区域における明暗変化点数の表の一例を
図24(c)に示す。細い線や小さな点は画素単位で明
暗が分かれるので、明暗の「変化」は与えない。また、
図柄などの大きな面積を持つ場合は、明暗変化点の数と
しては少なくなる。したがって、明暗変化点数が多い部
分に情報コードが存在する可能性が高いと考えられる。
【0112】このような状況を踏まえ、各検査区域の明
暗変化点数に基づいて、バーコードの存在すると思われ
る領域を詳細検査対象領域として設定し、バーコードの
読取を行う。図22のS220では、各検査区域の変化
点数を所定値と比較し、所定値以上の検査区域を詳細検
査対象区域候補として設定する。図24(c)に示した
配列表では、理解を容易にするため、所定値を6とし
て、明暗変化点数が6以上の検査区域である詳細検査対
象区域候補に斜線を施して他の区域と区別した。
【0113】続くS2300では、各詳細検査対象区域
候補について、今度は、副走査線方向の明暗変化点数の
算出を行う。この算出手法は、S2100で説明し主走
査線方向の場合と同様であり、それを副走査線方向に変
えただけである。但し、S2100では1画像領域の全
ての検査区域を対象として行ったが、このS2300で
は、S2200にて抽出された詳細検査対象区域候補に
ついてのみ行う。例えば、図24(b)に示す場合に
は、8本の副走査線について、それぞれ、1,1,1,
2,1,0,0,1となり、それらの合計数が7とな
る。
【0114】続くS2400では、縦横の変化点数比が
類似している詳細検査対象区域候補を検査区域として設
定する。例えば図24(b)の具体例では、縦(副検査
線方向)の変化点数の合計数が7、横(主検査線方向)
の変化点数の合計数が29であり、縦横の変化点数比は
29/7となる。詳細検査対象区域候補がバーコードの
一部を捉えている場合には、1区域に含まれるバー又は
スペースの本数が増減しても、この縦横の変化点数比は
極端には違わない。したがって、バーコードが存在して
いると思われる領域に属する詳細検査対象区域候補の縦
横の変化点数比は類似していると考えられる。
【0115】続くS2500では、S2400にて設定
された詳細検査対象区域の配列を検査してその連続性を
調べる。そして、連続していなければ(S2600:N
O)、そのまま本処理を終了するが、連続していれば
(S2600:YES)、S2700へ移行して、その
連続している詳細検査対象区域群(これが詳細検査対象
領域となる)の中心点の座標を算出する。
【0116】この中心点座標の算出について補足説明す
る。図25(a)に示すように、破線で示したバーコー
ドが存在すると推定される領域に設定された詳細検査対
象領域(太い枠で示した)は、矩形形状とは限らない。
但し、ここでは、副走査方向の最大幅Yと主走査方向の
最大幅Xを考え、それらを縦横とする矩形形状の領域の
中心座標を算出する。具体的には、図25(b)に示す
ようにX,Y軸を取り、画像領域の左下端を原点とす
る。そして、詳細検査対象領域が取り得るX座標の最小
値x1と最大値x2、及びY座標の最小値y1と最大値
y2を考えると、中心座標のX座標を(x2−x1)/
2、Y座標を(y2−y1)/2として算出できる。
【0117】続くS2750では、詳細検査対象領域中
に存在すると推定されるバーコードのバー又はスペース
の勾配θを推定する。ここでいう勾配θとは、図26に
示すように、バー又はスペースが副走査線方向となす角
度である。そして、実際のバー又はスペースの形状を調
べて勾配θを検出するのではなく、S2100,S23
00にて得た主走査線方向及び副走査線方向の変化点数
を用いて、下記の関係式を用いて推定する。
【0118】tanθ≒副走査線方向の変化点数/主走
査線方向の変化点数 ある程度の数の変化点数が得られれば上記関係式はほぼ
正確に成立する。この関係式の数学的証明は省略する
が、具体例を挙げて関係式が成立していることを説明し
ておく。
【0119】図26には、バー又はスペースの勾配θ=
30°となっている状態を示している。ここで、図24
(b)の場合と同様に、それぞれ8本ずつの主走査線方
向及び副走査線方向の変化点数の合計を算出すると、主
走査線方向の変化点総数は26、副走査線方向の変化点
総数は15となる。ここで、tan30°≒0.577
である。一方、副走査線方向の変化点数/主走査線方向
の変化点数=15/26≒0.576であり、両者がほ
ぼ等しいことが判る。
【0120】したがって、このS2750においては、
バー又はスペースの勾配θを、tanθの近似値として
推定した値を得ることとなる。このように詳細検査対象
領域の中心点座標及び勾配θの算出ができれば、次にS
2800へ移行して、画像データ検査線の設定〜ガード
バー検出〜デコード処理に係る一連の処理を行う。S2
800の処理の詳細について図27のフローチャートを
参照して説明する。
【0121】最初のステップS2810では、変数iを
1に設定し、続くS2820において画像データ検査線
(i)を設定する。最初の設定時(i=1)には、図2
2のS2700にて算出した詳細検査対象領域の中心点
を通り、且つ図22のS2750にて推定したバー又は
スペースの勾配θに直交するような画像データ検査線を
設定する(図25(a)参照)。
【0122】続いて、その画像データ検査線(i)に沿
って検査した結果に基づいてバーコードの特徴パターン
の有無を判定し(S2830)、無ければ、変数iをイ
ンクリメントし(S2840)、変数iが画像データ検
査線の設定本数Mよりも大きいか否かを判断する(S2
850)。変数i≦設定本数Mであれば(S2850:
NO)、S2820へ戻って、前回とは別の画像データ
検査線を設定する。このようにして、バーコードの特徴
パターンを見つけるまで、画像データ検査線を変更しな
がら検査していく。本実施例では、図28(a)に示す
ように、詳細検査対象領域の中心点を通り、且つバー又
はスペースの勾配θに直交するような画像データ検査線
を基準として、それに平行な画像データ検査線が複数設
定されている。そして、画像領域中の中央付近にバーコ
ードの画像が存在する可能性が高いという観点から、複
数本設定された画像データ検査線の使用順番は、詳細検
査対象領域の中心点を通る画像データ検査線を基準とし
て、画像領域の中央付近から外側へ向かう順番とされて
いる。
【0123】なお、図28(b)に示すように、詳細検
査対象領域の中心点を通り、且つバー又はスペースの勾
配θに直交するような画像データ検査線を基準とし、詳
細検査対象領域の中心点を通るはするが、角度が基準の
画像データ検査線とは異なる複数の検査線を設定しても
よい。そして、この場合の複数本設定された画像データ
検査線の使用順番は、基準の画像データ検査線との角度
の差が小さいものから順番に使用していく。
【0124】図27の説明に戻り、S2830の判定に
よりバーコードの特徴パターンがあった場合には、S2
860へ移行してガードバーGb1を検出する。そし
て、そのガードバーGb1に垂直な読取走査線を設定す
る(S2870)。なお、上述した第1実施例の場合に
は、図8のS170,S180に示すように、ガードバ
ーGb1の傾きを検出し、その傾きに直交するような傾
きを持つ読取走査線を設定していた。それに対して本第
4実施例では、S2870にて設定する読取走査線の傾
きはS2820で設定した画像データ検査線の傾きと同
じにする。この画像データ検査線の傾き自体が、バー又
はスペースの傾きに直交するように設定されたものだか
らである。なお、図28(a)に示すような平行な複数
の画像データ検査線の中から順番に使用していく場合に
は、いずれの画像データ検査線であっても傾きは同じで
あるため問題ない。一方、図28(b)に示すように傾
き自体を変える場合には、最初のS2820での処理、
すなわち基準となる画像データ検査線を設定した場合
の、その検査線の傾きと同じにすればよい。
【0125】そして、その読取走査線に沿って走査し
(S2880)、その結果、他端のガードバーGb2を
検出できなかった場合には(S2890:NO)、S2
900へ移行し、確実に検出されたバーまで戻ってその
バーの傾きを検出する。そして、S2870へ戻り、そ
のバーに垂直な読取走査線を新しく設定し、S2880
以降の処理を繰り返す。
【0126】一方、バーコードの他端のガードバーGb
2を検出した場合には(S2890:YES)、S29
10にて誤り検査を行い、誤りが無ければ、S2920
にて読み取ったデータを文字データに変換して出力し、
誤りが有ればそのまま本処理ルーチンを終了する。
【0127】また、S2850にて肯定判断、すなわ
ち、設定された画像データ検査線を全て用いて検査して
もバーコードの特徴パターンを見つけられなかった場合
には、そのまま本処理を終了する。なお、本第4実施例
で用いた用語の内、特許請求の範囲に記載した用語と異
なっているものについて、その対応を簡単に説明してお
く。図27のS2820にて設定されるi=1の場合の
画像データ検査線が「第1の検査線」に相当し、i=
2,3…の場合の画像データ検査線が「第2の検査線」
に相当する。また、詳細検査対象領域の中心点が「詳細
検査対象領域の概略中心位置」に相当する。
【0128】このように、本第4実施例においては、予
めバーコードが存在する可能性の高いと考えられる詳細
検査対象領域を設定し、その領域内に限ってガードバー
Gb1を見つける処理を行うようにしたため、全体とし
て処理効率が向上する。つまり、複数画素を1まとめに
した検査区域単位で、コードが存在する可能性の高い領
域を詳細検査対象領域として推定し、その後、その推定
された領域内においてのみ従来通りの1画素毎の明暗パ
ターンを検査するので、その検査範囲が小さくて済む。
また、詳細検査対象領域の推定にあっては、検査区域毎
に計数した明暗変化点数の大小比較のみ、すなわち整数
値の相対比較であるため、処理負荷は小さくて済む。し
たがって、概略的な存在領域を推定した後にバーコード
の正確な位置を検出してデータ解読をする処理まで含め
たコード読取処理に要する時間を短縮させることができ
る。
【0129】また、画像データ検査線自体が、詳細検査
対象領域内に存在すると推定されるバーコードのバー又
はスペースの傾きに直交するように設定されているた
め、ガードバーGb1に垂直な読取走査線の設定(図2
7のS2870)に際しても、その傾きを援用すること
ができる。そして、バー又はスペースの傾きθに関して
も、上述したように、実際のバー又はスペースの形状を
調べて勾配θを検出するのではなく、主走査線方向及び
副走査線方向の変化点数の比から推定できるため、処理
効率が向上する。
【0130】また、上述した第1実施例では、相互に直
交する主検査線及び副検査線を用いていたが、これはバ
ーコードがどのように傾いて画像領域中に存在している
かが判らないための対処であった。これに対して本第4
実施例の場合には、画像データ検査線自体がバーコード
の傾きを反映して設定されているため、より処理効率が
向上する。つまり、水平方向及び垂直方向の画像データ
検査線を設定する場合には、水平方向の検査線でしか見
つけられないようにバーコードが傾いていると、垂直方
向の検査線で見つけようとする処理が結果的には無駄と
なってしまうが、本第4実施例の画像データ検査線を用
いる場合にはそのような無駄がない。
【0131】[第4実施例の別態様] (1)上記第1実施例に対する第2実施例の関係と同様
に、図27に示した処理に代えて、図29のフローチャ
ートに示す処理を実行するようにしてもよい。つまり、
読取走査線の設定に際し、一方のガードバーGb1上の
起点から読取走査線に沿って所定距離走査した時点ある
いは所定数のバー及びスペースを走査した時点で、直近
のバー上を起点とすると共に当該バーに垂直な読取走査
線を新たに設定する、という処理を、最終的に設定され
た読取走査線が他方のガードバーGb2を貫くまで繰り
返し行う手法である。
【0132】図29のS3010〜S3060及びS3
110,3120の処理内容は、上述した実施例の場合
の図27のフローチャートにおけるS2810〜S28
60及びS2910,2920と全く同様であるので説
明は省略し、変更部分についてのみ説明する。
【0133】S3060にてガードバーGb1を検出し
た後、S3070では、そのガードバーGb1の中点に
読取走査線の起点を設定し、そのガードバーGb1に垂
直な読取走査線を設定する(S3080)。この場合の
傾きについては、図27のS2870で説明した通り、
画像データ検査線の傾きをそのまま用いればよい。
【0134】そして、その読取走査線に沿って所定本数
のバーを走査する(S3090)。その結果、バーコー
ドの他端のガードバーGb2を検出したかどうかを判断
し(S3100)、他端のガードバーGb2を検出しな
かった場合には(S3100:NO)、S3080へ戻
り、S3090にて所定本数走査したバーを基準とし、
そのバーに垂直な読取走査線を設定する。
【0135】(2)図27,28などを参照して説明し
たように、基準の画像データ検査線(i=1)として
は、詳細検査対象領域の概略中心点を通るものを採用し
た。これは、詳細検査対象領域の中心にバーコードが存
在しているとは限らないが、確率的には、詳細検査対象
領域の中心にバーコードが存在している可能性が高いた
め、この画像データ検査線によってガードバーGb1を
検出できる可能性が高くなると考えられるからである。
したがって、この点を考慮しないのであれば、例えば図
28に示す画像データ検査線の使用順番i=1,2,3
…を入れ替えても構わない。例えば画像領域の上側を走
査する画像データ検査線を最初に設定し、その後、画像
領域の下側へ向かう順番に用いてもよい。
【0136】ところで、上述した実施例においては、詳
細検査対象領域を構成する検査区域毎に明暗パターンの
特徴を調べて類型化する際に、検査区域内の縦横の明暗
変化点数比を用いたが、例えば明暗変化点の総数を用い
ても構わない。この総数に関しても、バーコードが存在
する区域ではほぼ同じような値になると考えられるから
である。
【0137】但し、バーコード以外の文字などが含まれ
る検索区域の変化点の総数がバーコードのみの検査区域
と同じになることも想定されるため変化点数比の方が好
ましいと言える。つまり、縦横の変化点数比の場合に
は、文字などが含まれる検査区域の場合と比べれば、か
なり明確な違いとなって現れると考えられるからであ
る。そして、バーコードの場合には、バー又はスペース
が直線であるため、バー又はスペースの端部が含まれな
ければ、縦の明暗変化点数と横の明暗変化点数の比はや
はり同じ様な値になる可能性が高い。特に、文字などが
含まれる検査区域の場合の明暗変化点数の比と比べれ
ば、総数の場合よりさらに明確に区別できると考えられ
る。したがって、比に基づく類型化が非常に有効であ
る。
【0138】(3)上述の図22のS2750について
の説明中でも述べたが、バー又はスペースの勾配θを推
定する際に利用した関係式「tanθ≒副走査線方向の
変化点数/主走査線方向の変化点数」は、ある程度の数
の変化点数が得られていることが前提である。つまり、
例えばバー又はスペースの幅が検査区域の幅よりも大き
ければ、主検査線方向及び副検査線方向の明暗変化点数
の一方あるいは両方が0となり、明暗変化点数比が0と
なってしまうことが考えられ、その場合は適切な類型化
が難しくなるからである。この明暗変化点数の大小に
は、検査区域の大小が関係している。したがって、検査
区域について複数のサイズの中から選択可能にしてもよ
い。例えば図30に示すように、(b)の「通常の検査
区域」に対して、(a)の「より細かな検査区域」及び
(c)の「より大きな検査区域」を準備しておく。これ
ら検査区域の複数のサイズについては、実際に使用され
る可能性の高いバーコードの種類などを考慮して設定す
ればよい。また、選択する際には、利用者がマニュアル
で切り替えて選択してもよいし、自動的に選択できるよ
うにしてもよい。自動的に選択する場合には、例えばあ
るサイズで処理を実行して適切に読み取れなかった場合
には次のサイズに切り替えて再度処理を実行する、とい
った手法が考えられる。
【0139】(4)検査区域の形状を正方形としたが、
長方形であっても同様に実現できる。また、画像領域の
全てにおいて同じサイズの検査区域としたが、複数サイ
ズの検査区域を混在させることを除くものではない。も
ちろん、サイズを統一した方が処理上の都合はよい。ま
た、正方形や長方形などの矩形以外の形状に設定するこ
とも可能ではあるが、上述した処理上の都合の観点から
は、やはり矩形が好ましい。特に、検査区域の縦横の明
暗変化点数の比でバー又はスペースの傾きθを推定しよ
うとする場合には、正方形の検査区域の方が処理の都合
上からも好ましいと言える。
【0140】(5)明暗変化点として、明から暗への変
化点と暗から明への変化点を共に明暗変化点としたが、
これは、いずれかの一方のみに着目して処理してもよ
い。
【図面の簡単な説明】
【図1】実施例としてのバーコード読取装置のブロック
図である。
【図2】画像と画像データアドレスとの対応関係を示す
説明図である。
【図3】主検査線及び副検査線の説明図である。
【図4】読取走査線の設定手法の説明図である。
【図5】読取走査線の設定手法の説明図である。
【図6】読取走査線の設定手法の説明図である。
【図7】第1実施例の場合の新たな読取走査線の設定手
法の説明図である。
【図8】第1実施例の場合のバーコード読取に係る処理
を示すフローチャートである。
【図9】第2実施例の場合の新たな読取走査線の設定手
法の説明図である。
【図10】第2実施例の場合のバーコード読取に係る処
理を示すフローチャートである。
【図11】第3実施例の場合の新たな読取走査線の設定
手法の説明図である。
【図12】読取走査線の起点を反対側のガードバーを起
点として逆向きに設定する手法の説明図である。
【図13】読取走査線の起点を決定する際の別手法の説
明図である。
【図14】読取走査線の起点を決定する際の別手法の説
明図である。
【図15】読取走査線の起点を決定する際の別手法の説
明図である。
【図16】バーコードのサイズなどの違いを示す説明図
である。
【図17】1次元画像に基づくバーコード読取の説明図
である。
【図18】2次元画像に基づくバーコード読取の説明図
である。
【図19】読取装置とバーコードとの位置関係によって
取り込んだバーコード画像が歪むことを示す説明図であ
る。
【図20】第4実施例の2値化回路の概略構成を示すブ
ロック図である。
【図21】第4実施例の2値化回路の詳細構成を示すブ
ロック図である。
【図22】第4実施例のバーコード読取に係るメイン処
理を示すフローチャートである。
【図23】第4実施例の明暗変化点の計数処理を示すフ
ローチャートである。
【図24】第4実施例の検査区域などの説明図である。
【図25】第4実施例の詳細検査対象領域の中心点の説
明図である。
【図26】第4実施例のバー又はスペースの傾きθの説
明図である。
【図27】第4実施例の画像データ検査線の設定〜ガー
ドバー検出〜デコード処理を示すフローチャートであ
る。
【図28】第4実施例の画像データ検査線の設定手法の
説明図である。
【図29】第4実施例の画像データ検査線の設定〜ガー
ドバー検出〜デコード処理の別態様を示すフローチャー
トである。
【図30】第4実施例の別態様として複数の検査区域を
持つ場合の説明図である。
【符号の説明】
1…バーコード読取装置 10…カメラ部制御
装置 11…CCDエリアセンサ 12…AGCアン
プ 13…ローパスフィルタ 14…基準電圧生
成部 15…負帰還アンプ 16…補助アンプ 17…2値化回路 18…周波数分析
器 19…A/D変換器 20…画像メモリ 21…画像メモリコントローラ 22…メモリ 24…加算器 25…照明LED 30…システム制御装置 31…認識用LE
D 32…ブザー 33…液晶ディス
プレイ 34…キーパット 35…読み取り用
スイッチ 36…シリアルI/F回路 37…IrDAI
/F回路 20a…画像データメモリ 20b…変化点数
メモリ 20c…2次元画像メモリ 50…2値化回
路 51…明比較器 51a…比較ブロッ
ク 51b…明データ記憶ブロック 51c…減算ブロ
ック 51d…暗上限記憶ブロック 52…暗比較器 52a…比較ブロック 52b…暗データ
記憶ブロック 52c…加算ブロック 52d…明下限記
憶ブロック 53…明暗判定器 53a…除算ブロッ
ク 53b…中間値記憶ブロック 53c…明比較ブ
ロック 53d…暗比較ブロック 53e…中間比較
ブロック 53f…明暗判定ブロック 53g…直前値記
憶回路 53h…比較ブロック 54…カウンタ 55…余裕値記憶ブロック 56…ブロックア
ドレス制御回路 56a…主走査区分設定ブロック 56b…副走査区
分設定ブロック 56c…区域制御ブロック

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】2次元画像検出手段にて検出された2次元
    的な画像データを一時的に記憶した画像データメモリ上
    に、前記2次元画像検出手段における水平方向及び垂直
    方向にそれぞれ対応する画像データ検査線を設定し、 その設定された画像データ検査線に沿って画像データを
    走査することにより、前記画像データ中に含まれている
    バーコードの両端に存在するガードバーの内の一方を検
    出し、 その検出したガードバー上を起点とすると共に当該ガー
    ドバーに垂直な読取走査線を設定し、その設定された読
    取走査線に沿って所定の走査方向へ走査することによ
    り、前記画像データ内に含まれているバーコードを読み
    取るバーコード読取方法であって、 前記一方のガードバー上の起点から前記読取走査線に沿
    って前記バーコードを走査した結果、その読取走査線が
    前記バーコードの他方のガードバーを貫かないで前記バ
    ーコードの存在領域外へ逸れてしまった場合には、その
    読取走査線を走査方向とは逆に辿って、その読取走査線
    に基づいて確実に認識されているバーの位置まで戻り、
    その確実に認識されているバー上を起点とすると共に当
    該バーに垂直な読取走査線を新たに設定する、という処
    理を、最終的に設定された読取走査線が前記他方のガー
    ドバーを貫くまで繰り返し行うことによって、前記バー
    コード全体を走査すること、 を特徴とするバーコード読取方法。
  2. 【請求項2】2次元画像検出手段にて検出された2次元
    的な画像データを一時的に記憶した画像データメモリ上
    に、前記2次元画像検出手段における水平方向及び垂直
    方向にそれぞれ対応する画像データ検査線を設定し、 その設定された画像データ検査線に沿って画像データを
    走査することにより、前記画像データ中に含まれている
    バーコードの両端に存在するガードバーの内の一方を検
    出し、 その検出したガードバー上を起点とすると共に当該ガー
    ドバーに垂直な読取走査線を設定し、その設定された読
    取走査線に沿って所定の走査方向へ走査することによ
    り、前記画像データ内に含まれているバーコードを読み
    取るバーコード読取方法であって、 前記一方のガードバー上の起点から前記読取走査線に沿
    って所定距離走査した時点あるいは所定数のバーを走査
    した時点で、直近のバー上を起点とすると共に当該バー
    に垂直な読取走査線を新たに設定する、という処理を、
    最終的に設定された読取走査線が前記他方のガードバー
    を貫くまで繰り返し行うことによって、前記バーコード
    全体を走査すること、 を特徴とするバーコード読取方法。
  3. 【請求項3】請求項2記載のバーコード読取方法におい
    て、 前記所定数のバーは1であることを特徴とするバーコー
    ド読取方法。
  4. 【請求項4】請求項1〜3のいずれか記載のバーコード
    読取方法において、 前記読取走査線の前記ガードバー上での起点として、前
    記画像データ検査線と前記ガードバーとの交点を設定
    し、 前記新たな読取走査線の前記確実に認識されているバー
    あるいは前記直近のバー上での起点として、前記直前に
    設定された読取走査線と前記確実に認識されているバー
    あるいは前記直近のバーとの交点を設定すること、 を特徴とするバーコード読取方法。
  5. 【請求項5】請求項1〜3のいずれか記載のバーコード
    読取方法において、 前記読取走査線と前記ガードバーとの交点が、当該ガー
    ドバーの上下いずれかの端部付近である場合には、前記
    読取走査線の前記ガードバー上での起点として、前記画
    像データ検査線と前記ガードバーとの交点から前記端部
    付近であると判定された側の端部とは反対側へ所定量だ
    け移動した位置を設定し、 前記新たな読取走査線と前記確実に認識されているバー
    あるいは前記直近のバーとの交点が、当該確実に認識さ
    れているバーあるいは前記直近のバーの上下いずれかの
    端部付近である場合には、前記新たな読取走査線の前記
    確実に認識されているバーあるいは前記直近のバー上で
    の起点として、前記直前に設定された読取走査線と前記
    確実に認識されているバーあるいは前記直近のバーとの
    交点から前記端部付近であると判定された側の端部とは
    反対側へ所定量だけ移動した位置を設定すること、 を特徴とするバーコード読取方法。
  6. 【請求項6】請求項1〜3のいずれか記載のバーコード
    読取方法において、 前記読取走査線の前記ガードバー上での起点として、前
    記ガードバーの中央位置を設定し、 前記新たな読取走査線の前記確実に認識されているバー
    あるいは前記直近のバー上での起点として、前記確実に
    認識されているバーあるいは前記直近のバーの中央位置
    を設定すること、 を特徴とするバーコード読取方法。
  7. 【請求項7】2次元画像検出手段にて検出された2次元
    的な画像データを一時的に記憶した画像データメモリ上
    に、前記2次元画像検出手段における水平方向及び垂直
    方向にそれぞれ対応する画像データ検査線を設定し、 その設定された画像データ検査線に沿って画像データを
    走査することにより、前記画像データ中に含まれている
    バーコードの両端に存在するガードバーの内の一方を検
    出し、 その検出したガードバーの中央位置を起点とすると共に
    当該ガードバーに垂直な読取走査線を設定し、その設定
    された読取走査線に沿って所定の走査方向へ走査するこ
    とにより、前記画像データ内に含まれているバーコード
    を読み取るバーコード読取方法であって、 前記一方のガードバーの中央位置を起点とした前記読取
    走査線に沿って前記バーコードを走査した結果、その読
    取走査線が前記バーコードの他方のガードバーを貫かな
    いで前記バーコードの存在領域外へ逸れてしまった場合
    には、その読取走査線を走査方向とは逆に辿って、その
    読取走査線に基づいて確実に認識されているバーの位置
    まで戻り、その確実に認識されているバーの中央位置と
    前記ガードバー上の起点とを結ぶ新たな読取走査線を設
    定する、という処理を、最終的に設定された読取走査線
    が前記他方のガードバーを貫くまで繰り返し行うことに
    よって、前記バーコード全体を走査すること、 を特徴とするバーコード読取方法。
  8. 【請求項8】請求項1〜7のいずれか記載のバーコード
    読取方法において、 前記水平方向及び垂直方向の画像データ検査線は、それ
    ぞれ複数本設定されていることを特徴とするバーコード
    読取方法。
  9. 【請求項9】請求項8記載のバーコード読取方法におい
    て、 前記複数本の水平方向及び垂直方向の画像データ検査線
    は、前記2次元画像検出手段の画面中央付近に相当する
    範囲では相対的に密に設定されていることを特徴とする
    バーコード読取方法。
  10. 【請求項10】請求項8又は9記載のバーコード読取方
    法において、 前記複数本の水平方向及び垂直方向の画像データ検査線
    を用いる順番は、前記2次元画像検出手段の画面中央付
    近から外側へ向かう順番であることを特徴とするバーコ
    ード読取方法。
  11. 【請求項11】請求項8〜10のいずれか記載のバーコ
    ード読取方法において、 前記水平方向及び垂直方向の内、いずれか一方の画像デ
    ータ検査線を全て用いても検出できなかった場合には、
    他方の画像データ検査線を用いて検出することを特徴と
    するバーコード読取方法。
  12. 【請求項12】バーコードを2次元画像検出手段にて検
    出し、前記2次元画像検出手段にて検出したバーコード
    を含む1画像領域分の画像データを一時的に画像データ
    メモリに記憶しておき、前記画像データメモリ上におけ
    る1画像領域を複数の検査区域に分割し、その分割され
    た検査区域毎に、その区域内に含まれる画像データに基
    づいて明暗の変化点の数を計数し、その計数された明暗
    変化点数に基づいてバーコードが存在する可能性の高い
    検査区域を抽出し、その抽出された検査区域を詳細検査
    対象領域として設定する詳細検査対象領域設定処理を行
    い、 その設定された詳細検査対象領域内に限定して請求項1
    〜11のいずれか記載のバーコード読取方法を適用し、
    前記画像データ内に含まれているバーコードを読み取る
    こと、 を特徴とするバーコード読取方法。
  13. 【請求項13】請求項12記載のバーコード読取方法に
    おいて、 前記検査区域は、前記画像領域を水平方向へ走査するた
    めの主走査線及び垂直方向へ走査するための副走査線と
    それぞれ平行な線によって区画される矩形の区域である
    こと、 を特徴とするバーコード読取方法。
  14. 【請求項14】請求項12又は13記載のバーコード読
    取方法において、 前記詳細検査対象領域設定処理によって設定された詳細
    検査対象領域を構成する検査区域毎に明暗パターンの特
    徴を調べて類型化し、最も多数の検査区域が属する類型
    を検出し、その検出された最頻類型に属する任意の検査
    区域内に存在するバー又はスペースの傾きを算出し、そ
    の算出されたバー又はスペースの傾きに直交する傾きを
    有する第1の検査線を設定し、 前記請求項1〜11のいずれか記載のバーコード読取方
    法においては前記2次元画像検出手段における水平方向
    及び垂直方向にそれぞれ対応していた画像データ検査線
    に代えて、前記設定された第1の検査線を前記画像デー
    タ検査線として採用すること、 を特徴とするバーコード読取方法。
  15. 【請求項15】請求項14記載のバーコード読取方法に
    おいて、 前記画像データ検査線として採用する第1の検査線が、
    前記詳細検査対象領域の概略中心位置を通るように設定
    されていること、 を特徴とするバーコード読取方法。
  16. 【請求項16】請求項14又は15記載のバーコード読
    取方法において、 前記第1の検査線を前記画像データ検査線として採用し
    た結果、バーコードを読み取れなかった場合には、前記
    第1の検査線と平行な第2の検査線を少なくとも1本設
    定し、その設定された第2の検査線を前記画像データ検
    査線として採用すること、 を特徴とするバーコード読取方法。
  17. 【請求項17】請求項14又は15記載のバーコード読
    取方法において、 前記第1の検査線を前記画像データ検査線として採用し
    た結果、バーコードを読み取れなかった場合には、前記
    第1の検査線とは傾きが異なり、且つ前記詳細検査対象
    領域内において第1の検査線と交差する第2の検査線を
    少なくとも1本設定し、その設定された第2の検査線を
    前記画像データ検査線として採用すること、 を特徴とするバーコード読取方法。
  18. 【請求項18】請求項17記載のバーコード読取方法に
    おいて、 前記第2の検査線が前記第1の検査線と交差する点は、
    前記詳細検査対象領域の概略中心位置であること、 を特徴とするバーコード読取方法。
  19. 【請求項19】請求項14〜18のいずれか記載のバー
    コード読取方法において、 前記検査区域毎に明暗パターンの特徴を調べて類型化す
    る際には、前記検査区域内の明暗変化点数が略同一であ
    るものを同一の明暗パターンを有するものとして類型化
    すること、 を特徴とするバーコード読取方法。
  20. 【請求項20】請求項14〜18のいずれか記載のバー
    コード読取方法において、 前記検査区域毎に明暗パターンの特徴を調べて類型化す
    る際には、前記検査区域内の縦横の明暗変化点数の比が
    略同一であるものを同一の明暗パターンを有するものと
    して類型化すること、 を特徴とするバーコード読取方法。
  21. 【請求項21】請求項12〜20のいずれか記載のバー
    コード読取方法において、 前記検査区域は、複数のサイズの中から選択可能である
    こと、 を特徴とするバーコード読取方法。
  22. 【請求項22】請求項1〜21のいずれか記載のバーコ
    ードの読取方法が、コンピュータシステムにて実行する
    プログラムとして記録されたことを特徴とする記録媒
    体。
JP27092699A 1998-11-16 1999-09-24 バーコード読取方法及び記録媒体 Expired - Fee Related JP3994595B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP27092699A JP3994595B2 (ja) 1998-11-16 1999-09-24 バーコード読取方法及び記録媒体
US09/438,847 US6332574B1 (en) 1998-11-16 1999-11-12 Method of reading bar code

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP32527898 1998-11-16
JP10-325278 1998-11-16
JP27092699A JP3994595B2 (ja) 1998-11-16 1999-09-24 バーコード読取方法及び記録媒体

Publications (2)

Publication Number Publication Date
JP2000215268A true JP2000215268A (ja) 2000-08-04
JP3994595B2 JP3994595B2 (ja) 2007-10-24

Family

ID=26549460

Family Applications (1)

Application Number Title Priority Date Filing Date
JP27092699A Expired - Fee Related JP3994595B2 (ja) 1998-11-16 1999-09-24 バーコード読取方法及び記録媒体

Country Status (2)

Country Link
US (1) US6332574B1 (ja)
JP (1) JP3994595B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7817878B2 (en) 2001-01-22 2010-10-19 Hand Held Products, Inc. Imaging apparatus having plurality of operating states
US8439264B2 (en) 2001-01-22 2013-05-14 Hand Held Products, Inc. Reading apparatus having partial frame operating mode
JP2013148980A (ja) * 2012-01-17 2013-08-01 Denso Wave Inc 二次元コード読み取り装置
JP2016110196A (ja) * 2014-12-02 2016-06-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation バーコード検出方法、バーコード検出システムおよびそのためのプログラム
US10949634B2 (en) 2005-06-03 2021-03-16 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11317050B2 (en) 2005-03-11 2022-04-26 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US12001914B2 (en) 2023-03-10 2024-06-04 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
US20040004128A1 (en) * 1996-09-03 2004-01-08 Hand Held Products, Inc. Optical reader system comprising digital conversion circuit
US6547140B2 (en) * 2000-11-29 2003-04-15 Xerox Corporation Microwave barcode reader using dipole antenna
US20030086126A1 (en) * 2001-11-08 2003-05-08 Shih-Zheng Kuo Method of enhancing modulation transfer function performance
JP2003168071A (ja) * 2001-11-30 2003-06-13 Sanyo Electric Co Ltd 2次元バーコードの読み取り方法
JP2003168084A (ja) * 2001-11-30 2003-06-13 Sanyo Electric Co Ltd 本人認証システム及び方法
KR100456628B1 (ko) * 2001-12-28 2004-11-10 한국전자통신연구원 물류 정보 자동식별 처리시스템 및 그 방법
US7212682B2 (en) * 2003-03-06 2007-05-01 Sick Auto Ident, Inc. Method and system for enhancing measurement
CN1545074A (zh) * 2003-11-17 2004-11-10 炼 杨 一种具有视觉识别功能的遥控装置
JP4254628B2 (ja) * 2004-06-21 2009-04-15 株式会社デンソーウェーブ 光学的情報読取装置
CN101715542B (zh) * 2007-05-23 2012-09-05 特里伯耶拿有限公司 找平设备和方法
JP5083521B2 (ja) * 2007-08-06 2012-11-28 株式会社セガ ゲーム装置
US8584951B2 (en) 2008-12-11 2013-11-19 Ncr Corporation Apparatus, method and system for extracting pixel data from an image capture device
CN107886026B (zh) * 2016-09-30 2019-12-13 腾讯科技(深圳)有限公司 图形码处理方法及装置
JP6852369B2 (ja) * 2016-11-30 2021-03-31 富士ゼロックス株式会社 画像処理装置及び画像処理プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4717818A (en) * 1986-06-26 1988-01-05 International Business Machines Corporation Bar code label identification circuit
JPH07101427B2 (ja) * 1989-03-29 1995-11-01 富士通株式会社 バーコード読取り方法及びその装置
US5241164A (en) * 1990-01-05 1993-08-31 Symbol Technologies, Inc. Method of decoding bar code symbols from partial scans
US5329105A (en) * 1992-08-10 1994-07-12 United Parcel Service Of America, Inc. Method and apparatus for determining the width of elements of bar code symbols
JPH06150042A (ja) * 1992-11-13 1994-05-31 Yamatake Honeywell Co Ltd 枡目コードの読み取り方法
JPH06150044A (ja) * 1992-11-13 1994-05-31 Yamatake Honeywell Co Ltd 枡目コードの読み取り方法
JPH06150043A (ja) * 1992-11-13 1994-05-31 Yamatake Honeywell Co Ltd 枡目コードの読み取り方法
US5304787A (en) * 1993-06-01 1994-04-19 Metamedia Corporation Locating 2-D bar codes
US5457308A (en) * 1993-09-14 1995-10-10 Symbol Technologies, Inc. Bar code scan stitching
JPH0793451A (ja) 1993-09-22 1995-04-07 Olympus Optical Co Ltd バーコードシンボル読取装置
GB2291524B (en) * 1994-07-21 1997-01-29 Fujitsu Ltd Reading bar codes
JP3234405B2 (ja) * 1994-08-05 2001-12-04 富士通株式会社 バーコード読取装置及びその方法
DE4438759C1 (de) * 1994-10-29 1995-11-02 Leica Ag Heerbrugg Ch Niederla Verfahren zur Bestimmung des Kippwinkels von codierten Nivellierlatten
US5739518A (en) * 1995-05-17 1998-04-14 Metanetics Corporation Autodiscrimination for dataform decoding and standardized recording
US5764798A (en) 1996-03-18 1998-06-09 Intermec Corporation Prioritized searching methods for finding a coded symbol in a digitized image
JPH10134130A (ja) * 1996-10-28 1998-05-22 Fujitsu Ltd バーコード読取方法およびバーコード読取装置
JP3758266B2 (ja) 1997-01-08 2006-03-22 株式会社デンソー コード読取装置

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8439264B2 (en) 2001-01-22 2013-05-14 Hand Held Products, Inc. Reading apparatus having partial frame operating mode
US8559767B2 (en) 2001-01-22 2013-10-15 Welch Allyn Data Collection, Inc. Imaging apparatus having imaging assembly
US8702000B2 (en) 2001-01-22 2014-04-22 Hand Held Products, Inc. Reading apparatus having partial frame operating mode
US9047525B2 (en) 2001-01-22 2015-06-02 Hand Held Products, Inc. Imaging apparatus having imaging assembly
US9582696B2 (en) 2001-01-22 2017-02-28 Hand Held Products, Inc. Imaging apparatus having imaging assembly
US7817878B2 (en) 2001-01-22 2010-10-19 Hand Held Products, Inc. Imaging apparatus having plurality of operating states
US11317050B2 (en) 2005-03-11 2022-04-26 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11968464B2 (en) 2005-03-11 2024-04-23 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11863897B2 (en) 2005-03-11 2024-01-02 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11323649B2 (en) 2005-03-11 2022-05-03 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11323650B2 (en) 2005-03-11 2022-05-03 Hand Held Products, Inc. Image reader comprising CMOS based image sensor array
US11238252B2 (en) 2005-06-03 2022-02-01 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11238251B2 (en) 2005-06-03 2022-02-01 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US10949634B2 (en) 2005-06-03 2021-03-16 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11604933B2 (en) 2005-06-03 2023-03-14 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US11625550B2 (en) 2005-06-03 2023-04-11 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
JP2013148980A (ja) * 2012-01-17 2013-08-01 Denso Wave Inc 二次元コード読み取り装置
JP2016110196A (ja) * 2014-12-02 2016-06-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation バーコード検出方法、バーコード検出システムおよびそのためのプログラム
US12001913B2 (en) 2022-10-28 2024-06-04 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array
US12001914B2 (en) 2023-03-10 2024-06-04 Hand Held Products, Inc. Apparatus having hybrid monochrome and color image sensor array

Also Published As

Publication number Publication date
US6332574B1 (en) 2001-12-25
JP3994595B2 (ja) 2007-10-24

Similar Documents

Publication Publication Date Title
JP3994595B2 (ja) バーコード読取方法及び記録媒体
US6360948B1 (en) Method of reading two-dimensional code and storage medium thereof
US8139117B2 (en) Image quality analysis with test pattern
US5305391A (en) Method of and apparatus for inspecting bottle or the like
US7481369B2 (en) Method and apparatus for optically picking up an image of an information code
JP4288756B2 (ja) 情報コード概略存在領域推定方法、情報コード読取方法及び装置、記録媒体
KR20060100376A (ko) 물체 윤곽 이미지를 분석하기 위한 방법 및 이미지 처리장치, 물체를 검출하기 위한 방법 및 이미지 처리 장치,산업용 비전 장치, 스마트 카메라, 이미지 디스플레이,보안 시스템, 및 컴퓨터 프로그램 제품
JPH06119481A (ja) 線分の方向検出装置及びその方法
JP2021039734A (ja) 光学コードのモジュールサイズの特定
US20030228066A1 (en) Image data processing unit for use in a visual inspection device
US6597805B1 (en) Visual inspection method for electronic device, visual inspecting apparatus for electronic device, and record medium for recording program which causes computer to perform visual inspecting method for electronic device
US5570298A (en) Dot pattern-examining apparatus
JP4447464B2 (ja) 皮膚紋様の画像中の関心のある領域の決定方法
JP2001012913A (ja) コイル位置検出装置
JP3043530B2 (ja) ドットパターン検査装置
JPH02170595A (ja) 多層プリント基板の基準マーク位置自動検出方法
JPH07167611A (ja) 硬貨中心位置決定方式
JP4055290B2 (ja) 2次元コード存在領域検出方法、2次元コード読取方法及び記録媒体
JP4639140B2 (ja) 画像処理装置
JPH04331563A (ja) 画像読み取り装置
JPS61125684A (ja) 半導体基板用バ−コ−ド読取り装置
JPH05314298A (ja) データ読取装置
JP3216767B2 (ja) レベル変動補正可能な画像処理装置
JP2514660B2 (ja) 光学文字読取装置
JPH04310853A (ja) 凹凸欠陥検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20051107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070702

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070710

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070723

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100810

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110810

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120810

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130810

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees