JP2742140B2 - 光学読取装置 - Google Patents

光学読取装置

Info

Publication number
JP2742140B2
JP2742140B2 JP3012448A JP1244891A JP2742140B2 JP 2742140 B2 JP2742140 B2 JP 2742140B2 JP 3012448 A JP3012448 A JP 3012448A JP 1244891 A JP1244891 A JP 1244891A JP 2742140 B2 JP2742140 B2 JP 2742140B2
Authority
JP
Japan
Prior art keywords
count value
bar
value
bit image
previous
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.)
Expired - Fee Related
Application number
JP3012448A
Other languages
English (en)
Other versions
JPH04235695A (ja
Inventor
和男 長谷川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alps Alpine Co Ltd
Original Assignee
Alps Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alps Electric Co Ltd filed Critical Alps Electric Co Ltd
Priority to JP3012448A priority Critical patent/JP2742140B2/ja
Publication of JPH04235695A publication Critical patent/JPH04235695A/ja
Application granted granted Critical
Publication of JP2742140B2 publication Critical patent/JP2742140B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、メデイア上に印刷され
たバーコードを読み取る光学読取装置に係り、特に、バ
ーコードの種類判別に関する。
【0002】
【従来の技術】図5は光学読取装置であるタツチ式バー
コードスキヤナの全体構成を示すブロツクであつて、1
は光電変換部、2はカウンタ部、3はスタートストツプ
判定部、4はデコード部、5はビツトイメージ変換器、
6はビツトイメージメモリ、7はキヤラクタ変換器、8
は出力回路である。
【0003】同図において、光電変換部1はクロツクC
Lで動作し、図示しないメデイアに付されたバーコード
を走査して読み取り、黒バーと白バーとでレベルを異に
する電気信号を発生する。この電気信号は基準レベルと
比較されて2値化され、たとえば黒バーに対しては
“H”(高レベル)、白バーに対しては“L”(低レベ
ル)となる2値化信号として光電変換部1から出力され
る。カウンタ部2はこの2値化信号の順次の“H”,
“L”期間毎にクロツクCLをカウントし、夫々の期間
の長さを表わすカウント値tをデコーダ部4に送る。ま
た、カウンタ部2のかかるカウント値はスタートストツ
プ判定部3にも供給される。バーコードには、情報を含
んだバーコードの前にスタートバーが、後にストツプバ
ーが夫々設けられており、スタートストツプ判定部3
は、これらスタートバー、ストツプバーをカウント値か
ら検出することにより、情報を含んだバーコードの最初
のバーの開始タイミング、最後のバーの終りタイミング
を判定する。このスタートストツプ判定部3の判定結果
により、デコーダ部4は動作を開始し、また、動作を終
了する。
【0004】なお、カウンタ部2はオーバフローすると
リセツト信号を出力し、カウンタ部2自身、スタートス
トツプ判定部3およびデゴーダ部4を初期化する。ま
た、スタートストツプ判定部3がスタートエラーと判定
すると、カウンタ部2はリセツトされ、デコーダ部4に
デコード終了信号が供給されて各部が初期状態にクリア
される。
【0005】デコーダ部4が動作開始すると、ビツトイ
メージ変換器5がカウンタ部2からのカウント値tを取
り込む。この取り込みタイミングは各バーの後エツジの
タイミングであり、これにより、ビツトイメージ変換器
5は、2値化信号の“H”もしくは“L”期間カウンタ
部2がクロツクCLをカウントし終ったときのカウント
値t、すなわち、これら“H”,“L”期間の長さを表
わすカウント値tを取り込むことになる。ビツトイメー
ジ変換器5では、取り込まれたカウント値tが閾値と比
較され、光電変換部1で読み取られたバーの種類が判定
されてこの種類を表わすビツトイメージに変換される。
ここで、バーの種類とはバーの太さの違いであって、バ
ーコードが太バーと細バーとの2種類のバーの列からな
る2値の場合には、ビツトイメージは“1”ビツトと
“0”ビツトの2種類のビツトからなり、太バーを
“1”ビツトに対応させ、細バーを“0”ビツトに対応
させると、ビツトイメージ変換器5では、取り込まれた
カウント値tが閾値よりも大きいとき“1”ビツトが生
成され、カウント値tが閾値よりも小さいとき“0”ビ
ツトが生成されるように、カウント値tがビツトイメー
ジに変換される。
【0006】ビツトイメージ変換器5で生成されたビツ
トイメージは順次ビツトイメージメモリ6に書き込ま
れ、このビツトイメージメモリ6に書き込まれたビツト
イメージがキヤラクタ変換器7によつてキヤラクタを表
わすデータ(キヤラクタデータ)に変換される。数字、
アルフアベツトなどのキヤラクタはたとえば4ビツトな
どの複数ビツトのデータで表わされ、これを4ビツトデ
ータとすると(すなわち、バーコードの連続して配列さ
れる4本のバーで1キヤラクタを表わす)キヤラクタ変
換器7はビツトイメージメモリ6からビツトイメージを
4個ずつ読み取り、夫々キヤラクタデータに変換する。
このキヤラクタデータは出力回路で図示しないホスト機
器に応じた信号形式に変換され、このホスト機器に送ら
れる。
【0007】ところで、上記のビツトイメージ変換器5
で設定される上記閾値は、たとえばバーコードが太バー
と細バーの2種類のバーからなる場合、カウンタ部2で
の太バーに対するカウント値と細バーに対するカウント
値との中間値に決められる。しかしながら、太バーと細
バーの幅はバーコードが大きく印刷されたか、縮小され
て印刷されたかに応じて夫々異なり、太バーか細バーか
は相対的なものである。また、印刷の誤差によつてバー
の幅に誤差が生じ、細バーの幅が太く印刷されることも
ある。このために、ビツトイメージ変換器5で設定され
る閾値を一定することができず、従来では、読み取られ
るバーの幅に応じて閾値を変化させるようにしている。
以下、従来のビツトイメージ変換器について説明する。
【0008】図6はその一例を示すブロツク図であつ
て、9、10は入力端子、11はカウンタメモリ、12
は比較器、13、14は切替器、15は前回ビツトイメ
ージメモリ、16はビツトイメージ判定器、17は前回
カウンタメモリ、18、19はシフトレジスタ、20〜
22は切替器、23、24は加算器、25は前回閾値メ
モリ、26はシフトレジスタ、27は入力端子、28は
閾値メモリである。
【0009】以下の説明では、バーコードは太バーと細
バーとからなる2値のバーコードであつて、太バーの幅
が細バーの幅の2倍となるようにしているものとする。
但し、これらバーの幅は印刷の大きさによつて異なる
し、また、印刷誤差によつてこれらの幅に誤差が生ず
る。
【0010】同図において、入力端子9からは図5のカ
ウンタ部2からのカウント値tが入力され、入力端子1
0からは図5のスタートストツプ判定回路3からのエツ
ジ検出信号(パルス)iが入力される。このエツジ検出
信号iは、先に説明したバーコードにおける各バーの後
エツジの読取りタイミングで発生される。
【0011】入力端子10からエツジ検出信号iが入力
されると、このタイミングで入力端子9から入力される
カウント値tが、カウンタメモリ11に書き込まれると
ともに、比較器12で閾値メモリ28に記憶されている
閾値Thと比較される。比較器12は、 カウント値t≦閾値Thのとき、“0”のビツトイメー
ジBiを出力し、 カウント値t>閾値Thのとき、“1”のビツトイメー
ジBiを出力する とともに、かかる比較の終了と同時にパルス状の切替信
号SWを出力する。この切替信号SWのパルス期間切替
器13,14,22がオンする。比較器12から出力さ
れるビツトイメージBiは、図5のビツトイメージメモ
リ6に供給されるとともに、切替器13がオンしたこと
により、この切替器13を通って前回ビツトイメージメ
モリ15にも供給され、前回ビツトイメージBi′とし
て記憶される。また、切替信号SWによつて切替器14
がオンすると、カウンタメモリ11からカウント値tが
読み出され、切替器14を通り、前回カウンタメモリ1
7に供給されて前回カウント値t′として記憶される。
さらに、切替信号SWによつて切替器22がオンする
と、閾値メモリ28から閾値Thが読み出されて切替器
22を通り、前回閾値メモリ25に前回閾値Th′とし
て記憶される。
【0012】前回ビツトイメージメモリ15、前回カウ
ンタメモリ17、前回閾値メモリ25の上記書込みが終
ると、次に、これらの読出しが行なわれる。前回ビツト
イメージメモリ15から読み出された前回ビツトイメー
ジBi ′はビツトイメージ判定器16に供給され、前回
ビツトイメージBi ′が“1”ビツトのとき判定信号D
i (1)が、“0”ビツトのとき判定信号Di (0)が
夫々生成される。判定信号Di (1)は切替器21をオ
ンにし、判定信号Di (0)は切替器20をオンにす
る。前回カウンタメモリ17から読み出された前回カウ
ント値t′は、切替器20およびシフトレジスタ18、
19に供給される。シフトレジスタ18は前回カウント
値t′を1ビツト右へ(最下位ビツト側へ)ビツトシフ
トして1/2倍する。また、シフトレジスタ19は前回
カウント値t′を2ビツト右へビツトシフトして1/4
倍する。シフトレジスタ18の出力値は加算器23に供
給され、シフトレジスタ19の出力値は切替器21に供
給される。
【0013】いま、前回ビツトイメージメモリ15から
読み出される前回イメージビツトBi ′が“1”ビツト
とすると、ビツトイメージ判定器16から出力される判
定信号Di (1)によつて切替器21がオンし、シフト
レジスタ19の出力値が切替器21を介して加算器23
に供給され、シフトレジスタ18の出力値と加算され
る。したがつて、加算器23の出力値t0 は、 t0 =t′×1/2+t′×1/4=t′×3/4……(1) となる。また、前回ビツトイメージBi ′が“0”ビツ
トであるときには、判定信号Di (0)によつて切替信
号20がオンするから、前回カウンタメモリ17から出
力される前回カウント値t′が切替器20を介して加算
器23に供給され、シフトレジスタ18の出力値と加算
される。したがつて、加算器23の出力値t0 は、 t0 =t′+t′×1/2=t′×3/2……(2) となる。
【0014】加算器23の出力値t0 と前回閾値メモリ
25の前回閾値Th′とは加算器24で加算され、この
加算器24の出力値はシフトレジスタ26で1ビツト分
右へビツトシフトされて1/2倍される。すなわち、加
算器24とシフトレジスタ26とにより、加算器23の
出力値t0 と前回閾値Th′との平均値が算出される。
この平均値が次回の閾値Thとして閾値メモリ28に記
憶される。次に入力端子10からエツジ検出信号iが入
力されてカウンタメモリ11と比較器12が動作する
と、このとき入力端子9から入力されるカウント値tが
比較器12で上記のように閾値メモリ28に記憶された
閾値Thと比較され、ビツトイメージBi と切替信号S
Wとが生成される。この切替信号SWのタイミングで、
このビツトイメージBi が前回ビツトイメージBi ′と
して前回ビツトイメージメモリ15に記憶され、カウン
タメモリ11のカウント値tが前回カウント値t′とし
て前回カウンタメモリ17に記憶されて、上記のように
処理され、次回の閾値Thが生成されて閾値メモリ28
に記憶される。以下、この動作が繰り返えされる。
【0015】バーコードスキヤナをメデイアのバーコー
ドが付された部分に押しつけ、電源を投入すると、前回
カウンタメモリ17と前回閾値メモリ25とが値0にク
リアされる。これとともにバーコードスキヤナがバーコ
ードの読取りを開始するが、図5のスタートストツプ判
定部3はカウンタ部2からのバーコードの先頭バー(ス
タートバー)の幅を表わすカウント値から初期閾値Th
0 を生成し、これを入力端子27から閾値メモリ28に
送って記憶させる。この初期閾値Th0 が入力端子10
から入力される最初のエツジ検出信号iのタイミングで
入力端子9から入力される最初のカウント値tと比較器
12で比較される閾値Thである。バーコードでは、そ
のバーコード体系によって上記先頭バーの種類が決まっ
ている。たとえば、20f5バーコードでは、先頭バー
は必ず細バーである。この場合には、上記のように太バ
ーの幅は細バーの幅の2倍であり、閾値Thを太バーの
幅を表わすカウンタ部2(図5)のカウント値と細バー
の幅を表わすカウンタ部2のカウント値との中間値に設
定するものとすると、この閾値Thは細バーの幅を表わ
すカウント値の1.5倍であるから、スタートストツプ
判定器3(図5)はカウンタ部2から供給される先頭バ
ーの幅を表わすカウント値を1.5倍して初期閾値Th
0 とする。先頭バーが太バーの場合には、初期閾値はこ
の太バーの幅を表わすカウント値の3/4倍である。
【0016】以上のように、閾値メモリ28に初期閾値
Th0 が設定されると、エツジ検出信号iのタイミング
で入力端子9から供給されるカウント値tが比較器12
でビツトイメージ変換され、この変換が行なわれる毎
に、このとき用いられた閾値Thが前回閾値Th′とし
て前回カウンタメモリ17で保持された前回カウント値
t′をもとに作成された加算器23の出力値t0 によつ
て修正され、次回の閾値Thとして使用される。したが
つて、印刷誤差があつてバーの幅が印刷の大きさに応じ
た規定の幅からずれたり、メデイア上のノイズが混入し
てカウント値tに誤差が生じても、これに応じて閾値T
hが修正されてこれらの影響を防止できる。なお、上記
式(1)は閾値Thが太バーの幅を表わすカウント値の
3/4倍であることから求められるものであり、また、
上記式(2)は閾値Thが細バーの幅を表わすカウント
値の3/2倍であることから求められるものである。
【0017】図7は従来のビツトイメージ変換器の他の
例を示すブロツク図であつて、29〜32はシフトレジ
スタであり、図6に対応する部分には同一符号をつけて
重複する説明を省略する。
【0018】同図において、前回カウンタメモリ17か
ら出力される前回カウント値t′はシフトレジスタ29
〜31に供給される。シフトレジスタ29は前回カウン
ト値t′を1ビツト分右へビツトシフトして1/2倍
し、切替器20に供給する。シフトレジスタ30は前回
カウント値t′を2ビツト分右へビツトシフトして1/
4倍し、加算器23に供給する。シフトレジスタ31は
前回カウント値t′を3ビツト分右へビツトシフトして
1/8倍し、切替器21に供給する。前回ビツトイメー
ジBi ′が“1”ビツトでビツトイメージ判定器16か
ら判定信号Di (1)が出力されると、切替器21がオ
ンし、シフトレジスタ31の出力値が加算器23に供給
されてシフトレジスタ30の出力値と加算される。この
ときの加算器23の出力値t0 は、 t0 =t′×1/4+t′×1/8=t′×3/8……(3) である。また、前回ビツトイメージBi ′が“0”ビツ
トでビツトイメージ判定器16から判定信号Di (0)
が出力されると、切替器21がオンし、シフトレジスタ
29の出力値が加算器23に供給されてシフトレジスタ
30の出力値と加算される。このときの加算器23の出
力値t0 は、 t0 =t′×1/2+t′×1/4=t′×3/4……(4) となる。
【0019】一方、前回閾値メモリ25から読み出され
た前回閾値Th′は、シフトレジスタ32で1ビツト分
右へビツトシフトされて1/2倍された後、加算器24
で加算器23の出力値t0 と加算される。この加算器2
4の出力値が次回の閾値Thとして閾値メモリ28に記
憶される。
【0020】いま、太バーに対するカウント値tをt
H 、細バーに対するカウント値tをtL とすると、閾値
Thは(tH +tL )/2である。ここで、図5の例と
同様にtH =2tL であり、したがって、閾値Thはt
H ×3/4またはtL ×3/2である。そこで、かかる
閾値Thが前回閾値Th′として前回閾値メモリ25に
記憶されているとして、前回ビツトイメージBi ′が
“1”ビツトであつて前回カウント値t′が太バーのt
H とすると、上記式(3)により、加算器23の出力値
0 はtH ×3/8であるから、加算器24から出力さ
れる次回の閾値Thは、 Th=tH ×3/8+tH ×3/4×1/2=tH ×3/4 となり、前回の閾値と同じになる。また、前回ビツトイ
メージBi ′が“0”ビツトであつて前回カウント値
t′が細バーのtL であるときには、上記式(4)によ
り、加算器24から出力される次回の閾値Thは、 Th=tL ×3/4+tL ×3/2×1/2=tL ×3/2 となり、前回の閾値と同じになる。
【0021】このようにして、バーコードの太バーと細
バーの幅が常に一定であれば、閾値Thは一定に保持さ
れる。そして、メデイア上の印刷誤差やノイズなどによ
つてカウンタ部2(図5)での太バー、細バーのカウン
ト値tがずれると、これに応じて加算器23の出力値t
0 が増減し、閾値Thが修正されることになる。以上の
点以外の部分は図6に示した従来技術と同様である。
【0022】図6で示したビツトイメージ変換器では、
図7の場合に比べ、カウント値の演算回数が少ないが、
加算する値が大きいため、オーバフローしやすい。この
ために、この値が大きくならない光電変換部にラインセ
ンサが使用されるバーコードスキヤナに用いられる。ラ
インセンサでは画素数が一定であるから、バーコードの
走査速度に関係なくカウンタ部でのバー当りのカウント
値の上限は一定であり、この上限も左程大きくない。こ
のために、ビツトイメージ変換器での加算処理でオーバ
フローを抑えることができる。これに対し、図7で示し
たビツトイメージ変換器では、図6の場合に比べて演算
回数は多くなるが、演算処理のために設定された桁数が
カウンタ部2でのカウントのための設定桁数と等しい場
合は、演算処理される値の桁数がこの設定桁数を越える
ことがないから、カウンタ部2でオーバフローしなけれ
ば、オーバフローなしに演算処理が可能である。したが
って、バーコードの走査速度が遅く、カウンタ部2での
カウント値が大きくなるペンスキヤナにこのビツトイメ
ージ変換器が用いられている。
【0023】
【発明が解決しようとする課題】しかしながら、図6、
図7に示した従来技術のいずれにおいても、前回カウン
ト値t′や前回閾値Th′の演算処理に際し、これらシ
フトレジスタで最下位ビツト側にビツトシフトして除算
処理が行なわれるが、この際、少数点以下は切り捨てら
れる。このために、同じ種類のバーが読み取られている
にもかかわらず、算出された次回の閾値は前回の閾値よ
りも小さくなっていき、バーの誤判断が生じて正しいビ
ツトイメージ変換がなされない場合もある。このこと
を、以下、図7に示した従来技術について数値でもつて
説明する。
【0024】いま、ラインセンサを用いるものとして、
細バーの印刷幅を0.3mm、太バーの印刷幅を0.6
mmとする。ここで、ラインセンサの画素数を1088
ビツト、読取り幅を64mmとすると、1画素の幅(分
解能)は64mm÷1088=58.82μmとなる。
したがって、細バーのカウント値tは0.3mm÷5
8.82μm=5.1(すなわち6)となるが、±1ビ
ツトのサンプリング誤差があるから、5〜7となる。ま
た、太バーのカウント値tは0.6mm÷58.82μ
m=10.2(すなわち11)となるが、上記サンプリ
ング誤差により10〜12である。さて、かかる条件の
もとに、細バーが2回連続して読み取られるものとし、
1回目の細バーのカウント値tが5,2回目の細バーの
カウント値tが7とする。また、1回目の細バーのカウ
ント値tが入力されるときの図7の閾値メモリ28の閾
値Thを、説明をわかり易くするために、7とする。そ
こで、1回目の値5のカウント値tが入力されると、こ
れは閾値Thよりも小さいから、比較器12は細バーと
判定して“0”のビツトイメージBi を出力し、前回ビ
ツトイメージメモリ15の前回ビツトイメージBi ′は
“0”である。また、前回カウンタメモリ17の前回カ
ウント値t′は5である。さらに、前回閾値メモリ25
の前回閾値Th′は7である。このため、切替器20が
オンし、加算器23の出力値t0 は、 t0 =5÷2+5÷4=2+1(少数点以下切捨て)=
3 となり、したがって、加算器64で形成される次回の閾
値Thは、 Th=3+7÷2=3+3(少数点以下切捨て)=6 と元の7より小さくなる。2回目のカウント値tが入力
され、この値が7とすると、これは、6の閾値Thより
も大きいから、比較器12で太バーと判定され、しか
も、このカウント値tから加算器24で得られる次回の
閾値Thは、この場合の前回閾値Th′が6であるか
ら、 Th=(7÷4+7÷8)+6÷2=1+3(少数点以下切捨て)=4 とさらに小さくなり、細バーのとり得るカウント値の範
囲よりも小さくなる。したがって、次のバーも細バーで
あるときには、太バーと誤判断する。また、閾値メモリ
28の閾値Thが7とし、このとき値11の太バーのカ
ウント値tが入力されると、比較器12は太バーと判定
して前回ビツトイメージBi ′を“1”とするから、加
算器24から出力される次回の閾値Thは、 Th=(11÷4+11÷8)+7÷2=3+3(少数点以下切捨て)=6 となり、次にカウント値tが7の細バーが読み取られる
と、比較器12はこれを太バーと誤判断してしまう。
【0025】本発明の目的は、かかる問題を解消し、バ
ーの種類の誤判断を防止して常に正しくビツトイメージ
変換を実行可能とした光学読取装置を提供することにあ
る。
【0026】
【課題を解決するための手段】上記目的を達成するため
に、本発明は、カウンタ部からのカウント値を閾値と比
較して読み取られるバーの種類の判別するビツトイメー
ジ変換器において、該カウンタ部がカウントするクロツ
クがバーコードを読み取る光電変換部の駆動クロツクに
等しいときの該カウンタ部が出力するカウント値をt、
該ビツトイメージ変換器で該カウント値tを演算処理し
て得られる閾値をThとすると、該カウンタ部から供給
されるカウント値が演算処理されてn・Th(但し、n
は2以上の整数)の次回の閾値が生成され、これと比較
されるカウント値をn・tとする。
【0027】
【作用】カウンタ部からのカウント値を演算処理して得
られる閾値は、該カウンタ部がカウントするクロツクが
光電変換部の駆動クロツクに等しいときのn倍と大きく
なつているので、この演算処理で小数点以下の切捨てが
行なわれても、これによる閾値の演算誤差は小さくな
る。
【0028】
【実施例】以下、本発明の実施例を図面によつて説明す
る。図1は本発明による光学読取装置の一実施例を示す
ブロツク図であつて、33はシフトレジスタであり、図
7に対応する部分には同一符号をつけて重複する説明を
省略する。
【0029】同図において、入力端子9から入力された
カウント値tは、シフトレジスタ33で3ビツト分左へ
(最上位ビツト側へ)ビツトシフトされて8倍された
後、カウンタメモリ11と比較器12とに供給する。閾
値メモリ28の閾値Thは入力されるカウント値tに対
する図7で説明した閾値の8倍である。カウンタメモリ
33に記憶されたカウント値8tを前回カウント値8
t′とした次回の閾値Thの形成方法は図7の従来技術
と同様である。
【0030】そこで、前回ビツトイメージBi ′が
“1”であるとき(太バーであるとき)の加算器23の
出力値t0 は、 t0 =8t′×1/4+8t′×1/8=3t′ であり、上記のことから、前回閾値メモリ25の前回閾
値を8th′とすると、加算器24から出力される次回
の閾値Thは、 Th=3t′+4th′ ……(5) となる。また、前回ビツトイメージBi ′が“0”であ
るとき(細バーであるとき)の加算器24から出力され
る次回の閾値Thは、 Th=8t′×1/2+8t′×1/4+8th′×1/2 =6t′+4th′ ……(6) となる。
【0031】ここで、入力端子27から入力されて閾値
メモリ28に記憶される初期閾値Th0 は、図6で説明
したように、バーコードの先頭バーの幅を検出すること
によつて形成されるが、図6で説明した方法で得られる
初期閾値の8倍にすることはいうまでもない。
【0032】したがつて、初期閾値Th0 は必ず整数で
あるから、最初にカウント値tが入力された後の前回閾
値メモリ25の最初の前回閾値Th′は初期閾値Th0
に等しく整数であり、また、カウント値tも整数である
から、上記式(5),(6)により、次回の閾値Thは
小数点以下の切り捨てということがなくて整数となる。
すなわち、シフトレジスタ29〜32はシフトレジスタ
33による乗数の公約数で除算するので、この除算の過
程で少数点以下が生じることがなく、したがつて、小数
点以下の切り捨ては行なわれない。
【0033】なお、先に図6で説明したように、太バー
の幅を細バーの幅の2倍とし、閾値Thを太バーのカウ
ント値と細バーのカウント値との中間値とすると、太バ
ーのカウント値tをtH 、細バーのカウント値tをtL
としたとき、閾値Thは8(tH +tL )×1/2であ
る。(tH +tL )×1/2が式(5),(6)でのt
h′である。そこで、太バーが読み取られたとき、上記
式(5)において、t′=tH であり、tH =2tL
あるから、式(5)は、 Th=3tH +2(tH +tL )=4(tH +tL ) となり、太バーのカウント値と細バーのカウント値との
中間値となる。細バーの場合も同様であり、式(6)に
おいて、t′=tL であるから、 Th=6tL +2(tH +tL )=4(tH +tL ) となり、太バーのカウント値と細バーのカウント値との
中間値となる。
【0034】この実施例によると、読み取られるバーの
幅に応じて閾値Thは変動はするが、除算処理での小数
点以下切り捨てという処理がなくなるので、これによつ
て閾値Thが変動するということはない。いま、先に挙
げたように、細バーのカウント値の範囲が5〜7、太バ
ーのカウント値の範囲が10〜12とし、2つの細バー
が連続して読み取られて5と7のカウント値tが順に入
力され、5のカウント値tの入力時の閾値Th(8t
h′)を7×8=56とすると、5のカウント値tによ
つて前回カウント値8t′が5×8=40となるから、
次回の閾値Thは、上記式(6)により、20+10+
28=58となる。次に7のカウント値tが入力される
と、比較器12の入力値8tは7×8=56であるか
ら、58の閾値よりも小さく、比較器12は細バーと正
しく判定する。また、太バーの読み取りが行なわれて1
0のカウント値tが入力され、このときの閾値メモリ2
8の閾値Thが7×8=56とすると、このときの次回
の閾値Thは、上記式(5)により、3×10+4×7
=58となり、次のバーの種類を太バーと正しく判断で
きる。
【0035】図2は本発明による光学読取装置の他の実
施例を示すブロツク図であつて、34〜36はシフトレ
ジスタであり、図1に対応する部分には同一符号をつけ
て重複する説明を省略する。
【0036】図1で説明した実施例では、比較器12が
太バーと判定したとき上記式(5)の演算を行なつて次
回の閾値Thを算出し、比較器12が細バーと判定した
とき上記式(6)の演算を行なつて次回の閾値Thを算
出した。ところで、上記式(5)は、 Th=3t′+4th′=(2t′+t′)+4th′ ……(5)′ と変形できる。これは、前回カウント値t′とこれを2
倍したものとを加算し、これに前回閾値Th′を1/2
倍した値を加算することにより、次回の閾値Thが得ら
れることを表わしている。同様にして、上記式(6)
は、 Th=6t′+4Th′=(4t′+2t′)+4th′ ……(6)′ となるから、前回カウント値t′を4倍したものと2倍
したものとを加算し、これに前回閾値Th′を1/2倍
した値を加算することにより、次回の閾値Thが得られ
る。図2に示した実施例は、以上の演算処理を行なつて
次回の閾値を得るようにしたものである。
【0037】図2において、カウンタメモリ11には、
図6で示した従来技術のように、入力端子9から入力さ
れたカウント値tが記憶され、比較器12から出力され
る切替信号SWのタイミングで前回カウント値t′とし
て前回カウンタメモリ17に記憶される。カウント値t
は、また、シフトレジスタ36で3ビツト分左へ(最上
位ビツト側へ)ビツトシフトされて8倍された後、比較
器12で閾値メモリ28からの閾値Thと比較される。
この閾値Thは図1の閾値メモリ28から出力される閾
値Thと同じである。
【0038】前回カウンタメモリ17から出力される前
回カウント値t′はシフトレジスタ34,35および切
替器21に供給される。シフトレジスタ34は前回カウ
ント値t′を2ビツト分左へビツトシフトして4倍し、
シフトレジスタ34は前回カウント値t′を1ビツト分
左へビツトシフトして2倍する。シフトレジスタ34の
出力値は切替器20に供給され、シフトレジスタ35の
出力値は加算器23に供給される。以上の部分以外のと
ころは図1に示した実施例と同様である。
【0039】前回ビツトイメージメモリ15の前回ビツ
トイメージBi ′が“1”ビツトであるときには、切替
器21がオンするから、前回カウント値t′が加算器2
3に供給されてシフトレジスタ35の出力値2t′と加
算され、この加算器23の出力値t0 が加算器24でシ
フトレジスタ32からの4th′と加算される。かかる
処理は上記式(5)′で表わされる演算処理であり、し
たがつて、加算器24からは次回の閾値Thが得られ
る。前回ビツトイメージメモリ15の前回ビツトイメー
ジBi ′が“0”ビツトであるときには、切替器20が
オンするから、シフトレジスタ34の出力値4t′が加
算器23に供給されてシフトレジスタ35の出力値2
t′と加算され、この加算器23の出力値t0 が加算器
24でシフトレジスタ32からの4th′と加算され
る。かかる処理は上記式(6)′で表わされる演算処理
であり、したがつて、加算器24から次回の閾値Thが
得られる。
【0040】このように、この実施例においても、前回
カウント値t′の処理に除算を含まないため、小数点以
下の切捨て処理はない。なお、この実施例では、図1に
示した実施例に比べ、シフトレジスタの使用個数を低減
できるし、カウンタメモリ11、前回カウンタメモリ1
7の容量を小さくできる。また、前回カウント値t′の
演算途中の値が図1の実施例に比べて小さく、オーバフ
ローが起りにくい。図1,図2において、カウント値t
が充分大きくシフトレジスタ33,36がオーバフロー
した場合、これらは比較器12から“1”ビツトのビツ
トイメージBi が出力されるようにする。これにより、
比較器12が太バーと判定したこととする。しかし、図
1の場合、シフトレジスタ33がオーバフローすると、
シフトレジスタ33からはカウント値tとは全く異なる
充分小さなカウント値が出力されてカウンタメモリ11
に記憶され、これを前回カウント値として次回の閾値が
求められることになり、得られた次回の閾値は充分小さ
くなつて細バー,太バーの判断ができなくなる。しか
し、図2の場合には、シフトレジスタ36がオーバフロ
ーしても、前回カウント値はカウンタメモリ11に記憶
された入力カウント値tそのものであり、次回の閾値は
このカウント値tに応じて設定されて図1の場合のよう
な問題は生じない。
【0041】図3は本発明による光学読取装置のさらに
他の実施例を示すブロツク図であつて、5′はビツトイ
メージ変換器、37は照光系、38はラインセンサ、3
9はナログレベルホールド回路、40は二値化回路、
41は8分周回路であり、図5対応する部分には同一符
号をつけて重複する説明を省略する。
【0042】同図において、光電変換部1では、照光系
37は図示しないメデイアのラインセンサ38が走査す
る領域を光照射する。バーコードを読み取るときには、
この領域内にメデイア上のバーコードが位置づけられ
る。ラインセンサ38はこの領域からの反射光を受光し
て8分周回路41からのクロツク毎に1画素ずつ走査
し、バーコードの黒バー、白バーに応じてレベルが異な
るアナログ信号を出力する。アナログレベルホールド回
路39は8分周回路41からの駆動クロツクを入力し、
ラインセンサ38からのアナログ信号をこの駆動クロツ
クによつてサンプルホールドしてクロツク成分を除去す
る。アナログレベルホールド回路39の出力信号は二値
化回路40で基準レベルと比較され、たとえば黒バーで
は“H”、白バーでは“L”となる2値化信号となつて
カウンタ部2に供給される。
【0043】このように光電変換部1を動作させる駆動
クロツクは基準クロツクCLを8分周回路41で8分周
したものであり、基準クロツクCLは光電変換部1の駆
動クロツクの8倍の周波数である。カウンタ部2は二値
化回路40からの2値化信号の“H”,“L”期間毎に
この基準クロツクCLをカウントする。従来では、図5
に示すように、カウンタ部2がカウントするクロツクは
光電変換部1の駆動クロツクに等しい。図3では、光電
変換部1の駆動クロツクは従来と同じ周波数に設定され
ており、このため、カウンタ部2から出力される各バー
の長さを表わすカウント値tは、従来の図5におけるカ
ウント部2によるカウント値の8倍となる。
【0044】カウンタ部2から出力されるカウント値t
はデコーダ部4のビツトイメージ変換器5′に供給され
る。このビツトイメージ変換器5′は図1に示した構成
をなしているが、シフトレジスタ33が省かれている。
つまり、光電変換部1とカウンタ部2とはこのシフトレ
ジスタ33と同様に機能も有しており、上記の8倍され
たカウント値tが図1のカウンタメモリ11や比較器1
2に直接供給される。
【0045】この実施例においても、図1に示した実施
例と同様、ビツトイメージ変換器5′での演算処理に小
数点以下の切捨てがないから、これによる演算誤差が防
止できるが、さらに、図1のシフトレジスタ33が省け
て演算回数が少なくなる。ビツトイメージ変換器として
1チツプマイコンを用いることもできるが、この場合に
は、演算回数が少なくなつた分動作の遅い1チツプマイ
コンを用いることができる。なお、ラインセンサ38で
は、1画素の読取り毎に出力レベルが黒バー読取り時の
レベルよりも高い固定レベルに戻してしまう。すなわ
ち、ラインセンサ38の出力信号にはパルス状のクロツ
ク成分が重畳されたものとなつている。したがつて、こ
の信号を2値化すると、“L”の部分にクロツク周期で
パルス状に“H”の部分が存在する。図5に示すように
ラインセンサ38のクロツクとカウンタ部2がカウント
するクロツクとが同一周波数であるときには、ラインセ
ンサ38の画素読取りタイミングに1クロツクが対応し
ているので問題はないが、図3に示した実施例では、ラ
インセンサ38の1画素読取り周期に基準クロツクCL
が8個存在することになり、2値化信号の“L”の部分
では、この8個の基準クロツクCLのいくつかが上記の
“H”の部分に入り込むことになる。つまり、カウント
部2は2値化信号の“L”部分については正しいカウン
ト値を出力しなくなる。アナログレベルホールド回路3
9はこれを防止するためのものであり、ラインセンサ3
8の出力信号を8分周回路41の出力される駆動クロツ
クでサンプルホールドすることにより、上記固定レベル
をその直前のバー読取りによるレベルで埋め合わせてい
る。
【0046】なお、図3では、光電変換部1にアナログ
レベルホールド回路39を設け、これでラインセンサ3
8の出力信号の上記固定レベル部分を除くようにした
が、図4に示すように、光電変換部1ではラインセンサ
の出力信号を直接2値化し、この2値化信号をデジタル
ホールド回路42で上記固定レベル部分を除くようにし
てもよい。デジタルホールド回路42はたとえばラツチ
回路であつて、8分周回路41からの駆動クロツクによ
り、バー読取りタイミングでの“H”,“L”のレベル
をラツチする。
【0047】なお、上記各実施例においては、ビツトイ
メージ変換器で処理されるカウント値が従来での8倍の
値としたが、4倍もしくは2倍の値であつてもよい。こ
れらの場合、小数点以下の切捨てが生じるが、この切捨
てによる演算結果の影響は従来技術に比べて小さい。ま
た、上記各実施例では、バー幅が2種類のバーからなる
2値のバーコードを対象するものとして説明したが、バ
ー幅が3以上の種類のバーからなる多値のバーコードに
ついても本発明が適用できることはいうまでもない。
【0048】
【発明の効果】以上説明したように、本発明によれば、
次回の閾値算出のための演算処理に小数点以下の切捨て
がなされず、切捨てに伴なう演算誤差をなくすことがで
き、あるいは、小数点以下の切捨てがあつても、これに
よる演算誤差を小さく抑えることができ、バーの種類判
別が正確となつてバーコード読取りの信頼性が向上す
る。
【図面の簡単な説明】
【図1】本発明による光学読取装置の一実施例を示すブ
ロツク図である。
【図2】本発明による光学読取装置の他の実施例を示す
ブロツク図である。
【図3】本発明による光学読取装置のさらに他の実施例
を示すブロツク図である。
【図4】本発明による光学読取装置のさらに他の実施例
を示すブロツク図である。
【図5】従来の光学読取装置の一例を示すブロツク図で
ある。
【図6】図5におけるビツトイメージ変換器の一例を示
すブロツク図である。
【図7】図5におけるビツトイメージ変換器の他の例を
示すブロツク図である。
【符号の説明】
1 光電変換部 2 カウンタ部 4 デゴーダ部 5,5′ ビツトイメージ変換器 9 カウント値の入力端子 12 比較器 17 前回カウンタメモリ 23,24 加算器 25 前回閾値メモリ 28 閾値メモリ 29〜36 シフトレジスタ 38 ラインセンサ 39 アナログレベルホールド回路 40 二値化回路 41 8分周回路 42 デジタルホールド回路

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 バーコードを読み取って黒バー,白バー
    に応じてレベルが異なる2値化信号を出力する光電変換
    部と、該2値化信号の2つのエツジ間毎にクロツクをカ
    ウントし該エツジ間の長さに応じたカウント値を出力す
    るカウンタ部と、該カウント値を閾値と比較して該光電
    変換部で読み取られるバーの種類を判別してビツトイメ
    ージを生成するビツトイメージ変換器と、該ビツトイメ
    ージから前記バーコードが表わすキヤラクタデータを生
    成するキヤラクタ変換器とを備え、該ビツトイメージ変
    換器では、該カウント値を演算処理して次回のカウント
    値と比較するための閾値を形成するようにした光学読取
    装置において、前記カウント部がカウントする前記クロ
    ツクが前記光電変換部の駆動クロツクに等しいときの前
    記カウンタ部が出力するカウント値をt、前記ビツトイ
    メージ変換器で該カウント値tを演算処理して得られる
    閾値をThとして、前記ビツトイメージ変換器は、前記
    カウンタ部から供給された前記カウント値を演算処理し
    てn・Th(但し、nは2以上の整数)の値をとる次回
    の前記閾値を生成し、これと比較される前記カウント値
    がn・tであることを特徴とする光学読取装置。
JP3012448A 1991-01-10 1991-01-10 光学読取装置 Expired - Fee Related JP2742140B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3012448A JP2742140B2 (ja) 1991-01-10 1991-01-10 光学読取装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3012448A JP2742140B2 (ja) 1991-01-10 1991-01-10 光学読取装置

Publications (2)

Publication Number Publication Date
JPH04235695A JPH04235695A (ja) 1992-08-24
JP2742140B2 true JP2742140B2 (ja) 1998-04-22

Family

ID=11805620

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3012448A Expired - Fee Related JP2742140B2 (ja) 1991-01-10 1991-01-10 光学読取装置

Country Status (1)

Country Link
JP (1) JP2742140B2 (ja)

Also Published As

Publication number Publication date
JPH04235695A (ja) 1992-08-24

Similar Documents

Publication Publication Date Title
US3909787A (en) Candidate selection processor
US4059224A (en) Code recognition record medium and technique
JP2616921B2 (ja) ラベル識別装置
US5128527A (en) Apparatus for reading a bar code
US4667089A (en) Bar code discriminating apparatus for bar code reading
US4012716A (en) Coded record and method of and system for interpreting the record
US5537431A (en) Method and apparatus for bar code reading and decoding
US3778597A (en) Record reading system
JPH01319884A (ja) 符号読取装置
JP2004185058A (ja) バーコード認識方法、および認識用デコード処理装置
JPH0354388B2 (ja)
JPS6116119B2 (ja)
EP0462772A2 (en) Bar code reading apparatus
JP2742140B2 (ja) 光学読取装置
JP2729168B2 (ja) バーコードおよびバーコード読取装置およびその読取方法
JPH0782519B2 (ja) 符号読取装置
US4108368A (en) Coded record and method of and system for interpreting the record
JP2677805B2 (ja) 符号読取装置
JP2677806B2 (ja) 符号読取装置
JPH01116777A (ja) 最終表示判定回路
JPH0344353B2 (ja)
KR930005566B1 (ko) 바코드 판독 디코더 시스템
KR970010372B1 (ko) 바코드 디코더의 유사문자 판독 시스템
JP4555952B2 (ja) バーコード記号読取装置及びそれによるスタートマージン候補検出方法並びにバーコード記号読取方法
JP2946780B2 (ja) バーコードプリンタ及びその制御方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19980113

LAPS Cancellation because of no payment of annual fees