(57)【要約】      （修正有）【課題】バーコードの両側のマージンの左右のノイズが大きくても正確にバーコードのマージンを抜き出す。【解決手段】輝度データをグラフ化し、輝度データの隣接する頂点間の傾きを求める（Ｓ１８、Ｓ３８）。頂点間の傾き角度の絶対値が所定値以下となるまで探索を繰り返して、条件を満足する頂点を２点求め（Ｓ２０、Ｓ４０：Ｙ）、左端AD_L、右端AD_Rとしてそれぞれ決定する（Ｓ２４、Ｓ２６、Ｓ４４、Ｓ４６）。そして、両マージンの端部（左端AD_L、右端AD_R）までをマージンを含むバーコードデータとして抜き出し（Ｓ５０）、二値化してデコードする（Ｓ５２）。輝度データの頂点間の傾きから直接マージンを特定するため、ノイズが大きくても正確にバーコードのマージンを特定することができる。【選択図】図２
2010033490.tif 000002
【特許請求の範囲】
【請求項１】
輝度データを特定可能なバーコード読取装置であって、
輝度データをグラフ化し、輝度データの隣接する頂点間の傾きを求める傾き探索手段と、頂点間の傾き角度の絶対値が所定値以下となる頂点を２点求め、求めた２点の頂点を両マージンの端部としてそれぞれ決定するマージン端部決定手段とを備え、
両マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、輝度データをマージンを除いて二値化し、二値化した値をデコードすることを特徴とするバーコード読取装置。
【請求項２】
輝度データを特定可能なバーコード読取装置であって、
輝度データをグラフ化し、グラフ横方向における中心より半分に分割する輝度データ分割手段と、
分割した輝度データのうち、どちらかを選択する選択手段と、
選択された側の輝度データのうち、分割位置から最も近い輝度データの第１頂点を求める第１頂点探索手段と、
第１頂点から最も近い第２頂点を求める第２頂点探索手段と、
第１頂点と第２頂点の傾きを求める傾き探索手段と、
第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、第２頂点を新たな第１頂点とし、該新たな第１頂点から最も近い新たな第２頂点を求める次第２頂点探索手段と、
新たな第１頂点と新たな第２頂点の傾きを求める次傾き探索手段と、を備え、
第１頂点と第２頂点の傾きの角度の絶対値が所定値以下の場合、求めた頂点を第１マージンの端部として決定する第１マージン端部決定手段と、
選択されていない側の輝度データにおいて、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第２マージンの端部として決定する第２マージン端部決定手段とを備え、
分割した輝度データを合併し、前記第１マージンの端部から前記第２マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、マージンを除いてデコードすることを特徴とするバーコード読取装置。
【請求項３】
輝度データを特定可能なバーコード読取装置であって、
輝度データをグラフ化し、グラフ横方向における中心より半分に分割する輝度データ分割手段と、
分割した輝度データのうち、どちらかを選択する選択手段と、
選択された側の輝度データのうち、分割位置から最も近い輝度データの第１頂点を求める第１頂点探索手段と、
第１頂点から最も近い第２頂点を求める第２頂点探索手段と、
第１頂点と第２頂点の傾きを求める傾き探索手段と、
第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、第２頂点を新たな第１頂点とし、該新たな第１頂点から最も近い新たな第２頂点を求める次第２頂点探索手段と、
新たな第１頂点と新たな第２頂点の傾きを求める次傾き探索手段と、を備え、
第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、前記次第２頂点探索手段と前記次傾き探索手段とによる処理を繰り返し、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第１マージンの端部として決定する第１マージン端部決定手段と、
選択されていない側の輝度データにおいて、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第２マージンの端部として決定する第２マージン端部決定手段とを備え、
分割した輝度データを合併し、前記第１マージンの端部から前記第２マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、マージンを除いてデコードすることを特徴とするバーコード読取装置。
【請求項４】
前記第１マージン端部決定手段は、
前記第１頂点と前記第２頂点を比較する比較手段を備え、
傾きの角度の絶対値が所定値以下となる前記第１頂点よりも前記第２頂点の輝度データが小さい場合、第２頂点を第１マージンの端部として決定し、
前記第１頂点よりも前記第２頂点の輝度データが大きい場合、第２頂点を新たな第１頂点とし、新たな第１頂点から最も近い新たな第２頂点を第１マージンの端部として決定することを特徴とする請求項３に記載のバーコード読取装置。
【請求項５】
前記所定値は、前記新たな第１頂点と前記新たな第２頂点との傾きの内で、最も傾きの小さな角度の１／２の値である請求項３又は請求項４のバーコード読取装置。
【請求項６】
輝度データを特定可能なバーコード読取方法であって、
輝度データをグラフ化し、輝度データの隣接する頂点間の傾きを求める傾き探索ステップと、
頂点間の傾き角度の絶対値が所定値以下となる頂点を２点求め、求めた２点の頂点を両マージンの端部としてそれぞれ決定するマージン端部決定ステップとを備え、
両マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、輝度データをマージンを除いて二値化し、二値化した値をデコードすることを特徴とするバーコード読取方法。
【請求項７】
輝度データを特定可能なバーコード読取方法であって、
輝度データをグラフ化し、グラフ横方向における中心より半分に分割する輝度データ分割ステップと、
分割した輝度データのうち、どちらかを選択する選択ステップと、
選択された側の輝度データのうち、分割位置から最も近い輝度データの第１頂点を求める第１頂点探索ステップと、
第１頂点から最も近い第２頂点を求める第２頂点探索ステップと、
第１頂点と第２頂点の傾きを求める傾き探索ステップと、
第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、第２頂点を新たな第１頂点とし、該新たな第１頂点から最も近い新たな第２頂点を求める次第２頂点探索ステップと、
新たな第１頂点と新たな第２頂点の傾きを求める次傾き探索ステップと、を備え、
第１頂点と第２頂点の傾きの角度の絶対値が所定値以下の場合、求めた頂点を第１マージンの端部として決定する第１マージン端部決定ステップと、
選択されていない側の輝度データにおいて、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第２マージンの端部として決定する第２マージン端部決定ステップとを備え、
分割した輝度データを合併し、前記第１マージンの端部から前記第２マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、マージンを除いてデコードすることを特徴とするバーコード読取方法。
【請求項８】
輝度データを特定可能なバーコード読取方法であって、
輝度データをグラフ化し、グラフ横方向における中心より半分に分割する輝度データ分割ステップと、
分割した輝度データのうち、どちらかを選択する選択ステップと、
選択された側の輝度データのうち、分割位置から最も近い輝度データの第１頂点を求める第１頂点探索ステップと、
第１頂点から最も近い第２頂点を求める第２頂点探索ステップと、
第１頂点と第２頂点の傾きを求める傾き探索ステップと、
第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、第２頂点を新たな第１頂点とし、該新たな第１頂点から最も近い新たな第２頂点を求める次第２頂点探索ステップと、
新たな第１頂点と新たな第２頂点の傾きを求める次傾き探索ステップと、を備え、
第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、前記次第２頂点探索ステップと前記次傾き探索ステップとによる処理を繰り返し、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第１マージンの端部として決定する第１マージン端部決定ステップと、
選択されていない側の輝度データにおいて、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第２マージンの端部として決定する第２マージン端部決定ステップとを備え、
分割した輝度データを合併し、前記第１マージンの端部から前記第２マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、マージンを除いてデコードすることを特徴とするバーコード読取方法。
【請求項９】
前記第１マージン端部決定ステップは、
前記第１頂点と前記第２頂点を比較する比較ステップを備え、
傾きの角度の絶対値が所定値以下となる前記第１頂点よりも前記第２頂点の輝度データが小さい場合、第２頂点を第１マージンの端部として決定し、
前記第１頂点よりも前記第２頂点の輝度データが大きい場合、第２頂点を新たな第１頂点とし、新たな第１頂点から最も近い新たな第２頂点を第１マージンの端部として決定することを特徴とする請求項７に記載のバーコード読取方法。
【請求項１０】
前記所定値は、前記新たな第１頂点と前記新たな第２頂点との傾きの内で、最も傾きの小さな角度の１／２の値である請求項８又は請求項９のバーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードを読み取るバーコード読取装置及びバーコード読取方法に関し、特に、両端にマージンが設けられたバーコードを該マージンから抜き出して読み取るバーコード読取装置及びバーコード読取方法に関するものである。
【背景技術】
【０００２】
紙などの基材にバーコードを印刷したものを物品や書類に取り付け、これを光学的に読み取り、物品の識別などを行うバーコード読取装置が知られている。係るバーコード読取装置は、ケース内部のＬＥＤ等でバーコードを照明し、この照明によりバーコードから反射される光をラインセンサ、ＣＣＤ等を用いて画像として読み取り、その明暗の分布からバーコードが表している情報を解読している。ここで、取り込んだ画像からバーコード部の抜き出しは、一般的に、バーコード部の両側のマージンを特定することで行われている。
【０００３】
従来技術のバーコード読取装置では、ノイズ対策として、ローパスフィルタを用い画像データ中の高周波成分を除去した後に二値化してバー及びスペース幅を求める方法、或いは、二値化回路にヒステリシスを設ける方法等が採用されている。特許文献１には、一定幅に満たないバー及びスペースを除去してから、必要なバー及びスペースを再度計測することで、読み取り信号からノイズによる不必要なデータを除去するバーコード読み取り装置が開示されている。
【特許文献１】特開平１０−３２０４９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したように、画像からバーコード部の抜き出しを両側のマージンを特定することにより行う場合、マージンの左右両側のノイズがひどい場合、マージンを検出できず、デコード処理に入れない場合が生じる。
【０００５】
例えば、図９（Ａ）は、読み取りが困難な環境下で撮像された輝度データのグラフである。このグラフは、横軸に時間を縦軸に輝度を取ってある。読み取りが困難な環境として、バーコード本体（バーコード及び左右のマージン）の左側に黒い色の壁が設けられ、バーコード本体の右側に商品の説明分（文字列）、更に、白い色の壁があり、この撮像の際に更にノイズが重畳している。ここで、バーコードを読み取るためには、まず、図９（Ｂ）中に示すバーコード本体（バーコード及び左右のマージン）の輝度データを、図９（Ａ）中に示す全輝度データから抜き出す必要があるが、上述した従来技術、特許文献１のノイズ対策では対応が困難であった。
【０００６】
更に、輝度データに２以上のバーコードがある場合（即ち、バーコード読取装置の読み取り視野内に２以上のバーコードがある場合）には、正確にバーコード本体（バーコード及び左右のマージン）を抜き出すことができず、デコードが困難であった。
【０００７】
本発明は、上述した課題を解決するためになされたものであり、その目的とするところは、バーコードの両側のマージンの左右のノイズが大きくても正確にバーコードのマージンを抜き出すことができるバーコード読取装置及びバーコード読取方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、請求項１の発明は、輝度データを特定可能なバーコード読取装置１０であって、
輝度データをグラフ化し、輝度データの隣接する頂点間の傾きを求める傾き探索手段（Ｓ１８）と、頂点間の傾き角度の絶対値が所定値以下となる頂点を２点求め、求めた２点の頂点を両マージンの端部としてそれぞれ決定するマージン端部決定手段（Ｓ２４、Ｓ２６）とを備え、
両マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し（Ｓ５０）、輝度データをマージンを除いて二値化し、二値化した値をデコードする（Ｓ５２）ことを技術的特徴とする。
【０００９】
請求項６の発明は、輝度データを特定可能なバーコード読取方法であって、
輝度データをグラフ化し、輝度データの隣接する頂点間の傾きを求める傾き探索ステップ（Ｓ１８）と、
頂点間の傾き角度の絶対値が所定値以下となる頂点を２点求め、求めた２点の頂点を両マージンの端部としてそれぞれ決定するマージン端部決定ステップ（Ｓ２４、Ｓ２６）とを備え、
両マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し（Ｓ５０）、輝度データをマージンを除いて二値化し、二値化した値をデコードする（Ｓ５２）ことを技術的特徴とする。
【発明の効果】
【００１０】
請求項１、６の発明は、輝度データをグラフ化し、輝度データの隣接する頂点間の傾きを求める。次に、頂点間の傾き角度の絶対値が所定値以下となる頂点を２点求め、求めた２点の頂点を両マージンの端部としてそれぞれ決定する。そして、両マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、輝度データをマージンを除いて二値化し、二値化した値をデコードする。
画像データを二値化し、二値化後の画像データからバーコード両端のマージンを特定することは、ノイズが大きい場合困難である。しかし、請求項１、６では、輝度データの頂点間の傾きからバーコード両端のマージンの端部を決定、即ち、輝度データから直接マージンを特定するため、バーコードの両側のマージンの左右のノイズが大きくても正確にバーコードのマージンを特定し、バーコードを抜き出すことができる。
【００１１】
請求項２、７の発明は、輝度データをグラフ化し、グラフ横方向における中心より半分に分割し、分割した輝度データのうち、どちらかを選択する。選択された側の輝度データのうち、分割位置から最も近い輝度データの第１頂点を求め、第１頂点から最も近い第２頂点を求める。第１頂点と第２頂点の傾きを求める。そして、第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、第２頂点を新たな第１頂点とし、該新たな第１頂点から最も近い新たな第２頂点を求める。新たな第１頂点と新たな第２頂点の傾きを求める。新たな第２頂点を求め、新たな第１頂点と新たな第２頂点の傾きを求める処理を繰り返し、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第１マージンの端部として決定する。同様にして、選択されていない側の輝度データにおいて、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第２マージンの端部として決定する。最後に、分割した輝度データを合併し、第１マージンの端部から第２マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、マージンを除いてデコードする。
画像データを二値化し、二値化後の画像データからバーコード両端のマージンを特定することは、ノイズが大きい場合困難である。しかし、請求項２、７では、輝度データの頂点間の傾きからバーコード両端のマージンの端部を決定、即ち、輝度データから直接マージンを特定するため、バーコードの両側のマージンの左右のノイズが大きくても正確にバーコードのマージンを特定し、バーコードを抜き出すことができる。特に、バーコードが入っている画像中央で輝度データを分割し、中央側からマージン端を検出するので、マージンの左右外側のノイズの影響を受けず、マージン端を特定することができる。更に、読み取り視野内に２以上のバーコードがある際にも、使用者が読み取りを意図するバーコードは、読み取り視野の中央にあるので、当該バーコードの入っている画像中央で輝度データを分割し、中央側からマージン端を検出するので、使用者の意図するバーコードのマージン端を特定し、読み取りが行い得る。
【００１２】
請求項３、８の発明は、輝度データをグラフ化し、グラフ横方向における中心より半分に分割し、分割した輝度データのうち、どちらかを選択する。選択された側の輝度データのうち、分割位置から最も近い輝度データの第１頂点を求め、第１頂点から最も近い第２頂点を求める。第１頂点と第２頂点の傾きを求める。そして、第１頂点と第２頂点の傾きの角度の絶対値が所定値を超える場合、第２頂点を新たな第１頂点とし、該新たな第１頂点から最も近い新たな第２頂点を求める。新たな第１頂点と新たな第２頂点の傾きを求める。傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第１マージンの端部として決定する。同様にして、選択されていない側の輝度データにおいて、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第２マージンの端部として決定する。最後に、分割した輝度データを合併し、第１マージンの端部から第２マージンの端部までの輝度データをマージンを含むバーコードデータとして認識し、マージンを除いてデコードする。
画像データを二値化し、二値化後の画像データからバーコード両端のマージンを特定することは、ノイズが大きい場合困難である。しかし、請求項３、８では、輝度データの頂点間の傾きからバーコード両端のマージンの端部を決定、即ち、輝度データから直接マージンを特定するため、バーコードの両側のマージンの左右のノイズが大きくても正確にバーコードのマージンを特定し、バーコードを抜き出すことができる。特に、バーコードが入っている画像中央で輝度データを分割し、中央側からマージン端を検出するので、マージンの左右外側のノイズの影響を受けず、マージン端を特定することができる。更に、読み取り視野内に２以上のバーコードがある際にも、使用者が読み取りを意図するバーコードは、読み取り視野の中央にあるので、当該バーコードの入っている画像中央で輝度データを分割し、中央側からマージン端を検出するので、使用者の意図するバーコードのマージン端を特定し、読み取りが行い得る。
【００１３】
請求項４、９の発明では、傾きの角度の絶対値が所定値以下となる頂点を求め、求めた頂点を第１マージンの端部として決定する際に、第１頂点と第２頂点を比較し、傾きの角度の絶対値が所定値以下となる第１頂点よりも第２頂点の輝度データが小さい場合、第２頂点を第１マージンの端部として決定する。他方、第１頂点よりも第２頂点の輝度データが大きい場合、第２頂点を新たな第１頂点とし、新たな第１頂点から最も近い新たな第２頂点を第１マージンの端部として決定する。このため、マージンの左端部を特定するときには輝度が上昇してくる頂点を、マージンの右端部を特定するときには感度が下降する頂点を特定することが可能となり、正確にバーコードのマージンを特定することができる。
【００１４】
請求項５、１０の発明では、第１マージンの端部として決定する頂点を求めるための傾きの角度の所定値を、新たな第１頂点と新たな第２頂点との傾きの内で、最も傾きの小さな角度の１／２の値を用いる。新たな第１頂点と新たな第２頂点との傾きは、バーコード内のバー及びスペース幅により作り出されるものなので、この最小値の１／２を取ることで、バーの存在しないスペースのみから構成されるマージンを正確に特定し、バーコードを抜き出すことができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の１実施形態に係るバーコード読取方法、及び、当該方法を用いるバーコード読取装置について図を参照して説明する。まず、本実施形態に係るバーコード読取装置１０の構成概要を図１に基づいて説明する。
バーコード読取装置１０は、回路部２０を備える。回路部２０は、主に、照明光源２１、受光センサ２８、結像レンズ２７等の光学系と、メモリ３５、制御回路４０、トリガースイッチ５０等のマイクロコンピュータ（以下「マイコン」という）系と、から構成されている。
【００１６】
光学系は、照明光源２１、受光センサ２８、結像レンズ２７等から構成されている。照明光源２１は、照明光Ｌｆを発光可能な照明光源として機能するもので、例えば、白色のＬＥＤとこのＬＥＤの出射側に設けられる拡散・集光レンズとから構成されている。本実施形態では、読取対象物Ｒに向けて照明光Ｌｆを照射可能に構成されている。なお、この読取対象物ＲにバーコードＢが貼付されている。受光センサ２８は、読取対象物ＲやバーコードＢに照射されて反射した反射光Ｌｒを、結像レンズ２７を介して受光可能に構成されるものであり、ＣＣＤから成る。ここでは、二次元のＣＣＤを用いているが、一次元のラインセンサを用いることも可能である。
【００１７】
マイコン系の構成概要を説明する。マイコン系は、増幅回路３１、Ａ／Ｄ変換回路３３、メモリ３５、アドレス発生回路３６、同期信号発生回路３８、制御回路４０、トリガースイッチ５０、ブザー４４、通信インタフェース４８等から構成されている。
【００１８】
光学系の受光センサ２８から出力される画像信号（アナログ信号）は、増幅回路３１に入力されることで所定ゲインで増幅された後、Ａ／Ｄ変換回路３３に入力されると、アナログ信号からディジタルレベル信号に変換される。そして、ディジタル化された画像信号、つまり画像データ（画像情報）は、メモリ３５に入力されると、所定のコード像画像情報格納領域に蓄積される。即ち、実施形態のバーコード読取装置では、図３（Ａ）中に示すような輝度データとして１画像信号が保持される。図３（Ａ）では、保持されている画像信号を輝度データのグラフとして等価的に表してるもので、該グラフの縦軸にディジタル値の輝度レベルを、横軸に時間を取ってある。なお、同期信号発生回路３８は、受光センサ２８およびアドレス発生回路３６に対する同期信号を発生可能に構成されており、またアドレス発生回路３６は、この同期信号発生回路３８から供給される同期信号に基づいて、メモリ３５に格納される画像データの格納アドレスを発生可能に構成されている。
【００１９】
制御回路４０は、バーコード読取装置１０全体を制御可能なマイコンで、ＣＰＵ、システムバス、入出力インタフェース等からなるもので、メモリ３５とともに情報処理装置を構成し得るもので情報処理機能を有する。この制御回路４０には、内蔵された入出力インタフェースを介して種々の入出力装置（周辺装置）と接続可能に構成されており、本実施形態の場合、トリガースイッチ５０、ブザー４４、通信インタフェース４８等を接続されている。これにより、例えば、トリガースイッチ５０の監視や管理、ビープ音やアラーム音を発生可能なブザー４４の鳴動のオンオフ、さらには読み取ったバーコードＢによるコード内容を外部機器へ出力する通信インタフェース４８の通信制御等を可能にしている。
【００２０】
本実施形態では、図３（Ａ）に示す撮像された輝度レベルから成る画像データから図３（Ｂ）に示すバーコード本体（バーコード及びバーコード両側のマージン）を抜き出し、マージンを除いたバーコードを二値化し、バー及びスペースの幅を求め、デコードを行う。図３（Ｂ）に示すマージン両端を検出してデコードするための処理について、図２のフローチャート及び図４〜図８の説明図を参照して説明する。
【００２１】
図４（Ａ）に示す輝度データをバーコード中央（輝度データ中央）付近で左右に分割する（Ｓ１２）。この分割した内の左側の輝度データを図４（Ｂ）中に示す。次に、図４（Ｂ）中に示すように分割した左側の輝度データのうち、分割した部分から最も近い頂点（第１頂点）a_iを求める（Ｓ１４）。そして、図５（Ａ）中に示すように頂点a_iから最も近い頂点（第２頂点）a_i+1を求める（Ｓ１６）。次に、図５（Ｂ）に示すように、頂点a_iと頂点a_i+1の傾きS_(i,i+1)を求める（Ｓ１８）。傾きS_(i,i+1)が一定値以下かどうかを判断する（Ｓ２０）。傾きが一定を超える場合には（Ｓ２０：Ｎｏ）、頂点a_i＝頂点a_i+1、即ち、第２頂点を新たな第１頂点として（Ｓ２１）、Ｓ１６に戻り、図５（Ｃ）中に示すように新たな頂点（新たな第１頂点）a_iから最も近い新たな頂点（新たな第２頂点）a_i+1を求める（Ｓ１６）。新たな頂点a_iと新たな頂点a_i+1の傾きS_(i,i+1)を求める（Ｓ１８）。この処理を傾きS_(i,i+1)が一定以下になる頂点a_i、頂点a_i+1とを検出するまで続ける。
【００２２】
そして、図６（Ａ）に示すように傾きS_(i,i+1)が一定以下になる頂点が求まると（Ｓ２０：Ｙｅｓ）、頂点a_iの輝度レベルと頂点a_i+1の輝度レベルとでどちらが高いかを判断する（Ｓ２２）。図６（Ｂ）に示すように、新しい頂点a_i+1（図中では左側の頂点）が前回の頂点a_iより低い場合（Ｓ２２：Ｎｏ）、新しい頂点a_i+1を左マージン部開始の輝度データAD_Lとする（Ｓ２６）。反対に、図６（Ｃ）に示すように新しい頂点a_i+1（図中では左側の頂点）が前回の頂点a_iより高い場合（Ｓ２２：Ｎｏ）、頂点a_i+1の次の頂点a_i+2を求め、該頂点a_i+2をマージン部開始の輝度データの左端AD_Lとする（Ｓ２４）。
【００２３】
以上の処理で左マージン部開始の輝度データAD_Lを求めたら、図７に示すように同様にして分割した右側の輝度データでも右マージン部開始の輝度データの右端AD_Rを求める（Ｓ３４〜Ｓ４６）。
【００２４】
そして、図８（Ａ）中に示す輝度データから、図８（Ｂ）に示すようにマージン部開始の輝度データの左端AD_L、右端AD_Rを含むバーコード部の輝度データを抜き出す（Ｓ５０）。最後に、左端AD_Lから右端AD_Rまでの輝度データからマージンを除いて二値化してから、該二値化データに基づきバー及びスペース幅を求めデコードを行う（Ｓ５２）。
【００２５】
実施形態のバーコード読取装置及びバーコード読取方法では、マージンの左端AD_L、右端AD_Rとして決定する頂点を求めるための傾きの角度の所定値を、頂点a_i、頂点a_i+1との傾きS_(i,i+1)の内で、最も傾きの小さな角度の１／２の値を用いる。頂点a_i、頂点a_i+1との傾きS_(i,i+1)は、バーコードを構成するバー及びスペース幅により作り出されるものなので、この最小値の１／２を取ることで、バーの存在しないスペースのみから構成されるマージン（左端AD_L、右端AD_R）を正確に特定し、バーコードを抜き出すことができる。
【００２６】
実施形態のバーコード読取装置及びバーコード読取方法は、輝度データをグラフ化し、輝度データの隣接する頂点間の傾きを求める（Ｓ１８）。次に、頂点間の傾き角度の絶対値が所定値以下となる頂点を２点求め（Ｓ２０：Ｙｅｓ）、求めた２点の頂点を左端AD_L、右端AD_Rとしてそれぞれ決定する（Ｓ２４、Ｓ２６、Ｓ４４、Ｓ４６）。そして、両マージンの端部（左端AD_L、右端AD_R）までの輝度データをマージンを含むバーコードデータとして認識し、輝度データをマージンを除き（Ｓ５０）、二値化してデコードする（Ｓ５２）。輝度データの頂点間の傾きからバーコード両端のマージンの端部を決定、即ち、輝度データから直接マージンを特定するため、バーコードの両側のマージンの左右のノイズが大きくても正確にバーコードのマージンを特定し、バーコードを抜き出すことができる。
【００２７】
実施形態のバーコード読取装置及びバーコード読取方法は、輝度データをグラフ化し、グラフ横方向における中心より半分に分割し（Ｓ１２）、分割した輝度データのうち、左側の輝度データのうち、分割位置から最も近い輝度データの第１頂点a_iを求め（Ｓ１６）、第１頂点a_iから最も近い第２頂点a_i+1を求める（Ｓ１８）。第１頂点a_iと第２頂点a_i+1の傾きS_(i,i+1)を求める（Ｓ１８）。そして、第１頂点a_iと第２頂点a_i+1の傾きS_(i,i+1)の角度の絶対値が所定値を超える場合（Ｓ２０：Ｎｏ）、第２頂点a_i+1を新たな第１頂点a_iとし（Ｓ２１）、該新たな第１頂点a_iから最も近い新たな第２頂点a_i+1を求める（Ｓ１６）。新たな第１頂点a_iと新たな第２頂点a_i+1の傾きS_(i,i+1)を求める（Ｓ１８）。新たな第２頂点a_i+1を求め、新たな第１頂点a_iと新たな第２頂点a_i+1の傾きS_(i,i+1)を求める処理を繰り返し、傾きS_(i,i+1)の角度の絶対値が所定値以下となる頂点を求め（Ｓ２２：Ｙｅｓ）、求めた頂点を左マージンの端部（左端AD_L）として決定する（Ｓ２４、Ｓ２６）。同様にして、右側の輝度データにおいて、傾きS_(i,i+1)の角度の絶対値が所定値以下となる頂点を求め、求めた頂点を右マージンの端部（右端AD_R）として決定する（Ｓ３４〜Ｓ４６）。最後に、分割した輝度データを合併し、左マージンの端部（左端AD_L）から右マージンの端部（右端AD_R）までの輝度データをマージンを含むバーコードデータとして認識し、マージンを除いてデコードする（Ｓ５０、Ｓ５２）。
【００２８】
輝度データの頂点間の傾きS_(i,i+1)からバーコード両端のマージンの端部を決定、即ち、輝度データから直接マージンを特定するため、バーコードの両側のマージンの左右のノイズが大きくても正確にバーコードのマージンを特定し、バーコードを抜き出すことができる。特に、バーコードが入っている画像中央で輝度データを分割し、中央側からマージン端を検出するので、マージンの左右外側のノイズの影響を受けず、マージン端を特定することができる。更に、読み取り視野内に２以上のバーコードがある際にも、使用者が読み取りを意図するバーコードは、読み取り視野の中央にあるので、当該バーコードの入っている画像中央で輝度データを分割し、中央側からマージン端を検出するので、使用者の意図するバーコードのマージン端を特定し、読み取りが行い得る。
【００２９】
実施形態のバーコード読取装置及びバーコード読取方法では、傾きS_(i,i+1)の角度の絶対値が所定値以下となる頂点を求め、求めた頂点を左マージンの端部として決定する際に、第１頂点a_iと第２頂点a_i+1を比較し、傾きS_(i,i+1)の角度の絶対値が所定値以下となる第１頂点a_iよりも第２頂点a_i+1の輝度データが小さい場合、第２頂点a_i+1を左マージンの端部として決定する。他方、第１頂点a_iよりも第２頂点a_i+1の輝度データが大きい場合、第２頂点a_i+1を新たな第１頂点a_iとし、新たな第１頂点a_iから最も近い新たな第２頂点a_i+1を左マージンの端部として決定する。このため、マージンの左端部を特定するときには輝度が上昇してくる頂点を、マージンの右端部を特定するときには感度が下降する頂点を特定することが可能となり、正確にバーコードのマージンを特定することができる。
【図面の簡単な説明】
【００３０】
【図１】本発明の実施形態に係るバーコード読取装置の回路部の構成概要を示すブロック図である。
【図２】実施形態のバーコード読取装置による読み取り処理を示すフローチャートである。
【図３】図３（Ａ）は、撮像された画像データの輝度レベルから成るグラフであり、図３（Ｂ）は、図３（Ａ）中のバーコード本体（バーコード及びバーコード両側のマージン）を抜き出して示すグラフである。
【図４】図４（Ａ）は、撮像された画像データの輝度レベル（輝度データ）から成るグラフであり、図４（Ｂ）は、図４（Ａ）中の左側の輝度データを示すグラフである。
【図５】図５（Ａ）、図５（Ｂ）、図５（Ｃ）は、輝度データからマージン端部を特定するための処理を説明するグラフである。
【図６】図６（Ａ）、図６（Ｂ）、図６（Ｃ）は、輝度データからマージン端部を特定するための処理を説明するグラフである。
【図７】右半分の輝度データからマージン端部を特定するための処理を説明するグラフである。
【図８】輝度データからバーコード部を抜き出す処理を説明するグラフである。
【図９】図９（Ａ）は、読み取りが困難な環境下で撮像された輝度データのグラフであり、図９（Ｂ）は、図９（Ａ）中からバーコード本体（バーコード及び左右のマージン）の輝度データを抜き出して示すグラフである。
【符号の説明】
【００３１】
１０  バーコード読取装置
２８  受光センサ
３５  メモリ
４０  制御回路
【図１】
2010033490.tif 000003
【図２】
2010033490.tif 000004
【図３】
2010033490.tif 000005
【図４】
2010033490.tif 000006
【図５】
2010033490.tif 000007
【図６】
2010033490.tif 000008
【図７】
2010033490.tif 000009
【図８】
2010033490.tif 000010
【図９】
2010033490.tif 000011