説明

光学的情報読取装置

【課題】読取精度の低下を抑制し得る光学的情報読取装置を提供する。
【解決手段】各キャラクタのうち、各バーの1つの配列方向一側または配列方向他側がモジュール幅値の半分だけ欠損することを前提に、複数組の隣接モジュールのうちの一組においてバーの幅値にモジュール幅値の半分を加算しスペースの幅値からモジュール幅値の半分を減算するか、配列方向一側または配列方向他側でのみスペースに隣接するバーの幅値にモジュール幅値の半分を加算することで、当該キャラクタを仮補正した仮補正キャラクタが複数設定される。そして、バーコード(各キャラクタ)のデコードが失敗した場合に、当該キャラクタを仮補正した各仮補正キャラクタを、それぞれデコードして規格を満たすキャラクタに一致する場合にこの補正後キャラクタを記憶し、各補正後キャラクタを含めたバーコードに対してデコード処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バーコードの読み取りを行う光学的情報読取装置に関するものである。
【背景技術】
【0002】
従来、バーコードの読み取りを行う光学的情報読取装置として、下記特許文献1に示すバーコード読み取り装置が知られている。このバーコード読み取り装置は、モジュール値識別部がバーコードシンボルの各モジュールの値の信頼度を求めた後、キャラクタ生成部が各キャラクタの値の信頼度を求め、その信頼度に基づいて、キャラクタ消失判定部が各キャラクタが誤りであるかどうかを判定する。この判定結果に応じて、キャラクタ系列における消失誤りの場所を特定し、消失誤りを考慮した誤り訂正を行うことによって、汚れやかすれ等のあるバーコードシンボルの読み取りを可能にしている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平10−111904号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、例えば、バーコードが印字されるバーコードラベルを作成する場合、印刷機の不良などによりバーコードラベルに印字されるバーコードにドット欠けが生じる場合がある。このようにバーコードにドット欠けが生じると、このドット欠け部分を含む走査線に対して読取処理が実施される場合に、当該読取処理が失敗する確率が高くなることから、読取精度が低下するという問題がある。
【0005】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、読取精度の低下を抑制し得る光学的情報読取装置を提供することにある。
【課題を解決するための手段】
【0006】
上記目的を達成するため、特許請求の範囲に記載の請求項1の光学的情報読取装置では、1または2以上の単位モジュールからなる暗色モジュールおよび明色モジュールが複数配列されて構成されるキャラクタを複数有するバーコードを読み取り可能な光学的情報読取装置であって、前記バーコードからの反射光を受光する受光手段と、前記受光手段から出力される受光信号に基づいて前記各暗色モジュールおよび各明色モジュールの幅値をそれぞれ演算するとともに前記単位モジュールの幅値であるモジュール幅値を演算する幅値演算手段と、前記各暗色モジュールおよび各明色モジュールの幅値に基づいて前記各キャラクタをデコードするデコード手段と、前記キャラクタのうち、前記各暗色モジュールの1つが前記モジュール幅値の半分だけ欠損することを前提に、配列方向にて互いに隣接する暗色モジュールおよび明色モジュールを一組とする複数組の隣接モジュールのうちの一組において暗色モジュールの幅値に前記モジュール幅値の半分を加算し明色モジュールの幅値から前記モジュール幅値の半分を減算するか、配列方向一側または配列方向他側でのみ明色モジュールに隣接する暗色モジュールの幅値に前記モジュール幅値の半分を加算することで、当該キャラクタを仮補正した仮補正キャラクタを複数設定する仮補正手段と、を備え、前記デコード手段は、前記幅値演算手段により演算された前記各暗色モジュールおよび各明色モジュールの幅値に基づく前記キャラクタのデコードが失敗した場合に、前記仮補正手段により当該キャラクタを仮補正した前記各仮補正キャラクタを、それぞれデコードすることを特徴とする。
【0007】
請求項2の発明は、請求項1に記載の光学的情報読取装置において、前記仮補正手段は、前記キャラクタのうち、最も配列方向一側に配列される暗色モジュールの配列方向一側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールを配列方向一側に含む隣接モジュールに前記モジュール幅値の半分を加算するか、最も配列方向一側に配列される暗色モジュールの配列方向他側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールの配列方向他側に隣接する明色モジュールを配列方向一側に含む隣接モジュールから前記モジュール幅値の半分を減算するか、暗色モジュールの配列方向一側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールの配列方向一側に隣接する明色モジュールを配列方向他側に含む隣接モジュールから前記モジュール幅値の半分を減算するとともに当該欠損前提の暗色モジュールを配列方向一側に含む隣接モジュールに前記モジュール幅値の半分を加算するか、暗色モジュールの配列方向他側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールを配列方向他側に含む隣接モジュールに前記モジュール幅値の半分を加算するとともに当該欠損前提の暗色モジュールの配列方向他側に隣接する明色モジュールを配列方向一側に含む隣接モジュールから前記モジュール幅値の半分を減算するか、最も配列方向他側に配列される暗色モジュールの配列方向一側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールの配列方向一側に隣接する明色モジュールを配列方向他側に含む隣接モジュールから前記モジュール幅値の半分を減算するか、最も配列方向他側に配列される暗色モジュールの配列方向他側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールを配列方向他側に含む隣接モジュールに前記モジュール幅値の半分を加算することで、当該キャラクタを仮補正して、仮補正キャラクタを複数設定し、前記デコード手段は、前記各隣接モジュールの幅値に基づいて前記各キャラクタをデコードし、このデコードが失敗した場合に、前記仮補正手段により当該キャラクタを仮補正した前記各仮補正キャラクタを、それぞれデコードすることを特徴とする。
【発明の効果】
【0008】
請求項1の発明では、仮補正手段により、キャラクタのうち、各暗色モジュールの1つがモジュール幅値の半分だけ欠損することを前提に、複数組の隣接モジュールのうちの一組において暗色モジュールの幅値にモジュール幅値の半分を加算し明色モジュールの幅値からモジュール幅値の半分を減算するか、配列方向一側または配列方向他側でのみ明色モジュールに隣接する暗色モジュールの幅値にモジュール幅値の半分を加算することで、当該キャラクタを仮補正した仮補正キャラクタが複数設定される。そして、デコード手段は、キャラクタのデコードが失敗した場合に、仮補正手段により当該キャラクタを仮補正した各仮補正キャラクタを、それぞれデコードする。
【0009】
このため、例えばドット欠けが生じたバーコードを読み取る際に、このドット欠けに起因して各暗色モジュールの1つがモジュール幅値の半分だけ欠損したことによりキャラクタのデコード処理が失敗した場合でも、このキャラクタを仮補正手段により仮補正した各仮補正キャラクタのいずれか1つのみが欠損のない本来のキャラクタに一致するので、この仮補正キャラクタを含むバーコードではデコード処理が成功することとなる。
したがって、暗色モジュールの欠損に起因する読取精度の低下を抑制することができる。
【0010】
なお、各単位モジュールが3つ以上のドット列で構成されており暗色モジュールの欠損がモジュール幅値の半分未満であれば、この欠損した暗色モジュールや隣接する明色モジュールの幅値に対応してデコードされた値が欠損しない場合の値と変化しないため、この暗色モジュールの欠損に起因してデコード処理が失敗することもない。
【0011】
請求項2の発明では、デコード手段は、配列方向にて互いに隣接する暗色モジュールおよび明色モジュールを一組とする各隣接モジュールの幅値に基づいて各キャラクタをデコードし、キャラクタのデコードが失敗した場合には、仮補正手段により隣接モジュールを基準に当該キャラクタを仮補正した各仮補正キャラクタを、それぞれデコードする。
【0012】
このように、各隣接モジュールの幅値に基づいて各キャラクタをデコードするときに暗色モジュールの欠損によりデコード処理が失敗した場合でも、このキャラクタを仮補正手段により隣接モジュールを基準に仮補正した各仮補正キャラクタのいずれか1つのみが欠損のない本来のキャラクタに一致するので、この仮補正キャラクタを含むバーコードではデコード処理が成功することとなり、暗色モジュールの欠損に起因する読取精度の低下を抑制することができる。
【図面の簡単な説明】
【0013】
【図1】本第1実施形態に係る光学的情報読取装置の電気的構成を示すブロック図である。
【図2】本第1実施形態における図2(A)は、正常キャラクタおよび各欠損キャラクタを例示する概念図であり、図2(B)は、図2(A)の各キャラクタにおけるバーおよびスペースの幅値を例示する図表であり、図2(C)は、キャラクタの幅値と閾値との関係を例示する図表である。
【図3】本第1実施形態における読取処理の流れを例示するフローチャートの一部である。
【図4】本第1実施形態における読取処理の流れを例示するフローチャートの一部である。
【図5】本第1実施形態における仮補正処理のサブルーチンを例示するフローチャートの一部である。
【図6】本第1実施形態における仮補正処理のサブルーチンを例示するフローチャートの一部である。
【図7】図7(A)は、対象キャラクタにおける仮補正前のバーおよびスペースの幅値を例示する図表であり、図7(B)は、対象キャラクタにおける仮補正後のバーおよびスペースの幅値を例示する図表である。
【図8】図8(A)は、本第2実施形態における正常キャラクタおよび各欠損キャラクタを例示する概念図であり、図8(B)は、図8(A)の各キャラクタにおけるバーおよびスペースの幅値を例示する図表であり、図8(C)は、各隣接モジュールの幅値を例示する図表であり、図8(D)は、キャラクタの幅値と閾値との関係を例示する図表である。
【図9】本第2実施形態における仮補正処理のサブルーチンを例示するフローチャートである。
【図10】図10(A)は、対象キャラクタにおける仮補正前のバーおよびスペースの幅値を例示する図表であり、図10(B)は、対象キャラクタにおける仮補正前の各隣接モジュールの幅値を例示する図表であり、図10(C)は、対象キャラクタにおける仮補正後の各隣接モジュールの幅値を例示する図表である。
【発明を実施するための形態】
【0014】
[第1実施形態]
以下、本発明の第1実施形態に係る光学的情報読取装置について図を参照して説明する。図1は、本第1実施形態に係る光学的情報読取装置10の電気的構成を示すブロック図である。
【0015】
図1に示すように、光学的情報読取装置10は、物品に付されたバーコード(図1では物品Rに付されたバーコードBを例示)を読み取る装置として構成されている。この光学的情報読取装置10は、図示しないケースの内部に回路部20が収容されてなるものであり、回路部20は、主に、照明光源21、受光センサ28、結像レンズ27等の光学系と、メモリ35、制御回路40、トリガースイッチ42等のマイクロコンピュータ(以下「マイコン」という)系と、から構成されている。
【0016】
光学系は、投光光学系と、受光光学系とに分かれている。投光光学系を構成する照明光源21は、照明光Lfを発光可能な照明光源として機能するもので、例えば、赤色のLEDとこのLEDの出射側に設けられるレンズとから構成されている。なお、図1では、バーコードBが付された物品Rに向けて照明光Lfを照射する例を概念的に示している。
【0017】
受光光学系は、受光センサ28、結像レンズ27、反射鏡(図示略)などによって構成されている。受光センサ28は、CCDエリアセンサとして構成されるものであり、バーコードBに照射されて反射した反射光Lrを受光可能に構成されている。この受光センサ28は、結像レンズ27を介して入射する入射光を受光可能にプリント配線板(図示略)に実装されている。なお、受光センサ28は、特許請求の範囲に記載の「受光手段」に相当し得るものである。
【0018】
結像レンズ27は、外部から読取口(図示略)を介して入射する入射光を集光して受光センサ28の受光面28aに像を結像可能な結像光学系として機能するものである。本第1実施形態では、照明光源21から照射された照明光LfがバーコードBにて反射した後、この反射光Lrを結像レンズ27で集光し、受光センサ28の受光面28aにコード像を結像させている。
【0019】
マイコン系は、増幅回路31、A/D変換回路33、メモリ35、アドレス発生回路36、同期信号発生回路38、制御回路40、トリガースイッチ42、発光部43、ブザー44、バイブレータ45、液晶表示器46、通信インタフェース48等から構成されている。
【0020】
光学系の受光センサ28から出力される画像信号(アナログ信号)は、増幅回路31に入力されることで所定ゲインで増幅された後、A/D変換回路33に入力されると、アナログ信号からディジタル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ(画像情報)は、生成されてメモリ35に入力されると、所定のコード画像情報格納領域に蓄積される。なお、同期信号発生回路38は、受光センサ28およびアドレス発生回路36に対する同期信号を発生可能に構成されており、またアドレス発生回路36は、この同期信号発生回路38から供給される同期信号に基づいて、メモリ35に格納される画像データの格納アドレスを発生可能に構成されている。
【0021】
制御回路40は、光学的情報読取装置10全体を制御可能なマイコンによって構成されており、CPU、システムバス、入出力インタフェース等を有すると共に、情報処理機能を備えており、メモリ35とともに情報処理装置を構成している。本第1実施形態では、制御回路40に対し、トリガースイッチ42、発光部43、ブザー44、バイブレータ45、液晶表示器46、通信インタフェース48等が接続されている。
【0022】
これにより、制御回路40は、例えば、トリガースイッチ42の監視や管理、バーコードBの読み取りに関する情報を報知するインジケータとして機能する発光部43の点灯・消灯、ビープ音やアラーム音を発生可能なブザー44の鳴動のオンオフ、当該光学的情報読取装置10の使用者に伝達し得る振動を発生可能なバイブレータ45の駆動制御、液晶表示器46の表示制御や外部装置とのシリアル通信を可能にする通信インタフェース48の通信制御等を可能にしている。
【0023】
次に、本第1実施形態における光学的情報読取装置10の制御回路40にて実行される読取処理について説明する。図2(A)は、本第1実施形態における正常キャラクタおよび各欠損キャラクタを例示する概念図であり、図2(B)は、図2(A)の各キャラクタにおけるバーおよびスペースの幅値を例示する図表であり、図2(C)は、キャラクタの幅値と閾値との関係を例示する図表である。図3および図4は、本第1実施形態における読取処理の流れを例示するフローチャートである。図5および図6は、図4の仮補正処理のサブルーチンを例示するフローチャートである。図7(A)は、対象キャラクタにおける仮補正前のバーおよびスペースの幅値を例示する図表であり、図7(B)は、対象キャラクタにおける仮補正後のバーおよびスペースの幅値を例示する図表である。なお、図2および図7の図表では、バーのドット欠けが影響する幅値を太枠で囲っている。
【0024】
本第1実施形態における読取処理では、通常のデコード処理が失敗した場合に、バーコードBを構成する各キャラクタの少なくともいずれか1つのキャラクタのバーにドット欠け(欠損)が生じており、かつ、各キャラクタの単位モジュールが2つのドット列により構成されているためデコード処理が失敗したものと仮定する。そして、キャラクタを構成するいずれかのバーの配列方向一側または配列方向他側にドット欠けが1箇所生じていることを前提に、このドット欠けをなくすようにキャラクタを仮補正することで、ドット欠けに起因するデコード処理の失敗をなくし、読取精度の低下を抑制する。なお、各単位モジュールが3つ以上のドット列で構成されておりバーのドット欠けが単位モジュールの幅値の半分未満であれば、このドット欠けが生じたバーや隣接するスペースの各幅値に対応してデコードされた値が欠損しない場合の値と変化しないため、このバーのドット欠けに起因してデコード処理が失敗することもない。なお、バーおよびスペースは、特許請求の範囲に記載の「暗色モジュール」および「明色モジュール」の一例に相当する。
【0025】
具体的には、本第1実施形態では、読取対象のバーコードBの規格として、例えば、コード39が想定されており、各キャラクタは、5本のバー(b1〜b5)と4本のスペース(s1〜s4)によりそれぞれ構成されている。そして、対象キャラクタの5本のバーb1〜b5のうちいずれか1つのバーの配列方向一側または配列方向他側にドット欠けが1箇所生じている場合を仮定し、当該対象キャラクタに対して、それぞれ図2(A)に示すように、欠損1〜10までの10個の欠損キャラクタ(以下、欠損キャラクタ1〜10ともいう)を想定する。なお、図2(A)の最上段のキャラクタは、ドット欠けが生じていない本来のキャラクタを示す。また、バーの配列方向一側とは図2(A)にて左側に相当する側を示し、バーの配列方向他側とは図2(A)にて右側に相当する側を示す。
【0026】
このとき、各バーおよび各スペースを構成する単位モジュールの幅値が100である場合、正常キャラクタ、欠損キャラクタ1〜10における各バーb1〜b5および各スペースs1〜s4の幅値は、理論上、図2(B)に示す幅値となる。ここで、図2(B)の最右列(1char)は、各キャラクタの幅値を示しており、各キャラクタ幅値は、欠損キャラクタ1,10を除き1200となり、欠損キャラクタ1,10では1150となる。
【0027】
各バーb1〜b5および各スペースs1〜s4は、それぞれの幅値(図2(B)参照)と所定の閾値とを比較することで1または2に数値化される。この所定の閾値は、図2(C)から判るように、欠損キャラクタ1,10を除き1に相当するモジュール幅値(100)と2に相当するモジュール幅値(200)との平均値(150)に設定される。また、欠損キャラクタ1,10ではキャラクタ幅値が他の欠損キャラクタと異なることから、上記所定の閾値は、例えば図2(B)の条件では、1に相当するモジュール幅値(96=1150/12)と2に相当するモジュール幅値(192=2×1150/12)との平均値である144に設定される。
【0028】
そして、想定された各欠損キャラクタのドット欠けをなくすようにそれぞれ仮補正する。すなわち、ドット欠けが想定されるバーとこのバーのドット欠け側に隣接するスペースを一組とする隣接モジュールのバーおよびスペースの幅値を仮補正するか、配列方向一側または配列方向他側でのみスペースに隣接するバーの幅値を仮補正する。このように仮補正した各仮補正キャラクタがコード39の規格を満たすキャラクタに一致するか否かが順次判定され、規格に一致すると判定された仮補正キャラクタが、ドット欠けをなくした本来のキャラクタとして設定される。このような補正を各キャラクタごとに実施することにより、ドット欠けに起因するデコード処理の失敗をなくしている。
【0029】
以下、本第1実施形態における読取処理について図2〜図7を用いて詳細に説明する。
まず、制御回路40では、図3のステップS101において、画像データ取得処理がなされる。この処理では、トリガースイッチ42の操作に応じて照明光源21から照明光Lfが照射されてバーコードBにより反射された反射光Lrが受光センサ28に受光されることにより、バーコードBを含む画像データが取得される。
【0030】
次に、ステップS103にて幅値演算処理がなされ、上記画像データに含まれるバーコードBの各キャラクタを構成するバーおよびスペースの各幅値がそれぞれ演算される。なお、ステップS103を実行する制御回路40は、特許請求の範囲に記載の「幅値演算手段」の一例に相当する。
【0031】
次に、ステップS105にて上述したバーおよびスペースの各幅値に対して公知のデコード処理がなされて、このデコード処理が成功した場合には、ステップS107にてYesと判定されて、図4のステップS127にてデコード成功時の処理がなされて、当該読取処理が終了する。なお、ステップS105および後述するステップS123を実行する制御回路40は、特許請求の範囲に記載の「デコード手段」の一例に相当する。
【0032】
一方、デコード処理が失敗した場合には(S107でNo)、ステップS109にて上記画像データに基づいて当該バーコードBを構成するキャラクタの総数であるmが設定されるとともに、ステップS111にて当該バーコードBにおいて仮補正処理の対象となるキャラクタを示す番号であるmがm=1に設定される。なお、ステップS109にて上記画像データに基づいてキャラクタ総数mの設定ができない場合には、当該読取処理を終了するようにしてもよい。
【0033】
次に、図4のステップS113において、m番目のキャラクタ、現段階では配列方向において1番目のキャラクタを構成するバーの総数であるnと、各バーおよび各スペースを構成する単位モジュールの幅値であるモジュール幅値Wとが、上述したステップS101にて取得した画像データに基づいて設定される。
【0034】
具体的には、上記画像データから、例えば、図7(A)に示す各バーb1〜b5の幅値と各スペースs1〜s4の幅値とが算出されると、n=5が設定されるとともに、対象キャラクタの幅値(1char)である1340に対して当該対象キャラクタを構成する単位モジュールの総数である12で除算することにより、モジュール幅値Wが112に設定される。
【0035】
次に、ステップS115において、閾値設定処理がなされる。この処理では、各バーb1〜b5や各スペースs1〜s4が1および2のいずれであるかを示すかを判定するための閾値が、1を示すモジュールサイズである112と2を示すモジュールサイズである224との平均値として、168に設定される。すなわち、バーまたはスペースの幅値が、168未満であれば1に設定され、168以上であれば2に設定される。
【0036】
そして、ステップS117において、m=1であることから配列方向1番目のキャラクタがコード39の規格を満たすキャラクタに一致するか否かが判定される。ここで、当該キャラクタが規格を満たすキャラクタに一致すると判定される場合には、当該キャラクタではバーのドット欠けが生じておらず、ステップS117にてYesと判定される。すなわち、配列方向m番目のキャラクタが規格を満たすキャラクタに一致しない場合のみ、当該m番目のキャラクタに対して後述する仮補正処理のサブルーチンが実行されることとなる。
【0037】
一方、配列方向1番目のキャラクタが規格を満たすキャラクタに一致しない場合には(S117でNo)、当該キャラクタ(以下、対象キャラクタともいう)を構成するいずれかのバーの配列方向一側または配列方向他側にドット欠けが1箇所生じており、かつ、各キャラクタの単位モジュールが2つのドット列により構成されていることを前提に、ステップS200において、本第1実施形態に係る仮補正処理のサブルーチンが実行される。なお、ステップS200を実行する制御回路40は、特許請求の範囲に記載の「仮補正手段」の一例に相当する。
【0038】
この仮補正処理のサブルーチンでは、まず、図5のステップS201において、対象キャラクタにおいてドット欠けが仮定されるバーを示す番号であるnがn=1に設定される。
【0039】
次に、ステップS203において、対象キャラクタに対して、配列方向1番目のバーb1の幅値にモジュール幅値Wの半分を加算することで、当該対象キャラクタが仮補正される。すなわち、対象キャラクタのうちバーb1の配列方向一側にドット欠けが1箇所生じている上記欠損キャラクタ1を想定し、このドット欠けをなくすように当該対象キャラクタに対して仮補正がなされる。この仮補正後のキャラクタおよび後述するステップS207,S215,S221にて仮補正されたキャラクタは、特許請求の範囲に記載の「仮補正キャラクタ」の一例に相当する。
【0040】
そして、ステップS205にて仮補正後のキャラクタがコード39の規格を満たすキャラクタに一致するか否かが判定され、一致すると判定される場合には(S205でYes)、当該仮補正後のキャラクタが欠損のない本来のキャラクタであることから、図6のステップS225にてキャラクタ置換処理がなされて、補正前のキャラクタに関するデータが補正後のキャラクタに関するデータに置換されてメモリ35等に記憶される。これにより、仮補正処理のサブルーチンが終了する。
【0041】
一方、ステップS203にて仮補正したキャラクタがコード39の規格を満たすキャラクタに一致しないと判定されると(S205でNo)、ステップS207において対象キャラクタに対して、バーb1の幅値にモジュール幅値Wの半分を加算するとともにこのバーb1の配列方向他側に隣接するスペースs1の幅値からモジュール幅値Wの半分を減算することで、当該対象キャラクタが仮補正される。すなわち、対象キャラクタのうちバーb1の配列方向他側にドット欠けが1箇所生じている上記欠損キャラクタ2を想定し、このドット欠けをなくすように当該対象キャラクタに対して仮補正がなされる。
【0042】
そして、ステップS209にて仮補正後のキャラクタがコード39の規格を満たすキャラクタに一致する場合には(S209でYes)、ステップS225にてキャラクタ置換処理がなされて、補正前のキャラクタに関するデータが補正後のキャラクタに関するデータに置換されてメモリ35等に記憶され、仮補正処理のサブルーチンが終了する。
【0043】
一方、ステップS207にて仮補正したキャラクタがコード39の規格を満たすキャラクタに一致しないと判定されると(S209でNo)、ステップS211にてn=nであるか否かについて判定される。この段階では、n=1であることから(S211でNo)、図6のステップS213にてnに1が加算される。
【0044】
そして、ステップS215において、対象キャラクタに対してn=2であることから配列方向2番目のバーb2の幅値にモジュール幅値Wの半分を加算するとともにこのバーb2の配列方向一側に隣接するスペースs1の幅値からモジュール幅値Wの半分を減算することで、当該対象キャラクタが仮補正される。すなわち、対象キャラクタのうちバーb2の配列方向一側にドット欠けが1箇所生じている上記欠損キャラクタ3を想定し、このドット欠けをなくすように当該対象キャラクタに対して仮補正がなされる。
【0045】
そして、ステップS217にて仮補正後のキャラクタがコード39の規格を満たすキャラクタに一致する場合には(S217でYes)、ステップS225にてキャラクタ記憶処理がなされて、補正前のキャラクタに関するデータが補正後のキャラクタに関するデータに置換されてメモリ35等に記憶され、仮補正処理のサブルーチンが終了する。
【0046】
一方、ステップS215にて仮補正したキャラクタがコード39の規格を満たすキャラクタに一致しないと判定されると(S217でNo)、ステップS219において、n番目のバーの配列方向他側に隣接するスペースがあるか否かについて判定される。この段階では、n=2であることからバーb2の他側にスペースs2が存在するため、ステップS219にてYesと判定されて、上記ステップS207からの処理が繰り返される。
【0047】
このようなステップS207からの繰り返し処理により、上述した欠損キャラクタ4〜9が想定され、ドット欠けが想定されるバーとこのバーのドット欠け側に隣接するスペースを一組とする隣接モジュールのバーおよびスペースの幅値が仮補正される。このように仮補正した各仮補正キャラクタが上述のようにコード39の規格を満たすキャラクタに一致するか否かが順次判定され、規格に一致すると判定された仮補正キャラクタが、ドット欠けをなくした本来のキャラクタとして記憶される。
【0048】
上述のような繰り返し処理において、例えば、図7(A)に示すように、対象キャラクタにおいて実際にバーb3の配列方向他側にドット欠けが生じている場合には、バーb3の幅値が55として検出されるとともに、このバーb3の配列方向他側に隣接するスペースs3の幅値が169として検出される。なお、スペースs3の幅値が169であり上述した閾値の168以上であることから、本来1に相当するスペースs3が、デコードすると2になるためデコード処理が失敗することとなる。
【0049】
この場合、ステップS207にて、バーb3の幅値を55にモジュール幅値Wの半分である56を加算して111にするとともに、スペースs3の幅値を169からモジュール幅値Wの半分である56を減算して113にすることで、当該対象キャラクタが仮補正される(図7(B)参照)。この仮補正後のキャラクタが、コード39の規格を満たすキャラクタに一致するので、当該補正後のキャラクタに関するデータがメモリ35等に記憶されて、仮補正処理のサブルーチンが終了する。
【0050】
また、上述のような繰り返し処理において、ステップS215にて対象キャラクタのうちバーb5の配列方向一側にドット欠けが1箇所生じている上記欠損キャラクタ9が想定され、このドット欠けをなくすように仮補正された対象キャラクタがコード39の規格を満たすキャラクタに一致しない場合には、ステップS217にてNoと判定される。
【0051】
そして、ステップS219において、バーb5の配列方向他側に隣接するスペースがないことからNoと判定されると、ステップS221において、対象キャラクタに対して、バーb5の幅値にモジュール幅値Wの半分を加算することで、当該対象キャラクタが仮補正される。すなわち、対象キャラクタのうちバーb5の配列方向他側にドット欠けが1箇所生じている上記欠損キャラクタ10を想定し、このドット欠けをなくすように当該対象キャラクタに対して仮補正がなされる。
【0052】
そして、ステップS223にて仮補正後のキャラクタがコード39の規格を満たすキャラクタに一致する場合には(S223でYes)、ステップS225にてキャラクタ記憶処理がなされて、補正前のキャラクタに関するデータが補正後のキャラクタに関するデータに置換されてメモリ35等に記憶され、仮補正処理のサブルーチンが終了する。
【0053】
なお、ステップS223にてNoと判定される場合には、デコード失敗がドット欠けに起因していないと判断されるため、仮補正処理のサブルーチンを終了し、図4のステップS129にてデコード失敗時の処理がなされて、当該読取処理が終了する。
【0054】
また、図2(A)と異なり対象キャラクタの配列方向他側がスペースで構成され、デコード失敗がドット欠けに起因していない場合には、ステップS211にてYesと判定されて、仮補正処理のサブルーチンを終了し、図4のステップS129にてデコード失敗時の処理がなされて、当該読取処理が終了する。
【0055】
上述のように仮補正後のキャラクタがコード39の規格を満たすキャラクタに一致することにより仮補正処理のサブルーチンが終了すると、図4のステップS119にてm=mであるか否かについて判定される。この段階では、m=1であることから(S119でNo)、ステップS121にてmに1が加算されて、2番目のキャラクタに対して上記ステップS113からの処理が繰り返される。
【0056】
そして、バーコードBを構成する全キャラクタのうちコード39の規格を満たすキャラクタに一致しない全ての対象キャラクタに対して仮補正がなされると、ステップS119にてYesと判定されて、ステップS123にて当該バーコードBに対して再度デコード処理がなされる。これにより、上記ステップS107におけるデコード失敗がドット欠けのみに起因するものである場合には、デコード処理が成功することからステップS125にてYesと判定されて、ステップS127にてデコード成功時の処理がなされて、当該読取処理が終了する。
【0057】
一方、ドット欠けとは異なる要因によりデコード失敗している場合には、ステップS125にてNoと判定されて、ステップS129にてデコード失敗時の処理がなされて、当該読取処理が終了する。
【0058】
以上説明したように、本第1実施形態に係る光学的情報読取装置10では、各キャラクタのうち、各バーの1つの配列方向一側または配列方向他側がモジュール幅値Wの半分だけ欠損することを前提に、複数組の隣接モジュールのうちの一組においてバーの幅値にモジュール幅値Wの半分を加算しスペースの幅値からモジュール幅値Wの半分を減算するか、配列方向一側または配列方向他側でのみスペースに隣接するバーの幅値にモジュール幅値Wの半分を加算することで、当該キャラクタを仮補正した仮補正キャラクタが複数設定される。そして、バーコードB(各キャラクタ)のデコードが失敗した場合に、当該キャラクタを仮補正した各仮補正キャラクタを、それぞれデコードして規格を満たすキャラクタに一致する場合にこの補正後キャラクタを記憶し、各補正後キャラクタを含めたバーコードBに対してデコード処理を行う。
【0059】
このため、ドット欠けが生じたバーコードBを読み取る際に、このドット欠けに起因してバーの1つがモジュール幅値Wの半分だけ欠損したことによりキャラクタのデコード処理が失敗した場合でも、このキャラクタを仮補正した各仮補正キャラクタのいずれか1つのみが欠損のない本来のキャラクタに一致するので、この仮補正キャラクタを含むバーコードではデコード処理が成功することとなる。
したがって、バーのドット欠け(欠損)に起因する読取精度の低下を抑制することができる。
【0060】
[第2実施形態]
次に、本発明の第2実施形態に係る光学的情報読取装置について図8〜図10を参照して説明する。図8(A)は、本第2実施形態における正常キャラクタおよび各欠損キャラクタを例示する概念図であり、図8(B)は、図8(A)の各キャラクタにおけるバーおよびスペースの幅値を例示する図表であり、図8(C)は、各隣接モジュールの幅値を例示する図表であり、図8(D)は、キャラクタの幅値と閾値との関係を例示する図表である。図9は、本第2実施形態における仮補正処理のサブルーチンを例示するフローチャートである。図10(A)は、対象キャラクタにおける仮補正前のバーおよびスペースの幅値を例示する図表であり、図10(B)は、対象キャラクタにおける仮補正前の各隣接モジュールの幅値を例示する図表であり、図10(C)は、対象キャラクタにおける仮補正後の各隣接モジュールの幅値を例示する図表である。なお、図8および図10の図表では、バーのドット欠けが影響する幅値を太枠で囲っている。
【0061】
本第2実施形態に係る光学的情報読取装置10では、上述した仮補正処理を図5および図6に示すフローチャートに代えて図9に示すフローチャートに基づいて演算処理している点が、上記第1実施形態に係る光学的情報読取装置と異なる。
【0062】
そして、本第2実施形態では、読取対象のバーコードBの規格として、例えば、バーとこのバーに隣接するスペースとを一組とする隣接モジュールの幅値と所定の閾値とに応じてデコード処理がなされるコード128が想定されており、各キャラクタは、3本のバー(b1〜b3)と3本のスペース(s1〜s3)とが4種類のサイズ(幅)でそれぞれ構成されている。そして、対象キャラクタの3本のバーb1〜b3のうちいずれか1つのバーの配列方向一側または配列方向他側にドット欠けが1箇所生じている場合を仮定し、当該対象キャラクタに対して、それぞれ図8(A)に示すように、欠損1〜6までの6個の欠損キャラクタ(以下、欠損キャラクタ1〜6ともいう)を想定する。なお、図8(A)の最上段のキャラクタは、ドット欠けが生じていない本来のキャラクタを示す。
【0063】
このとき、各バーおよび各スペースを構成する単位モジュールの幅値が100である場合、正常キャラクタ、欠損キャラクタ1〜6における各バーb1〜b3および各スペースs1〜s3の幅値は、理論上、図8(B)に示す幅値となる。また、隣接モジュールの幅値は、理論上、図8(C)に示す幅値となる。ここで、図8(B)の最右列(1char)は、各キャラクタの幅値を示しており、各キャラクタ幅値は、欠損キャラクタ1,6を除き1100となり、欠損キャラクタ1,6では1050となる。
【0064】
コード128では、バーおよびこのバーの配列方向他側に隣接するスペースやバーおよびこのバーの配列方向一側に隣接するスペースを一組とする隣接モジュールの幅値(図8(C)参照)と所定の閾値(図8(D)参照)とに基づいてデコード処理がなされる。なお、本第2実施形態では、バーb1およびスペースs1の組合せを配列方向1番目の隣接モジュールk1、スペースs1およびバーb2の組合せを配列方向2番目の隣接モジュールk2、バーb2およびスペースs2の組合せを配列方向3番目の隣接モジュールk3、スペースs2およびバーb3の組合せを配列方向4番目の隣接モジュールk4と定義する。
【0065】
本第2実施形態における読取処理では、通常のデコード処理が失敗した場合に、バーコードBを構成する各キャラクタの少なくともいずれか1つのキャラクタにドット欠け(欠損)が生じており、かつ、各キャラクタの単位モジュールが2つのドット列により構成されているためデコード処理が失敗したものと仮定する。そして、キャラクタを構成するいずれかのバーの配列方向一側または配列方向他側にドット欠けが1箇所生じていることを前提に、このドット欠けをなくすようにキャラクタを仮補正することで、ドット欠けに起因するデコード処理の失敗をなくし、読取精度の低下を抑制する。
【0066】
すなわち、バーb1の配列方向一側にドット欠けが1箇所生じている欠損キャラクタ1が想定される場合には、隣接モジュールk1の幅値にモジュール幅値Wの半分を加算して当該対象キャラクタを仮補正する。また、バーb1の配列方向他側にドット欠けが1箇所生じている欠損キャラクタ2が想定される場合には、隣接モジュールk2の幅値からモジュール幅値Wの半分を減算して当該対象キャラクタを仮補正する。また、バーb2の配列方向一側にドット欠けが1箇所生じている欠損キャラクタ3が想定される場合には、隣接モジュールk1の幅値からモジュール幅値Wの半分を減算するとともに隣接モジュールk3の幅値にモジュール幅値Wの半分を加算して当該対象キャラクタを仮補正する。また、バーb2の配列方向他側にドット欠けが1箇所生じている欠損キャラクタ4が想定される場合には、隣接モジュールk2の幅値にモジュール幅値Wの半分を加算するとともに隣接モジュールk4の幅値からモジュール幅値Wの半分を減算して当該対象キャラクタを仮補正する。また、バーb3の配列方向一側にドット欠けが1箇所生じている欠損キャラクタ5が想定される場合には、隣接モジュールk3の幅値からモジュール幅値Wの半分を減算して当該対象キャラクタを仮補正する。また、バーb3の配列方向他側にドット欠けが1箇所生じている欠損キャラクタ6が想定される場合には、隣接モジュールk4の幅値にモジュール幅値Wの半分を加算して当該対象キャラクタを仮補正する。
【0067】
このように仮補正した各仮補正キャラクタがコード128の規格を満たすキャラクタに一致するか否かが順次判定され、規格に一致すると判定された仮補正キャラクタが、ドット欠けをなくした本来のキャラクタとして設定される。このような補正を各キャラクタごとに実施することにより、ドット欠けに起因するデコード処理の失敗をなくしている。
【0068】
以下、本第2実施形態における読取処理について図8〜図10を用いて詳細に説明する。
まず、制御回路40では、上記第1実施形態と同様に、図3のステップS101にて画像データ取得処理がなされて、バーコードBを含む画像データが取得されると、ステップS103にて各キャラクタを構成するバーおよびスペースの各幅値がそれぞれ演算される。そして、ステップS105にてこれら各幅値から算出される各隣接モジュールの幅値に基づいてバーコードBに対して公知のデコード処理がなされて、このデコード処理が成功した場合には、ステップS107にてYesと判定されて、図4のステップS127にてデコード成功時の処理がなされて、当該読取処理が終了する。
【0069】
一方、デコード処理が失敗した場合には(S107でNo)、ステップS109にてバーコードBを構成するキャラクタの総数mが設定されるとともに、ステップS111にてm=1に設定される。次に、図4のステップS113にて1番目のキャラクタを構成する隣接モジュールの総数nと、各バーおよび各スペースを構成する単位モジュールの幅値であるモジュール幅値Wとが、上述したステップS101にて取得した画像データに基づいて設定される。そして、ステップS115にて、各隣接モジュールと比較するための閾値が設定される。この処理では、バーおよびスペースの各幅のうち、1番小さいサイズ(単位モジュール)と2番目に小さいサイズとの平均値、2番小さいサイズと3番目に小さいサイズとの平均値、3番小さいサイズと一番大きいサイズとの平均値、がそれぞれ閾値として設定される。
【0070】
そして、ステップS117において、配列方向1番目のキャラクタがコード128の規格を満たすキャラクタに一致しない場合には(S117でNo)、当該キャラクタ(以下、対象キャラクタともいう)を構成するいずれかのバーの配列方向一側または配列方向他側にドット欠けが1箇所生じており、かつ、各キャラクタの単位モジュールが2つのドット列により構成されていることを前提に、ステップS200において、図9に示す本第2実施形態に係る仮補正処理のサブルーチンが実行される。
【0071】
まず、図9のステップS301においてn=1に設定されると、ステップS303において対象キャラクタに対して、配列方向1番目の隣接モジュールk1の幅値にモジュール幅値Wの半分を加算することで、上記欠損キャラクタ1を想定した当該対象キャラクタが仮補正される。すなわち、最も配列方向一側に配列されるバーの配列方向一側がモジュール幅値Wの半分だけ欠損することを前提にこの欠損前提のバーを配列方向一側に含む隣接モジュールにモジュール幅値Wの半分を加算することで、当該対象キャラクタが仮補正される。
【0072】
そして、仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致しない場合には、ステップS305にてNoと判定される。そして、ステップS307にてn=nでないことから(S307でNo)、ステップS309にてnに1が加算され、再び上記ステップS303からの処理がなされる。
【0073】
この段階ではn=2であることから、ステップS303では、対象キャラクタに対して、配列方向2番目の隣接モジュールk2の幅値からモジュール幅値Wの半分を減算することで、上記欠損キャラクタ2を想定した当該対象キャラクタが仮補正される。すなわち、最も配列方向一側に配列されるバーの配列方向他側がモジュール幅値Wの半分だけ欠損することを前提にこの欠損前提のバーの配列方向他側に隣接するスペースを配列方向一側に含む隣接モジュールからモジュール幅値Wの半分を減算することで、当該対象キャラクタが仮補正される。
【0074】
そして、仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致しない場合には、ステップS305にてNoと判定される。そして、ステップS307にてn=nでないことから(S307でNo)、ステップS309にてnに1が加算され、再び上記ステップS303からの処理がなされる。
【0075】
この段階ではn=3であることから、ステップS303では、対象キャラクタに対して、配列方向1番目の隣接モジュールk1の幅値からモジュール幅値Wの半分を減算するとともに配列方向3番目の隣接モジュールk3の幅値にモジュール幅値Wの半分を加算することで、上記欠損キャラクタ3を想定した当該対象キャラクタが仮補正される。すなわち、バーの配列方向一側がモジュール幅値Wの半分だけ欠損することを前提にこの欠損前提のバーの配列方向一側に隣接するスペースを配列方向他側に含む隣接モジュールからモジュール幅値Wの半分を減算するとともに当該欠損前提のバーを配列方向一側に含む隣接モジュールにモジュール幅値Wの半分を加算することで、当該対象キャラクタが仮補正される。
【0076】
そして、仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致しない場合には、ステップS305にてNoと判定される。そして、ステップS307にてn=nでないことから(S307でNo)、ステップS309にてnに1が加算され、再び上記ステップS303からの処理がなされる。
【0077】
この段階ではn=4であることから、ステップS303では、対象キャラクタに対して、配列方向2番目の隣接モジュールk2の幅値にモジュール幅値Wの半分を加算するとともに配列方向4番目の隣接モジュールk4の幅値からモジュール幅値Wの半分を減算することで、上記欠損キャラクタ4を想定した当該対象キャラクタが仮補正される。すなわち、バーの配列方向他側がモジュール幅値Wの半分だけ欠損することを前提にこの欠損前提のバーを配列方向他側に含む隣接モジュールにモジュール幅値Wの半分を加算するとともに当該欠損前提のバーの配列方向他側に隣接するスペースを配列方向一側に含む隣接モジュールからモジュール幅値Wの半分を減算することで、当該対象キャラクタが仮補正される。
【0078】
そして、仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致しない場合には、ステップS305にてNoと判定される。そして、ステップS307にてn=nでないことから(S307でNo)、ステップS309にてnに1が加算され、再び上記ステップS303からの処理がなされる。
【0079】
この段階ではn=5であることから、ステップS303では、対象キャラクタに対して、配列方向3番目の隣接モジュールk3の幅値からモジュール幅値Wの半分を減算することで、上記欠損キャラクタ5を想定した当該対象キャラクタが仮補正される。すなわち、最も配列方向他側に配列されるバーの配列方向一側がモジュール幅値Wの半分だけ欠損することを前提にこの欠損前提のバーの配列方向一側に隣接するスペースを配列方向他側に含む隣接モジュールからモジュール幅値Wの半分を減算することで、当該対象キャラクタが仮補正される。
【0080】
そして、仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致しない場合には、ステップS305にてNoと判定される。そして、ステップS307にてn=nでないことから(S307でNo)、ステップS309にてnに1が加算され、再び上記ステップS303からの処理がなされる。
【0081】
この段階ではn=6であることから、ステップS303では、対象キャラクタに対して、配列方向4番目の隣接モジュールk4の幅値にモジュール幅値Wの半分を加算することで、上記欠損キャラクタ6を想定した当該対象キャラクタが仮補正される。すなわち、最も配列方向他側に配列されるバーの配列方向他側がモジュール幅値Wの半分だけ欠損することを前提にこの欠損前提のバーを配列方向他側に含む隣接モジュールにモジュール幅値Wの半分を加算することで、当該対象キャラクタが仮補正される。
【0082】
そして、仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致しない場合には、ステップS305にてNoと判定される。そして、ステップS307にてn=nであることから、仮補正処理のサブルーチンを終了し、図4のステップS129にてデコード失敗時の処理がなされて、当該読取処理が終了する。
【0083】
一方、ステップS303にて仮補正されたいずれかの仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致すると、ステップS305にてYesと判定されて、ステップS311にてキャラクタ記憶処理がなされて、補正前のキャラクタに関するデータが補正後のキャラクタに関するデータに置換されてメモリ35等に記憶される。これにより、仮補正処理のサブルーチンが終了する。
【0084】
具体的には、上述のような繰り返し処理において、例えば、図10(A),(B)に示すように、対象キャラクタにおいて実際にバーb1の配列方向他側にドット欠けが生じており欠損キャラクタ2が想定される場合には、隣接モジュールk2の幅値が400として検出される。この場合、ステップS303にて、隣接モジュールk2の幅値を400からモジュール幅値Wの半分である54を減算して346にすることで、当該対象キャラクタが仮補正される(図10(C)参照)。この仮補正後のキャラクタが、コード39の規格を満たすキャラクタに一致するので、当該補正後のキャラクタに関するデータがメモリ35等に記憶されて、仮補正処理のサブルーチンが終了する。
【0085】
上述のように仮補正後のキャラクタがコード128の規格を満たすキャラクタに一致することにより仮補正処理のサブルーチンが終了すると、図4のステップS119にてm=mであるか否かについて判定される。この段階では、m=1であることから(S119でNo)、ステップS121にてmに1が加算されて、2番目のキャラクタに対して上記ステップS113からの処理が繰り返される。
【0086】
そして、バーコードBを構成する全キャラクタのうちコード128の規格を満たすキャラクタに一致しない全ての対象キャラクタに対して仮補正がなされると、ステップS119にてYesと判定されて、ステップS123にて当該バーコードBに対して再度デコード処理がなされる。これにより、上記ステップS107におけるデコード失敗がドット欠けのみに起因するものである場合には、デコード処理が成功することからステップS125にてYesと判定されて、ステップS127にてデコード成功時の処理がなされて、当該読取処理が終了する。
【0087】
一方、ドット欠けとは異なる要因によりデコード失敗している場合には、ステップS125にてNoと判定されて、ステップS129にてデコード失敗時の処理がなされて、当該読取処理が終了する。
【0088】
以上説明したように、本第2実施形態に係る光学的情報読取装置10では、各隣接モジュールの幅値に基づいてバーコードB(各キャラクタ)をデコードし、このデコードが失敗した場合には、隣接モジュールを基準に当該キャラクタを仮補正した各仮補正キャラクタについて、それぞれデコードする。
【0089】
このように、各隣接モジュールの幅値に基づいて各キャラクタについてデコードするときにバー欠けの発生によりデコード処理が失敗した場合でも、このキャラクタを仮補正手段により隣接モジュールを基準に仮補正した各仮補正キャラクタのいずれか1つのみがバー欠けのない本来のキャラクタに一致するので、この仮補正キャラクタを含むバーコードではデコード処理が成功することとなり、バー欠けに起因する読取精度の低下を抑制することができる。
【0090】
なお、本発明は上記各実施形態に限定されるものではなく、以下のように具体化してもよく、その場合でも、上記各実施形態と同等の作用・効果が得られる。
(1)上記第1実施形態では、読取対象のバーコードBの規格としてコード39が想定されることに限らず、例えば、インターリーブド2オブ5等、他の規格を想定してもよい。このとき、当該規格に応じた損失キャラクタがそれぞれ想定される。
【0091】
(2)上記第2実施形態では、読取対象のバーコードBの規格としてコード128が想定されることに限らず、上述のようにバーとスペースとを組み合わせてデコードする他の規格を想定してもよい。このとき、当該規格に応じた損失キャラクタがそれぞれ想定される。
【0092】
(3)ステップS123におけるデコード処理は、ステップS119におけるYesとの判定に応じて実施されることに限らず、1のキャラクタについて仮補正処理がなされるごとに、実施されてもよい。
【符号の説明】
【0093】
10…光学的情報読取装置
28…受光センサ
40…制御回路(幅値演算手段,デコード手段,仮補正手段)
B…バーコード
b1〜b5…バー(暗色モジュール)
s1〜s4…スペース(明色モジュール)
…モジュール幅値

【特許請求の範囲】
【請求項1】
1または2以上の単位モジュールからなる暗色モジュールおよび明色モジュールが複数配列されて構成されるキャラクタを複数有するバーコードを読み取り可能な光学的情報読取装置であって、
前記バーコードからの反射光を受光する受光手段と、
前記受光手段から出力される受光信号に基づいて前記各暗色モジュールおよび各明色モジュールの幅値をそれぞれ演算するとともに前記単位モジュールの幅値であるモジュール幅値を演算する幅値演算手段と、
前記各暗色モジュールおよび各明色モジュールの幅値に基づいて前記各キャラクタをデコードするデコード手段と、
前記キャラクタのうち、前記各暗色モジュールの1つが前記モジュール幅値の半分だけ欠損することを前提に、配列方向にて互いに隣接する暗色モジュールおよび明色モジュールを一組とする複数組の隣接モジュールのうちの一組において暗色モジュールの幅値に前記モジュール幅値の半分を加算し明色モジュールの幅値から前記モジュール幅値の半分を減算するか、配列方向一側または配列方向他側でのみ明色モジュールに隣接する暗色モジュールの幅値に前記モジュール幅値の半分を加算することで、当該キャラクタを仮補正した仮補正キャラクタを複数設定する仮補正手段と、
を備え、
前記デコード手段は、前記幅値演算手段により演算された前記各暗色モジュールおよび各明色モジュールの幅値に基づく前記キャラクタのデコードが失敗した場合に、前記仮補正手段により当該キャラクタを仮補正した前記各仮補正キャラクタを、それぞれデコードすることを特徴とする光学的情報読取装置。
【請求項2】
前記仮補正手段は、前記キャラクタのうち、
最も配列方向一側に配列される暗色モジュールの配列方向一側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールを配列方向一側に含む隣接モジュールに前記モジュール幅値の半分を加算するか、
最も配列方向一側に配列される暗色モジュールの配列方向他側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールの配列方向他側に隣接する明色モジュールを配列方向一側に含む隣接モジュールから前記モジュール幅値の半分を減算するか、
暗色モジュールの配列方向一側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールの配列方向一側に隣接する明色モジュールを配列方向他側に含む隣接モジュールから前記モジュール幅値の半分を減算するとともに当該欠損前提の暗色モジュールを配列方向一側に含む隣接モジュールに前記モジュール幅値の半分を加算するか、
暗色モジュールの配列方向他側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールを配列方向他側に含む隣接モジュールに前記モジュール幅値の半分を加算するとともに当該欠損前提の暗色モジュールの配列方向他側に隣接する明色モジュールを配列方向一側に含む隣接モジュールから前記モジュール幅値の半分を減算するか、
最も配列方向他側に配列される暗色モジュールの配列方向一側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールの配列方向一側に隣接する明色モジュールを配列方向他側に含む隣接モジュールから前記モジュール幅値の半分を減算するか、
最も配列方向他側に配列される暗色モジュールの配列方向他側が前記モジュール幅値の半分だけ欠損することを前提にこの欠損前提の暗色モジュールを配列方向他側に含む隣接モジュールに前記モジュール幅値の半分を加算することで、
当該キャラクタを仮補正して、仮補正キャラクタを複数設定し、
前記デコード手段は、前記各隣接モジュールの幅値に基づいて前記各キャラクタをデコードし、このデコードが失敗した場合に、前記仮補正手段により当該キャラクタを仮補正した前記各仮補正キャラクタを、それぞれデコードすることを特徴とする請求項1に記載の光学的情報読取装置。

【図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


【公開番号】特開2010−211561(P2010−211561A)
【公開日】平成22年9月24日(2010.9.24)
【国際特許分類】
【出願番号】特願2009−57480(P2009−57480)
【出願日】平成21年3月11日(2009.3.11)
【出願人】(501428545)株式会社デンソーウェーブ (1,155)
【Fターム(参考)】