(57)【特許請求の範囲】
【請求項１】
同じフォーマットで作成された複数のシンボルが記録された記録媒体を撮像する撮像手段と、
前記撮像手段により得られた前記記録媒体の画像データを記憶する画像メモリと、
前記画像データを取り込んで、前記シンボルが記録媒体に記録された位置を検出する位置検出処理部と、を有するシンボル情報読取装置であって、
前記位置検出処理部は、
前記画像データを所定の領域で前記シンボルの走査線の走査方向に沿って輝度値の変動量を計算して、前記シンボルに該当する可能性のある仮領域を判定する仮領域判定部と、
前記仮領域について、前記走査線の走査方向に対して直交する方向に隣接する隣接領域との相関を求めて、相関値の高い領域を示すマップを作成する相関マップ作成部と、
前記相関マップについて、前記シンボルの有無を検索し、前記シンボルが存在すると判断した領域をラベリングしてシンボルラベリングマップを作成するラベリング部と、
ラベリングされた領域に基づき、前記複数のシンボルのそれぞれのシンボルについて領域を設定し、前記シンボルラベリングマップを複数の領域に分割する領域分割部と、
前記領域分割部で分割された前記複数のシンボルの各シンボルについてラベリングされた領域に基づき、前記シンボルが記録媒体に記録された位置を検出する位置決定部と、を含み、
前記領域分割部は、
前記ラベリング部による前記シンボルラベリングマップにおけるシンボル数を判定する個数判定部と、
前記個数判定部によりシンボル数が２個以上であると判定された前記シンボルラベリングマップにおける前記複数のシンボルのそれぞれについて領域を設定し分割する分割処理部と、を含み、
前記分割処理部は、
前記シンボルラベリングマップ全域において、Ｘ軸およびＹ軸のうちの少なくとも一方の軸の射影を取得する射影取得部と、
前記射影取得部で取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、当該谷部分の位置を領域分割の境界位置として取得する境界位置取得部と、
前記境界位置取得部で取得した境界位置を基準として前記複数のシンボルのそれぞれのシンボルについて各領域を設定する領域設定部と、を含み、
前記位置決定部は、
前記領域設定部で設定した各領域において前記シンボルが記録媒体に記録された位置を検出することを特徴とするシンボル情報読取装置。
【請求項２】
同じフォーマットで作成された複数のシンボルが記録された記録媒体を撮像する撮像手段と、
前記撮像手段により得られた前記記録媒体の画像データを記憶する画像メモリと、
前記画像データを取り込んで、前記シンボルが記録媒体に記録された位置を検出する位置検出処理部と、を有するシンボル情報読取装置で使用されるシンボル情報読取方法であって、
前記位置検出処理部において、
前記画像データを所定の領域で前記シンボルの走査線の走査方向に沿って輝度値の変動量を計算して、前記シンボルに該当する可能性のある仮領域であるか否かを判定する第１ステップと、
前記仮領域について、前記走査線の走査方向に対して直交する方向に隣接する隣接領域との相関を求めて、相関値の高い領域を示すマップを作成する第２ステップと、
前記相関マップについて、前記シンボルの有無を検索し、前記シンボルが存在すると判断した領域をラベリングしてシンボルラベリングマップを作成する第３ステップと、
ラベリングされた領域に基づき、前記複数のシンボルのそれぞれのシンボルについて領域を設定し、前記シンボルラベリングマップを複数の領域に分割する第４ステップと、
前記領域分割部で分割された前記複数のシンボルの各シンボルについてラベリングされた領域に基づき、前記シンボルが記録媒体に記録された位置を検出する第５ステップと、を含み、
前記第４ステップは、
前記ラベリング部による前記シンボルラベリングマップにおけるシンボル数を判定する判定ステップと、
シンボル数が２個以上であると判定された前記シンボルラベリングマップにおける前記複数のシンボルのそれぞれについて領域を設定し分割する分割処理ステップと、を含み、
前記分割処理ステップは、
前記シンボルラベリングマップ全域において、Ｘ軸およびＹ軸のうちの少なくとも一方の軸の射影を取得する射影取得ステップと、
取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、当該谷部分の位置を領域分割の境界位置として取得する境界位置取得ステップと、
取得した境界位置を基準として前記複数のシンボルのそれぞれのシンボルについて各領域を設定する領域設定ステップと、を含み、
前記第５ステップにおいては、
前記領域設定部で設定した各領域において前記シンボルが記録媒体に記録された位置を検出することを特徴とするシンボル情報読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード等のシンボル情報を光学的に読み取り、処理情報を出力するシンボル情報読取装置およびシンボル情報読取方法に関するものである。
【背景技術】
【０００２】
たとえば、種々の情報を表すシンボル情報として、複数のバーとスペースを交互に配置するバーコードがある。このバーコードは、たとえば、個人番号などをバーコードで記録するIDカード等に利用されている。
【０００３】
このようなＩＤカードの全面をスキャンして画像を取り込み、その画像に基づいてバーコードを読み取るバーコード読取装置がある（特許文献１参照）。この特許文献１に示すシンボル情報読取装置では、シンボルラベリングマップ（バーコードマップ）の重心位置を求め、この重心位置を起点としてシンボルラベリングマップ上のバーコードシンボルの左端、右端、上端、下端位置を求め、バーコードシンボルの位置を検出している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９-２６６１９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に示すシンボル情報読取装置においては、バーコードの位置を検出する際にシンボルラベリングマップ（バーコードマップ）の重心位置を求めるため、同一種類のバーコードが同じ媒体上に２個以上（複数）存在する場合に、重心位置の算出が不安定となって、複数のバーコードを相互に区別することが難しいという課題があった。
【０００６】
そこで、本発明の課題は、同一種類のシンボルが同じ媒体上に２個以上（複数）存在する場合であっても、複数のシンボルを相互に区別することが可能なシンボル情報読取装置およびシンボル情報読取方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記の課題を解決するため、本発明のシンボル情報読取装置は、同じフォーマットで作成された複数のシンボルが記録された記録媒体を撮像する撮像手段と、前記撮像手段により得られた前記記録媒体の画像データを記憶する画像メモリと、前記画像データを取り込んで、前記シンボルが記録媒体に記録された位置を検出する位置検出処理部と、を有するシンボル情報読取装置であって、前記位置検出処理部は、前記画像データを所定の領域で前記シンボルの走査線の走査方向に沿って輝度値の変動量を計算して、前記シンボルに該当する可能性のある仮領域を判定する仮領域判定部と、前記仮領域について、前記走査線の走査方向に対して直交する方向に隣接する隣接領域との相関を求めて、相関値の高い領域を示すマップを作成する相関マップ作成部と、前記相関マップについて、前記シンボルの有無を検索し、前記シンボルが存在すると判断した領域をラベリングするラベリング部と、ラベリングされた領域に基づき、前記複数のシンボルのそれぞれについて領域を設定し分割する領域分割部と、前記領域分割部で分割された前記複数のシンボルの各シンボルについてラベリングされた領域に基づき、前記シンボルが記録媒体に記録された位置を検出する位置決定部と、を含むことを特徴とする。
【０００８】
本発明において、領域分割部でラベリングされた領域に基づき、複数のシンボルのそれぞれについて領域を設定し分割することから、（同じフォーマットで作成された）同一種類のシンボルが同じ記録媒体上に２個以上（複数）存在する場合であっても、分割された領域ごとにシンボルが記録媒体に記録された位置検出処理を行うことができるようになる。その結果、各シンボルの重心位置を安定して算出することができるようになり、複数のシンボルを相互に区別することが可能となる。
【０００９】
また、本発明のシンボル情報処理装置は、前記領域分割部は、前記ラベリング部によるシンボルラベリングマップにおけるシンボル数を判定する個数判定部と、前記個数判定部によりシンボル数が２個以上であると判定された前記シンボルラベリングマップにおける前記複数のシンボルのそれぞれについて領域を設定し分割する分割処理部と、を含むことが好ましい。
【００１０】
本発明において、分割処理を行う前に、シンボルラベリングマップ上のシンボルの個数を判定することから、たとえばシンボルラベリングマップ上に、シンボルは存在しない、あるいは、シンボルは１個である場合には、分割処理自体を行わなくて良くなり（処理を省略でき）、その結果、シンボルが２個以上存在する場合にのみ行うことが可能となり、ひいては位置検出処理の効率化を図ることが可能となる。
【００１１】
また、本発明のシンボル情報処理装置は、前記分割処理部は、前記シンボルラベリングマップ全域において、Ｘ軸およびＹ軸のうちの少なくとも一方の軸の射影を取得する射影取得部と、前記射影取得部で取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、当該谷部分の位置を領域分割の境界位置として取得する境界位置取得部と、前記境界位置取得部で取得した境界位置を基準として前記複数のシンボルの各領域を設定する領域設定部と、を含み、前記位置決定部は、前記領域設定部で設定した各領域において前記シンボルが媒体に記録された位置を検出する。
【００１２】
本発明において、分割処理を行う場合、シンボルラベリングマップ全域において、いわゆる直交座標系のＸ軸およびＹ軸のうちの少なくとも一方の軸の座標軸への射影を取得し、取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、谷部分の位置を領域分割の境界位置として取得し、取得した境界位置を基準として複数のシンボルの各領域を設定することから、分割すべき領域を特定し設定できるようになる。また、射影を用いて複数のシンボルの領域の境界を取得することから、計算量を削減することが可能となる。
【００１３】
本発明のシンボル情報読取方法は、同じフォーマットで作成された複数のシンボルが記録された記録媒体を撮像する撮像手段と、前記撮像手段により得られた前記記録媒体の画像データを記憶する画像メモリと、前記画像データを取り込んで、前記シンボルが記録媒体に記録された位置を検出する位置検出処理部と、を有するシンボル情報読取装置で使用されるシンボル情報読取方法であって、前記位置検出処理部において、前記画像データを所定の領域で前記シンボルの走査線の走査方向に沿って輝度値の変動量を計算して、前記シンボルに該当する可能性のある仮領域であるか否かを判定する第１ステップと、前記仮領域について、前記走査線の走査方向に対して直交する方向に隣接する隣接領域との相関を求めて、相関値の高い領域を示すマップを作成する第２ステップと、前記相関マップについて、前記シンボルの有無を検索し、前記シンボルが存在すると判断した領域をラベリングする第３ステップと、ラベリングされた領域に基づき、前記複数のシンボルのそれぞれについて領域を設定し分割する第４ステップと、前記領域分割部で分割された前記複数のシンボルの各シンボルについてラベリングされた領域に基づき、前記シンボルが記録媒体に記録された位置を検出する第５ステップと、を含むことを特徴とする。
【００１４】
本発明において、第４ステップでラベリングされた領域に基づき、複数のシンボルのそれぞれについて領域を設定し分割することから、（同じフォーマットで作成された）同一種類のシンボルが同じ記録媒体上に２個以上（複数）存在する場合であっても、分割された領域ごとにシンボルが媒体に記録された位置検出処理を行うことができるようになる。その結果、各シンボルの重心位置を安定して算出することができるようになり、複数のシンボルを相互に区別することが可能となる。
【００１５】
また、本発明のシンボル情報読取方法は、前記第４ステップは、前記ラベリング部によるシンボルラベリングマップにおけるシンボル数を判定する判定ステップと、シンボル数が２個以上であると判定された前記シンボルラベリングマップにおける前記複数のシンボルのそれぞれについて領域を設定し分割する分割処理ステップと、を含むことが好ましい。
【００１６】
本発明において、分割処理を行う前に、シンボルラベリングマップ上のシンボルの個数を判定することから、たとえばシンボルラベリングマップ上に、シンボルは存在しない、あるいは、シンボルは１個である場合には、分割処理自体を行わなくて良くなり（処理を省略でき）、その結果、シンボルが２個以上存在する場合にのみ行うことが可能となり、ひいては位置検出処理の効率化を図ることが可能となる。
【００１７】
また、本発明のシンボル情報読取方法は、前記分割処理ステップは、前記シンボルラベリングマップ全域において、Ｘ軸およびＹ軸のうちの少なくとも一方の軸の射影を取得する射影取得ステップと、取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、当該谷部分の位置を領域分割の境界位置として取得する境界位置取得ステップと、取得した境界位置を基準として前記複数のシンボルの各領域を設定する領域設定ステップと、を含み、前記第５ステップにおいては、前記領域設定部で設定した各領域において前記シンボルが媒体に記録された位置を検出する。
【００１８】
本発明において、分割処理を行う場合、シンボルラベリングマップ全域において、Ｘ軸およびＹ軸のうちの少なくとも一方の軸の座標軸への射影を取得し、取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、谷部分の位置を領域分割の境界位置として取得し、取得した境界位置を基準として複数のシンボルの各領域を設定することから、分割すべき領域を特定し設定できるようになる。また、射影を用いて複数のシンボルの領域の境界を取得することから、計算量を削減することが可能となる。
【発明の効果】
【００１９】
本発明によれば、（同じフォーマットで作成された）同一種類のシンボルが同じ記録媒体上に２個以上（複数）存在する場合であっても、重心位置を安定して算出することができ、複数のシンボルを相互に区別することが可能となる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係るシンボル情報読取装置の構成例を示す図である。
【図２】本実施形態に係る領域分割部の構成例を示すブロック図である。
【図３】図２の射影を利用した分割処理部の構成例を示すブロック図である。
【図４】本発明の実施形態に係るシンボル情報読取処理の流れを示すフローチャートである。
【図５】図４におけるバーコード検出に関する情報処理の流れを示すフローチャートである。
【図６】画像メモリに記憶された一次元バーコードが２個の記録媒体の画像データの一例を示す図である。
【図７】図６に示す画像データに基づき作成されたマップ数値を画像で表現した図である。
【図８】図６の２個のバーコードが印刷された記録媒体を画像化したマップを２値化した図である。
【図９】バーコードが２個の場合の上下ライン相関の処理結果である相関マップを示す図である。
【図１０】図９に示す相関マップから得られたシンボルラベリングマップ（バーコードマップ）を示す図である。
【図１１】本実施形態に係るシンボルラベリングマップ（バーコードマップ）におけるバーコードの個数を判定する処理の一例を説明するためのフローチャートである
【図１２】２個のバーコードを検出したときのシンボルラベリングマップ（バーコードマップ）とそのＸ軸およびＹ軸の射影のプロファイル、並びにシンボルラベリングマップの重心、左端・右端・上端・下端位置の各座標を示す図である。
【図１３】バーコードが２個存在する場合に、そのシンボルラベリングマップの領域分割処理を説明するための図である。
【図１４】バーコードが２個存在する場合に、そのシンボルラベリングマップの領域分割の一処理を説明するためのフローチャートである。
【図１５】２個のバーコードを検出したときのシンボルラベリングマップ（バーコードマップ）の第１分割領域とそのＸ軸およびＹ軸の射影のプロファイル、並びに分割領域の重心、左端・右端・上端・下端位置の各座標を示す図である。
【図１６】２個のバーコードを検出したときのシンボルラベリングマップ（バーコードマップ）の第２分割領域とそのＸ軸およびＹ軸の射影のプロファイル、並びに分割領域の重心、左端・右端・上端・下端位置の各座標を示す図である。
【図１７】バーコード付近における平均輝度のプロファイルを示す図である。
【図１８】バーコードが２個存在する場合に、そのシンボルラベリングマップの領域分割の他処理を説明するためのフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態を図面に関連付けて説明する。
【００２２】
図１は、本発明の実施形態に係るシンボル情報読取装置の構成例を示す図である。
【００２３】
本実施形態に係るシンボル情報読取装置１０は、カード等の記録媒体２０上に固有の情報が付与されたバーコード２１、２２を撮像して得られた画像データを処理するバーコード読取装置である。
【００２４】
バーコード読取装置１０は、図１に示すように、撮像装置１１、記憶部としての画像メモリ１２、およびデータ処理装置１３を主構成要素として有している。
【００２５】
撮像装置１１は、密着型の一次元撮像素子１１１、および記録媒体２０を搬送する搬送機構（搬送ガイドを含む）１１２を含んで構成されている。記録媒体２０には、図１に示すように、同じフォーマットで作成された同じ種類の一次元バーコード２１，２２が複数（本例では２個）の印刷（記録）されている。
【００２６】
図１において、符号Ｄは記録媒体２０の搬送方向を示している。また、図１に示すように、符号Ｌ１は、一次元バーコード２１の走査線を示し、符号Ｌ２は一次元バーコード２２の走査線を示す。すなわち、走査線Ｌ１、Ｌ２が走査する方向は、複数のバーとスペースを交互に配置している方向となっている。なお、説明を簡単にするために、本実施形態では、搬送方向Ｄ、走査線Ｌ１、Ｌ２の走査方向はＸ軸方向としている。また、搬送方向Ｄに直交する方向および走査線Ｌ１、Ｌ２の走査方向に直交する方向をＹ軸方向としている。
【００２７】
ここでは、撮像素子１１１として密着型一次元撮像素子を採用して装置の小型化等を図っているが、撮像素子１１１としては、読み取り対象の記録媒体２０の文字列を読み取り対象とする二次元のエリアセンサ等を採用することも可能である。また、搬送機構として定速の搬送機構を採用しているが、手動によるものも採用可能である。撮像素子１１１は、たとえばＣＣＤやＣＭＯＳセンサにより形成される。
【００２８】
画像メモリ１２は、撮像素子１１１で撮像された一次元バーコード２１，２２を含む記録媒体２０のデジタル化された読み取り多値画像（濃淡画像）データを記憶（格納）する。画像メモリ１２に格納される原画像は、複数の画素がマトリクス状に配列されて形成され、具体的には、図示していないが、Ｘ軸方向にｍ行、Ｙ軸方向にｎ列の画素が配置されている。各画素はそれぞれ画素値（輝度値）を有する。本実施形態では、各画素値は、たとえば８ビットで表現すると０〜２５５の間のいずれかの値をとり、画素値は黒に近いほど小さく、白に近いほど大きな値をとる。なお、この画像メモリ１２は、ＲＡＭ，ＳＤＲＡＭ，ＤＤＲＳＤＲＡＭ，ＲＤＲＡＭなど、画像データを記憶しうるものであれば如何なるものであってもよい。
【００２９】
データ処理装置１３は、位置検出処理部１４および復号処理部１５を主構成要素として有している。そして、本実施形態の位置検出処理部１４は、仮領域判定部１４１、相関マップ作成部１４２、ラベリング部１４３、領域分割部４４、および位置決定部１４５を有する。
【００３０】
なお、位置検出処理部１４を構成する各要素は、ＣＰＵやＲＯＭ，ＲＡＭといったハードウェアにより実現することができる。また、本実施形態では、位置検出処理部１４と復号処理部１５は別要素として図示しているが、復号処理部１５が位置検出処理部１４内に組み込まれていてもよい。
【００３１】
仮領域判定部１４１は、画像メモリ１２から読み出した多値画像（濃淡画像）データを所定の領域で一次元バーコード２１，２２の一次元の走査線Ｌ１，Ｌ２の走査方向（Ｘ軸方向）に沿って輝度値の変動量を計算して、一次元バーコードに該当する可能性のある仮領域を判定する。
【００３２】
仮領域判定部１４１は、輝度値の変動量としては、たとえば分散や標準偏差などが適用される。本実施形態の仮領域判定部１４１は、一例として分散マップを計算し、その結果により仮領域であるか否かを判定する。すなわち、本実施形態の仮領域判定部１４１は、分散マップ計算機能を含んで構成される。この仮領域のマップである、周期的に並んだ同じ大きさの矩形をなす複数の区画（区切り、仕切り）を持つ格子状の分散マップの具体例については後述する。なお、各区画はいわゆる単位区画であり、一次元バーコード等の画像空間上の座標等を求める場合の単位的な大きさを持つ。
各区画の大きさはＸ軸方向、Ｙ軸方向において基準の大きさとなり、各区画はＸ軸方向の長さがＹ軸方向の長さより長い長方形状となっている。
たとえば一元バーコード２２では、Ｘ軸方向に３区画、Ｙ軸方向に３区画の計９個の区画に跨ることになる。
たとえば一元バーコード２１では、Ｘ軸方向に５区画、Ｙ軸方向に４区画の計２０個の区画に跨ることになる。
【００３３】
相関マップ作成部１４２は、仮領域判定部１４１で判定された仮領域について、走査線Ｌ１，Ｌ２の走査方向に対して直交する方向（Ｙ軸方向）に隣接する隣接領域との相関を求めて、相関値の高い領域を示す相関マップを作成する。
【００３４】
本実施形態の相関マップ作成部１４２は、一次元バーコードとそうでない部分とを分離するため、いわゆる上下走査線相関処理を行う。すなわち、相関マップ作成部１４２は、格子状の分散マップ上の「１」の各要素について、該当する区画のすぐ上とすぐ下に隣接する区画のライン相互の輝度の相関を計算する。それらの区画が一次元バーコードを含んでいればこの相関値は大きな値を示す。
【００３５】
具体的には、相関マップ作成部１４２は、格子座標上に相関マップを作成する。後で説明するように、相関マップ作成部１４２は、たとえば注目ラインと上または下の各ラインとの相関値が高ければその要素にポイント（値）「１」を加算し、上下いずれとも相関が高かった場合はポイント（値）「２」を加算する。
【００３６】
ラベリング部１４３は、相関マップ作成部１４２で作成された相関マップについて、相関マップ上で１要素ずつシフト（本実施形態では、走査方向（Ｘ軸方向）にシフト）しながら一次元バーコードにおけるたとえば３つの要素を含む基本パターンおよびそれ以上の要素を含むパターンの有無を検索し、一次元バーコードに基本パターンおよびそれ以上の要素を含むパターンが存在すると判断した領域をラベリングする。
【００３７】
ラベリング部１４３における基本パターン検索処理では相関マップにおいて、一次元バーコードにおける基本パターンの存在を調べる。たとえば、検出したい最小の一次元バーコードのサイズが、相関マップ上で基本パターン［２ ２ ２］に対応する場合、相関マップをサーチしてこの基本パターンが検出されたらそのパターンによって占有されるマップ要素に「１」を立て、それ以外のマップ要素は「０」とする。
【００３８】
このように、ラベリング部１４３でラベリングされたシンボルラベリングマップ（バーコードマップ）には、たとえば前述したように、複数（本例では２個）の一次元バーコード２１，２２が印刷（記録）されている記録媒体２０の読み取りが行われた場合、上記した基本パターンおよびそれ以上の要素を含むパターンを有する一次元バーコードが存在するとしてラベリングされた領域が複数箇所ある蓋然性が高い。このようにラベリング部１４３でラベリングされたシンボルラベリングマップは、領域分割部１４４に供給される。
【００３９】
領域分割部１４４は、ラベリング部１４３から供給されたシンボルラベリングマップ（バーコードマップに相当する）においてラベリングされた領域に基づき、複数の一次元バーコードのそれぞれについて領域を設定し、シンボルラベリングマップを用いて領域を分割する。
【００４０】
本実施形態の領域分割部１４４は、シンボルラベリングマップにおける一次元バーコードの数をゼロ個か１個か２個以上であるか否かの判定を行い、一次元バーコードが２個以上と判定した場合に、シンボルラベリングマップを用いて領域分割を行う。
【００４１】
図２は、本実施形態に係る領域分割部の構成例を示すブロック図である。
【００４２】
この領域分割部１４４は、図２に示すように、個数判定部１４４１および分割処理部１４４２を有している。
【００４３】
個数判定部１４４１は、ラベリング部１４３によるシンボルラベリングマップにおけるシンボル数を判定する。個数判定部１４４１は、シンボルラベリングマップにおける一次元バーコードの数をゼロ個か１個か２個以上であるか否かの判定を行う。
【００４４】
個数判定部１４４１は、個数判定をたとえば次のようにして行う。
シンボルラベリングマップ（バーコードマップ）上で値１をもつ要素数をカウントしこれをＣ０とする。一方、シンボルラベリングマップ（バーコードマップ）上で重心ＣＯＧを起点として求めた一次元バーコードの４辺によって囲まれる領域内の値１をもつ要素数をカウントしこれをＣ１とする。
【００４５】
個数判定部１４４１は、このとき、
もし、Ｃ０＝０であれば一次元バーコードは存在しない、
Ｃ０＞０  かつ  Ｃ０＝Ｃ１であれば、一次元バーコードは１個である、
Ｃ０＞０  かつ  Ｃ０≠Ｃ１であれば、一次元バーコードは２個以上存在する、
と判定する。
【００４６】
分割処理部１４４２は、個数判定部１４４１により一次元バーコード数が２個以上であると判定されたシンボルラベリングマップにおける複数の一次元バーコードのそれぞれについて領域を設定し分割する処理を行う。
【００４７】
本実施形態の分割処理部１４４２は、領域分割に際してシンボルラベリングマップ（バーコードマップ）全域において、図１等の中に設定した直交座標系のＸ軸に投影した射影ｐｒｏｊＸおよびＹ軸に投影した射影ｐｒｏｊＹを取得し、取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、この谷部分の位置を領域分割の境界位置（境界線）として取得し、取得した境界位置を基準として複数（本例では２個）の一次元バーコード２１、２２の各領域Ｒ１，Ｒ２・・を設定し、分割する。
【００４８】
たとえば本例のように一次元バーコード２１、２２が２個の場合は、双方の一次元バーコードが結合状態にない限り、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹのいずれか一方もしくは両者が２つの山と１つの谷からなるプロファイルをもつ。よって、分割処理部１４４２は、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹ上でこの谷の位置を決定することにより、２つの一次元バーコードのＸ軸方向、Ｙ軸方向の境界位置（分離位置の座標）を求めることができる。
【００４９】
分割処理部１４４２は、境界位置の座標によってＸ軸方向、Ｙ軸方向に分離された２つの領域をたとえばＲ１およびＲ２とする。以降の処理は、領域Ｒ１とＲ２のそれぞれについて、一次元バーコードが１個の場合と同様の処理を適用することで、各々の一次元バーコードの位置を決定することができる。
【００５０】
図３は、図２の射影を利用した分割処理部の構成例を示すブロック図である。
【００５１】
この分割処理部１４４２は、射影取得部１４４２１、境界位置取得部１４４２２、および領域設定部１４４２３を有している。
【００５２】
射影取得部１４４２１は、領域分割に際してシンボルラベリングマップ（バーコードマップ）全域において直交座標系のＸ軸に投影した射影ｐｒｏｊＸおよびＹ軸に投影した射影ｐｒｏｊＹを取得する。
【００５３】
境界位置取得部１４４２２は、射影取得部１４４２１で取得した射影の概要等を図等で表現したプロファイルにおいて谷部分と認識できる位置を探索し、谷部分の位置を領域分割の境界位置（分離位置のｙ座標、またはｘ座標）ｙｄｉｖ，ｘｄｉｖとして取得する。
【００５４】
領域設定部１４４２３は、境界位置取得部１４４２２で取得した境界位置を基準として複数（本例では２個）の一次元バーコードの各領域Ｒ１，Ｒ２・・を設定する。
【００５５】
また、領域設定部１４４２３は、設定した各領域におけるバーコードの個数を再確認する機能を有している。
この機能を有することにより、分割領域に存在するバーコードの個数を確認することが可能となり、分割処理の結果を再確認しながら、領域分割を行うことが可能となり、たとえば個数が先に判定した個数と異なっている場合には、何らかの異常が生じている等の判断を行うことが可能となる。
【００５６】
このような構成を有する分割処理部１４４２は、射影取得部１４４２１で、シンボルラベリングマップ全域において、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹを取得し、境界位置取得部１４４２２でＸ軸およびＹ軸のうちの一方の軸の射影において探索の結果、谷部分と認識できる位置を取得できない場合に、他方の軸の射影において谷部分と認識できる位置の探索を行うように構成可能である。
【００５７】
また、分割処理部１４４２は、射影取得部１４４２１で、シンボルラベリングマップ全域において、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹのうちの一方の軸の射影を取得した結果、境界位置取得部１４４２２で谷部分と認識できる位置を取得できない場合に、射影取得部１４４２１で、シンボルラベリングマップ全域において、Ｘ軸およびＹ軸のうちの他方の軸の射影を取得し、境界位置取得部１４４２２で谷部分と認識できる位置の探索を行うように構成してもよい。
【００５８】
位置決定部１４５は、領域分割部１４４で分割された複数の一次元バーコードの各シンボルについてラベリングされた領域に基づき、一次元バーコードが記録媒体２０に記録された位置を検出する。
【００５９】
位置決定部１４５は、分割された個別の領域について一次元バーコードのＸ軸、Ｙ軸（図では上下左右）の概略位置である重心を決定し、概略位置情報より画像空間座標上のバーコードのＸ軸、Ｙ軸（図では上下左右）位置を最終決定する。
【００６０】
位置決定部１４５のシンボル位置判定処理においては、シンボルラベリングマップ（バーコードマップ）の重心（ｙｘｏｇ，ｘｃｏｇ）を求めることから開始される。重心は定義に基づいて計算される。
【００６１】
複数の一次元バーコードがあり、領域分割部１４４で一次元バーコードごとに分割されている場合には、分割領域の一次元バーコードごとに上記したような、シンボルラベリングマップ全域において、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹを取得して一次元バーコードごとの重心が求められる。
【００６２】
次に、位置決定部１４５は、一次元バーコードの左端・右端・上端・下端位置を求める。位置決定部１４５は、左右位置はシンボルラベリングマップ（バーコードマップ）上を、重心座標ｘｃｏｇを起点としてＸ軸方向に要素和（加算範囲はｙｃｏｇ±２）がゼロとなる座標ｘｓｔａｒｔおよびｘｓｔｏｐを検出し、そこで打ち切る。上下位置はｙｃｏｇを起点としてＹ軸方向に要素和（加算範囲［ｘｓｔａｒｔ，ｘｓｔｏｐ］）がゼロとなる座標ｙｕｐｐｅｒおよびｙｌｏｗｅｒを検出したら打ち切る。
【００６３】
このようにして、座標上における一次元バーコードの４辺位置が特定される。
位置決定部１４５は、この４辺の座標から画像空間上の座標を求める。
【００６４】
位置決定部１４５は、記録媒体２０上のシンボル数が１つで、領域分割部１４４で領域分割が行われない場合、シンボルラベリングマップ全域において一次元バーコードが記録媒体２０に記録された位置を検出する。
【００６５】
このような構成を有するシンボル情報読取装置１０において、一次元バーコード２１，２２が印刷（記録）された記録媒体２０は、搬送機構１１２の搬送ガイドに沿って搬送され、一次元撮像素子１１１を通過することによってその記録媒体２０のイメージ（像）が光電変換され、その多値画像（濃淡画像）データが画像メモリ１２に取り込まれ記憶される。
【００６６】
データ処理装置１３においては、一次元バーコード２１，２２を含む多値画像（濃淡画像）データが画像メモリ１２から取り込まれ、取り込んだ画像データに基づいて様々な処理が施される。本実施形態では、データ処理装置１３における位置検出処理部１４によって、一次元バーコード２１，２２が記録媒体２０に記録された位置が検出される。
【００６７】
本実施形態のシンボル情報読取装置１０において、一次元バーコードのデコード処理は概略図４のフローチャートに従って実行される。
以下、本発明の実施形態に係るシンボル情報読取処理を図面に関連付けて詳細に説明する。
【００６８】
［シンボル情報読取処理の概要］
図４は、本発明の実施形態に係るシンボル情報読取処理の流れを示すフローチャートである。
ここで、本発明の実施形態に係るシンボル情報読取処理の流れを図４に関連付けて概説する。
【００６９】
まず、処理プランの指定が行われる（ステップＳＴ１）。
具体的には、処理プランの指定において、記録媒体２０に記録されているバーコードの種類、あるいは読み取るべきバーコードの種類に応じて使用するバーコード検出器（検出フィルタ）の種類と適用順番の設定を行う。
デフォルトでは、第一の検出フィルタ（バーコードの一つ）が指定されるが（ステップＳＴ２）、たとえば、バーコードの出現頻度に応じて順番を変えてもよい。
【００７０】
次に、バーコード検出（ステップＳＴ３）が行われる。
具体的には、バーコード検出において、シンボル情報読取装置１０の撮像素子１１１は、搬送機構（搬送ガイド）１１２に沿って所定位置まで移動した一次元バーコード２１，２２を含む記録媒体２０を、光電変換によって撮像する。そして、撮像された一次元バーコード２１，２２含む多値画像（濃淡画像）データは、画像メモリ１２において記憶される。
【００７１】
その後、データ処理装置１３における位置検出処理部１４では、復号処理部１５において、バーコードの復号処理を行う前に、バーコード検出のための一連の処理が行われる。その詳細は後述するとして、一連の処理を要約すると、次のような処理が行われる。
すなわち、位置検出処理部１４では、画像メモリ１２に記憶された多値画像（濃淡画像）データを読み込み、仮領域判定部１４１において分散マップ計算処理等を行い、次いで相関マップ作成部１４２において上下ライン間の相関計算処理等を行う。素子、ラベリング部１４３において基本パターン検索処理等を行い、領域分割部１４４においてバーコードごとの領域分割処理等を行い、位置決定部１４５においてシンボル位置判定処理等を行うことにより、上述した第一の検出フィルタが担当するバーコードの有無が決定され、有りと判定された場合には、その位置が決定される。
【００７２】
そして、データ処理装置１３の復号処理部１５において、バーコードの復号処理が行われる（ステップＳＴ４）。
より具体的には、データ処理装置１３の復号処理部１５は、ステップＳＴ３において解析された一次元バーコード２１，２２の位置等に基づき、一次元バーコード２１，２２の復号処理（走査線Ｌ１，Ｌ２に沿ったデータ復号）を行う。
【００７３】
ここで、仮に検出すべき一次元バーコードが残っている場合、すなわち未適用の検出フィルタがある場合には（ステップＳＴ５：ＹＥＳ）、次の検出フィルタが適用され（ステップＳＴ６）、処理はステップＳＴ３に移され、新たなシンボル検出およびシンボル復号が行われる（ステップＳＴ３およびステップＳＴ４）。
一方で、未適用の検出フィルタがない場合には（ステップＳＴ５：ＮＯ）、一連のシンボルの読取処理は終了する。
【００７４】
なお、検出フィルタの切り替え処理は、たとえば、位置検出処理部１４のラベリング部１４３が行ってもよいし、復号処理部１５が行ってもよい。また、検出フィルタを切り替える順番は、たとえば出現頻度に基づいて決めてもよい。これにより、シンボル情報読取処理の効率化を図ることができる。
さらに、本実施形態では、１つの媒体に同種類（同一のフォーマット）の複数の一次元バーコード、複数種類の一次元バーコードが用いられている可能性を考慮して、処理プランの指定（ステップＳＴ１）や検出フィルタの更新（ステップＳＴ６）などを行うこととしたが、これらを省くことも可能である。すなわち、ステップＳＴ３およびステップＳＴ４のみで処理を行うことも可能である。
【００７５】
［シンボル検出の具体的な処理］
図５は、図４におけるステップＳＴ３のバーコード検出に関する情報処理の流れを示すフローチャートである。
【００７６】
図５において、最初に、記録媒体２０の上下左右のエッジ位置が検出される（ステップＳＴ１１）。
より具体的には、エッジ検出処理において、仮領域判定部１４１は、分散マップを計算するための前処理として、画像メモリ１２に記憶された記録媒体２０の画像データより、上下左右のエッジ位置を検出する。
【００７７】
図６は、画像メモリ１２に記憶された一次元バーコードが２個の記録媒体２０の画像データの一例を示す図である。図６は２個の一次元バーコード２１，２２が印刷された記録媒体２０の画像データの一例を示している。
図６における周囲の実線ＳＬは、エッジ検出処理によって得られた記録媒体２０のエッジ位置を表している。また、図６における縦、横の破線はエッジラインを基準として、画像空間全体を格子状の小区画に分割するラインを示している。
【００７８】
（分散マップの作成）
次に、仮領域判定部１４１において分散マップの計算が行われる（ステップＳＴ１２）。
より具体的には、仮領域判定部１４１は、エッジラインを基準として、画像空間全体を図６に示すような格子状の小区画に分割し、分割した区画ごとに区画内の一つのラインに沿って輝度値の変動量たとえば分散を計算する。
この区画内の一つのラインとは、図１に示す一次元バーコード２１，２２の走査線Ｌ１，Ｌ２の走査方向と同じ方向に形成されており、たとえば、図６に示す符号Ａ０（Ｂ０）で示す１区画内の１ラインである。
【００７９】
全格子区画について同様の演算を行うと、格子状の分散マップの座標上に基づく変動量マップを得ることができる。
図７は、一例として図６の２個の一次元バーコード２１，２２が印刷された記録媒体２０のマップ数値を画像で表現した図である。
図７において、白い部分は変動が大きい部分を表し、黒い部分は変動が小さい部分を表している。そして、この変動量が大きい部分については、図６に示す一次元バーコード２１，２２の位置に対応している。
【００８０】
次に、画像化した図７に示すようなマップを２値化すると、図８に示すようになる。２値化の閾値は、変動量の分布状態から適したものを設定することができる。
図８は、図６の２個の一次元バーコード２１，２２が印刷された記録媒体２０を画像化したマップを２値化した図である。
【００８１】
以下に、図８について詳述する。
たとえば、図８のマップにおいて、左から１列目は、上から［０，１，１，１，１，０，０，０，０，０，０］という順で数値が並んでいるが（点線枠Ｘ１で示す部分）、これは、図６におけるＡ１〜Ａ１１という各単一ラインの分散を所定の閾値で２値化したものに相当する。
図８に示すように、図６における一次元バーコード２１の位置には、「１」の値が２０箇所、長方形状（太枠Ｚ１１で示す領域部分）に並んでいることが分かる（そのうちの１辺が、図６に示すＡ２，Ａ３，Ａ４およびＡ５である）。
【００８２】
また、たとえば、図８のマップにおいて、右から３列目は、上から［０，０，０，０，０，０，１，１，１，０，０］という順で数値が並んでいるが（点線枠Ｘ２で示す部分）、これは、図６におけるＡ１〜Ａ１１という各単一ラインの分散を所定の閾値で２値化したものに相当する。
図８に示すように、図６における一次元バーコード２２の位置には、「１」の値が９箇所、長方形状（太枠Ｚ２１で示す領域部分）に並んでいることが分かる（そのうちの１辺が、図６に示すＡ７，Ａ８およびＡ９である）。
【００８３】
また、たとえば、図８のマップにおいて、右から４列目は、上から［０，１，１，１，１，０，１，１，１，０，０］という順で数値が並んでいるが（点線枠Ｘ３で示す部分）、これは、図６におけるＡ１〜Ａ１１という各単一ラインの分散を所定の閾値で２値化したものに相当する。
これは、符号Ｚ１１で示す一次元バーコード２１の領域の右端部と符号Ｚ２１で示す一次元バーコード２２の領域の左端部が、上下方向に重なる領域があることを示している。
【００８４】
このように、上下左右のエッジ位置を検出し（図５のステップＳＴ１１）、分散マップ（図８）の計算（図５のステップＳＴ１２）を行う分散マップ計算機能を有す仮領域判定部１４１は、画像データを所定の領域で走査線に沿って輝度値の変動量を計算して、一次元バーコードに該当する可能性のある仮領域を判定する。
なお、ここでいう「仮領域」は、上述した「１」が２０箇所並んでいる領域Ｚ１１および９箇所並んでいる領域Ｚ２１である。
【００８５】
ここで、図８に示すマップにおいて、「１」に該当するイメージ部分は、一次元バーコード領域に合致している見込みが高い一方、必ずしも一次元バーコード領域になるとは限らない。
すなわち、一次元バーコード２１，２２が位置する領域ではないが「１」となる領域が存在する場合があり、その領域が「仮領域」として判定されることも考えられる。
【００８６】
（相関マップの作成）
そこで、次に、図５のステップＳＴ１３において次に上下走査線相関処理が行われる。
これは、上下ライン間の相関マップ作成部１４２によって、一次元バーコード２１，２２とそうでない部分とを分離するための処理である。
具体的には、格子マップ上の「１」の各要素について、該当する区画のすぐ上とすぐ下に隣接する区画のライン相互の輝度の相関を計算する。
それらの区画が一次元バーコード２１，２２を含んでいれば、この相関値は大きな値を示すはずである。
具体的には、相関マップ作成部１４２は、格子座標上にライン相関マップを作成する。
【００８７】
図９は、一次元バーコードが２個の場合の上下ライン相関の処理結果である相関マップを示す図である。
具体的には、一次元バーコード２１，２２の走査線の走査方向に沿って形成されたラインにおいて、注目ラインとＹ軸方向に形成された上または下のいずれかのラインとの相関値が高ければ、その要素に１ポイントが加算され、注目ラインと上および下の両方のラインとの相関値が高ければ、その要素に２ポイントが加算される。
ここで注意すべき点は、図８に示す値（０と１の２値）が処理対象ではない点である。図６に示す実際の画像データが処理対象になる。
【００８８】
図８に示す領域Ｚ１１内の２０箇所のポイントを生成するために使われたラインは、図６でいえば、一次元バーコード２１を包含する２０ラインとなる。
たとえば、図９に示す領域Ｚ１２内の左列の各ポイント（上から［１，２，２，１］の部分）を生成するために使われた４ラインに着目すると、図６でいえば、Ａ１〜Ａ４のラインとなる。Ａ２を注目ラインとした場合、上下ライン相関の処理は、Ａ２とＡ１の相関値と、Ａ２とＡ３の相関値とが計算されるところ、一次元バーコード２１の性質上、Ａ２とＡ３の相関値は極めて大きく（限りなく１に）なる。
その結果、ポイントは１が加算される。また、Ａ４を注目ラインとした場合も同様に、ポイントは１が加算される。そして、Ａ３を注目ラインとした場合には、Ａ３とＡ２の相関値も、Ａ３とＡ４の相関値も、極めて大きくなることから、ポイントは２が加算される。
このようにして、領域Ｚ１２内の左列の各ポイント［１，２，２，１］が決まる。領域Ｚ１２内の左から２〜５列の各ポイント［１，２，２，１］も、右列の各ポイント［１，２，１］も、同様に決まる。
【００８９】
同様にして、図８に示す領域Ｚ２１内の９箇所のポイントを生成するために使われたラインは、図６でいえば、一次元バーコード２２を包含する９ラインとなる。
たとえば、図９に示す領域Ｚ２２内の左列の各ポイント（上から［１，２，１］の部分）を生成するために使われた３ラインに着目すると、図６でいえば、Ａ７〜Ａ９のラインとなる。Ａ７を注目ラインとした場合、上下ライン相関の処理は、Ａ７とＡ６の相関値と、Ａ７とＡ８の相関値とが計算されるところ、一次元バーコード２２の性質上、Ａ７とＡ８の相関値は極めて大きく（限りなく１に）なる。
その結果、ポイントは１が加算される。また、Ａ９を注目ラインとした場合も同様に、ポイントは１が加算される。そして、Ａ８を注目ラインとした場合には、Ａ８とＡ７の相関値も、Ａ８とＡ９の相関値も、極めて大きくなることから、ポイントは２が加算される。
このようにして、点線枠Ｚ内の左列の各ポイント［１，２，１］が決まる。点線枠Ｚ２内の中央列の各ポイント［１，２，１］も、右列の各ポイント［１，２，１］も、同様に決まる。
【００９０】
図８に示すように、値「２」をもつ要素は、特に上下の相関が強いことを表している。そして、このような要素は、同一ラインパターンが上下に積層しているバーコードの特徴を反映していると考えられ、バーコード領域である可能性が高いことが分かる。
このように、上下ライン相関の処理（図５のステップＳＴ１３）を行う上下ライン間の相関計算処理を行う相関マップ作成部１４２は、上述した仮領域について、バーコード２１，２２の走査線（図１に示す符号Ｌ１，Ｌ２参照）の走査方向に対して直交する方向（図６や図８でいえばＹ軸方向）に隣接する隣接領域との相関を求めて、相関値の高い領域を示すマップを作成する。
また、本実施形態では、図９の領域Ｚ１２，Ｚ２２を用いて説明したように、上下方向に隣接する２つの隣接領域（隣接するライン）との相関を求めた後、これら２つの相関値の双方が所定の閾値よりも高い相関値を示した場合（ポイント２が加算された場合）と、これら２つの相関値のいずれか一方が所定の閾値よりも高い相関値を示した場合（ポイント１が加算された場合）とを区別して、相関マップを作成するようにしている。
これにより、バーコード２１，２２が存在する位置を的確に認識できる相関マップを作成することができる（図９参照）。
【００９１】
（基本パターンの検索）
次に、ラベリング部１４３において基本パターンの検索が行われる（図５のステップＳ１４）。
具体的には、ラベリング部１４３は、相関マップを用いて、一次元バーコードにおける基本パターンの存在を調べる。たとえば、検出した最小の一次元バーコードサイズが、相関マップ上で走査方向（Ｘ軸方向）に２が３つ並んだ［２，２，２］の基本パターン（ポイント列）に対応する場合において、図９の相関マップをサーチして、この基本パターン［２，２，２］が検出されたら、その基本パターンによって占有されるマップ要素に「１」を立て、それ以外のマップ要素は「０」とする。
この３つの要素の基本パターン［２，２，２］以上の４要素［２，２，２，２］、５要素［２，２，２，２，２］のパターンを一次元バーコードとして検出することができる。
図９に示す相関マップに対して、このような処理を実行すると、図１０の領域Ｚ１３，Ｚ２３に示すようなシンボルラベリングマップ（バーコードマップ）ＳＬＭ１を得ることができる。
なお、本実施形態では、２つの一次元バーコード２１，２２に対応して基本パターン［２，２，２］に加えて［２，２，２，２，２］が必要となっている。
【００９２】
図１０は、図９に示す相関マップから得られたシンボルラベリングマップ（バーコードマップ）を示す図である。
このように、基本パターン検索の処理（図５のステップＳＴ１４）を行うラベリング部１４３は、相関マップについて、バーコードの基本パターン［２，２，２］およびパターン［２，２，２，２，２］の有無を検索し、その基本パターンが存在すると判断した領域をラベリングする（本実施形態ではマップ要素に「１」を立てる）。
【００９３】
以上、図６の２個の一次元バーコード２１，２２が印刷された記録媒体２０を画像化したマップを２値化した図８について詳述した。
なお、１個の一次元バーコードが印刷された記録媒体を画像化したマップを２値化した場合、１個の一次元バーコードが存在するが、基本的な処理は上述した一次元バーコード２１に対する処理を除いて図８に関連付けて説明した処理と同様である。
【００９４】
なお、本実施形態では、２つの一次元バーコード２２，２１に対応して基本パターン［２，２，２］に加えてパターン［２，２，２，２，２］、が必要となる。３要素の基本パターン［２，２，２］や５要素のパターン［２，２，２，２，２］からなるパターンを考えたが、一列４要素、６要素、あるいはそれ以上の要素からなるパターンや、上下各３要素の計６要素からなるパターンなど、読取対象のバーコードの態様としては種々変更可能である。
また、本実施形態では、注目ラインについて、走査線の走査方向に対して直交する方向に隣接する隣接領域（隣接するライン）との相関を求め、これら２つの相関値の双方が所定の閾値よりも高い相関値を示す領域が、一次元バーコードが存在すると判断した領域としてラベリングされるようにしている。
これにより、文字部分を適切に排除し、より確度の高い部分（一次元バーコード２１，２２が存在する部分のみ）を検索対象とすることができる。
【００９５】
また、位置検出処理部１４のラベリング部１４３には、一または複数のバーコードの基本パターンおよびそれ以上の要素を持つパターン（検出フィルタ）が記憶されている。
そして、図２のフローチャートに関連付けて説明したように、一連のバーコードの読取処理の中で、バーコードの基本パターンおよびそれ以上の要素のおパターンが順次切り替わるので（図２のステップＳＴ５，ステップＳＴ６）、結果的に、ラベリング部１４３は、複数のバーコードの基本パターンおよび所定のパターンを用いて基本パターン等の検索を行うことになる。
【００９６】
本実施形態においては、位置決定部１４５においてシンボル位置判定を行う前に、領域分割部１４４においてバーコードの個数判定（図５のステップＳＴ１５）および領域分割処理（図５のステップＳＴ１６）を行う。
【００９７】
領域分割部１４４の個数判定部１４４１では、ラベリング部１４３によるシンボルラベリングマップＳＬＭ１におけるシンボル数を判定する。個数判定部１４４１では、シンボルラベリングマップ（バーコードマップ）における一次元バーコードの数をゼロ個から１個か２個以上であるか否かの判定が行われる。
【００９８】
図１１は、本実施形態に係るシンボルラベリングマップ（バーコードマップ）における一次元バーコードの個数を判定する処理の一例を説明するためのフローチャートである。
【００９９】
個数判定部１４４１は、個数判定をたとえば次のようにして行う。
シンボルラベリングマップ（バーコードマップ）ＳＬＭ上でゼロでない値１をもつ要素数をカウントしこれをＣ０とする（ステップＳＴ２１）。
ここで、ステップＳＴ２２においてＣ０がゼロ（０）であるか否かを判定する。ステップＳＴ２２においてＣ０がゼロ（０）であると判定した場合には、一次元バーコードは０個であると判定する（ステップＳＴ２８）。
【０１００】
ステップＳＴ２２において、Ｃ０がゼロ（０）ではないと判定すると、ラベリング部１４３で取得されたシンボルラベリングマップ（バーコードマップ）ＳＬＭの重心ＣＯＧ（ＣｅｎｔｅｒＯｆＧｒａｖｉｔｙ）を求める。
シンボルラベリングマップ（バーコードマップ）ＳＬＭの重心ＣＯＧ（ｙｃｏｇ，ｘｃｏｇ）は、たとえばシンボルラベリングマップＳＬＭの全域においてＸ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹを取得（計算）し、そのプロファイルのレベル特性から求めることができる。
【０１０１】
求めたシンボルラベリングマップの重心ＣＯＧ（ｙｃｏｇ，ｘｃｏｇ）を起点として、シンボルラベリングマップＳＬＭの左端・右端・上端・下端位置を求める。左右位置は、バーコードマップ上でｘｃｏｇを起点としてＸ軸方向に要素和（加算範囲はｙｃｏｇ±２）がゼロとなる座標ｘｓｔａｒｔおよびｘｓｔｏｐを検出し（ステップＳＴ２４）、そこで打ち切る。
上下位置は、バーコードマップ上でｙｃｏｇを起点としてＹ軸方向に要素和（加算範囲［ｘｓｔａｒｔ， ｘｓｔｏｐ］）がゼロとなる座標ｙｕｐｐｅｒおよびｙｌｏｗｅｒを検出し（ステップＳＴ２５）、そこで打ち切る。
このようにして、格子座標上において、一次元バーコード２１の４辺位置が特定される。
【０１０２】
また、シンボルラベリングマップ（バーコードマップ）内の４辺で囲まれる部分領域内の非ゼロ要素の数をＣ１とする。
【０１０３】
図１２は、２個の一次元バーコードを検出したときのシンボルラベリングマップ（バーコードマップ）ＳＬＭ１とそのＸ軸およびＹ軸の射影ｐｒｏｊＸ，ｐｒｏｊＹのプロファイルＰＲＦＸ、ＰＲＦＹ、並びにシンボルラベリングマップＳＬＭ１の重心、左端・右端・上端・下端位置の各座標を示す図である。
【０１０４】
図１２のシンボルラベリングマップＳＬＭ１の重心ＣＯＧ１の格子上の座標（ｙｃｏｇ，ｘｃｏｇ）は（４．５，３．７）となる。
【０１０５】
座標ｙｃｏｇ＝４．５はＹ軸の射影ｐｒｏｊＹに基づき次式で求めることができる。
ｙｃｏｇ＝｛（３×５）＋（４×５）＋（８×３）｝／｛５＋５＋３｝
＝｛１５＋２０＋２４｝／｛１３｝＝５９／１３＝４．５
【０１０６】
座標ｘｃｏｇ＝３．７はＸ軸の射影ｐｒｏｊＸに基づき次式で求めることができる。
ｘｃｏｇ＝｛（１×２）＋（２×２）＋（３×２）＋（４×２）＋（５×３）＋
（６×１）＋（７×１）｝／｛２＋２＋２＋２＋３＋１＋１｝
＝｛２＋４＋６＋８＋１５＋６＋７｝／｛１３｝＝４８／１３≒３．７
【０１０７】
なお、バーコードが２個存在する場合、対応するシンボルラベリングマップ（バーコードマップ）は、図１２に示すように、このマップ上で重心ＣＯＧ１を求めると、一次元バーコードに含まれないバーコードから外れた外部の位置に来てしまう場合が多い。
【０１０８】
なお、一次元バーコードが１個しか存在しない場合、対応するシンボルラベリングマップ（バーコードマップ）は、このマップ上で重心ＣＯＧ２を求めると、一次元バーコード内の適正な位置となる。
【０１０９】
次に、そして、ステップＳＴ２６において、シンボルラベリングマップ（バーコードマップ）上で重心ＣＯＧを起点として求めた一次元バーコードの４辺によって囲まれる領域内の値１をもつ要素数をカウントしこれをＣ１とする。本例では、シンボルラベリングマップＳＬＭ１の場合、Ｃ１＝２となる。
【０１１０】
そして、ステップＳＴ２７において、Ｃ０がＣ１であるか否かを判定する。ステップＳＴ２７においてＣ０がＣ１であると判定した場合には、一次元バーコードは１個であると判定する（ステップＳＴ２９）。
【０１１１】
ステップＳＴ２２において、Ｃ０がＣ１ではないと判定すると、一次元バーコードは２個以上であると判定する（ステップＳＴ３０）。
【０１１２】
個数判定部１４４１の判定結果は分割処理部１４４２に供給され、領域分割処理（図５のステップＳＴ１６）が行われる。
【０１１３】
分割処理部１４４２では、一次元バーコードが２個以上と判定された場合に、対応するシンボルラベリングマップ（バーコードマップ）を用いて領域分割を行う。
領域分割は以下の理由により行う。
【０１１４】
一次元バーコードが同一画像空間上に２個以上（複数個）存在する場合は、正しく位置検出を行うことができない。
たとえば図６に示すような一次元バーコードが２個存在する場合、対応するシンボルラベリングマップ（バーコードマップ）は図１０に示すようになるが、前述したように、このマップ上で重心ＣＯＧを求めると、重心ＣＯＧは一次元バーコードに含まれないバーコードから外れた外部の位置に来てしまう場合が多い。一次元バーコードの位置関係によっては重心が一次元バーコードの内側に来る場合もあるが、その場合でも存在するバーコードすべてをただしく復号することは難しい。
そこで、一次元バーコードごとに領域分割して分割した領域ごとに重心を求めることができるように領域分割を行う。
【０１１５】
領域分割は、たとえばシンボルラベリングマップＳＬＭ１全域のＸ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹを取得し、取得した射影のプロファイルＰＲＦＸ，ＰＲＦＹにおいて谷部分と認識できる位置を探索し、この谷部分の位置を領域分割の境界位置（境界線）として取得し、取得した境界位置を基準として複数（本例では２個）の一次元バーコードの各領域Ｒ１，Ｒ２・・を設定する。
【０１１６】
図１３は、一次元バーコードが２個存在する場合に、そのシンボルラベリングマップの領域分割処理を説明するための図である。
図１４は、一次元バーコードが２個存在する場合に、そのシンボルラベリングマップの領域分割の一処理を説明するためのフローチャートである。
【０１１７】
分割処理部１４４２は、シンボルラベリングマップ（バーコードマップ）ＳＬＭ１の全域におけるＸ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹ、あるいは射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹの一方を取得（計算）する。
【０１１８】
一次元バーコードが２個の場合は、双方のバーコードが結合状態にない限り、射影ｐｒｏｊＸおよびｐｒｏｊＹのいずれか一方もしくは両者が２つの山と１つの谷からなるプロファイルＰＲＦ（Ｘ、Ｙ）をもつ。
図１３ではＹ軸の射影ｐｒｏｊＹにその特性が現れている。射影ｐｒｏｊＹの谷に相当する部分が、２つの一次元バーコードに挟まれた空間に対応する。よって、射影ｐｒｏｊＹ上でこの谷の位置を決定することにより、２つの一次元バーコードの上下方向の境界位置（分離位置のｙ座標）ｙｄｉｖを求めることができる。
境界位置ｙｄｉｖによって上下に分離された２つの領域をＲ１およびＲ２とする。以降の処理は、領域Ｒ１とＲ２のそれぞれについて、一次元バーコードが１個の場合と同様の処理を適用することで、各々の一次元バーコードの位置を決定することができる。
【０１１９】
図１４の処理では、まずステップＳＴ４１において、シンボルラベリングマップ（バーコードマップ）ＳＬＭ１の全域におけるＸ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹを取得（計算）する。なお、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹは、前述した個数判定処理で計算して取得した射影情報を用いてもよい。
【０１２０】
次に、Ｘ軸の射影ｐｒｏｊＸを解析し（ステップＳＴ４２）、曲線を２山に分ける値ゼロの区間が存在するか調べる（ステップＳＴ４３）。
図１３の例では射影ｐｒｏｊＸ上にそのような区間は存在しない。これは２つの一次元バーコードが、横方向に見た場合にオーバーラップしていることによる。
【０１２１】
したがって次に、Ｙ軸への射影ｐｒｏｊＹを解析し（ステップＳＴ４４）、曲線を２山に分ける値ゼロの区間が存在するか調べる（ステップＳＴ４５）。
図１３の例では射影ｐｒｏｊＹ上にそのような区間が存在する。この射影曲線上で値ゼロの谷を形成する区間の中央の値をｙｄｉｖとして、シンボルラベリングマップ（バーコードマップ）を上下に２つの部分領域Ｒ１およびＲ２に分割する（ステップＳＴ４６）。
【０１２２】
なお、Ｘ軸への射影ｐｒｏｊＸを解析し（ステップＳＴ４３）、曲線を２山に分ける値ゼロの区間が存在する場合には、この射影曲線上で値ゼロの谷を形成する区間の中央の値をｘｄｉｖとして、シンボルラベリングマップ（バーコードマップ）を上下に２つの部分領域Ｒ１およびＲ２に分割する（ステップＳＴ４７）。
【０１２３】
次に、シンボルラベリングマップ（バーコードマップ）ＳＬＭ１の部分領域Ｒ１について一次元バーコードの個数の判定を行う（ステップＳＴ４８）。ここでの処理は、前述の図１１に示した処理手順に従って行うことができる。問題がなければ領域Ｒ１における一次元バーコードの個数が１個であることが確認できる（ステップＳＴ４９）。
【０１２４】
続いて、部分領域Ｒ２について同様に一次元バーコードの個数の判定を行う（ステップＳＴ５０）。問題がなければ領域Ｒ２における一次元バーコードの個数が１個であることが確認できる（ステップＳＴ５１）。
ここまでの処理によって、各分割領域Ｒ１，Ｒ２に１個ずつ復号可能な一次元バーコードが存在し、一次元バーコードの位置が確定できる（ステップＳＴ５２）。
【０１２５】
なお、ステップＳＴ４５で射影ｐｒｏｊＹ上に谷の存在が確認できない場合、ステップＳＴ４９，ＳＴ５１で領域Ｒ１，Ｒ２における一次元バーコードの個数が１個であることが確認できない場合には、何らかの異常が生じているものと判定される（ステップＳＴ５３）。
【０１２６】
次に、位置決定部１４５において、バーコード位置決定（位置判定）が行われる（図５のステップＳＴ１７）。
一次元バーコードが２個存在し、シンボルラベリングマップＳＬＭ１の領域分割が行われた場合には、分割された複数の一次元バーコードの各シンボルについてラベリングされた領域に基づき、一次元バーコードが記録媒体２０に記録された位置を検出する。
【０１２７】
位置決定部１４５は、分割された個別の領域について一次元バーコードの上下左右の概略位置である重心を決定し、概略位置情報より上記画像空間座標上のバーコードの上下左右位置を最終決定する。
【０１２８】
位置決定部１４５のシンボル位置判定処理においては、シンボルラベリングマップの重心（ｙｘｏｇ，ｘｃｏｇ）を求めることから開始される。重心は定義に基づいて計算される。
【０１２９】
２個（複数）の一次元バーコードがあり、領域分割部１４４で一次元バーコードごとに分割されている場合には、分割領域の一次元バーコードごとに上記したような、シンボルラベリングマップ全域において、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹを取得して一次元バーコードごとの重心が求められる。
【０１３０】
図１５は、２個の一次元バーコードを検出したときのシンボルラベリングマップ（バーコードマップ）ＳＬＭ１の第１分割領域Ｒ１とそのＸ軸およびＹ軸の射影ｐｒｏｊＸ，ｐｒｏｊＹのプロファイルＰＲＦＸ、ＰＲＦＹ、並びに分割領域の重心、左端・右端・上端・下端位置の各座標を示す図である。
【０１３１】
図１５のシンボルラベリングマップＳＬＭ１１の重心ＣＯＧ１１の座標（ｙｃｏｇ，ｘｃｏｇ）は（３．５，３．４）となる。
【０１３２】
座標ｙｃｏｇ＝３．５はＹ軸の射影ｐｒｏｊＹに基づき次式で求めることができる。
ｙｃｏｇ＝｛（３×５）＋（４×５）｝／｛５＋５｝
＝｛１５＋２０｝／｛１０｝＝３５／１０＝３．５
【０１３３】
座標ｘｃｏｇ＝３．４はＸ軸の射影ｐｒｏｊＸに基づき次式で求めることができる。
ｘｃｏｇ＝｛（１×２）＋（２×２）＋（３×２）＋（４×２）＋（５×２）＋
（５．５×２）｝／｛２＋２＋２＋２＋２＋２｝
＝｛２＋４＋６＋８＋１０＋１１｝／｛１２｝＝４１／１２≒３．４
【０１３４】
このように、分割領域Ｒ１には一次元バーコードが１個しか存在しないことから、対応するシンボルラベリングマップ（バーコードマップ）は、このマップ上で重心ＣＯＧ１１を求めると、一次元バーコード２１内の適正な位置となる。
【０１３５】
図１６は、２個の一次元バーコードを検出したときのシンボルラベリングマップ（バーコードマップ）ＳＬＭ１の第２分割領域Ｒ２とそのＸ軸およびＹ軸の射影ｐｒｏｊＸ，ｐｒｏｊＹのプロファイルＰＲＦＸ、ＰＲＦＹ、並びに分割領域の重心、左端・右端・上端・下端位置の各座標を示す図である。
【０１３６】
図１６のシンボルラベリングマップＳＬＭ１２の重心ＣＯＧ１２の格子上の座標（ｙｃｏｇ，ｘｃｏｇ）は（８，６）となる。
【０１３７】
座標ｙｃｏｇ＝８はＹ軸の射影ｐｒｏｊＹに基づき次式で求めることができる。
ｙｃｏｇ＝｛８×３｝／｛３｝
＝｛２４｝／｛３｝＝８
【０１３８】
座標ｘｃｏｇ＝６はＸ軸の射影ｐｒｏｊＸに基づき次式で求めることができる。
ｘｃｏｇ＝｛（４．５×１）＋（５×１）＋（６×１）＋（７×１）＋（７．５×１）
＝｛４．５＋５＋６＋７＋７．５｝／｛１＋１＋１＋１＋１｝
＝３０／５＝６
【０１３９】
このように、分割領域Ｒ２には一次元バーコードが１個しか存在しないことから、対応するシンボルラベリングマップ（バーコードマップ）は、このマップ上で重心ＣＯＧ１２を求めると、一次元バーコード２２内の適正な位置となる。
【０１４０】
なお、記録媒体２０に１個のバーコードが存在する場合には、領域分割部１４４の個数判定部１４４１でバーコード数が１個と判定され、領域分割処理が行われることなく、位置決定部１４５において、シンボルラベリングマップ（バーコードマップ）の全域の重心が求められる。
【０１４１】
このように重心を求めた後、次に、シンボルラベリングマップ（バーコードマップ）の左端・右端・上端・下端位置を求める。左右位置は、シンボルラベリングマップ（バーコードマップ）上でｘｃｏｇを起点としてＸ軸方向に要素和（加算範囲はｙｃｏｇ±２）がゼロとなる座標ｘｓｔａｒｔおよびｘｓｔｏｐを検出し、そこで打ち切る。
上下位置は、シンボルラベリングマップ（バーコードマップ）上でｙｃｏｇを起点としてＹ軸方向に要素和（加算範囲［ｘｓｔａｒｔ， ｘｓｔｏｐ］）がゼロとなる座標ｙｕｐｐｅｒおよびｙｌｏｗｅｒを検出したら打ち切る。
このようにして、座標上において、一次元バーコード２１，２２の４辺位置が特定される。そして、４辺の座標から画像空間上の座標を求める。
【０１４２】
分割された区画ごとに画像空間との１対１の対応関係をもっているので、一次元バーコードの左端は、区画（ｙｃｏｇ， ｘｓｔａｒｔ）における区画開始点である。一次元バーコードの右端は、区画（ｙｃｏｇ， ｘｓｔｏｐ）における区画終了点である。したがって、一次元バーコードの左右範囲は、左端〜右端となる。
なお、この左右範囲については、マージンをみて、左右それぞれ一定画素数拡張することも可能である。一次元バーコードの上下端の画像空間上の位置は、区画（ｙｕｐｐｅｒ， ｘｃｏｇ）のｙ座標と、区画（ｙｌｏｗｅｒ， ｘｃｏｇ）のｙ座標とで挟まれた領域の平均輝度のプロファイルから求められる。
具体例を図１７に示す。
【０１４３】
図１７は、一次元バーコード２２付近における平均輝度のプロファイルを示す図である。
図１７に示すように、上下エッジのサーチ開始点は、重心区画のｙ座標であり、その輝度に基づいてエッジ判定閾値（図１７参照）を決める。
そして、上下にサーチして、エッジ判定閾値を超えたところをエッジと判定し、それらをＢｉｍｇｔｏｐおよびＢｉｍｇｂｏｔｔｏｍとする。
【０１４４】
このように、位置決定部１４５は、ラベリングされた領域に基づき、一次元バーコード２１，２２が記録媒体２０に記録された位置を検出する。なお、本実施形態では、画像メモリを構成するｍ行ｎ列に配置した画素の位置を検出している。また、たとえば、この位置決定部１４５のシンボル位置判定機能として、ラベリングされた領域に基づいて一次元バーコード２１が記録媒体２０に記録された上下左右の概略位置を決定し、その概略位置で形成される矩形領域内のラベルリング総数をカウントし、これを予めカウントされた前記相関マップ全体でのラベリング総数と一致するか否かを判定した後、一次元バーコード２１，２２が記録媒体２０に記録された位置を検出するようにしてもよい。これにより、上下左右の概略位置の精度を高めることが可能である。
【０１４５】
基本的にシンボル情報読取装置においては、エッジをＢｉｍｇｔｏｐおよびＢｉｍｇｂｏｔｔｏｍとすることで、バーコードの画像空間上の位置（画素位置）が確定できたので、バーコード位置検出の全処理を終わることも可能である。
【０１４６】
そして、図５のステップＳＴ１８において、データ復号のための走査線が決定される。
【０１４７】
［実施形態の主な効果］
以上説明したように、本実施形態に係るバーコード読取装置１０によれば、位置検出処理部１４において、相関マップ作成部１４２は、仮領域について、走査線の走査方向に対して直交する方向に隣接する隣接領域との相関を求めて、相関値の高い領域を示すマップを作成する。ラベリング部１４３は、相関マップについて、一次元バーコード２１，２２の有無を検索し、一次元バーコード２１，２２が存在すると判断した領域をラベリングする。次いで、領域分割部１４４が、ラベリングされた領域に基づき、複数の一次元バーコード２１，２２のそれぞれについて領域を設定し分割する。そして、位置決定部１４５が、領域分割部１４４で分割された複数のシンボルの各シンボルについてラベリングされた領域に基づき、一次元バーコード２１，２２が記録媒体２０に記録された位置を検出する。
【０１４８】
したがって、本実施形態によれば、以下の効果を得ることができる。
本実施形態においては、領域分割部１４４でラベリングされた領域に基づき、一次元バーコード２１，２２のそれぞれについて領域を設定し分割することから、バーコード等の同一種類のシンボルが同じ記録媒体２０上に２個以上（複数）存在する場合であっても、分割された領域ごとに一次元バーコード２１，２２が記録媒体２０に記録された位置検出処理を行うことができるようになる。その結果、各一次元バーコード２１，２２の重心位置を安定して算出することができるようになり、複数の一次元バーコード２１，２２を相互に区別することが可能であり、一次元バーコード２１，２２個別にデコードすることが可能となる。
。
【０１４９】
本実施形態においては、領域分割部１４４は、ラベリング部１４３によるシンボルラベリングマップにおける一次元バーコード２１，２２の数を判定する個数判定部１４４１と、個数判定部１４４１により一次元バーコード２１，２２の数が２個以上であると判定されたシンボルラベリングマップＳＬＭにおける複数の一次元バーコード２１，２２のそれぞれについて領域を設定し分割する分割処理部１４４２と、を含む。
本実施形態によれば、分割処理を行う前に、シンボルラベリングマップＳＬＭ上の一次元バーコード２１，２２の個数を判定することから、たとえばシンボルラベリングマップ上に、一次元バーコードは存在しない、あるいは、一次元バーコードは１個である場合には、分割処理自体を行わなくて良くなり（処理を省略でき）、その結果、一次元バーコード２１，２２が２個以上存在する場合にのみ行うことが可能となり、ひいては位置検出処理の効率化を図ることが可能となる。
【０１５０】
本実施形態においては、分割処理部１４４２は、射影取得部１４４２１においてシンボルラベリングマップＳＬＭ全域において、Ｘ軸およびＹ軸のうちの少なくとも一方の軸の射影を取得する。次に、境界位置取得部１４４２２において、射影取得部１４４２１で取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、この谷部分の位置を領域分割の境界位置として取得する。そして、領域設定部１４４２３において、境界位置取得部１４４２２で取得した境界位置を基準として複数の一次元バーコード２１，２２の各領域を設定する。位置決定部１４５は、領域設定部１４４２３で設定した各領域において一次元バーコード２１，２２が記録媒体２０に記録された位置を検出する。
このように、本実施形態によれば、分割処理を行う場合、シンボルラベリングマップ全域において、Ｘ軸およびＹ軸のうちの少なくとも一方の軸の座標軸への射影を取得し、取得した射影のプロファイルにおいて谷部分と認識できる位置を探索し、谷部分の位置を領域分割の境界位置として取得し、取得した境界位置を基準として複数の一次元バーコード２１，２２の各領域を設定することから、分割すべき領域を高い確度で特定し設定できるようになる。
また、射影を用いて複数の一次元バーコード２１，２２の領域の境界を取得することから、計算量を大幅に削減することが可能となる。
また、演算量が削減されれば、処理時間の短縮化に貢献することができる。さらに、安価な撮像素子を用いても十分な速度を出すことができれば、高価な撮像素子を控えることで、製造コスト削減に寄与することができる。
【０１５１】
また、本実施形態においては、分割処理部１４４２は、射影取得部１４４２１で、シンボルラベリングマップＳＬＭ全域において、Ｘ軸およびＹ軸の射影を取得し、境界位置取得部１４４２２でＸ軸およびＹ軸のうちの一方の軸の射影において谷部分と認識できる位置を取得できない場合に、他方の軸の射影において谷部分と認識できる位置の探索を行う。
これにより、本実施形態によれば、シンボルラベリングマップＳＬＭ全域において、Ｘ軸およびＹ軸の射影の両方を取得しておき、Ｘ軸およびＹ軸のうちの一方の軸の射影において谷部分と認識できる位置の探索の結果、谷部分の位置を取得できた場合は、他方の軸の射影の探索を省略することが可能となり、分割処理の効率化を図ることが可能となる。
【０１５２】
また、本実施形態においては、分割処理部１４４２は、射影取得部１４４２１で、シンボルラベリングマップＳＬＭ全域において、Ｘ軸およびＹ軸のうちの一方の軸の射影を取得した結果、境界位置取得部１４４２２で谷部分と認識できる位置を取得できない場合に、射影取得部１４４２１で、シンボルラベリングマップＳＬＭ全域において、Ｘ軸およびＹ軸のうちの他方の軸の射影を取得し、境界位置取得部１４４２２で谷部分と認識できる位置の探索を行う。
これにより、本実施形態によれば、シンボルラベリングマップ全域において、Ｘ軸およびＹ軸の射影の一方を取得しておき、その軸の射影において谷部分と認識できる位置の探索の結果、谷部分の位置を取得できた場合は、他方の軸の射影の取得並びに探索を省略することが可能となり、分割処理のさらなる効率化を図ることが可能となる。
【０１５３】
また、本実施形態において、領域設定部１４４２３は、設定した各領域における一次元バーコードの個数を確認するように構成される。
これにより、本実施形態によれば、分割領域に存在する一次元バーコードの個数を確認することが可能となり、分割処理の結果を再確認しながら、領域分割を行うことが可能となり、たとえば個数が先に判定した個数と異なっている場合には、何らかの異常が生じている等の判断を行うことが可能となる。
【０１５４】
また、本実施形態においては、位置決定部１４５は、分割された個別の領域について一次元バーコード２１，２２の上下左右（Ｘ軸方向、Ｙ軸方向）の概略位置である重心を決定し、概略位置情報より画像空間座標上の一次元バーコード２１，２２の上下左右位置を最終決定する。
これにより、本実施形態によれば、位置決定部１４５は、一次元バーコード２１，２２等の同一種類のシンボルが同じ記録媒体２０上に２個以上（複数）存在する場合であっても、分割された領域ごとに各一次元バーコード２１，２２の重心位置を安定して算出することができるようになり、一次元バーコード２１，２２が記録媒体２０に記録された位置検出処理を高い精度で行うことができるようになる。
【０１５５】
また、本実施形態においては、位置決定部１４５は、記録媒体２０上の一次元バーコードの数が１つで、前記領域分割部で領域分割が行われない場合、シンボルラベリングマップＳＬＭ全域において一次元バーコードが記録媒体２０に記録された位置を検出する。
これにより、本実施形態によれば、一次元バーコードは１個あるいはゼロである場合には、分割処理の有無やその内容を判断する必要がなくなり（処理を省略でき）、位置検出処理の効率化を図ることが可能となる。
【０１５６】
［他の実施形態］
本実施形態では、一次元バーコードが２個存在する場合に、そのシンボルラベリングマップの領域分割の処理を図１４に関連付けて説明したが、この一次元バーコードが２個存在する場合のシンボルラベリングマップの領域分割の処理はたとえば図１８に示すような処理も可能である。
【０１５７】
図１８は、一次元バーコード２１，２２が２個存在する場合に、そのシンボルラベリングマップの領域分割の他処理を説明するためのフローチャートである。
【０１５８】
図１８の分割処理が上述した図１４の分割処理と異なる点は以下の通りである。
図１４の分割処理では、シンボルラベリングマップ全域において、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹの両方を取得しておき、Ｘ軸およびＹ軸のうちの一方の軸の射影において探索の結果、谷部分と認識できる位置を取得できない場合に、他方の軸の射影において谷部分と認識できる位置の探索を行う。
これに対して、図１８の分割処理では、シンボルラベリングマップ全域において、Ｘ軸の射影ｐｒｏｊＸおよびＹ軸の射影ｐｒｏｊＹのうちの一方のＸ軸の射影を取得した結果（ステップＳＴ４１Ｘ）、谷部分と認識できる位置を取得できない場合に（ステップＳＴ４２，ＳＴ４３）、シンボルラベリングマップ全域において、Ｙ軸の射影を取得し（ステップＳＴ４１Ｙ）、谷部分と認識できる位置の探索を行う（ステップＳＴ４４，ＳＴ４５）。
図１８のその他の処理は図１４の処理と同様である。
【０１５９】
なお、図１４および図１８は一次元バーコード２１，２２が２個の場合の処理フローとなっているが、一次元バーコードが３個の場合においても、第１ステップとしてバーコードマップにおいて、一次元バーコードを１個と２個に分割する境界線を求め、第２ステップとして一次元バーコードが２個の領域について、これを２つに分割する境界線を求めるようにすればよい。
【０１６０】
なお、本実施形態に係るシンボル情報読取処理では、小区画内で複数ラインを指定して、まず微分演算した上で対応点ごとの積和演算を行うのではなく、単一ラインかつ分散の演算が行われるように構成したが、たとえば、輝度値の変動量は分散に代えて標準偏差を計算することで得ることも可能であり、分散に代えて単一ラインかつ標準偏差の演算が行われるように構成しても良い。
この場合も、本実施形態に係るシンボル情報読取処理は、従来技術と比べて演算量の少ない処理となる。
【０１６１】
［応用例］
上述した実施形態では、一次元バーコードが２個の場合の処理フローについて説明したが、一次元バーコードが３個の場合においても、第１ステップとしてバーコードマップにおいて、一次元バーコードを１個と２個に分割する境界線を求め、第２ステップとして一次元バーコードが２個の領域について、これを２つに分割する境界線を求めるようにすればよい。
【０１６２】
本発明において、バーコードとしては、一次元バーコードだけでなく、代表的な二次元バーコードであるＰＤＦ４１７やＣＯＤＥ１２８シンボル、Ｃｏｄｅ４９その他のスタック型バーコード等の位置検出にも利用可能である。さらに、バーコード以外のシンボル情報であってもよい。
【０１６３】
なお、以上詳細に説明した方法は、上記手順に応じたプログラムとして形成し、ＣＰＵ等のコンピュータで実行するように構成することも可能である。
また、このようなプログラムは、半導体メモリ、磁気ディスク、光ディスク、フロッピー（登録商標）ディスク等の記録媒体、この記録媒体をセットしたコンピュータによりアクセスし上記プログラムを実行するように構成可能である。
【符号の説明】
【０１６４】
１０・・・シンボル情報読取装置、１１・・・撮像装置、１１１・・・撮像素子、１１２・・・搬送機構、１２・・・画像メモリ、１３・・・データ処理装置、１４・・・位置検出処理部、１４１・・・仮領域判定部、１４２・・・相関マップ作成部、１４３・・・ラベリング部、１４４・・・領域分割部、１４４１・・・個数判定部、１４４２・・・分割処理部、１４４２１・・・射影取得部、１４４２２・・・境界位置取得部、１４４２３・・・領域設定部、１４５・・・位置決定部、１５・・・復号処理部。
【図１】
0006434354.tif 000002
【図２】
0006434354.tif 000003
【図３】
0006434354.tif 000004
【図４】
0006434354.tif 000005
【図５】
0006434354.tif 000006
【図６】
0006434354.tif 000007
【図７】
0006434354.tif 000008
【図８】
0006434354.tif 000009
【図９】
0006434354.tif 000010
【図１０】
0006434354.tif 000011
【図１１】
0006434354.tif 000012
【図１２】
0006434354.tif 000013
【図１３】
0006434354.tif 000014
【図１４】
0006434354.tif 000015
【図１５】
0006434354.tif 000016
【図１６】
0006434354.tif 000017
【図１７】
0006434354.tif 000018
【図１８】
0006434354.tif 000019