(57)【要約】【課題】バーコード候補領域のサイズが変化しても、バーコードのデコード効率の向上とデコード処理時間の短縮とをすること。【解決手段】商品に１０に付されたバーコード９を含む領域を撮像部５により多階調で撮像し、この撮像により取得された画像データを２値化して取得された２値化画像データからバーコード９に対応するバーコード候補領域Ｅａ等を抽出し、このバーコード候補領域Ｅａ等内に含むバーコード９をデコードするときに、バーコード候補領域Ｅａ等の大きさに応じたライン間隔Ｓａ等に各デコードラインＬ１１〜Ｌ１６等を設定し、これらデコードラインＬ１１〜Ｌ１６からバーコード９をデコードする。【選択図】図３
2009181219.tif 000002
【特許請求の範囲】
【請求項１】
物体に付されたバーコードを含む領域を撮像する撮像部と、
前記撮像部により取得された画像データを２値化する２値化処理部と、
前記２値化処理部により取得された２値化画像データから前記バーコードに対応する画像領域を抽出するバーコード抽出部と、
前記バーコード抽出部により抽出された前記画像領域の大きさに応じたライン間隔に複数のデコードラインを設定し、前記ライン間隔に設定された少なくとも１つの前記デコードライン上で前記バーコードをデコードするデコード部と、
を具備することを特徴とするバーコード読み取り装置。
【請求項２】
前記デコード部は、前記バーコードを形成するバーの長手方向に対して垂直方向に前記各デコードラインを設定して前記バーコードをデコードすることを特徴とする請求項１記載のバーコード読み取り装置。
【請求項３】
前記デコード部は、前記バーコードを形成するバーの長さに応じて前記各デコードラインのライン間隔を設定することを特徴とする請求項１記載のバーコード読み取り装置。
【請求項４】
前記デコード部は、前記バーコードを形成する複数のバーのうち最長のバーの長さ、又は前記複数のバーの長さの平均値を前記バーの長さとして設定することを特徴とする請求項３記載のバーコード読み取り装置。
【請求項５】
前記デコード部は、予め設定されている前記各デコードラインのライン数を有し、前記バーコードを形成する前記バーの長さを前記ライン数により除算することにより前記ライン間隔を求めることを特徴とする請求項１記載のバーコード読み取り装置。
【請求項６】
前記デコード部は、前記各デコードラインの前記ライン数を、設定可能な上限のライン数又は当該上限のライン数よりも少ないライン数に設定可能であることを特徴とする請求項５記載のバーコード読み取り装置。
【請求項７】
物体に付されたバーコードを含む領域を撮像し、この撮像により取得された画像データを２値化して取得された２値化画像データから前記バーコードに対応する画像領域を抽出し、この画像領域内に含む前記バーコードをデコードするバーコード読み取り方法において、
前記バーコードをデコードするとき、前記バーコードに対応する前記画像領域の大きさに応じたライン間隔に複数のデコードラインを設定し、前記ライン間隔に設定された少なくとも１つの前記デコードライン上で前記バーコードをデコードする、
を具備することを特徴とするバーコード読み取り方法。
【請求項８】
前記各デコードラインのライン間隔は、前記バーコードを形成するバーの長さに応じて設定することを特徴とする請求項７記載のバーコード読み取り方法。
【請求項９】
前記バーの長さは、前記バーコードを形成する複数のバーのうち最長のバーの長さ、又は前記複数のバーの長さの平均値に設定することを特徴とする請求項８記載のバーコード読み取り方法。
【請求項１０】
前記ライン間隔は、前記バーコードを形成する前記バーの長さを予め設定されている前記各デコードラインの前記ライン数により除算することにより求めることを特徴とする請求項７記載のバーコード読み取り方法。
【請求項１１】
前記各デコードラインの前記ライン数は、設定可能な上限のライン数又は当該上限のライン数よりも少ないライン数に設定可能であることを特徴とする請求項１０記載のバーコード読み取り方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば商品等の物体に付されたバーコードを撮像して取得された画像データに対してデコードラインを設定してバーコードをデコードするバーコード読み取り装置及びその方法に関する。
【背景技術】
【０００２】
例えば商品等には、当該商品の価格等を読み取るためのバーコードを印刷したラベルが付されている。以下、商品に付されているバーコードと称する。このようなバーコードの読み取りは、商品に付されているバーコードを撮像装置によって撮像し、この撮像装置の撮像によって取得される画像データを前処理として２値化し、この２値化画像データに基づいてバーコードをデコードしたり、パターン認識等の各種処理を行う。
【０００３】
このようなバーコードの読み取りに関する技術としては、例えば特許文献１、２がある。特許文献１は、バーコードの位置、大きさ及び傾きが不定であってもバーコードを特定してバーコードの位置及び傾きを検出する技術を開示する。特許文献２は、商品の外装部分に貼り付けられた当該商品の識別情報をバーコードスキャン等で読み取り、この読み取られた商品の識別情報に基づいて商品の登録処理等を行うＰＯＳシステムに関する技術を開示する。
【特許文献１】特開平９−６２７６３号公報
【特許文献２】特開２００６−２７７１９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
バーコードのデコード処理では、効率良く行うことが行われている。例えば、バーコードのデコード処理は、バーコードを撮像装置の撮像によって取得された画像データの２値化画像データの全画像データを用いるのでなく、２値化画像データの中からバーコードを含む領域をバーコード候補領域として抽出し、この抽出されたバーコード候補領域内の２値化画像データに対してデコードを行う。これにより、デコード効率の向上とデコード処理時間の短縮とを実現している。
【０００５】
しかしながら、抽出されたバーコード候補領域内の２値化画像データの品質が不良であったり、バーコードとは異なるバーコード以外の領域がバーコード候補領域として抽出されることがある。このようなバーコード候補領域が抽出されると、当該バーコード候補領域に対して集中してデコード処理を行っても、商品に付されているバーコードのデコード結果を得ることができず、当該バーコード候補領域に対するデコード処理に掛かる時間が無駄になってしまう。
【０００６】
一方、バーコードのデコード処理は、具体的に、バーコード候補領域内の２値化画像データに対して複数のデコードラインを設定し、このデコードライン上でバーコードをデコードする。このとき設定される各デコードラインは、互いのデコードライン間の間隔が固定されたものとなっている。
【０００７】
これに対して２値化画像データ中から抽出されるバーコード候補領域のサイズは、撮像部によってバーコードを撮像する毎にそれぞれ異なる。このバーコード候補領域のサイズが異なるのは、例えばバーコード自体のサイズが異なることや、バーコードと撮像装置との間の距離等によっても異なる。バーコードと撮像装置との間の距離は、例えば商品に付されたバーコードを撮像装置の撮像範囲内に配置するキャッシャー等の操作によって変わる。
【０００８】
このようにバーコード候補領域のサイズが異なると、当該バーコード候補領域内の２値化画像データに対して設定するデコードラインのライン数がバーコード候補領域のサイズに応じて異なる。すなわち、デコードライン間の間隔は固定されているために、バーコード候補領域のサイズが大きくなると、デコードラインのライン数が多くなり、バーコード候補領域のサイズが小さくなると、デコードラインのライン数が少なくなる。
【０００９】
デコード処理は、１つのデコードライン毎にデコードを行い、デコードの結果がＯＫになるまで次のデコードラインに順次移ってデコードを行う。このため、バーコード候補領域のサイズが大きくなってデコードラインのライン数が多くなった場合、デコードの結果がＯＫになるまでに、ライン数の多いデコードラインの全てに対してデコードを行う可能性があり、この場合にはバーコード候補領域全体のデコード処理が終了するまでに長時間掛かる。しかるに、バーコード候補領域のサイズが大きくなると、バーコード候補領域のサイズが小さい場合と比較してデコード処理時間が長くなる。
【００１０】
本発明の目的は、バーコード候補領域のサイズが変化しても、バーコードのデコード効率の向上とデコード処理時間の短縮とができるバーコード読み取り装置及びその方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の主要な局面に係るバーコード読み取り装置は、物体に付されたバーコードを含む領域を撮像する撮像部と、撮像部により取得された画像データを２値化する２値化処理部と、２値化処理部により取得された２値化画像データからバーコードに対応する画像領域を抽出するバーコード抽出部と、バーコード抽出部により抽出された画像領域の大きさに応じたライン間隔に複数のデコードラインを設定し、ライン間隔に設定された少なくとも１つのデコードライン上でバーコードをデコードするデコード部とを具備する。
【００１２】
本発明の主要な局面に係るバーコード読み取り方法は、物体に付されたバーコードを含む領域を撮像し、この撮像により取得された画像データを２値化して取得された２値化画像データからバーコードに対応する画像領域を抽出し、この画像領域内に含むバーコードをデコードするもので、バーコードをデコードするとき、バーコードに対応する画像領域の大きさに応じたライン間隔に複数のデコードラインを設定し、ライン間隔に設定された少なくとも１つのデコードライン上でバーコードをデコードする。
【発明の効果】
【００１３】
本発明によれば、バーコード候補領域のサイズが変化しても、バーコードのデコード効率の向上とデコード処理時間の短縮とができるバーコード読み取り装置及びその方法を提供できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施の形態について図面を参照して説明する。  
図１はバーコード読み取り装置の構成図を示す。このバーコード読み取り装置は、例えば電子キャッシュレジスタに用いられる。このバーコード読み取り装置は、制御部本体としてＣＰＵ（Ｃentral Ｐrocessing Ｕnit）１を搭載している。このＣＰＵ１には、ＲＯＭ（Ｒead Ｏnly Ｍemory）２と、ＲＡＭ（Ｒandom Ａccess Ｍemory）３と、通信インタフェース（通信Ｉ／Ｆ）４と、撮像部５とが接続されると共に、ＣＰＵ１からの指令を受けて２値化処理部６と、バーコード領域抽出部７と、デコード部８とが動作するものとなっている。
【００１５】
ＲＯＭ２には、例えば電子キャッシュレジスタの業務を実行させるための業務プログラムやバーコード９の読み取りプログラムが予め格納されている。バーコード９の読み取りプログラムは、例えば商品１０に付されたバーコード９を含む領域を撮像部５により多階調で撮像させ、この撮像により取得された画像データを２値化処理部６によって２値化させ、この２値化によって取得された２値化画像データからバーコード９に対応する画像領域をバーコード領域抽出部７によって抽出させ、この抽出された画像領域内に含むバーコード９をデコード部８によってデコードさせ、かつバーコード９をデコード部８によってデコードさせるときに、バーコード９に対応する画像領域の大きさに応じたライン間隔に複数のデコードラインを設定し、このライン間隔に設定された少なくとも１つのデコードライン上でバーコード９をデコードさせる。
【００１６】
ＲＡＭ３は、各種データを一時記憶するためのワークエリアが形成され、例えば撮像部５の撮像により取得された多階調画像データを当該ワークエリアに一時記憶したり、デコード部８によりデコードされたバーコード９に含む情報等をワークエリアに一時記憶する。  
通信Ｉ／Ｆ４には、図示しない伝送路を通して例えばＰＯＳシステムのサーバ等の外部機器が接続されている。この通信Ｉ／Ｆ４は、伝送路を通してＰＯＳシステムのサーバ等の外部機器の間でデータ通信を行う。
【００１７】
撮像部５は、商品１０に付されたバーコード９を含む領域を撮像し、その多階調、例えば０〜２５５階調の映像信号を出力する。この撮像部５は、例えばＣＣＤ等により成るイメージセンサが用いられる。  
２値化処理部６は、撮像部５の撮像により取得された多階調画像データに対して予め設定されているしきい値を用いて２値化して２値化画像データを取得する。  
バーコード領域抽出部７は、２値化処理部６により取得された２値化画像データからバーコード９に対応する画像領域をバーコード候補領域として抽出する。図２はバーコード候補領域Ｅａ内の２値化画像データＱの模式図を示す。なお、２値化画像データ中にバーコード９に対応する画像領域が複数存在すれば、バーコード領域抽出部７は、２値化画像データから複数のバーコード候補領域Ｅａを抽出する。
【００１８】
デコード部８は、バーコード領域抽出部７により抽出されたバーコード候補領域Ｅａの大きさに応じたライン間隔に複数のデコードラインを設定し、このライン間隔に設定された少なくとも１つのデコードライン上でバーコード９をデコードする。このとき、デコード部８は、例えば図３に示すようにバーコード９を形成するバーの長手方向に対して垂直方向に複数のデコードライン、例えば６本のデコードラインＬ１１〜Ｌ１６を設定してバーコード９をデコードする。  
デコード部８は、図２に示すようなバーコード９を形成するバーの長さＬｂに応じて図３に示すような各デコードラインＬ１１〜Ｌ１６のライン間隔Ｓａを設定する。この場合、デコード部は、上記バーの長さＬｂをバーコード９を形成する複数のバーのうち最長のバーの長さ又は複数のバーの長さの平均値を求め、このうち最長のバーの長さ又は複数のバーの長さの平均値に設定する。
【００１９】
又、デコード部８には、バーコード候補領域Ｅａに対して設定可能な上限のライン数Ｎが予め設定されている。これにより、デコードラインのライン数Ｎは、設定可能な上限のライン数Ｎ又は当該上限のライン数Ｎよりも少ないライン数に設定可能である。なお、上記図３に示すバーコード候補領域Ｅａに対しては、ライン数Ｎとして例えば６本のデコードラインＬ１１〜Ｌ１６が設定されている。  
しかるに、デコード部８は、バーコード９を形成するバーの長さＬｂをライン数Ｎにより除算することによりライン間隔Ｓａを求める。すなわち、ライン間隔Ｓａは、  
Ｓａ＝Ｌｂ／Ｎ                                        …（１）  
を演算することにより求められる。これにより、デコード部８は、バーコード候補領域Ｅａの大きさ、すなわちバーコード９を形成するバーの長さＬｂに応じたライン間隔Ｓａに複数のデコードライン、例えば６本のデコードラインＬ１１〜Ｌ１６を設定してバーコード９をデコードする。なお、撮像部５の撮像により取得された多階調画像データのｘｙ方向を基準とすると、図３に示す各デコードラインＬ１１〜Ｌ１６は、当該バーコード９を形成する複数のバーに対して垂直方向（ｘ方向）に設定されている。
【００２０】
次に、上記の如く構成された装置によるバーコードの読取動作について図４に示すバーコードの読み取りフローチャートに従って説明する。  
例えば商品１０がキャッシャーによって撮像部５の撮像領域内に配置される。このとき、キャッシャーは、商品１０に付けられているバーコード９を撮像部５に向けて配置すると共に、撮像部５のフォーカス位置にバーコード９が配置されるように商品１０を撮像部５に対して近付けたり遠ざけたりする。撮像部５は、ステップＳ１において、例えばキャッシャーによって把持されている商品１０に付けられたバーコード９を含む領域を撮像し、その映像信号を出力する。この撮像部５から出力された映像信号は、ＣＰＵ１０の指令により順次ＲＡＭ３に送られ、最終的にバーコード９の全体を含む多階調画像データとして記憶される。
【００２１】
次に、２値化処理部６は、ステップＳ２において、予め設定されているしきい値を用いて撮像部５の撮像により取得された多階調画像データに対して２値化処理を行い、その２値化データを取得する。  
次に、バーコード領域抽出部７は、ステップＳ３において、２値化処理部６により取得された２値化画像データからバーコード９に対応する画像領域をバーコード候補領域、例えば図２に示すようなバーコード候補領域Ｅａを抽出する。２値化画像データ中にバーコード９に対応する画像領域が複数存在すれば、バーコード領域抽出部７は、２値化画像データから複数のバーコード候補領域Ｅａを抽出する。
【００２２】
バーコード領域抽出部７によるバーコード候補領域Ｅａの抽出手法は、例えば次の通りである。２値化処理部６により取得された２値化画像データに対して拡大と縮退操作を行って黒画素の連続領域を作成し、所定個数以上の黒画素で構成される連続領域を抽出して各連結領域に対する形状の特徴量を求める。又、連続領域と２値化画像データとついて論理積を求め、所定個数以上の黒画素が連続する図形を抽出し、この図形に対して傾きの方向を求め、各傾きの図形の個数を連結領域毎に集計する。そして、連結領域の形状の特徴量と図形の傾き別個数とを連結領域毎に比較し、形状が矩形で同一の傾きの図形の個数が多い連結領域をバーコード候補領域Ｅａとして抽出する。
【００２３】
バーコード領域抽出部７は、ステップＳ４において、バーコード候補領域Ｅａの抽出数が１個以上在るか否かを判断する。この判断の結果、バーコード候補領域Ｅａの抽出数が１個以上無い、すなわちバーコード候補領域Ｅａの抽出数が０個でバーコード候補領域Ｅａが１個も存在しなければ、ＣＰＵ１は処理を終了する。
【００２４】
一方、バーコード候補領域Ｅａの抽出数が１個以上であれば、バーコード領域抽出部７は、ステップＳ５に移り、抽出したバーコード候補領域Ｅａを選択する。なお、バーコード領域抽出部７は、２値化画像データ中から抽出したバーコード候補領域Ｅａが複数存在すれば、複数のバーコード候補領域Ｅａからいずれか１つのバーコード候補領域Ｅａ、例えば図２に示すようなバーコード候補領域Ｅａを抽出する。
【００２５】
次に、デコード部８は、ステップＳ６において、バーコード領域抽出部７により抽出されたバーコード候補領域Ｅａ内におけるバーコード９のバーの長さＬｂを計測する。この場合、デコード部８は、バーコード９を形成する複数のバーのうち最長のバーの長さを検出し、これをバーの長さＬｂとして設定する。又、デコード部８は、バーコード９を形成する複数のバーの長さの平均値を求め、この平均値をバーの長さＬｂとして設定する。
【００２６】
次に、デコード部８は、ステップＳ７において、バーコード領域抽出部７により抽出されたバーコード候補領域Ｅａの大きさに応じたライン間隔Ｓａに複数のデコードライン、例えば図３に示すように６本のデコードラインＬ１１〜Ｌ１６を設定する。この場合、デコード部８は、バーコード９を形成するバーの長手方向に対して垂直方向に例えば６本のデコードラインＬ１１〜Ｌ１６を設定する。
【００２７】
６本のデコードラインＬ１１〜Ｌ１６を設定するときの当該各デコードラインＬ１１〜Ｌ１６間のライン間隔Ｓａは、次のように設定される。すなわち、上記の如くデコードラインのライン数をＮ、バーコード９を形成するバーの長さをＬｂとしているので、デコード部８は、上記式（１）に示すように  
Ｓａ＝Ｌｂ／Ｎ（＝６）                                  …（２）  
を演算することによりライン間隔Ｓａを求める。
【００２８】
このように求められるライン間隔Ｓａは、図３に示すようなバーコード候補領域Ｅａの大きさ、すなわちバーコード９のバーの長さＬｂに応じるもので、バーの長さＬｂが長くなると広くなり、バーの長さＬｂが狭くなると狭くなる。例えば図５はバーコード領域抽出部７により抽出された別のバーコード候補領域Ｅｂを示し、このバーコード候補領域Ｅｂのサイズは、図３に示すバーコード候補領域Ｅａのサイズと比較して小さくなっている。
【００２９】
しかるに、デコード部８は、バーコード候補領域Ｅｂに対して６本のデコードラインＬ２１〜Ｌ２６を設定し、これらデコードラインＬ２１〜Ｌ２６間のライン間隔Ｓｂを上記式（１）に従って  
Ｓｂ＝Ｌｂ／Ｎ（＝６）                                  …（３）  
を演算することにより求める。  
これらデコードラインＬ２１〜Ｌ２６のバーの長さＬｃは、上記図３に示すバーコード９のバーの長さＬｂと比較して短くＬｃ＜Ｌｂであるので、これらデコードラインＬ２１〜Ｌ２６間のライン間隔Ｓｂは、上記各デコードラインＬ１１〜Ｌ１６間のライン間隔Ｓａよりも狭くなる。
【００３０】
次に、デコード部８は、ステップＳ８において、図３に示すようにバーコード候補領域Ｅａに対して設定された６本のデコードラインＬ１１〜Ｌ１６のうち例えばデコードラインＬ１１、Ｌ１２、…、Ｌ１６上の順にバーコード９をデコードする。  
具体的にデコード部８は、第１番目のデコードラインＬ１１の先頭画素のｘｙ座標（ｘ１１，ｙ１１）を決定する。このデコードラインＬ１１の先頭画素のｘｙ座標（ｘ１１，ｙ１１）は、例えば多階調画像データ中におけるバーコード候補領域Ｅａの座標値とバーコード９を形成する複数のバーの例えばｙ方向に対する傾きθとから決定される。このデコードラインＬ１１の先頭画素のｘｙ座標（ｘ１１，ｙ１１）は、バーコード候補領域Ｅａの枠上に設定される。図３に示すバーコード９は、複数のバーがｙ方向に略一致するので、複数のバーのｙ方向に対する傾きθは「θ＝０°」であり、各デコードラインＬ１１〜Ｌ１６は、略ｘ方向に設定される。
【００３１】
このように第１番目のデコードラインＬ１１の先頭画素のｘｙ座標（ｘ１１，ｙ１１）が決定されると、デコード部８は、先頭画素の座標（ｘ１１，ｙ１１）からデコードラインＬ１１上でバーコード９をデコードする。  
次に、デコード部８は、ステップＳ９において、デコードラインＬ１１上でのバーコード９のデコード結果がＯＫか否かを判断する。この判断の結果、デコードラインＬ１１上でのバーコード９のデコード結果がＯＫであれば、デコード部８は、バーコード９のデコードを終了する。
【００３２】
これに対してデコードラインＬ１１上でのバーコード９のデコード結果がＯＫでなければ、デコード部８は、ステップＳ１０に移ってデコードラインＬ１１をデコードラインＬ１２に更新する。  
すなわち、デコード部８は、第２番目のデコードラインＬ１２の先頭画素のｘｙ座標（ｘ１２，ｙ１２）を上記第１番目のデコードラインＬ１１と同様に、例えば多階調画像データ中におけるバーコード候補領域Ｅａの座標値とバーコード９を形成する複数のバーの例えばｙ方向に対する傾きθとから決定する。この場合、デコード部８は、第２番目のデコードラインＬ１２の先頭画素のｘｙ座標（ｘ１１，ｙ１２）を、第１番目のデコードラインＬ１１の先頭画素のｘｙ座標（ｘ１１，ｙ１１）のｙ座標に対してライン間隔Ｓａをｙ方向のオフセット値として加算して求める。すなわち、第２番目のデコードラインＬ１２の先頭画素のｘｙ座標（ｘ１１，ｙ１２）は、第１番目のデコードラインＬ１１の先頭画素のｘｙ座標（ｘ１１，ｙ１１）におけるｙ座標にライン間隔Ｓａを加算し、ｘｙ座標（ｘ１１，ｙ１１＋Ｓａ）とすることにより求められる。
【００３３】
次に、デコード部８は、ステップＳ１１において、第２番目のデコードラインＬ１２がバーコード候補領域Ｅａの外であるか否かを判断する。この場合、第２番目のデコードラインＬ１２は、図３に示すようにバーコード候補領域Ｅａ内であるので、デコード部８は、ステップＳ８に戻り、デコード部８は、先頭画素の座標（ｘ１１，ｙ１２）からデコードラインＬ１２上でバーコード９をデコードする。
【００３４】
再び、デコード部８は、ステップＳ９において、デコードラインＬ１２上でのバーコード９のデコード結果がＯＫか否かを判断する。この判断の結果、デコードラインＬ１２上でのバーコード９のデコード結果がＯＫであれば、デコード部８は、バーコード９のデコードを終了する。
【００３５】
これに対してデコードラインＬ１２上でのバーコード９のデコード結果がＯＫでなければ、デコード部８は、上記同様に、ステップＳ１０に移ってデコードラインＬ１２をデコードラインＬ１３に更新する。  
以下同様に、各デコードラインＬ１２〜Ｌ１５上でのバーコード９のデコード結果がそれぞれＯＫでなければ、デコード部８は、第３番目乃至第６番目のデコードラインＬ１３〜Ｌ１６の各先頭画素のｘｙ座標（ｘ１３，ｙ１３）〜（ｘ１６，ｙ１６）を、第２番目乃至第５番目のデコードラインＬ１２〜Ｌ１５の各先頭画素のｘｙ座標（ｘ１２，ｙ１２）〜（ｘ１５，ｙ１５）のｙ座標に対してライン間隔Ｓａをオフセット値として加算して求める。そして、デコード部８は、デコードラインＬ１２〜Ｌ１５をそれぞれデコードラインＬ１３〜Ｌ１６に更新する。
【００３６】
なお、図６は多階調画像データ中から例えばｙ方向に対して傾きθをもって抽出されたバーコード候補領域Ｅｃを示す。このようなバーコード候補領域Ｅｃに対してデコード部８は、例えばアフィン等の回転処理を行って第１番目乃至第６番目のデコードラインＬ３１〜Ｌ３６の各先頭画素のｘｙ座標（ｘ３１，ｙ３１）〜（ｘ３６，ｙ３６）を求める。すなわち、デコード部８は、例えば第１番目のデコードラインＬ３１に続くｎ番目の画素を、座標（ｘ３１＋ｎ，ｙ１１）を回転処理して求める。以下、同様に、デコード部８は、例えば第２番目のデコードラインＬ３２に続くｎ番目の画素を、座標（ｘ３２＋ｎ，ｙ１２）を回転処理して求め、第６番目のデコードラインＬ３６に続くｎ番目の画素を、座標（ｘ３６＋ｎ，ｙ１６）を回転処理して求める。
【００３７】
デコード部８は、各デコードラインＬ１３〜Ｌ１６に更新する度に、ステップＳ１１において、各デコードラインＬ１３〜Ｌ１６がバーコード候補領域Ｅａの外であるか否かを判断する。なお、各デコードラインＬ１３〜Ｌ１６は、図３に示すようにバーコード候補領域Ｅａ内にある。
【００３８】
これに対して更新したデコードラインがバーコード候補領域Ｅａ内になければ、デコード部８は、その旨をバーコード領域抽出部７に知らせる。このバーコード領域抽出部７は、ステップＳ１２に移り、バーコード候補領域Ｅａをバーコード候補から除外し、バーコード候補領域Ｅａの抽出数を更新する。すなわち、バーコード領域抽出部７は、バーコード候補領域Ｅａの抽出数が１個以上であれば、バーコード候補領域Ｅａの抽出数を「１」だけ減少する。
【００３９】
そして、バーコード領域抽出部７は、ステップＳ４に移り、バーコード候補領域Ｅａの抽出数が１個以上在るか否かを判断し、ステップＳ５において、バーコード候補領域Ｅａとは別のバーコード候補領域を選択する。以下、上記同様に、別のバーコード候補領域内のバーコード９に対するデコードが行われる。  
なお、バーコード９のデコード結果は、ＣＰＵ１の指令により通信Ｉ／Ｆ４を通して例えばＰＯＳシステム等の外部機器に送られる。
【００４０】
このように上記一実施の形態によれば、商品に１０に付されたバーコード９を含む領域を撮像部５により多階調で撮像し、この撮像により取得された画像データを２値化して取得された２値化画像データからバーコード９に対応するバーコード候補領域Ｅａ等を抽出し、このバーコード候補領域Ｅａ等内に含むバーコード９をデコードするときに、バーコード候補領域Ｅａ等の大きさに応じたライン間隔Ｓａ等に各デコードラインＬ１１〜Ｌ１６等を設定し、これらデコードラインＬ１１〜Ｌ１６からバーコード９をデコードする。  
これにより、バーコード候補領域Ｅａ等のサイズが大きくなっても当該バーコード候補領域Ｅａ等に設定されるのは、予め設定されているライン数Ｎ、例えば６本のデコードラインＬ１１〜Ｌ１６であり、そのライン間隔Ｓａがバーコード候補領域Ｅａ等のサイズによって変わるだけである。しかるに、従来のようにデコードライン間の間隔が固定されていると、バーコード候補領域のサイズが大きくなった場合、デコードラインのライン数が多くなり、デコードの結果がＯＫになるまでに、全てのデコードラインに対してデコードを行うと、バーコード候補領域の全体のデコード処理が終了するまでに長時間掛かる。
【００４１】
これに対して本装置は、デコードの結果がＯＫになるまでに、全てのデコードラインに対してデコードを行ったとしても例えば６本のデコードラインＬ１１〜Ｌ１６上であり、バーコード候補領域Ｅａ等のサイズに関係なく、バーコード９のデコードに時間を要しない。従って、本装置では、バーコード候補領域のサイズが変化しても、バーコード９のデコード効率の向上とデコード処理時間の短縮とができる。
【００４２】
本装置を例えばＰＯＳシステムの電子キャッシュレジスタに用いれば、電子キャッシュレジスタを操作するキャッシャー等によってバーコード９と撮像部５との間の距離等や、バーコード９自体のサイズが異なることによってバーコード候補領域Ｅａ等のサイズが撮像部５の撮像毎にそれぞれ異なることがある。このようにバーコード候補領域Ｅａ等のサイズが異なってもＰＯＳシステムでの登録精算処理においてバーコード９のデコードに要する時間を短くでき、商品１０の登録精算処理の向上を図ることができる。
【００４３】
特に、例えば複数の商品１０に付された複数のバーコード９を読み取って登録精算処理するときに、各バーコード９に対応する各バーコード候補領域Ｅａ等のサイズがそれぞれ異なっていても、全ての商品１０に付された各バーコード９を読み取るに要する全体のデコード時間を短くすることが可能である。
【００４４】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。  
上記一実施の形態では、例えば、デコードラインのライン数Ｎを例えば６本にしているが、これに限らず、他のライン数に設定してもよい。
【００４５】
又、図３に示すようにバーコード候補領域Ｅａに対して各デコードラインＬ１１、Ｌ１２、…、Ｌ１６の順に先頭画素の各ｘｙ座標（ｘ１１，ｙ１１）、（ｘ１１，ｙ１２）、…、（ｘ１１，ｙ１６）を順次決定し、これらｘｙ座標（ｘ１１，ｙ１１）、（ｘ１１，ｙ１２）、…、（ｘ１１，ｙ１６）が決定される毎に各デコードラインＬ１１、Ｌ１２、…、Ｌ１６上でデコードを行っているが、これに限らず、各デコードラインＬ１１、Ｌ１２、…、Ｌ１６の先頭画素の各ｘｙ座標（ｘ１１，ｙ１１）、（ｘ１１，ｙ１２）、…、（ｘ１１，ｙ１６）を一括して決定し、この後に、各デコードラインＬ１１、Ｌ１２、…、Ｌ１６上でデコードを行ってもよい。
【図面の簡単な説明】
【００４６】
【図１】本発明に係るバーコード読み取り装置の一実施の形態を示す構成図。
【図２】同装置におけるバーコード領域抽出部により抽出されたバーコード候補領域内の２値化画像データを示す模式図。
【図３】同装置におけるデコード部により設定したバーコードに対する複数のデコードラインを示す摸式図。
【図４】同装置におけるバーコードの読み取りフローチャート。
【図５】同装置におけるバーコード領域抽出部により抽出されたサイズの小さい別のバーコード候補領域を示す図。
【図６】同装置におけるバーコード領域抽出部により傾きをもって抽出されたバーコード候補領域を示す図。
【符号の説明】
【００４７】
１：ＣＰＵ、２：ＲＯＭ、３：ＲＡＭ、４：通信インタフェース、５：撮像部、６：２値化処理部、７：バーコード領域抽出部、８：デコード部、９：バーコード、１０：商品。
【図１】
2009181219.tif 000003
【図２】
2009181219.tif 000004
【図３】
2009181219.tif 000005
【図４】
2009181219.tif 000006
【図５】
2009181219.tif 000007
【図６】
2009181219.tif 000008