(57)【特許請求の範囲】
【請求項１】
あらかじめ決められた規定バーコード文字数からなっている読み取り対象のバーコードに対してあらかじめ定めた傾斜角度内の傾きを有して取り付けられたバーコード読取装置において、あらかじめ定めた読み取り対象ライン数分だけ同一方向のラインを移動させつつ前記バーコードを撮像したバーコード画像を、あらかじめ定めた順番に前記ラインごとにデコード処理を行った際に、前記バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタが存在する前記ラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＡの中に、前記バーコードの終了文字パターンである'Ｓｔｏｐ'キャラクタが存在していない場合、前記'Ｓｔｏｐ'キャラクタが存在する他のラインを検索し、検索した前記'Ｓｔｏｐ'キャラクタが存在する該他のラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＢの中に前記'Ｓｔａｒｔ'キャラクタが検出されなかった場合に、前記規定バーコード文字数から前記バーコードキャラクタＡの文字数を差引いた文字数よりも１個だけ多い文字数が前記バーコードキャラクタＢとしてデコードされた時点で、当該他のラインにおけるデコード処理を打ち切り、検索した前記'Ｓｔｏｐ'キャラクタが存在する該他のラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＢの中に前記'Ｓｔａｒｔ'キャラクタが検出されなかった場合であって、かつ、前記バーコードキャラクタＡの文字数と前記バーコードキャラクタＢの文字数との合計が、前記規定バーコード文字数を上回り、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの間で重複する文字領域が存在することが判明した場合には、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの前記重複する文字領域内にある１個のキャラクタが同じキャラクタであるか否かを確認し、同じキャラクタであった場合は、前記重複する文字領域内にある該１個のキャラクタを利用して、前記バーコードキャラクタＡと前記バーコードキャラクタＢとを連結して、前記規定バーコード文字数の文字数からなるバーコードを取得することを特徴とするバーコード読取装置。
【請求項２】
前記'Ｓｔｏｐ'キャラクタが存在する前記他のラインをデコードする際に当該他のライン上をスキャンする方向が、前記'Ｓｔａｒｔ'キャラクタが存在する前記ラインをデコードする際に当該ライン上をスキャンする方向と逆の方向とし、前記バーコードキャラクタＢ、前記バーコードキャラクタＡとしてデコードされるそれぞれのキャラクタを、それぞれ、前記'Ｓｔｏｐ'キャラクタ、前記'Ｓｔａｒｔ'キャラクタの後に引き続いてデコードされるキャラクタとして検出することを特徴とする請求項１に記載のバーコード読取装置。
【請求項３】
前記'Ｓｔｏｐ'キャラクタが存在する前記他のラインをデコードする際に当該他のライン上をスキャンする方向が、前記'Ｓｔａｒｔ'キャラクタが存在する前記ラインをデコードする際に当該ライン上をスキャンする方向とは逆の方向であった場合、前記バーコードキャラクタＡと前記バーコードキャラクタＢとを連結して前記規定バーコード文字数の文字数からなるバーコードを取得する際に、前記バーコードキャラクタＢの前記重複する文字領域のキャラクタを削除し、該重複する文字領域のキャラクタが削除された前記バーコードキャラクタＢの並び順を逆順に並べ替えた後、前記バーコードキャラクタＡと連結することを特徴とする請求項２に記載のバーコード読取装置。
【請求項４】
前記読み取り対象ライン数分だけ同一方向のラインを移動させつつ前記バーコードを撮像した前記バーコード画像を、複数、メモリに保存している場合、複数の前記バーコード画像それぞれについてバーコードのデコード処理を行って前記規定バーコード文字数の文字数からなるバーコードそれぞれを取得し、取得した各バーコードについて一致しているか否かを比較し、一致していた場合に、正しくデコードされたものと判定することを特徴とする請求項１ないし３のいずれかに記載のバーコード読取装置。
【請求項５】
あらかじめ決められた規定バーコード文字数からなっている読み取り対象のバーコードに対してあらかじめ定めた傾斜角度内の傾きを有して取り付けられたバーコード読取装置におけるバーコード読み取り方法であって、あらかじめ定めた読み取り対象ライン数分だけ同一方向のラインを移動させつつ前記バーコードを撮像したバーコード画像を、あらかじめ定めた順番に前記ラインごとにデコード処理を行った際に、前記バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタが存在する前記ラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＡの中に、前記バーコードの終了文字パターンである'Ｓｔｏｐ'キャラクタが存在していない場合、前記'Ｓｔｏｐ'キャラクタが存在する他のラインを検索し、検索した前記'Ｓｔｏｐ'キャラクタが存在する該他のラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＢの中に前記'Ｓｔａｒｔ'キャラクタが検出されなかった場合に、前記規定バーコード文字数から前記バーコードキャラクタＡの文字数を差引いた文字数よりも１個だけ多い文字数が前記バーコードキャラクタＢとしてデコードされた時点で、当該他のラインにおけるデコード処理を打ち切り、検索した前記'Ｓｔｏｐ'キャラクタが存在する該他のラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＢの中に前記'Ｓｔａｒｔ'キャラクタが検出されなかった場合であって、かつ、前記バーコードキャラクタＡの文字数と前記バーコードキャラクタＢの文字数との合計が、前記規定バーコード文字数を上回り、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの間で重複する文字領域が存在することが判明した場合には、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの前記重複する文字領域内にあるキャラクタが同じキャラクタであるか否かを確認し、同じキャラクタであった場合は、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの前記重複する文字領域内にある１個のキャラクタが同じキャラクタであるか否かを確認し、同じキャラクタであった場合は、前記重複する文字領域内にある該１個のキャラクタを利用して、前記バーコードキャラクタＡと前記バーコードキャラクタＢとを連結して、前記規定バーコード文字数の文字数からなるバーコードを取得することを特徴とするバーコード読み取り方法。
【請求項６】
前記'Ｓｔｏｐ'キャラクタが存在する前記他のラインをデコードする際に当該他のライン上をスキャンする方向が、前記'Ｓｔａｒｔ'キャラクタが存在する前記ラインをデコードする際に当該ライン上をスキャンする方向と逆の方向とし、前記バーコードキャラクタＢ、前記バーコードキャラクタＡとしてデコードされるそれぞれのキャラクタを、それぞれ、前記'Ｓｔｏｐ'キャラクタ、前記'Ｓｔａｒｔ'キャラクタの後に引き続いてデコードされるキャラクタとして検出することを特徴とする請求項５に記載のバーコード読み取り方法。
【請求項７】
前記'Ｓｔｏｐ'キャラクタが存在する前記他のラインをデコードする際に当該他のライン上をスキャンする方向が、前記'Ｓｔａｒｔ'キャラクタが存在する前記ラインをデコードする際に当該ライン上をスキャンする方向とは逆の方向であった場合、前記バーコードキャラクタＡと前記バーコードキャラクタＢとを連結して前記規定バーコード文字数の文字数からなるバーコードを取得する際に、前記バーコードキャラクタＢの前記重複する文字領域のキャラクタを削除し、該重複する文字領域のキャラクタが削除された前記バーコードキャラクタＢの並び順を逆順に並べ替えた後、前記バーコードキャラクタＡと連結することを特徴とする請求項６に記載のバーコード読み取り方法。
【請求項８】
請求項５ないし７のいずれかに記載のバーコード読み取り方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とするバーコード読み取りプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラムに関し、特に、傾きがあるバーコードを読み取ることが可能なバーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラムに関する。
【背景技術】
【０００２】
現在までのバーコード読取装置として、カメラにて取得されるバーコード画像の傾き補正を行わないバーコード読取装置においては、スキャン機構の搭載位置が読み取り対象のバーコードの想定の位置から外れると、バーコードの読み取りに失敗するため、バーコードを複数ラインスキャンすることにより撮像したバーコード画像を確実に取得することができるようにするのみならず、あらかじめ、組み込み時や機械設計時に、バーコード読取装置を高精度に傾かないように取り付けることが必要であった。
【０００３】
現状のバーコード読取装置における課題を図２の模式図を参照して説明する。図２は、画像の傾き補正を行わない現状のバーコード読取装置の課題を説明するための模式図であり、バーコード読取装置が、画像読み取り対象の一次元バーコードに対して傾斜角度αの傾きを持って配置されている場合を示している。
【０００４】
図２の模式図に示すように、スキャンライン１，２，３，…，Ｎのいずれについても、水平方向のスキャン画像に、画像読み取り対象のバーコード全体が掛かっていないような場合、例えば、特許文献１の特開２０００−２５９７５９号公報「バーコード読取装置、方法およびプログラムを記憶した記憶媒体」や特許文献２の特開平９−１６７０８号公報「シンボル情報読取り装置」のように、読み取り対象の画像全体を取得して、傾き補正をしなければ、バーコードのデコードを行うことができなかった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２５９７５９号公報（第７−８頁）
【特許文献２】特開平９−１６７０８号公報（第４−７頁）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、現状のバーコード読取装置において、傾きがあるバーコードをデコードする際には、次のような課題がある。
【０００７】
第１の課題は、実装スペースの問題やコストの関係から、バーコード読取装置のメモリ容量が少ない場合、画像の傾き補正を行うために必要十分なメモリ領域を確保することができない。
【０００８】
第２の課題は、画像の傾き補正を行う場合には、高速のデコード処理能力が必要であり、バーコード読取装置のコストやデコード処理時間において不利である。
【０００９】
（本発明の目的）
本発明は、かかる事情に鑑みてなされたものであり、組み込み時に機械的に或る程度の範囲内の傾斜角度で読み取り対象のバーコードに対して傾いた状態で取り付けられた場合であっても、文字数があらかじめ決まっているバーコードについては、傾き補正を行うことなく読み取ることが可能な仕組みを、安価な構成で実装スペースとして小さく実現することができるバーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラムを提供することを、その目的としている。
【課題を解決するための手段】
【００１０】
前述の課題を解決するため、本発明によるバーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラムは、次のような特徴的な構成を採用している。
【００１１】
（１）本発明によるバーコード読取装置は、あらかじめ決められた規定バーコード文字数からなっている読み取り対象のバーコードに対してあらかじめ定めた傾斜角度内の傾きを有して取り付けられたバーコード読取装置であって、あらかじめ定めた読み取り対象ライン数分だけ同一方向のラインを移動させつつ前記バーコードを撮像したバーコード画像を、あらかじめ定めた順番に前記ラインごとにデコード処理を行った際に、前記バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタが存在する前記ラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＡの中に、前記バーコードの終了文字パターンである'Ｓｔｏｐ'キャラクタが存在していない場合、前記'Ｓｔｏｐ'キャラクタが存在する他のラインを検索し、検索した前記'Ｓｔｏｐ'キャラクタが存在する該他のラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＢの中に前記'Ｓｔａｒｔ'キャラクタが検出されなかった場合であって、かつ、前記バーコードキャラクタＡの文字数と前記バーコードキャラクタＢの文字数との合計が、前記規定バーコード文字数を上回り、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの間で重複する文字領域が存在することが判明した場合には、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの前記重複する文字領域内にあるキャラクタが同じキャラクタであるか否かを確認し、同じキャラクタであった場合は、前記重複する文字領域内にある該キャラクタを利用して、前記バーコードキャラクタＡと前記バーコードキャラクタＢとを連結して、前記規定バーコード文字数の文字数からなるバーコードを取得することを特徴とする。
【００１２】
（２）本発明によるバーコード読み取り方法は、あらかじめ決められた規定バーコード文字数からなっている読み取り対象のバーコードに対してあらかじめ定めた傾斜角度内の傾きを有して取り付けられたバーコード読取装置におけるバーコード読み取り方法であって、あらかじめ定めた読み取り対象ライン数分だけ同一方向のラインを移動させつつ前記バーコードを撮像したバーコード画像を、あらかじめ定めた順番に前記ラインごとにデコード処理を行った際に、前記バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタが存在する前記ラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＡの中に、前記バーコードの終了文字パターンである'Ｓｔｏｐ'キャラクタが存在していない場合、前記'Ｓｔｏｐ'キャラクタが存在する他のラインを検索し、検索した前記'Ｓｔｏｐ'キャラクタが存在する該他のラインにおいてデコードされたキャラクタ群を意味するバーコードキャラクタＢの中に前記'Ｓｔａｒｔ'キャラクタが検出されなかった場合であって、かつ、前記バーコードキャラクタＡの文字数と前記バーコードキャラクタＢの文字数との合計が、前記規定バーコード文字数を上回り、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの間で重複する文字領域が存在することが判明した場合には、前記バーコードキャラクタＡと前記バーコードキャラクタＢとの前記重複する文字領域内にあるキャラクタが同じキャラクタであるか否かを確認し、同じキャラクタであった場合は、前記重複する文字領域内にある該キャラクタを利用して、前記バーコードキャラクタＡと前記バーコードキャラクタＢとを連結して、前記規定バーコード文字数の文字数からなるバーコードを取得することを特徴とする。
【００１３】
（３）本発明によるバーコード読み取りプログラムは、上記（２）に記載のバーコード読み取り方法を、コンピュータによって実行可能なプログラムとして実施していることを特徴とする。
【発明の効果】
【００１４】
本発明のバーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラムによれば、以下のような効果を奏することができる。
【００１５】
第１の効果は、組み込み時に、読み取り対象のバーコードに対して或る程度の範囲内の傾斜角度で傾いて取り付けられたバーコード読取装置であっても、つまり、傾いた状態で取り付けられたバーコード読取装置にて該バーコードを撮像してメモリ内に保存したバーコード画像が傾いていたとしても、読み取り対象のバーコードの文字数があらかじめ決められた規定バーコード文字数であれば、メモリ内のバーコード画像の傾き補正をすることなしに、正しいバーコードをデコードすることができるため、メモリとして十分なメモリ領域を確保しなくても良くなり、実装スペースとして小型化が可能であり、かつ、コストの低減を図ることができるという効果が得られることである。
【００１６】
第２の効果は、バーコードを撮像してメモリ内に保存したバーコード画像の傾き補正を行わないバーコード読取装置として、従来技術とは異なり、組み込み時や機械設計時にバーコード読取装置を高精度に取り付けることが不要になり、バーコード読取装置の構成を安価な構成とすることができるという効果が得られることである。
【図面の簡単な説明】
【００１７】
【図１】本発明に係るバーコード読取装置のブロック構成の一例を示すブロック構成図である。
【図２】画像の傾き補正を行わない現状のバーコード読取装置の課題を説明するための模式図である。
【図３】図１に示した媒体上のバーコードを読み取ってメモリ内に保存したバーコード画像の輝度を黒白に２値化した輝度分布状態を模式的に示すグラフである。
【図４】図１のバーコード読取装置がメモリに保存したバーコード画像のデコード処理を行う動作の一例を説明するフローチャートである。
【図５】図１のバーコード読取装置がメモリに保存したバーコード画像のデコード処理を行う動作の他の例を説明するフローチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明によるバーコード読取装置、バーコード読み取り方法およびバーコード読み取りプログラムの好適な実施形態について添付図を参照して説明する。なお、以下の説明においては、本発明によるバーコード読取装置およびバーコード読み取り方法について説明するが、かかるバーコード読み取り方法をコンピュータにより実行可能なバーコード読み取りプログラムとして実施するようにしても良いし、あるいは、バーコード読み取りプログラムをコンピュータにより読み取り可能な記録媒体に記録するようにしても良いことは言うまでもない。
【００１９】
（本発明の特徴）
本発明の実施形態の説明に先立って、本発明の特徴についてその概要をまず説明する。本発明は、或る程度の範囲内で傾いた状態で取り付けられたバーコード読取装置にて、あらかじめ定めた限られた複数本だけ同一方向（例えば水平方向）のラインスキャンを行うことによって、文字数があらかじめ決まっているバーコードを読み取った場合に、撮影されたバーコード画像が、従来技術では、傾き補正を行わないと、バーコードのデコードを行うことができない場合であっても、傾き補正を行うことなく、かつ、再び、バーコードをスキャンすることもなく、スキャン済みのデータを用いて、バーコードのデコード処理を行うことを可能とする仕組みを実現することを特徴としている。
【００２０】
より具体的には、本発明は、次のような仕組みを実現している。すなわち、スキャン機構にて、複数本の位置が異なる同一方向（例えば水平方向）にラインスキャンすることによってバーコード画像を取得してメモリ等に保存した後に、該複数本のラインからなるバーコード画像を用いて、あらかじめ決めた順番に、傾きがあるバーコード画像のデコードを開始し、開始文字パターン'Ｓｔａｒｔ'キャラクタが検出されたライン上に終了文字パターン'Ｓｔｏｐ'キャラクタが存在していない場合、当該ラインにてデコードすることができたキャラクタ群であるバーコードキャラクタＡとデコードすることができた文字数Ａ（num）とを記憶しておく。
【００２１】
しかる後、開始文字パターン'Ｓｔａｒｔ'キャラクタが検出されたラインとは位置の異なる他のラインにて終了文字パターン'Ｓｔｏｐ'キャラクタを検出した際に、今度は、該終了文字パターン'Ｓｔｏｐ'キャラクタが検出された他のライン上に開始文字パターン'Ｓｔａｒｔ'キャラクタが存在していなかった場合、当該他のラインにてデコードすることができたキャラクタ群であるバーコードキャラクタＢとデコードすることができた文字数Ｂ（num）とを記憶する。
【００２２】
ここで、読み取り対象のバーコードについて、あらかじめ決まっている規定バーコード文字数をＮとした場合、まず、バーコードキャラクタＡの文字数Ａ（num）とバーコードキャラクタＢの文字数Ｂ（num）との合計文字数が、規定バーコード文字数よりも大きいか否かを確認する。大きくなかった場合は、さらに異なるラインのバーコード画像を用いて、前述のようなバーコードキャラクタＡまたはバーコードキャラクタＢに関するデコード処理を繰り返す。
【００２３】
バーコードキャラクタＡの文字数Ａ（num）とバーコードキャラクタＢの文字数Ｂ（num）との合計文字数が、規定バーコード文字数よりも大きかった場合は、バーコードキャラクタＡとバーコードキャラクタＢとには重複する文字領域が存在している場合であり、バーコードキャラクタＡとバーコードキャラクタＢとのそれぞれの重複する文字領域に存在するキャラクタ同士を比較する。両者が一致していた場合、一致していた当該重複する文字領域のキャラクタを利用して、バーコードキャラクタＡとバーコードキャラクタＢとから正常なバーコードを生成することができるものと判断する。すなわち、重複する文字領域に存在するそれぞれの同一のキャラクタを重ね合わせるようにして、バーコードキャラクタＡとバーコードキャラクタＢとを連結することによって、規定バーコード文字数Ｎの文字数からなるバーコードを一意に生成することができる。
【００２４】
なお、既に、メモリ上に複数のバーコード画像が存在する場合は、前述のようなバーコードキャラクタＡおよびバーコードキャラクタＢに関するデコード処理を、複数のバーコード画像について実施して、同一のバーコードが得られるか否かを照合することにより、デコード処理の正常性をさらに確認するようにしても良い。
【００２５】
（本発明の実施形態の構成例）
次に、本発明に係るバーコード読取装置の構成について、その一例を、図１のブロック構成図を用いて説明する。図１は、本発明に係るバーコード読取装置のブロック構成の一例を示すブロック構成図であり、当該バーコード読取装置が、磁気テープライブラリ装置のハンド機構（磁気テープ媒体の出し入れを操作する機構）に搭載されていて、磁気テープ媒体に貼付された一次元バーコードをバーコード画像として撮像してデコードする場合を例にとって示している。なお、磁気テープライブラリ装置そのものは、当業者に良く知られた通常の磁気テープライブラリ装置で構わなく、本発明に係るバーコード読取装置の使用形態の一例を示しているだけであって、本発明に係るバーコード読取装置とは直接関係しないので、磁気テープライブラリ装置の詳細な構成の説明は、ここでは省略する。
【００２６】
図１において、図１（Ａ）は、媒体３０上に読み取り対象のバーコード４０が貼付されている様子を示し、図１（Ｂ）は、磁気テープライブラリ装置のハンド機構１０のブロック構成を示している。図１（Ａ）のバーコード４０は、図１（Ｂ）のハンド機構１０に搭載されているバーコード読取装置２０のカメラ２３により撮像され、演算装置２１によりデコードされる。図１（Ｂ）に示すように、ハンド機構１０に搭載されたバーコード読取装置２０は、演算装置２１、メモリ２２、カメラ２３を少なくとも備えている他、媒体３０上に貼付されたバーコード４０を照射するための光源２４も備えている。
【００２７】
ここで、媒体３０上に貼付されたバーコード４０の文字数は、バーコードとしてあらかじめ決められた規定バーコード文字数Ｎであり、バーコード読取装置２０は、該規定バーコード文字数Ｎの一次元バーコードを認識してデコードする機構を備えている。なお、媒体３０上のバーコード４０は、バーコード読取装置２０のカメラ２３によってバーコード画像として撮像されて、メモリ２２に保存される。したがって、バーコード読取装置２０の演算装置２１は、メモリ２２に保存されているバーコード画像を読み出して、一次元バーコードの認識処理を実施して、規定バーコード文字数Ｎ分のキャラクタを識別するデコード処理を行う。
【００２８】
また、ハンド機構１０に搭載されるバーコード読取装置２０は、取り付け時に、磁気テープライブラリ装置の保管棚に載置されている媒体３０に対して、正対している状態にはなく、あらかじめ定めた範囲内の傾斜角度αだけいずれかの方向に傾斜した状態で、機械的に固定されており、媒体３０上に貼付されたバーコード４０を或る同一方向（例えば水平方向）にスキャンして撮像されたバーコード画像は、傾斜角度αだけ傾いた状態で、メモリ２２に保存される。
【００２９】
つまり、画像の傾き補正を行わない現状のバーコード読取装置の課題を説明するための模式図として図２にて説明したように、バーコード読取装置２０のスキャンラインが、画像読み取り対象のバーコード４０に対して傾斜角度αだけ傾きを持って配置されることになる。
【００３０】
なお、図２には、バーコード読取装置２０に取り付けられたカメラ２３によって撮像されたバーコード４０の全画像領域のバーコード画像を示しているが、実際には、メモリ２２に保存することが可能な画像データ量の限界から、バーコード４０の全画像領域から適宜間引いた状態で保存されることになり、図２の横方向の破線にて示しているライン１、ライン２、ライン３、…、ラインＭのＭ本分に相当する複数本の限られたライン数（読み取り対象ライン数Ｍ）に対応するバーコード画像のみが、メモリ２２に保存される。なお、ライン１、ライン２、ライン３、…、ラインＭは、バーコード読取装置２０の演算装置２１にてバーコード４０のデコード処理を行う際のバーコードラインの位置を示している。
【００３１】
図３は、図１に示した媒体３０上のバーコード４０を読み取ってメモリ２２内に保存したバーコード画像の輝度を黒白に２値化した輝度分布状態を模式的に示すグラフである。図３（Ａ）は、バーコードライン位置が図２に示したライン１におけるバーコード画像の２値化分布を示し、右から左方向に向かって、'Ｓｔａｒｔ'、'ａ'、'ｂ'の３つの文字パターンが、バーコードキャラクタＡ(chara)としてデコードされる場合を示している。また、図３（Ｂ）は、バーコードライン位置が図２に示したライン４におけるバーコード画像の２値化分布を示し、右から左方向に向かって、'ｂ'、'ｃ'、'ｄ'、'ｅ'、'Ｓｔｏｐ'の５つの文字パターンが、バーコードキャラクタＢ(chara)としてデコードされる場合を示している。
【００３２】
なお、図２に示したように、本実施形態においては、ライン１、ライン２、ライン３、…、ラインＭの読み取り対象ライン数Ｍ本分のバーコード画像がメモリ２２に保存されているが、演算装置２１がデコード処理を行う際に、バーコードライン位置のあらかじめ決められた順番に（例えば若番側から）順次バーコード画像を取り出して、一次元バーコードの'Ｓｔａｒｔ'または'Ｓｔｏｐ'を示す開始文字パターンまたは終了文字パターンが存在するラインを検出し、かつ、検出された該ライン上をスキャンしてデコードすることができたキャラクタ群の中に、検出された'Ｓｔａｒｔ'または'Ｓｔｏｐ'を示す開始文字パターンまたは終了文字パターンとは反対側に位置する、一次元バーコードの'Ｓｔｏｐ'または'Ｓｔａｒｔ'を示す終了文字パターンまたは開始文字パターンが存在していなかった場合、該ライン上をスキャンしてデコードすることができたキャラクタ群を、バーコードキャラクタＡ(chara)として記憶する。
【００３３】
一方、複数本のラインからなるバーコード画像において、検出された'Ｓｔａｒｔ'または'Ｓｔｏｐ'を示す開始文字パターンまたは終了文字パターンとは反対側に位置する、一次元バーコードの'Ｓｔｏｐ'または'Ｓｔａｒｔ'を示す終了文字パターンまたは開始文字パターンが存在するラインを検出した場合において、検出された該ライン上をスキャンしてデコードすることができたキャラクタ群の中に、検出された'Ｓｔｏｐ'または'Ｓｔａｒｔ'を示す終了文字パターンまたは開始文字パターンとは反対側に位置する、一次元バーコードの'Ｓｔａｒｔ'または'Ｓｔｏｐ'を示す開始文字パターンまたは終了文字パターンが存在していなかった場合、該ライン上をスキャンしてデコードすることができたキャラクタ群を、バーコードキャラクタＢ(chara)として記憶する。
【００３４】
つまり、図３においては、図３（Ａ）が、一次元バーコードの'Ｓｔａｒｔ'を示す開始文字パターンが最初に検出されたラインが、ライン１であり、バーコードキャラクタＡ(chara)として、'Ｓｔａｒｔ'、'ａ'、'ｂ'をデコードした場合を示し、図３（Ｂ）が、一次元バーコードの'Ｓｔｏｐ'を示す終了文字パターンが最初に検出されたラインが、ライン４であり、バーコードキャラクタＢ(chara)として、'ｂ'、'ｃ'、'ｄ'、'ｅ''Ｓｔｏｐ'をデコードした場合を示している。
【００３５】
（実施形態の動作の説明）
次に、図１ないし図３において説明したバーコード読取装置の動作について、その一例を、図４、図５のフローチャートを用いてさらに詳細に説明する。図４は、図１のバーコード読取装置２０がメモリ２２に保存したバーコード画像のデコード処理を行う動作の一例を説明するフローチャートであり、図３（Ａ）に示したバーコードキャラクタＡをデコードする場合を示している。また、図５は、図１のバーコード読取装置２０がメモリ２２に保存したバーコード画像のデコード処理を行う動作の他の例を説明するフローチャートであり、図４に示すフローチャートに引き続いて動作するものであり、図３（Ｂ）に示したバーコードキャラクタＢをデコードする場合を示している。
【００３６】
なお、図４、図５のフローチャートにおいては、図２に示すように、バーコード読取装置２０が取り付けられた傾斜角度αが、反時計方向であり、カメラ２３によって撮像される媒体３０のバーコード４０が、右肩上がりの傾いた状態で撮像されて、傾きがあるバーコード画像としてメモリ２２に保存されている場合を示している。つまり、例えばバーコードライン位置の若番側から順次バーコード画像を取り出して、デコードを行う際に、最初に、'Ｓｔａｒｔ'を示す開始文字パターンが検出され、しかる後に、'Ｓｔｏｐ'を示す終了文字パターンが検出される場合を示している。
【００３７】
ここで、前述したように、図１のバーコード読取装置２０は、カメラ２３にて、図２のように、複数（１〜Ｍ）個の異なるバーコードライン位置で、同一方向（例えば水平方向）にラインスキャンすることによって、媒体３０上のバーコード４０を、複数本（Ｍ本）のラインからなるバーコード画像として取得して、メモリ２２に保存している。また、メモリ２２に保存されるバーコード画像は、図２に示したように、それぞれのライン１〜Ｍのバーコード画像の輝度について、演算装置２１にて黒白の２値化判定処理を行うことにより、黒白２値化情報として保存されている。
【００３８】
まず、図４のフローチャートを用いて、バーコード読取装置２０の演算装置２１が行うバーコード画像のデコード処理について説明する。まず、メモリ２２に保存されているバーコード画像をあらかじめ定めた順番として例えばバーコードライン位置の若番側から順次取り出すために、ライン番号を示すラインＬ（変数）に'１'を初期設定する（ステップＳ１）。次に、ラインＬが示すバーコードライン位置のバーコード画像をメモリ２２から取り出して、該バーコード画像に開始文字パターンである'Ｓｔａｒｔ'が存在しているか否かを確認するために、該バーコード画像のあらかじめ決めた一定方向例えば右端から左方向に向かってバーコードのデコード処理を行う（ステップＳ２）。
【００３９】
次いで、デコード処理結果、'Ｓｔａｒｔ'のキャラクタが検出されたか否かを確認する（ステップＳ３）。'Ｓｔａｒｔ'キャラクタが検出されなかった場合は（ステップＳ３のＮｏ）、バーコード画像の次のラインのキャラクタをデコードするために、まず、ラインＬ（変数）が読み取り対象ライン数Ｍよりも小さい値か否かを確認し（ステップＳ４）、小さい値であった場合は（ステップＳ４のＹｅｓ）、まだ、デコードすべき次のラインが残っているので、ラインＬ（変数）に'１'を加えて、バーコード画像の次のバーコードライン位置に移行した後（ステップＳ５）、ステップＳ２に戻って、同様の'Ｓｔａｒｔ'キャラクタ検出処理を繰り返す。
【００４０】
また、ラインＬ（変数）が読み取り対象ライン数Ｍ以上の値であった場合は（ステップＳ４のＮｏ）、デコードすべき次のラインが残っていないので、メモリ２２に保存されているバーコード画像からは'Ｓｔａｒｔ'キャラクタを検出することができなく、バーコードが存在していないものと看做して、デコードしたバーコードキャラクタＡの文字数を示す変数Ａ(num)を'０'に設定し、デコードしたバーコードキャラクタＡを格納する変数Ａ(chara)を"Ｎｕｌｌ"に設定して（ステップＳ１２）、ステップＳ１４に移行する。
【００４１】
また、ステップＳ３において、'Ｓｔａｒｔ'キャラクタが検出された場合は（ステップＳ３のＹｅｓ）、'Ｓｔａｒｔ'キャラクタ以降に引き続くバーコードのキャラクタを読み取るために、当該ラインＬが示すバーコード画像のバーコードライン位置において、左側方向に次のキャラクタのデコードを試みて（ステップＳ６）、デコード結果として有意な次のキャラクタが得られたか否かを確認する（ステップＳ７）。
【００４２】
デコード結果として有意な次のキャラクタが得られた場合は（ステップＳ７のＹｅｓ）、当該キャラクタを、バーコード画像の'Ｓｔａｒｔ'キャラクタが検出されたバーコードライン位置に存在している次の文字パターンとして確定して、デコードしたバーコードキャラクタＡの文字数を示す変数Ａ(num)をカウントアップするとともに、デコードしたバーコードキャラクタＡを格納する変数Ａ(chara)に確定した当該キャラクタを格納する（ステップＳ８）。
【００４３】
しかる後、確定したキャラクタが、バーコードの終了文字パターンである'Ｓｔｏｐ'キャラクタであったか否かを確認して（ステップＳ９）、'Ｓｔｏｐ'キャラクタであった場合には（ステップＳ９のＹｅｓ）、当該ラインＬが示すバーコード画像において、バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタから終了文字パターンである'Ｓｔｏｐ'キャラクタまでの一連のバーコードのデコードが完了した場合である。
【００４４】
したがって、バーコードキャラクタＡとして格納された変数Ａ(chara)を、正常なバーコードデータとして確定して（ステップＳ１０）、バーコードデコード処理が成功した旨を示す'ＯＫ'表示を付して、デコード処理を終了する（ステップＳ１１）。
【００４５】
また、ステップＳ９において、確定したキャラクタが、'Ｓｔｏｐ'キャラクタではなかった場合は（ステップＳ９のＮｏ）、ステップＳ６に戻って、当該ラインＬが示すバーコード画像のバーコードライン位置において、さらに以降に続くバーコードのキャラクタを読み取る動作を繰り返す。
【００４６】
一方、ステップＳ７において、以降に続くバーコードのキャラクタを読み取る動作を行っても、デコード結果として有意な次のキャラクタが得られなかった場合は（ステップＳ７のＮｏ）、メモリ２２に保存されているバーコード画像には傾きがあるために、開始文字パターンである'Ｓｔａｒｔ'キャラクタが存在していた当該ラインＬが示すバーコード画像のバーコードライン位置には、バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタは存在しているものの、バーコードの終了文字パターンである'Ｓｔｏｐ'キャラクタが存在していなかったものと看做す。
【００４７】
而して、開始文字パターンである'Ｓｔａｒｔ'キャラクタを検出した当該ラインＬが示すバーコード画像のバーコードライン位置にて、正常にデコードされたキャラクタをバーコードキャラクタＡとして確定するために、それまでに正常にデコードしたキャラクタが格納されている変数Ａ(chara)の内容とデコードしたキャラクタの文字数が格納されている変数Ａ(num)とをバーコードキャラクタＡとして確定する(ステップＳ１３)。
【００４８】
しかる後、当該ラインＬ（変数）を、図４のデコード処理における最終ラインを示す情報として、次の処理に引き継ぐための引継ぎ変数βに設定した後（ステップＳ１４）、図５に示すフローチャートへ移行する（ステップＳ１５）。
【００４９】
次に、図５のフローチャートを用いて、バーコード読取装置２０の演算装置２１が行うバーコード画像のデコード処理として図４に引き継ぐ処理について説明する。まず、図４のデコード処理で対象とした最終ラインの次のラインから、'Ｓｔｏｐ'キャラクタの検出処理を開始するために、図４のデコード処理における最終ラインを示す情報を引き継ぎ変数βから取り出して、該最終ラインに'１'を加えた結果を、ライン番号を示すラインＬ（変数）に設定する（ステップＳ２１）。次に、ラインＬが示すバーコードライン位置のバーコード画像をメモリ２２から取り出して、該バーコード画像に終了文字パターンである'Ｓｔｏｐ'が存在しているか否かを確認するために、図４におけるデコード方向（あらかじめ決めた一定方向）とは逆向きに、該バーコード画像の左端から右方向に向かってバーコードのデコード処理を行う（ステップＳ２２）。
【００５０】
次いで、デコード処理結果、'Ｓｔｏｐ'のキャラクタが検出されたか否かを確認する（ステップＳ２３）。'Ｓｔｏｐ'キャラクタが検出されなかった場合は（ステップＳ２３のＮｏ）、バーコード画像の次のラインのキャラクタをデコードするために、まず、ラインＬ（変数）が読み取り対象ライン数Ｍよりも小さい値か否かを確認し（ステップＳ２４）、小さい値であった場合は（ステップＳ２４のＹｅｓ）、まだ、デコードすべき次のラインが残っているので、ラインＬ（変数）に'１'を加えて、バーコード画像の次のバーコードライン位置に移行した後（ステップＳ２５）、ステップＳ２２に戻って、同様の'Ｓｔｏｐ'キャラクタ検出処理を繰り返す。
【００５１】
また、ラインＬ（変数）が読み取り対象ライン数Ｍ以上の値であった場合は（ステップＳ２４のＮｏ）、デコードすべき次のラインが残っていないので、メモリ２２に保存されているバーコード画像からは終了文字パターンの'Ｓｔｏｐ'キャラクタを検出することができなく、開始文字パターンの'Ｓｔａｒｔ'キャラクタのみが検出された異常なバーコードが存在していたものと看做して、デコード処理が失敗した旨の表示を設定して、デコード処理を終了する（ステップＳ３２）。
【００５２】
また、ステップＳ２３において、'Ｓｔｏｐ'キャラクタが検出された場合は（ステップＳ２３のＹｅｓ）、'Ｓｔｏｐ'キャラクタ以前に遡って続いているバーコードのキャラクタを読み取るために、当該ラインＬが示すバーコード画像のバーコードライン位置において、引き続いて右側方向に次のキャラクタのデコードを試みて（ステップＳ２６）、デコード結果として有意な次のキャラクタが得られたか否かを確認する（ステップＳ２７）。
【００５３】
デコード結果として有意な次のキャラクタが得られた場合は（ステップＳ２７のＹｅｓ）、当該キャラクタを、バーコード画像の'Ｓｔｏｐ'キャラクタが検出されたバーコードライン位置に存在している次の文字パターンとして確定して、デコードしたバーコードキャラクタＢの文字数を示す変数Ｂ(num)をカウントアップするとともに、デコードしたバーコードキャラクタＢを格納する変数Ｂ(chara)に確定した当該キャラクタを格納する（ステップＳ２８）。
【００５４】
しかる後、確定したキャラクタが、バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタであったか否かを確認して（ステップＳ２９）、'Ｓｔａｒｔ'キャラクタであった場合には（ステップＳ２９のＹｅｓ）、当該ラインＬが示すバーコード画像において、バーコードの終了文字パターンである'Ｓｔｏｐ'から逆に遡ってキャラクタ開始文字パターンである'Ｓｔａｒｔ'キャラクタまでの一連のバーコードのデコードが完了した場合である。
【００５５】
したがって、バーコードキャラクタＢとして格納された変数Ｂ(chara)を、正常なバーコードデータとして確定して（ステップＳ３０）、バーコードデコード処理が成功した旨を示す'ＯＫ'表示を付して、デコード処理を終了する（ステップＳ３１）。
【００５６】
また、ステップＳ２９において、確定したキャラクタが、'Ｓｔａｒｔ'キャラクタではなかった場合は（ステップＳ２９のＮｏ）、ステップＳ２６に戻って、当該ラインＬが示すバーコード画像のバーコードライン位置において、さらに以降に続くバーコードのキャラクタを読み取る動作を繰り返す。
【００５７】
一方、ステップＳ２７において、以降に続くバーコードのキャラクタを読み取る動作を行っても、デコード結果として有意な次のキャラクタが得られなかった場合は（ステップＳ２７のＮｏ）、メモリ２２に保存されているバーコード画像には傾きがあるために、終了文字パターンである'Ｓｔｏｐ'キャラクタが存在していた当該ラインＬが示すバーコード画像のバーコードライン位置には、バーコードの終了文字パターンである'Ｓｔｏｐ'キャラクタは存在しているものの、バーコードの開始文字パターンである'Ｓｔａｒｔ'キャラクタが存在していなかったものと看做す。
【００５８】
而して、終了文字パターンである'Ｓｔｏｐ'キャラクタを検出した当該ラインＬが示すバーコード画像のバーコードライン位置にて、正常にデコードされたキャラクタをバーコードキャラクタＢとして確定するために、それまでに正常にデコードしたキャラクタが格納されている変数Ｂ(chara)の内容とデコードしたキャラクタの文字数が格納されている変数Ｂ(num)とをバーコードキャラクタＢとして確定する(ステップＳ３３)。
【００５９】
しかる後、ステップＳ３３において確定したバーコードキャラクタＢの文字数を示す変数Ｂ(num)と図４のステップＳ１３において確定していたバーコードキャラクタＡの文字数を示す変数Ａ(num)との合計文字数が、バーコードとしてあらかじめ決められた規定バーコード文字数Ｎよりも大きいか否かを判定する（ステップＳ３４）。
【００６０】
変数Ｂ(num)と変数Ａ(num)との合計文字数が規定バーコード文字数Ｎ以下であった場合（ステップＳ３４のＮｏ）、ステップＳ３３においてバーコードキャラクタＢとして確定した変数Ｂ(chara)の内容と図４のステップＳ１３においてバーコードキャラクタＡとして確定していた変数Ａ(chara)の内容とには重複する文字領域（重複領域）が存在していない場合である。かかる場合には、バーコードキャラクタＢとバーコードキャラクタＡとの連結処理を行うことができなく、'Ｓｔｏｐ'キャラクタを最初に検出した当該ラインＬが示すバーコードライン位置のバーコード画像からは、正しい一連のバーコードにデコードすることができないものと判定する。そのため、バーコード画像の次のラインのキャラクタをデコードするために、ステップＳ２４に戻って、'Ｓｔｏｐ'キャラクタの検出動作を繰り返す。
【００６１】
一方、変数Ｂ(num)と変数Ａ(num)との合計文字数が規定バーコード文字数Ｎよりも大きい場合には（ステップＳ３４のＹｅｓ）、バーコードキャラクタＢとして確定した変数Ｂ(chara)の内容とバーコードキャラクタＡとして確定していた変数Ａ(chara)の内容とに重複する文字領域（重複領域）が存在している場合であり、該重複領域を利用して、バーコードキャラクタＢとバーコードキャラクタＡとの連結処理を行うことによって、メモリ２２に傾きがある状態で保存されているバーコード画像を、正しい一連のバーコードにデコードすることができるものと判断して、次の連結処理へ移行する（ステップＳ３５）。
【００６２】
次の連結処理においては、まず、バーコードキャラクタＡとバーコードキャラクタＢとの重複文字数γを次の式（１）により算出して、該重複文字数γが示す文字数だけ、バーコードキャラクタＡを格納した変数Ａ(chara)の最終キャラクタと、バーコードキャラクタＢを格納した変数Ｂ(chara)の最終キャラクタとからそれぞれ遡って、両者の重複領域内のキャラクタとして抽出する。
γ＝｛変数Ｂ(num)＋変数Ａ(num)−Ｎ｝      …（１）
【００６３】
しかる後、バーコードキャラクタＢから抽出した重複文字数γの重複領域内のキャラクタの並びが、バーコードキャラクタＡから抽出した重複文字数γの重複領域内のキャラクタの並びとは逆順になっているため、バーコードキャラクタＢから抽出した重複領域内のキャラクタの並びを逆順に並び替えた後、バーコードキャラクタＡから抽出した重複領域内のキャラクタと一致しているか否かを照合する。
【００６４】
両者が一致していなかった場合は、正しい一連のバーコードにデコードすることができない異常なバーコードが存在していたものと看做して、デコード処理が失敗した旨の表示を設定して、デコード処理を終了する。
【００６５】
一方、バーコードキャラクタＡから抽出した重複文字数γの重複領域内のキャラクタとバーコードキャラクタＢから抽出した重複文字数γの重複領域内のキャラクタを逆順に並び替えたキャラクタとの両者が一致していた場合は、該重複領域に存在するキャラクタを利用して、正しい一連のバーコードにデコードすることができるものと判定する。
【００６６】
すなわち、変数Ｂ(chara)に格納したバーコードキャラクタＢの最終キャラクタから重複文字数γ分だけ遡るまでのキャラクタをバーコードキャラクタＡと重複している（重複領域内の）キャラクタとして削除する。しかる後、バーコードキャラクタＡの並びに揃えるために、重複領域内のキャラクタを削除したバーコードキャラクタＢを逆順に並び替えてバーコードキャラクタＣを生成した後、変数Ａ(chara)に格納したバーコードキャラクタＡの最終キャラクタと連結することによって、（バーコードキャラクタＡ＋バーコードキャラクタＣ）からなる合計文字数が規定バーコード文字数Ｎと等しい正しいバーコードとして合成する。この結果、メモリ２２内に傾きがあるバーコード画像として保存されている場合であっても、該バーコード画像のデコード結果として、正しい一連のバーコードを取得することができる。
【００６７】
なお、前述の図５のフローチャートにおいては、ステップＳ２７において、デコード結果として有意な次のキャラクタが得られなかった場合に、初めて、ステップＳ３３において、バーコードキャラクタＢとして、そのキャラクタを示す変数Ｂ(chara)の内容とその文字数を示す変数Ｂ(num)とを確定する動作を行う場合について説明したが、本発明は、かかる場合に限るものではない。
【００６８】
例えば、バーコードキャラクタＢとバーコードキャラクタＡとの重複領域の重複文字数γを最小の１個のみとするように動作させても良い。つまり、あらかじめ決められた規定バーコード文字数Ｎのバーコードに関するデコード処理としては、図５の動作に先行する図４のフローチャートにおいて、既に、バーコードキャラクタＡとして、そのキャラクタを示す変数Ａ(chara)の内容とその文字数を示す変数Ａ(num)とが確定しているので、図５のフローチャートにおいては、規定バーコード文字数Ｎに対する残りの文字数｛Ｎ−Ａ(num)｝に最低限の重複領域を与えるための１個の文字数を加えた文字数｛Ｎ−Ａ(num)＋１｝だけの有意なキャラクタを取得すれば良い。
【００６９】
したがって、ステップＳ２７の判定に先立って、または、ステップＳ２７の判定が'Ｙｅｓ'であった場合に、デコードに成功した文字数が｛Ｎ−Ａ(num)＋１｝に達したか否かを確認し、達していた場合には、ステップＳ３３に移行して、バーコードキャラクタＢとして、そのキャラクタを示す変数Ｂ(chara)の内容とその文字数を示す変数Ｂ(num)とを確定する動作を行うようにしても良い。
【００７０】
かくのごとく、重複領域の重複文字数γ＝１の場合においては、バーコードキャラクタＡを格納した変数Ａ(chara)の第Ａ(num)番目に相当する最終キャラクタと、バーコードキャラクタＢを格納した変数Ｂ(chara)の第｛Ｎ−Ａ(num)＋１｝番目に相当する最終キャラクタとの１文字だけの照合動作を行うことにすれば良い。
【００７１】
また、先行する図４においては、バーコード画像に開始文字パターンである'Ｓｔａｒｔ'が存在しているか否かを確認するために、該バーコード画像の右端から左方向に向かってバーコードのデコード処理を行い、後続する図５においては、バーコード画像に終了文字パターンである'Ｓｔｏｐ'が存在しているか否かを確認するために、該バーコード画像の左端から右方向に向かってバーコードのデコード処理を行う場合を示したが、本発明は、かかる順番に限るものではなく、終了文字パターンである'Ｓｔｏｐ'を検出する動作を先行させ、開始文字パターンである'Ｓｔａｒｔ'を検出する動作を後続させるようにしても良い。
【００７２】
また、前述した図４、図５において、開始文字パターンである'Ｓｔａｒｔ'、終了文字パターンである'Ｓｔｏｐ'が、互いに同一の文字パターンであっても良いし、互いに異なる文字パターンであっても良い。
【００７３】
また、図１の媒体３０上の同一のバーコード４０として、メモリ２２に複数のバーコード画像が保存されている場合には、デコード処理の正常性を向上させるために、メモリ２２内に保存されている複数のバーコード画像について、前述したようなバーコードデコード処理を行って、それぞれから得られたバーコードの一致判定処理を行うようにしても良い。
【００７４】
さらには、メモリ２２に保存されている複数のバーコード画像それぞれについて、バーコードキャラクタＡ、バーコードキャラクタＢを検出するためのバーコード画像のバーコードライン位置の検索順序を変更しても良いし、バーコードのデコード処理を行う方向を変更するようにしても良い。
【００７５】
（実施形態の効果の説明）
以上に詳細に説明したように、本実施形態においては、以下に記載するような効果が得られる。
【００７６】
第１の効果は、組み込み時に、読み取り対象のバーコード４０に対して或る程度の範囲内の傾斜角度αで傾いて取り付けられたバーコード読取装置であっても、つまり、傾いた状態で取り付けられたバーコード読取装置２０にて該バーコード４０を撮像してメモリ２２内に保存したバーコード画像が傾いていたとしても、読み取り対象のバーコード４０の文字数があらかじめ決められた規定バーコード文字数Ｎであれば、演算装置２１にて、メモリ２２内のバーコード画像の傾き補正をすることなしに、正しいバーコードをデコードすることができるため、メモリ２２として十分なメモリ領域を確保しなくても良くなり、実装スペースとして小型化が可能であり、かつ、コストの低減を図ることができるという効果が得られることである。
【００７７】
第２の効果は、バーコード４０を撮像することによりメモリ２２内に保存したバーコード画像の傾き補正を行わないバーコード読取装置２０として、従来技術とは異なり、組み込み時や機械設計時にバーコード読取装置２０を高精度に取り付けることが不要になり、バーコード読取装置２０の構成を安価な構成とすることができるという効果が得られることである。
【００７８】
以上、本発明の好適実施例の構成を説明した。しかし、斯かる実施例は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
【符号の説明】
【００７９】
１０      ハンド機構
２０      バーコード読取装置
２１      演算装置
２２      メモリ
２３      カメラ
２４      光源
３０      媒体
４０      バーコード
【図１】
0005482340.tif 000002
【図２】
0005482340.tif 000003
【図３】
0005482340.tif 000004
【図４】
0005482340.tif 000005
【図５】
0005482340.tif 000006