説明

バーコード読み取り装置及びプログラム

【課題】キャラクタに生じている白ノイズ又は黒ノイズを検出することにより、そのキャラクタのデコードをエラーとして処理することが可能なバーコード読み取り装置を得る。
【解決手段】バーコード読み取り装置1は、各キャラクタをデコードするデコード部10と、各エレメントの幅を検出する幅検出部11と、幅検出部11による検出の結果に基づいて各エレメントの幅を比較し、この順に連続する同色の第1のエレメント、第2のエレメント、及び第3のエレメントのそれぞれの幅の広狭関係において、第2のエレメントの幅が、第1のエレメント及び第3のエレメントのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっているか否かを判定する判定部12とを備え、デコード部10は、判定部12による判定の結果に基づいてデコードを実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコード読み取り装置に関し、さらに、当該装置に搭載されるコンピュータを動作させるプログラムに関する。
【背景技術】
【0002】
店舗での商品管理、倉庫での在庫管理、又は特定施設での来場者管理等においては、バーコードに記録されたデータを非接触で読み取るために、ハンディターミナル等のバーコード読み取り装置が広く使用されている。
【0003】
下記特許文献1には、バーの幅に関するしきい値とスペースの幅に関するしきい値とをそれぞれ決定し、バーコードの各バーの幅とバーに関するしきい値とを比較することによって、各バーの幅がそのしきい値よりも広いか狭いかを分類し、また、バーコードの各スペースの幅とスペースに関するしきい値とを比較することにより、各スペースの幅がそのしきい値よりも広いか狭いかを分類し、これらの分類の結果に基づいてキャラクタをデコードするバーコード読み取り装置が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表平9−512936号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
解像度の低いドットインパクト方式のプリンタを用いて印刷されたバーコードにおいては、ドット間に隙間が生じるため、バー内に生じている隙間がいわゆる白ノイズとなり、この白ノイズに起因してキャラクタが誤ってデコードされる場合がある。また、バーコードを印刷する紙の粒子が粗い場合や、インクがかすれた場合、あるいは印刷後に紙が擦れて表面の一部が剥がれた場合にも、同様に白ノイズの問題が生じ得る。
【0006】
一方、バーコードを印刷する紙に汚れが生じている場合には、スペース内に生じている汚れがいわゆる黒ノイズとなり、この黒ノイズに起因してキャラクタが誤ってデコードされる場合がある。
【0007】
キャラクタが誤ってデコードされた場合には商品管理等を正しく遂行することができないため、このような白ノイズ又は黒ノイズが生じているキャラクタのデコードを正確にエラーとして処理することにより、再走査又は再デコード等の処理に導く必要がある。
【0008】
本発明はかかる事情に鑑みて成されたものであり、キャラクタに生じている白ノイズ又は黒ノイズを検出することにより、そのキャラクタのデコードをエラーとして処理することが可能なバーコード読み取り装置、及び当該装置に搭載されるコンピュータを動作させるプログラムを得ることを目的とするものである。
【課題を解決するための手段】
【0009】
本発明の第1の態様に係るバーコード読み取り装置は、複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置であって、前記バーコードは、同色で幅が異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、各キャラクタをデコードするデコード手段と、各エレメントの幅を検出する検出手段と、前記検出手段による検出の結果に基づいて各エレメ
ントの幅を比較し、この順に連続する同色の第1のエレメント、第2のエレメント、及び第3のエレメントのそれぞれの幅の広狭関係において、前記第2のエレメントの幅が、前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっているか否かを判定する判定手段とを備え、前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行することを特徴とするものである。
【0010】
第1の態様に係るバーコード読み取り装置によれば、判定手段は、この順に連続する同色の第1のエレメント、第2のエレメント、及び第3のエレメントのそれぞれの幅の広狭関係において、前記第2のエレメントの幅が、前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっているか否かを判定する。二値幅シンボル体系のバーコードにおいては、連続する同色の三つのエレメントに着目した場合に、各エレメントの幅が連続して広くなる又は連続して狭くなることはあり得ないため、判定手段による上記の判定処理によって、キャラクタに生じている白ノイズ又は黒ノイズを検出することができる。そして、白ノイズ又は黒ノイズを検出したキャラクタのデコードについては、そのデコードを失敗として扱うことにより、誤ったデコードがなされることを回避することができる。
【0011】
本発明の第2の態様に係るバーコード読み取り装置は、第1の態様に係るバーコード読み取り装置において特に、前記第1のエレメント、前記第2のエレメント、及び前記第3のエレメントのうちの二つを単一のエレメントとみなして結合する結合手段をさらに備え、前記判定手段が、前記第2のエレメントの幅が前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く他方のものの幅よりも狭い関係となっていると判定した場合は、前記デコード手段は、前記結合手段による結合の結果に基づいてデコードを実行することを特徴とするものである。
【0012】
第2の態様に係るバーコード読み取り装置によれば、結合手段は、第1のエレメント、第2のエレメント、及び第3のエレメントのうちの二つを単一のエレメントとみなして結合する。これにより、判定手段による判定によって白ノイズ又は黒ノイズが検出された場合には、結合によってその白ノイズ又は黒ノイズを補正した状態でデコード手段が再デコードを実行することができるため、再デコードが成功となる可能性を高めることができる。
【0013】
なお、本明細書において「結合」とは、二つのエレメントの幅を合算する処理を意味し、二つのエレメントを物理的に繋げる意味ではない。
【0014】
本発明の第3の態様に係るバーコード読み取り装置は、第2の態様に係るバーコード読み取り装置において特に、前記結合手段は、前記第1のエレメントの幅及び前記第2のエレメントの幅の合計の幅と、前記第3のエレメントの幅との比率が、所定範囲内に含まれる場合には、前記第1のエレメントと前記第2のエレメントとを結合し、前記第2のエレメントの幅及び前記第3のエレメントの幅の合計の幅と、前記第1のエレメントの幅との比率が、前記所定範囲内に含まれる場合には、前記第2のエレメントと前記第3のエレメントとを結合することを特徴とするものである。
【0015】
第3の態様に係るバーコード読み取り装置によれば、結合手段は、第1のエレメントの幅及び第2のエレメントの幅の合計の幅と、第3のエレメントの幅との比率が、所定範囲内に含まれる場合には、第1のエレメントと第2のエレメントとを結合し、第2のエレメントの幅及び第3のエレメントの幅の合計の幅と、第1のエレメントの幅との比率が、所定範囲内に含まれる場合には、第2のエレメントと第3のエレメントとを結合する。第2のエレメントは、第1のエレメント又は第3のエレメントと結合することができるが、結
合したエレメントの合計の幅と、残りの一つのエレメントの幅との比率が、二値幅シンボル体系のバーコードにおける幅広のエレメントの幅と幅狭のエレメントの幅との比率の範囲である所定範囲内に含まれるか否かによって、第2のエレメントの結合対象を適切に選択することができる。
【0016】
本発明の第4の態様に係るバーコード読み取り装置は、第3の態様に係るバーコード読み取り装置において特に、前記第1のエレメントの幅及び前記第2のエレメントの幅の合計の幅と、前記第3のエレメントの幅との比率が、前記所定範囲内に含まれず、かつ、前記第2のエレメントの幅及び前記第3のエレメントの幅の合計の幅と、前記第1のエレメントの幅との比率が、前記所定範囲内に含まれない場合には、前記結合手段は、前記第1のエレメントの幅、前記第2のエレメントの幅、及び前記第1のエレメントと前記第2のエレメントとの隙間の幅の合計の幅と、前記第3のエレメントの幅との比率が、前記所定範囲内に含まれる場合には、前記第1のエレメントと前記第2のエレメントと当該隙間とを結合し、前記第2のエレメントの幅、前記第3のエレメントの幅、及び前記第2のエレメントと前記第3のエレメントとの隙間の幅の合計の幅と、前記第1のエレメントの幅との比率が、前記所定範囲内に含まれる場合には、前記第2のエレメントと前記第3のエレメントと当該隙間とを結合することを特徴とするものである。
【0017】
第4の態様に係るバーコード読み取り装置によれば、第3の態様における二通りの結合によっては結合後の幅の比率が所定範囲内に含まれないときには、結合手段は、第1のエレメントの幅、第2のエレメントの幅、及び第1のエレメントと第2のエレメントとの隙間の幅の合計の幅と、第3のエレメントの幅との比率が、所定範囲内に含まれる場合には、第1のエレメントと第2のエレメントと当該隙間とを結合し、第2のエレメントの幅、第3のエレメントの幅、及び第2のエレメントと第3のエレメントとの隙間の幅の合計の幅と、第1のエレメントの幅との比率が、所定範囲内に含まれる場合には、第2のエレメントと第3のエレメントと当該隙間とを結合する。このように、白ノイズ又は黒ノイズの幅をも含めて結合することにより、結合後の幅の比率が所定範囲内に含まれることとなる可能性を高めることができる。その結果、結合手段による結合処理が成功となる可能性を高めることが可能となる。
【0018】
本発明の第5の態様に係るバーコード読み取り装置は、第2〜第4のいずれか一つの態様に係るバーコード読み取り装置において特に、当該バーコードに含まれる他のキャラクタのうち少なくとも一つのキャラクタのデコードが成功していることを条件として、前記結合手段による結合の結果に基づくデコードが実行されることを特徴とするものである。
【0019】
第5の態様に係るバーコード読み取り装置によれば、当該バーコードに含まれる他のキャラクタのうち少なくとも一つのキャラクタのデコードが成功していることを条件として、結合手段による結合の結果に基づくデコード(つまり再デコード)が実行される。従って、一つのキャラクタのデコードも成功しないような規格外のバーコード等に対しては、再デコード及び結合処理が実行されることはないため、無駄な処理が実行されることを回避できる。
【0020】
本発明の第6の態様に係るバーコード読み取り装置は、第2〜第5のいずれか一つの態様に係るバーコード読み取り装置において特に、前記デコード手段が前記結合手段による結合の結果に基づくデコードに失敗した場合には、前記バーコードの再走査が実行され、当該再走査においては、前回の走査方向とは逆の走査方向で当該バーコードの走査が実行されることを特徴とするものである。
【0021】
第6の態様に係るバーコード読み取り装置によれば、バーコードの再走査においては、前回の走査方向とは逆の走査方向で当該バーコードの走査が実行される。バーコードの読
み取りに一度失敗しても、逆方向から走査することによって読み取りが成功する場合もあり得るため、再走査においては前回の走査方向とは逆の方向からバーコードを走査することにより、バーコードの読み取りが成功となる可能性が高まる。
【0022】
本発明の第7の態様に係るプログラムは、複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置に搭載されるコンピュータを動作させるプログラムであって、前記バーコードは、同色で幅が異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、前記コンピュータを、各キャラクタをデコードするデコード手段と、各エレメントの幅を検出する検出手段と、前記検出手段による検出の結果に基づいて各エレメントの幅を比較し、この順に連続する同色の第1のエレメント、第2のエレメント、及び第3のエレメントのそれぞれの幅の広狭関係において、前記第2のエレメントの幅が、前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっているか否かを判定する判定手段ととして機能させ、前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行することを特徴とするものである。
【0023】
第7の態様に係るプログラムによれば、判定手段は、この順に連続する同色の第1のエレメント、第2のエレメント、及び第3のエレメントのそれぞれの幅の広狭関係において、前記第2のエレメントの幅が、前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっているか否かを判定する。二値幅シンボル体系のバーコードにおいては、連続する同色の三つのエレメントに着目した場合に、各エレメントの幅が連続して広くなる又は連続して狭くなることはあり得ないため、判定手段による上記の判定処理によって、キャラクタに生じている白ノイズ又は黒ノイズを検出することができる。そして、白ノイズ又は黒ノイズを検出したキャラクタのデコードについては、そのデコードを失敗として扱うことにより、誤ったデコードがなされることを回避することができる。
【0024】
本発明の第8の態様に係るバーコード読み取り装置は、複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置であって、前記バーコードは、同色で幅が異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、各キャラクタをデコードするデコード手段と、各エレメントの幅を検出する検出手段と、前記検出手段による検出の結果に基づいて各エレメントの幅を比較し、連続する同色の第1のエレメントと第2のエレメントとに関して、前記第1のエレメントの幅と前記第2のエレメントの幅との比率が所定範囲内に含まれているか否かを判定する判定手段とを備え、前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行することを特徴とするものである。
【0025】
第8の態様に係るバーコード読み取り装置によれば、判定手段は、連続する同色の第1のエレメントと第2のエレメントとに関して、第1のエレメントの幅と第2のエレメントの幅との比率が所定範囲内に含まれているか否かを判定する。正常な二値幅シンボル体系のバーコードにおいては、幅広のエレメントの幅と幅狭のエレメントの幅との比率が所定範囲内に収まるはずであるため、第1のエレメントの幅と第2のエレメントの幅との比率が所定範囲内に収まらないと判定手段が判定したことを以て、そのキャラクタに白ノイズ又は黒ノイズが生じていることを検出することができる。そして、白ノイズ又は黒ノイズを検出したキャラクタのデコードについては、そのデコードを失敗として扱うことにより、誤ったデコードがなされることを回避することができる。
【0026】
本発明の第9の態様に係るプログラムは、複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置に搭載されるコンピュータを動作させるプログラムであって、前記バーコードは、同色で幅が
異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、前記コンピュータを、各キャラクタをデコードするデコード手段と、各エレメントの幅を検出する検出手段と、前記検出手段による検出の結果に基づいて各エレメントの幅を比較し、連続する同色の第1のエレメントと第2のエレメントとに関して、前記第1のエレメントの幅と前記第2のエレメントの幅との比率が所定範囲内に含まれているか否かを判定する判定手段ととして機能させ、前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行することを特徴とするものである。
【0027】
第9の態様に係るプログラムによれば、判定手段は、連続する同色の第1のエレメントと第2のエレメントとに関して、第1のエレメントの幅と第2のエレメントの幅との比率が所定範囲内に含まれているか否かを判定する。正常な二値幅シンボル体系のバーコードにおいては、幅広のエレメントの幅と幅狭のエレメントの幅との比率が所定範囲内に収まるはずであるため、第1のエレメントの幅と第2のエレメントの幅との比率が所定範囲内に収まらないと判定手段が判定したことを以て、そのキャラクタに白ノイズ又は黒ノイズが生じていることを検出することができる。そして、白ノイズ又は黒ノイズを検出したキャラクタのデコードについては、そのデコードを失敗として扱うことにより、誤ったデコードがなされることを回避することができる。
【発明の効果】
【0028】
本発明によれば、キャラクタに生じている白ノイズ又は黒ノイズを検出することができ、そのキャラクタのデコードをエラーとして処理することが可能となる。
【図面の簡単な説明】
【0029】
【図1】バーコードを示す図である。
【図2】本発明の第1の実施の形態に係るバーコード読み取り装置の構成を示すブロック図である。
【図3】制御部における処理の流れを示すフローチャートである。
【図4】制御部によるデコード処理の流れを詳細に示すフローチャートである。
【図5】バーコードのうち一つのキャラクタを拡大して示す図である。
【図6】デコード処理の流れを詳細に示すフローチャートである。
【図7】白ノイズが生じている場合の結合処理の流れを示すフローチャートである。
【図8】白ノイズが生じている場合の結合処理の例を示す図である。
【図9】黒ノイズが生じている場合の結合処理の流れを示すフローチャートである。
【図10】黒ノイズが生じている場合の結合処理の例を示す図である。
【図11】制御部によるデコード処理の流れを詳細に示すフローチャートである。
【図12】キャラクタ内で連続する2つのバーを拡大して示す図である。
【図13】制御部によるデコード処理の流れを詳細に示すフローチャートである。
【図14】キャラクタ内で連続する2つのスペースを拡大して示す図である。
【発明を実施するための形態】
【0030】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【0031】
<第1の実施の形態>
図1は、バーコード100を示す図である。図1の(A)には、6個のキャラクタC1〜C6を含むバーコード100の一例を示しており、図1の(B)には、図1の(A)に示したバーコード100のうちのキャラクタC1〜C3を拡大して示している。バーコード100は、二値幅シンボル体系のバーコードの一種であるコード39のバーコードであり、1個のキャラクタは合計9個のエレメントによって規定される。9個のエレメントは、5本のバーと4本のスペースとによって構成される。バーは、例えば黒色のエレメント
であり、スペースは、例えば白色のエレメントである。二値幅シンボル体系のバーコードにおいては、バーには幅広のバーBWと幅狭のバーBNとの二種類のバーが含まれ、同様にスペースには幅広のスペースSWと幅狭のスペースSNとの二種類のスペースが含まれる。バーBWの幅はバーBNの幅の2〜5倍程度の範囲内に設定されており、同様にスペースSWの幅はスペースSNの幅の2〜5倍程度の範囲内に設定されている。また、コード39のバーコード100においては、1個のキャラクタ内に、合計3本のバーBW又はスペースSWと、合計6本のバーBN又はスペースSNとが含まれる。なお、二値幅シンボル体系のバーコードには、コード39のほかに、NW−7やITF等がある。
【0032】
図2は、本発明の第1の実施の形態に係るバーコード読み取り装置1の構成を示すブロック図である。図2に示すようにバーコード読み取り装置1は、光学装置2、二値化処理部3、制御部4、出力装置5、及び記憶部6を備えて構成されている。
【0033】
光学装置2は、赤色半導体レーザ等の光源を用いてバーコード100を走査し、バーコード100からの反射光を受光素子によって受光する。バーBW,BNで反射された反射光の強度は低くなり、スペースSW,SNで反射された反射光の強度は高くなるため、受光素子においては、バーコード100のバーBW,BN及びスペースSW,SNの配列パターンに対応した反射光の強度分布が得られる。
【0034】
二値化処理部3は、光学装置2の受光素子から入力されたアナログ信号を、所定のしきい値を用いて二値のディジタルデータに変換する。例えば、しきい値未満のアナログ信号をディジタルデータ“1”とし、しきい値以上のアナログ信号をディジタルデータ“0”とする。
【0035】
制御部4はCPU等を備えるコンピュータであり、記憶部6に記憶されているプログラム14を読み出して実行することによって、制御部4は、デコード部10、幅検出部11、判定部12、及び結合部13として機能する。換言すれば、プログラム14は、コンピュータを、デコード部10、幅検出部11、判定部12、及び結合部13として機能させるためのプログラムである。デコード部10、幅検出部11、判定部12、及び結合部13における処理内容の詳細については後述する。
【0036】
記憶部6はROM又はRAM等の半導体メモリであり、上記のプログラム14のほか、制御部4によるデコード結果と文字列との対応関係が記述されたデータテーブル15が記憶されている。
【0037】
出力装置5はLCD等の表示装置であり、制御部4によるバーコード100のデコード結果(又はそれがデータテーブル15によって変換された文字列)が、表示装置の表示画面に表示される。あるいは出力装置5は通信装置であり、制御部4によるバーコード100のデコード結果が、通信装置からホストコンピュータ又はデータベース等の他のデータ管理装置に向けて送信される。
【0038】
図3は、制御部4における処理の流れを示すフローチャートである。まずステップSP11において、バーコード100における先頭のキャラクタのデコード処理が実行される。図1を参照して、光学装置2によるバーコード100の走査方向は、紙面の左から右に向かう方向(以下この方向を「順方向」と称す)に設定されている。従って、バーコード100における先頭のキャラクタはキャラクタC1となるため、ステップSP11において、制御部4はキャラクタC1のデコードを実行する。
【0039】
図4は、制御部4によるデコード処理の流れを詳細に示すフローチャートである。まずステップSP21において幅検出部11は、キャラクタC1内に含まれる各バーの幅を検
出する。
【0040】
図5は、バーコード100のうちキャラクタC1を拡大して示す図である。キャラクタC1においては、左から順に、バーBN1、スペースSW1、バーBN2、スペースSN1、バーBW1、スペースSN2、バーBW2、スペースSN3、及びバーBN3が配列されている。幅検出部11は、これらのうちバーBN1,BN2,BW1,BW2,BN3の各幅を検出する。
【0041】
次にステップSP22において判定部12は、キャラクタC1内で連続する3つのバーを順に抽出して、それらの幅を比較する。抽出した3つのバーのうち左端のバーの幅をWBaとし、中央のバーの幅をWBbとし、右端のバーの幅をWBcとすると、初めにバーBN1,BN2,BW1が抽出された場合には、比較結果は「WBa=WBb<WBc」となる。続いてバーBN2,BW1,BW2が抽出された場合には、比較結果は「WBa<WBb=WBc」となる。続いてバーBW1,BW2,BN3が抽出された場合には、比較結果は「WBa=WBb>WBc」となる。
【0042】
次にステップSP23において判定部12は、ステップSP22における複数の比較結果の中に、「WBa>WBb>WBc」なる関係が含まれているか否かを判定する。図5に示した例では「WBa>WBb>WBc」なる関係は含まれていないため、ステップSP23における判定の結果は「NO」となる。
【0043】
次にステップSP24において判定部12は、ステップSP22における複数の比較結果の中に、「WBa<WBb<WBc」なる関係が含まれているか否かを判定する。図5に示した例では「WBa<WBb<WBc」なる関係は含まれていないため、ステップSP24における判定の結果は「NO」となる。
【0044】
ステップSP23,SP24における判定の結果がいずれも「NO」である場合には、判定部12は、キャラクタC1内には白ノイズが生じていないと判定する。この場合、次にステップSP25においてデコード部10は、キャラクタC1をデコードし、そのデコード結果に対応する文字列がデータテーブル15に含まれているか否かを判定する。対応する文字列が含まれている場合(つまりステップSP25における判定の結果が「YES」である場合)にはキャラクタC1のデコードが成功とされ、含まれていない場合(つまりステップSP25における判定の結果が「NO」である場合)には失敗とされる。なお、ステップSP23又はステップSP24における判定の結果が「YES」となる場合(つまり白ノイズが生じている場合)も、キャラクタC1のデコードは失敗とされる。
【0045】
図4ではバーに着目した場合のキャラクタC1のデコード処理を示したが、スペースに関しても同様のデコード処理が実行される。図6は、デコード処理の流れを詳細に示すフローチャートである。まずステップSP31において幅検出部11は、キャラクタC1内に含まれる各スペースの幅を検出する。図5を参照して、幅検出部11は、スペースSW1,SN1,SN2,SN3の各幅を検出する。
【0046】
次にステップSP32において判定部12は、キャラクタC1内で連続する3つのスペースを順に抽出して、それらの幅を比較する。抽出した3つのスペースのうち左端のスペースの幅をWSaとし、中央のスペースの幅をWSbとし、右端のスペースの幅をWScとすると、初めにスペースSW1,SN1,SN2が抽出された場合には、比較結果は「WSa>WSb=WSc」となり、続いてスペースSN1,SN2,SN3が抽出された場合には、比較結果は「WSa=WSb=WSc」となる。
【0047】
次にステップSP33において判定部12は、ステップSP32における複数の比較結
果の中に、「WSa>WSb>WSc」なる関係が含まれているか否かを判定する。図5に示した例では「WSa>WSb>WSc」なる関係は含まれていないため、ステップSP33における判定の結果は「NO」となる。
【0048】
次にステップSP34において判定部12は、ステップSP32における複数の比較結果の中に、「WSa<WSb<WSc」なる関係が含まれているか否かを判定する。図5に示した例では「WSa<WSb<WSc」なる関係は含まれていないため、ステップSP34における判定の結果は「NO」となる。
【0049】
ステップSP33,SP34における判定の結果がいずれも「NO」である場合には、判定部12は、キャラクタC1内には黒ノイズが生じていないと判定する。この場合、次にステップSP35(図4に示したステップSP25と同様)においてデコード部10は、キャラクタC1をデコードし、そのデコード結果に対応する文字列がデータテーブル15に含まれているか否かを判定する。対応する文字列が含まれている場合(つまりステップSP35における判定の結果が「YES」である場合)にはキャラクタC1のデコードが成功とされ、含まれていない場合(つまりステップSP35における判定の結果が「NO」である場合)には失敗とされる。なお、ステップSP33又はステップSP34における判定の結果が「YES」となる場合(つまり黒ノイズが生じている場合)も、キャラクタC1のデコードは失敗とされる。
【0050】
図3に示したフローチャートに戻り、ステップSP11に続くステップSP12において、先頭のキャラクタC1のデコードが失敗であったか否かが判定される。キャラクタC1のデコードが失敗であった場合(つまりステップSP12における判定の結果が「YES」である場合)は、光学装置2によるバーコード100の再走査が実行される。再走査において、光学装置2は、前回の走査方向とは逆の方向からバーコード100の走査を行う。つまり、前回の走査方向が左から右に向かう順方向であったため、今回の再走査においては、右から左に向かう逆方向でバーコード100の走査を実行する。但し、前回と同様に順方向で再走査を行っても良い。
【0051】
一方、キャラクタC1のデコードが成功であった場合(つまりステップSP12における判定の結果が「NO」である場合)は、次にステップSP13において、キャラクタC1の隣のキャラクタC2についてのデコード処理が実行される。キャラクタC2についてのデコード処理の詳細は、上述したキャラクタC1についてのデコード処理(図4,6)と同様である。次にステップSP14において、キャラクタC2のデコードが失敗であったか否かが判定される。キャラクタC2のデコードが成功であった場合(つまりステップSP14における判定の結果が「NO」である場合)は、次にステップSP15において、次のキャラクタが存在するか否かが判定される。次のキャラクタが存在する場合(つまりステップSP15における判定の結果が「YES」である場合)には、ステップSP13においてそのキャラクタについてのデコード処理が実行される。一方、次のキャラクタが存在しない場合(つまりステップSP15における判定の結果が「NO」である場合)には、バーコード100についてのデコード処理が正常に終了し、出力装置5においてデコード結果が出力される。
【0052】
ステップSP13におけるキャラクタのデコードが失敗であった場合(つまりステップSP14における判定の結果が「YES」である場合)は、次にステップSP16において、結合処理が実行される。
【0053】
図7は、白ノイズが生じている場合の結合処理の流れを示すフローチャートである。また、図8は、白ノイズが生じている場合の結合処理の例を示す図である。図8の(A)を参照して、バーBa,Bbは本来は単一のバーであるところ、そのバー内に白ノイズ(ス
ペースSab)が生じていることに起因して、そのバーは幅検出部11において2本のバーBa,Bbとして認識されている。図8の(A)に示した例では、中央のバーBbの幅WBbは左端のバーBaの幅WBaよりも広く、右端のバーBcの幅WBcは中央のバーBbの幅WBbよりも広い。つまり、判定部12がこれら3つのバーBa,Bb,Bcを抽出して各バーの幅を比較した場合には、その比較結果は「WBa<WBb<WBc」となる。その結果、図4のステップSP24における判定の結果が「YES」となって、そのキャラクタのデコードが失敗とされる。なお、図8の(A)において、バーBaとバーBbとの間のスペースSabの幅はWSabであり、バーBbとバーBcとの間のスペースSbcの幅はWSbcである。
【0054】
図7のステップSP41において結合部13は、幅の比較結果が「WBa<WBb<WBc」となっている箇所(つまり図8の(A)に示したバーBa,Bb,Bc)に関して、「WBc/(WBa+WBb)」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が、所定範囲(幅狭のバーBNに対する幅広のバーBWの比率である例えば「2〜5」)内に含まれているか否かを判定する。「WBc/(WBa+WBb)」の値が所定範囲内に含まれている場合(つまりステップSP41における判定の結果が「YES」である場合)は、次にステップSP42において結合部13は、図8の(B)に示すように、バーBaとバーBbとを幅WBa+WBbの単一のバーBa+Bbとみなして結合する。ここで、「結合」とは、二つのバーの幅を合算する処理を意味し、二つのバーを物理的に繋げる意味ではない。
【0055】
一方、「WBc/(WBa+WBb)」の値が所定範囲内に含まれていない場合(つまりステップSP41における判定の結果が「NO」である場合)は、次にステップSP43において結合部13は、「(WBb+WBc)/WBa」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が上記の所定範囲内に含まれているか否かを判定する。「(WBb+WBc)/WBa」の値が所定範囲内に含まれている場合(つまりステップSP43における判定の結果が「YES」である場合)は、次にステップSP44において結合部13は、バーBbとバーBcとを幅WBb+WBcの単一のバーとみなして結合する。
【0056】
一方、「(WBb+WBc)/WBa」の値が所定範囲内に含まれていない場合(つまりステップSP43における判定の結果が「NO」である場合)は、次にステップSP45において結合部13は、「WBc/(WBa+WBb+WSab)」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が上記の所定範囲内に含まれているか否かを判定する。「WBc/(WBa+WBb+WSab)」の値が所定範囲内に含まれている場合(つまりステップSP45における判定の結果が「YES」である場合)は、次にステップSP46において結合部13は、図8の(C)に示すように、バーBaとバーBbとスペースSabとを幅WBa+WBb+WSabの単一のバーBa+Bb+Sabとみなして結合する。
【0057】
一方、「WBc/(WBa+WBb+WSab)」の値が所定範囲内に含まれていない場合(つまりステップSP45における判定の結果が「NO」である場合)は、次にステップSP47において結合部13は、「(WBb+WBc+WSbc)/WBa」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が上記の所定範囲内に含まれているか否かを判定する。「(WBb+WBc+WSbc)/WBa」の値が所定範囲内に含まれている場合(つまりステップSP47における判定の結果が「YES」である場合)は、次にステップSP48において結合部13は、バーBbとバーBcとスペースSbcとを幅WBb+WBc+WSbcの単一のバーとみなして結合する。
【0058】
一方、「(WBb+WBc+WSbc)/WBa」の値が所定範囲内に含まれていない
場合(つまりステップSP47における判定の結果が「NO」である場合)は、結合処理は失敗とされる。
【0059】
図3に示したフローチャートに戻り、ステップSP16に続くステップSP17において、ステップSP16の結合処理が失敗したか否かが判定される。結合処理が成功であった場合(つまりステップSP17における判定の結果が「NO」である場合)は、次にステップSP13において、結合処理後のキャラクタについて再デコード処理が実行される。再デコード処理の内容は、上述したデコード処理(図4)と同様である。その後、ステップSP14以降の処理が実行される。
【0060】
一方、結合処理が失敗であった場合(つまりステップSP17における判定の結果が「YES」である場合)は、光学装置2によるバーコード100の再走査が実行される。再走査において、光学装置2は、前回の走査方向とは逆の方向からバーコード100の走査を行う。つまり、前回の走査方向が左から右に向かう順方向であったため、今回の再走査においては、右から左に向かう逆方向でバーコード100の走査を実行する。但し、前回と同様に順方向で再走査を行っても良い。その後、ステップSP11以降の処理が実行される。
【0061】
図9は、黒ノイズが生じている場合の結合処理の流れを示すフローチャートである。また、図10は、黒ノイズが生じている場合の結合処理の例を示す図である。図10の(A)を参照して、スペースSb,Scは本来は単一のスペースであるところ、そのスペース内に黒ノイズ(バーBbc)が生じていることに起因して、そのスペースは幅検出部11において2つのスペースSb,Scとして認識されている。図10の(A)に示した例では、中央のスペースSbの幅WSbは左端のスペースSaの幅WSaよりも狭く、右端のスペースScの幅WScは中央のスペースSbの幅WSbよりも狭い。つまり、判定部12がこれら3つのスペースSa,Sb,Scを抽出して各スペースの幅を比較した場合には、その比較結果は「WSa>WSb>WSc」となる。その結果、図6のステップSP33における判定の結果が「YES」となって、そのキャラクタのデコードが失敗とされる。なお、図10の(A)において、スペースSaとスペースSbとの間のバーBabの幅はWBabであり、スペースSbとスペースScとの間のバーBbcの幅はWBbcである。
【0062】
図9のステップSP51において結合部13は、幅の比較結果が「WSa>WSb>WSc」となっている箇所(つまり図10の(A)に示したスペースSa,Sb,Sc)に関して、「WSa/(WSb+WSc)」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が、所定範囲(幅狭のスペースSNに対する幅広のスペースSWの比率である例えば「2〜5」)内に含まれているか否かを判定する。「WSa/(WSb+WSc)」の値が所定範囲内に含まれている場合(つまりステップSP51における判定の結果が「YES」である場合)は、次にステップSP52において結合部13は、図10の(B)に示すように、スペースSbとスペースScとを幅WSb+WScの単一のスペースSb+Scとみなして結合する。ここで、「結合」とは、二つのスペースの幅を合算する処理を意味し、二つのスペースを物理的に繋げる意味ではない。
【0063】
一方、「WSa/(WSb+WSc)」の値が所定範囲内に含まれていない場合(つまりステップSP51における判定の結果が「NO」である場合)は、次にステップSP53において結合部13は、「(WSa+WSb)/WSc」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が上記の所定範囲内に含まれているか否かを判定する。「(WSa+WSb)/WSc」の値が所定範囲内に含まれている場合(つまりステップSP53における判定の結果が「YES」である場合)は、次にステップSP54において結合部13は、スペースSaとスペースSbとを幅WSa+WSbの単一
のスペースとみなして結合する。
【0064】
一方、「(WSa+WSb)/WSc」の値が所定範囲内に含まれていない場合(つまりステップSP53における判定の結果が「NO」である場合)は、次にステップSP55において結合部13は、「WSa/(WSb+WSc+WBbc)」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が上記の所定範囲内に含まれているか否かを判定する。「WSa/(WSb+WSc+WBbc)」の値が所定範囲内に含まれている場合(つまりステップSP55における判定の結果が「YES」である場合)は、次にステップSP56において結合部13は、図10の(C)に示すように、スペースSbとスペースScとバーBbcとを幅WSb+WSc+WBbcの単一のスペースSb+Sc+Bbcとみなして結合する。
【0065】
一方、「WSa/(WSb+WSc+WBbc)」の値が所定範囲内に含まれていない場合(つまりステップSP55における判定の結果が「NO」である場合)は、次にステップSP57において結合部13は、「(WSa+WSb+WBab)/WSc」なる演算を行う。そして、結合部13は、その演算の結果として得られる値が上記の所定範囲内に含まれているか否かを判定する。「(WSa+WSb+WBab)/WSc」の値が所定範囲内に含まれている場合(つまりステップSP57における判定の結果が「YES」である場合)は、次にステップSP58において結合部13は、スペースSaとスペースSbとバーBabとを幅WSa+WSb+WBabの単一のスペースとみなして結合する。
【0066】
一方、「(WSa+WSb+WBab)/WSc」の値が所定範囲内に含まれていない場合(つまりステップSP57における判定の結果が「NO」である場合)は、結合処理は失敗とされる。
【0067】
図3に示したフローチャートに戻り、ステップSP16に続くステップSP17において、ステップSP16の結合処理が失敗したか否かが判定される。結合処理が成功であった場合(つまりステップSP17における判定の結果が「NO」である場合)は、次にステップSP13において、結合処理後のキャラクタについて再デコード処理が実行される。再デコード処理の内容は、上述したデコード処理(図6)と同様である。その後、ステップSP14以降の処理が実行される。
【0068】
一方、結合処理が失敗であった場合(つまりステップSP17における判定の結果が「YES」である場合)は、光学装置2によるバーコード100の再走査が実行される。上記と同様に、再走査において光学装置2は、前回の走査方向とは逆の方向からバーコード100の走査を行う。但し、前回と同様に順方向で再走査を行っても良い。その後、ステップSP11以降の処理が実行される。
【0069】
このように本実施の形態に係るバーコード読み取り装置1によれば、判定部12は、この順に連続する第1のバーBa、第2のバーBb、及び第3のバーBcのそれぞれの幅の広狭関係において、第2のバーBbの幅が、第1のバーBa及び第3のバーBcのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっている場合に、当該キャラクタのデコードを失敗と判定する。二値幅シンボル体系のバーコードにおいては、連続する三つのバーに着目した場合に、各バーの幅が連続して広くなる又は連続して狭くなることはあり得ないため、判定部12による上記の判定処理によって、キャラクタに生じている白ノイズを検出することができる。また、判定部12は、この順に連続する第1のスペースSa、第2のスペースSb、及び第3のスペースScのそれぞれの幅の広狭関係において、第2のスペースSbの幅が、第1のスペースSa及び第3のスペースScのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっている場合に、当
該キャラクタのデコードを失敗と判定する。二値幅シンボル体系のバーコードにおいては、連続する三つのスペースに着目した場合に、各スペースの幅が連続して広くなる又は連続して狭くなることはあり得ないため、判定部12による上記の判定処理によって、キャラクタに生じている黒ノイズを検出することができる。そして、白ノイズ又は黒ノイズを検出したキャラクタのデコードについては、そのデコードを失敗と判定することにより、誤ったデコードがなされることを回避することができる。
【0070】
また、本実施の形態に係るバーコード読み取り装置1によれば、結合部13は、デコードが失敗と判定されたキャラクタの再デコードを実行するにあたって、第1のバーBa、第2のバーBb、及び第3のバーBcのうちの二つを単一のバーとみなして結合する。また、結合部13は、デコードが失敗と判定されたキャラクタの再デコードを実行するにあたって、第1のスペースSa、第2のスペースSb、及び第3のスペースScのうちの二つを単一のスペースとみなして結合する。これにより、結合によって白ノイズ又は黒ノイズを補正した状態で再デコードを実行することができるため、再デコードが成功となる可能性を高めることができる。
【0071】
また、本実施の形態に係るバーコード読み取り装置1によれば、結合部13は、第1のバーBaの幅及び第2のバーBbの幅の合計の幅と、第3のバーBcの幅との比率が、所定範囲内に含まれる場合には、第1のバーBaと第2のバーBbとを結合し、第2のバーBbの幅及び第3のバーBcの幅の合計の幅と、第1のバーBaの幅との比率が、所定範囲内に含まれる場合には、第2のバーBbと第3のバーBcとを結合する。第2のバーBbは、第1のバーBa又は第3のバーBcと結合することができるが、結合した二つのバーの合計の幅と、残りの一つのバーの幅との比率が、二値幅シンボル体系のバーコードにおける幅広のバーBWの幅と幅狭のバーBNの幅との比率の範囲である所定範囲内に含まれるか否かによって、第2のバーBbの結合対象を適切に選択することができる。また、結合部13は、第1のスペースSaの幅及び第2のスペースSbの幅の合計の幅と、第3のスペースScの幅との比率が、所定範囲内に含まれる場合には、第1のスペースSaと第2のスペースSbとを結合し、第2のスペースSbの幅及び第3のスペースScの幅の合計の幅と、第1のスペースSaの幅との比率が、所定範囲内に含まれる場合には、第2のスペースSbと第3のスペースScとを結合する。第2のスペースSbは、第1のスペースSa又は第3のスペースScと結合することができるが、結合した二つのスペースの合計の幅と、残りの一つのスペースの幅との比率が、二値幅シンボル体系のバーコードにおける幅広のスペースSWの幅と幅狭のスペースSNの幅との比率の範囲である所定範囲内に含まれるか否かによって、第2のスペースSbの結合対象を適切に選択することができる。
【0072】
また、本実施の形態に係るバーコード読み取り装置1によれば、上記した二通りの結合によっては結合後の幅の比率が所定範囲内に含まれないときには、結合部13は、第1のバーBaの幅、第2のバーBbの幅、及び第1のバーBaと第2のバーBbとの隙間(スペースSab)の幅の合計の幅と、第3のバーBcの幅との比率が、所定範囲内に含まれる場合には、第1のバーBaと第2のバーBbと当該隙間(スペースSab)とを結合し、第2のバーBbの幅、第3のバーBcの幅、及び第2のバーBbと第3のバーBcとの隙間(スペースSbc)の幅の合計の幅と、第1のバーBaの幅との比率が、所定範囲内に含まれる場合には、第2のバーBbと第3のバーBcと当該隙間(スペースSbc)とを結合する。このように、白ノイズの幅をも含めて結合することにより、結合後の幅の比率が所定範囲内に含まれることとなる可能性を高めることができる。また、結合部13は、第1のスペースSaの幅、第2のスペースSbの幅、及び第1のスペースSaと第2のスペースSbとの隙間(バーBab)の幅の合計の幅と、第3のスペースScの幅との比率が、所定範囲内に含まれる場合には、第1のスペースSaと第2のスペースSbと当該隙間(バーBab)とを結合し、第2のスペースSbの幅、第3のスペースScの幅、及
び第2のスペースSbと第3のスペースScとの隙間(バーBbc)の幅の合計の幅と、第1のスペースSaの幅との比率が、所定範囲内に含まれる場合には、第2のスペースSbと第3のスペースScと当該隙間(バーBbc)とを結合する。このように、黒ノイズの幅をも含めて結合することにより、結合後の幅の比率が所定範囲内に含まれることとなる可能性を高めることができる。その結果、結合部13による結合処理が成功となる可能性を高めることが可能となる。
【0073】
また、本実施の形態に係るバーコード読み取り装置1によれば、バーコード100に含まれる他のキャラクタのうち少なくとも一つのキャラクタ(上記の例では先頭のキャラクタC1)のデコードが成功していることを条件として、再デコードが実行される。従って、一つのキャラクタのデコードも成功しないような規格外のバーコード等に対しては、再デコード及び結合処理が実行されることはないため、無駄な処理が実行されることを回避できる。
【0074】
また、本実施の形態に係るバーコード読み取り装置1によれば、バーコード100の再走査においては、前回の走査方向とは逆の走査方向で当該バーコード100の走査が実行される。バーコード100の読み取りに一度失敗しても、逆方向から走査することによって読み取りが成功する場合もあり得るため、再走査においては前回の走査方向とは逆の方向からバーコード100を走査することにより、バーコード100の読み取りが成功となる可能性が高まる。
【0075】
<第2の実施の形態>
上記第1の実施の形態では、キャラクタ内で連続する3つのバーBa,Bb,Bcを順に抽出してそれらの幅WBa,WBb,WBcを比較し、比較結果の中に「WBa>WBb>WBc」又は「WBa<WBb<WBc」なる関係が含まれている場合に、そのキャラクタのデコードが失敗であると判定した。また、キャラクタ内で連続する3つのスペースSa,Sb,Scを順に抽出してそれらの幅WSa,WSb,WScを比較し、比較結果の中に「WSa>WSb>WSc」又は「WSa<WSb<WSc」なる関係が含まれている場合に、そのキャラクタのデコードが失敗であると判定した。第2の実施の形態では、第1の実施の形態とは異なる方法によってデコードの成功/失敗を判定する手法について説明する。第2の実施の形態に係るバーコード読み取り装置1の構成は、図2に示した構成と同様である。
【0076】
図11は、制御部4によるデコード処理の流れを詳細に示すフローチャートである。まずステップSP61において幅検出部11は、キャラクタ内に含まれる各バーの幅を検出する。
【0077】
図12は、キャラクタ内で連続する2つのバーを拡大して示す図である。図12の(A)には白ノイズが生じていない2つのバーBa,Bbを示しており、図12の(B)には、図12の(A)に示したバーBa内に白ノイズ(スペースSab)が生じている状態を示している。図12の(A)に示すようにバーBaは本来は単一のバーであるところ、そのバーBa内に白ノイズ(スペースSab)が生じていることに起因して、幅検出部11は、図12の(A)に示したバーBaを、図12の(B)に示すように2本のバーBa,Bbとして認識する。
【0078】
次にステップSP62において判定部12は、キャラクタ内で連続する2つのバーBa,Bbを順に抽出して、それらの幅WBa,WBbを比較する。
【0079】
次にステップSP63において判定部12は、「WBa/WBb」及び「WBb/WBa」なる演算を行う。そして、判定部12は、その演算の結果として得られる値の一方が
、所定範囲内に含まれているか否かを判定する。ここでの所定範囲は、幅狭のバーBNに対する幅広のバーBWの比率である例えば「2〜5」、又は、幅狭のバーBN(若しくは幅広のバーBW)に対する幅狭のバーBN(若しくは幅広のバーBW)の比率である約「1」に設定されている。つまり、所定範囲は「1,2〜5」に設定されている。但し、誤差を考慮してある程度の幅を持たせても良く、例えば「0.9〜1.1,2〜5」に設定しても良い。
【0080】
そのキャラクタ内の全てのバーに関して「WBa/WBb」又は「WBb/WBa」の値が上記の所定範囲内に含まれている場合(つまりステップSP63における判定の結果が「YES」である場合は、判定部12は、そのキャラクタのデコードが成功であると判定する。図12の(A)に示した例では、「WBb/WBa」の値が上記の所定範囲内に含まれる。
【0081】
一方、そのキャラクタ内のいずれかの2つのバーに関して「WBa/WBb」及び「WBb/WBa」の双方の値が上記の所定範囲内に含まれていない場合(つまりステップSP63における判定の結果が「NO」である場合は、判定部12は、そのキャラクタのデコードが失敗であると判定する。図12の(B)に示した例では、「WBa/WBb」及び「WBb/WBa」の各値はいずれも上記の所定範囲内に含まれないため、そのキャラクタのデコードは失敗と判定される。
【0082】
図11ではバーに着目した場合のキャラクタのデコード処理を示したが、スペースに関しても同様のデコード処理が実行される。図13は、制御部4によるデコード処理の流れを詳細に示すフローチャートである。まずステップSP71において幅検出部11は、キャラクタ内に含まれる各スペースの幅を検出する。
【0083】
図14は、キャラクタ内で連続する2つのスペースを拡大して示す図である。図14の(A)には黒ノイズが生じていない2つのスペースSa,Sbを示しており、図14の(B)には、図14の(A)に示したスペースSa内に黒ノイズ(バーBn)が生じている状態を示している。図14の(A)に示したスペースSa内に黒ノイズ(バーBn)が生じていることに起因して、図14の(B)に示すように幅検出部11は、スペースSaの幅WSaを、図14の(A)に示した本来の幅WSaよりも狭い幅として認識する。
【0084】
次にステップSP72において判定部12は、キャラクタ内で連続する2つのスペースSa,Sbを順に抽出して、それらの幅SBa,SBbを比較する。
【0085】
次にステップSP73において判定部12は、「WSa/WSb」及び「WSb/WSa」なる演算を行う。そして、判定部12は、その演算の結果として得られる値の一方が、所定範囲内に含まれているか否かを判定する。ここでの所定範囲は、幅狭のスペースSNに対する幅広のスペースSWの比率である例えば「2〜5」、又は、幅狭のスペースSN(若しくは幅広のスペースSW)に対する幅狭のスペースSN(若しくは幅広のスペースSW)の比率である約「1」に設定されている。つまり、所定範囲は「1,2〜5」に設定されている。但し、誤差を考慮してある程度の幅を持たせても良く、例えば「0.9〜1.1,2〜5」に設定しても良い。
【0086】
そのキャラクタ内の全てのスペースに関して「WSa/WSb」又は「WSb/WSa」の値が上記の所定範囲内に含まれている場合(つまりステップSP73における判定の結果が「YES」である場合は、判定部12は、そのキャラクタのデコードが成功であると判定する。図14の(A)に示した例では、「WSb/WSa」の値が上記の所定範囲内に含まれる。
【0087】
一方、そのキャラクタ内のいずれかの2つのスペースに関して「WSa/WSb」及び「WSb/WSa」の双方の値が上記の所定範囲内に含まれていない場合(つまりステップSP73における判定の結果が「NO」である場合は、判定部12は、そのキャラクタのデコードが失敗であると判定する。図14の(B)に示した例では、「WSa/WSb」及び「WSb/WSa」の各値はいずれも上記の所定範囲内に含まれないため、そのキャラクタのデコードは失敗と判定される。
【0088】
本実施の形態に係るバーコード読み取り装置1によれば、判定部12は、連続する第1のバーBaと第2のバーBbとに関して、第1のバーBaの幅と第2のバーBbの幅との比率が所定範囲内に含まれない場合には、当該キャラクタのデコードを失敗と判定する。正常な二値幅シンボル体系のバーコードにおいては、幅広のバーBWの幅と幅狭のバーBNの幅との比率が所定範囲内に収まるはずであるため、判定部12は、第1のバーBaの幅と第2のバーBbの幅との比率が所定範囲内に収まらないことを以て、そのキャラクタに白ノイズが生じていることを検出することができる。また、判定部12は、連続する第1のスペースSaと第2のスペースSbとに関して、第1のスペースSaの幅と第2のスペースSbの幅との比率が所定範囲内に含まれない場合には、当該キャラクタのデコードを失敗と判定する。正常な二値幅シンボル体系のバーコードにおいては、幅広のスペースSWの幅と幅狭のスペースSNの幅との比率が所定範囲内に収まるはずであるため、判定部12は、第1のスペースSaの幅と第2のスペースSbの幅との比率が所定範囲内に収まらないことを以て、そのキャラクタに黒ノイズが生じていることを検出することができる。そして、白ノイズ又は黒ノイズを検出したキャラクタのデコードについては、そのデコードを失敗と判定することにより、誤ったデコードがなされることを回避することができる。
【0089】
なお、デコードが失敗であると判定されたキャラクタについては、上記第1の実施の形態と同様に、結合部13による結合処理を行っても良い。
【0090】
また、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
【符号の説明】
【0091】
1 バーコード読み取り装置
4 制御部
6 記憶部
10 デコード部
11 幅検出部
12 判定部
13 結合部
14 プログラム
100 バーコード


【特許請求の範囲】
【請求項1】
複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置であって、
前記バーコードは、同色で幅が異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、
各キャラクタをデコードするデコード手段と、
各エレメントの幅を検出する検出手段と、
前記検出手段による検出の結果に基づいて各エレメントの幅を比較し、この順に連続する同色の第1のエレメント、第2のエレメント、及び第3のエレメントのそれぞれの幅の広狭関係において、前記第2のエレメントの幅が、前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっているか否かを判定する判定手段と
を備え、
前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行する、バーコード読み取り装置。
【請求項2】
前記第1のエレメント、前記第2のエレメント、及び前記第3のエレメントのうちの二つを単一のエレメントとみなして結合する結合手段
をさらに備え、
前記判定手段が、前記第2のエレメントの幅が前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く他方のものの幅よりも狭い関係となっていると判定した場合は、前記デコード手段は、前記結合手段による結合の結果に基づいてデコードを実行する、請求項1に記載のバーコード読み取り装置。
【請求項3】
前記結合手段は、
前記第1のエレメントの幅及び前記第2のエレメントの幅の合計の幅と、前記第3のエレメントの幅との比率が、所定範囲内に含まれる場合には、前記第1のエレメントと前記第2のエレメントとを結合し、
前記第2のエレメントの幅及び前記第3のエレメントの幅の合計の幅と、前記第1のエレメントの幅との比率が、前記所定範囲内に含まれる場合には、前記第2のエレメントと前記第3のエレメントとを結合する、請求項2に記載のバーコード読み取り装置。
【請求項4】
前記第1のエレメントの幅及び前記第2のエレメントの幅の合計の幅と、前記第3のエレメントの幅との比率が、前記所定範囲内に含まれず、かつ、前記第2のエレメントの幅及び前記第3のエレメントの幅の合計の幅と、前記第1のエレメントの幅との比率が、前記所定範囲内に含まれない場合には、
前記結合手段は、
前記第1のエレメントの幅、前記第2のエレメントの幅、及び前記第1のエレメントと前記第2のエレメントとの隙間の幅の合計の幅と、前記第3のエレメントの幅との比率が、前記所定範囲内に含まれる場合には、前記第1のエレメントと前記第2のエレメントと当該隙間とを結合し、
前記第2のエレメントの幅、前記第3のエレメントの幅、及び前記第2のエレメントと前記第3のエレメントとの隙間の幅の合計の幅と、前記第1のエレメントの幅との比率が、前記所定範囲内に含まれる場合には、前記第2のエレメントと前記第3のエレメントと当該隙間とを結合する、請求項3に記載のバーコード読み取り装置。
【請求項5】
前記デコード手段は、当該バーコードに含まれる他のキャラクタのうち少なくとも一つのキャラクタのデコードが成功していることを条件として、前記結合手段による結合の結果に基づくデコードを実行する、請求項2〜4のいずれか一つに記載のバーコード読み取
り装置。
【請求項6】
前記デコード手段が前記結合手段による結合の結果に基づくデコードに失敗した場合には、前記バーコードの再走査が実行され、
当該再走査においては、前回の走査方向とは逆の走査方向で当該バーコードの走査が実行される、請求項2〜5のいずれか一つに記載のバーコード読み取り装置。
【請求項7】
複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置に搭載されるコンピュータを動作させるプログラムであって、
前記バーコードは、同色で幅が異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、
前記コンピュータを、
各キャラクタをデコードするデコード手段と、
各エレメントの幅を検出する検出手段と、
前記検出手段による検出の結果に基づいて各エレメントの幅を比較し、この順に連続する同色の第1のエレメント、第2のエレメント、及び第3のエレメントのそれぞれの幅の広狭関係において、前記第2のエレメントの幅が、前記第1のエレメント及び前記第3のエレメントのうちの一方のものの幅よりも広く、他方のものの幅よりも狭い関係となっているか否かを判定する判定手段と
として機能させ、
前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行する、プログラム。
【請求項8】
複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置であって、
前記バーコードは、同色で幅が異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、
各キャラクタをデコードするデコード手段と、
各エレメントの幅を検出する検出手段と、
前記検出手段による検出の結果に基づいて各エレメントの幅を比較し、連続する同色の第1のエレメントと第2のエレメントとに関して、前記第1のエレメントの幅と前記第2のエレメントの幅との比率が所定範囲内に含まれているか否かを判定する判定手段と
を備え、
前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行する、バーコード読み取り装置。
【請求項9】
複数のエレメントで規定されるキャラクタを複数含むバーコードを走査して各キャラクタをデコードするバーコード読み取り装置に搭載されるコンピュータを動作させるプログラムであって、
前記バーコードは、同色で幅が異なる二種類のエレメントを含む二値幅シンボル体系のバーコードであり、
前記コンピュータを、
各キャラクタをデコードするデコード手段と、
各エレメントの幅を検出する検出手段と、
前記検出手段による検出の結果に基づいて各エレメントの幅を比較し、連続する同色の第1のエレメントと第2のエレメントとに関して、前記第1のエレメントの幅と前記第2のエレメントの幅との比率が所定範囲内に含まれているか否かを判定する判定手段と
として機能させ、
前記デコード手段は、前記判定手段による判定の結果に基づいてデコードを実行する、
プログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−176581(P2010−176581A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2009−20831(P2009−20831)
【出願日】平成21年1月30日(2009.1.30)
【出願人】(504126112)住友電工システムソリューション株式会社 (78)
【Fターム(参考)】