(57)【特許請求の範囲】
【請求項１】
原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する画像間引き処理部と、
前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出するエッジ強度算出部と、
前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定するバーコード領域絞り込み部と、
を備えるバーコード領域検知装置。
【請求項２】
前記バーコード領域絞り込み部は、
前記合成画像データの生成に用いられた複数のブロックのうち隣接する所定しきい値以上のエッジ強度を示す有効ブロックそれぞれを一つの領域と判定し、その領域に含まれる複数のブロックである有効ブロック群を示す有効ブロック群データを生成し、
生成した前記有効ブロック群データに基づいて、前記バーコード領域を特定する、
請求項１に記載のバーコード領域検知装置。
【請求項３】
前記バーコード領域絞り込み部は、
前記原画像における前記所定の方向の仮想線上に位置し、かつ、前記一方の軸方向に対して距離が近い前記有効ブロック群それぞれを統合して統合ブロックを示す統合ブロックデータを生成し、
生成した前記統合ブロックデータに基づいて、前記バーコード領域を特定する、
請求項２に記載のバーコード領域検知装置。
【請求項４】
前記バーコード領域絞り込み部は、
前記他方の軸方向に対して隣接する前記統合ブロックそれぞれを統合してバーコード候補エリアを示すエリアデータを生成し、
生成した前記エリアデータに基づいて、前記バーコード領域を特定する、
請求項３に記載のバーコード領域検知装置。
【請求項５】
前記バーコード領域絞り込み部は、
前記バーコード候補エリアのそれぞれについて、重心を算出し、
前記バーコード候補エリアを前記重心を中心に所定の回転角度で回転させ、
回転させるごとに前記バーコード候補エリアを囲む前記他方の軸方向に平行な２辺と前記一方の軸方向に平行な２辺とを有する四角形を特定して当該四角形の面積を算出し、
算出した四角形の面積のうち最も面積の小さい四角形を特定し、
特定した四角形の領域と対応する回転角度を示す情報をバーコードリーダに送信する、
請求項４に記載のバーコード領域検知装置。
【請求項６】
前記バーコード領域絞り込み部は、
前記合成画像データの生成に用いられた複数のブロックのすべてに対して、所定の方向の一線上に位置するブロックごとに前記他方の軸方向の座標を同一とする変換を行う、
請求項１から請求項５の何れか一項に記載のバーコード領域検知装置。
【請求項７】
請求項１から請求項６の何れか一項に記載のバーコード領域検知装置と、
前記バーコード領域検知装置が特定したバーコード領域のバーコード読み取るバーコードリーダと、
を備えるバーコード読み取りシステム。
【請求項８】
原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、
前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、
前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、
を含むバーコード領域検知方法。
【請求項９】
コンピュータに、
原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、
前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、
前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラムに関する。
【背景技術】
【０００２】
郵便物の配送先を区分する際、郵便物に付与された配送先の住所の情報を含むバーコードが利用される場合がある。
特許文献１には、関連する技術として、バーコードを読み取る技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１４０３１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、例えば、雑誌などの上にバーコードと同程度のサイズの余白があり、その余白の中にバーコードが印字されるような、複雑な背景の中にバーコードがある場合、バーコードの存在する領域を特定することは困難であった。
【０００５】
本発明は、上記の課題を解決することのできるバーコード領域検知装置、バーコード読み取りシステム、バーコード領域検知方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する画像間引き処理部と、前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出するエッジ強度算出部と、前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定するバーコード領域絞り込み部と、を備えるバーコード領域検知装置である。
【０００７】
また、本発明は、上記のバーコード領域検知装置と、前記バーコード領域検知装置が特定したバーコード領域のバーコード読み取るバーコードリーダと、を備えるバーコード読み取りシステムである。
【０００８】
また、本発明は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、を含むバーコード領域検知方法である。
【０００９】
また、本発明は、コンピュータに、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成することと、前記原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、前記間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出することと、前記原画像におけるブロックのエッジ強度と、前記間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較し、前記各画像の対応する位置において強いエッジ強度を示すブロックを選択し、前記各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、前記原画像データとに基づいて、バーコードが存在するバーコード領域を特定することと、を実行させるプログラムである。
【発明の効果】
【００１０】
本発明によれば、バーコード領域検知装置は、複雑な背景の中にバーコードがある場合、バーコードの存在する領域を特定することは困難であった。
【図面の簡単な説明】
【００１１】
【図１】本発明の第一の実施形態によるバーコード読み取りシステムの構成を示す図である。
【図２】本発明の第一の実施形態によるバーコード領域検知装置の構成を示す図である。
【図３】本発明の第一の実施形態においてエッジ画像データを生成する際の原画像上の所定の方向を説明するための図である。
【図４】本発明の第一の実施形態における最小値フィルタの処理を説明するための図である。
【図５】本発明の第一の実施形態における間引き処理を説明するための図である。
【図６】本発明の第一の実施形態によるバーコード領域絞込み部の構成を示す図である。
【図７】本発明の第一の実施形態におけるブロック変換画像を示す図である。
【図８】本発明の第一の実施形態における射影変換画像を示す図である。
【図９】本発明の第一の実施形態における外形矩形の面積の算出を説明するための図である。
【図１０】本発明の第一の実施形態によるバーコード読み取りシステムの処理フローを示す図である。
【図１１Ａ】本発明の第一の実施形態によるバーコード領域検知装置の処理フローを示す第１の図である。
【図１１Ｂ】本発明の第一の実施形態によるバーコード領域検知装置の処理フローを示す第２の図である。
【図１２】本発明の第一の実施形態におけるバーコードの例を示す図である。
【図１３】本発明の第一の実施形態における統合ブロックの例を示す図である。
【図１４】本発明の第一の実施形態において８つのベクトルのそれぞれに対して検知したエリアの例を示す図である。
【図１５】本発明の第一の実施形態における原画像の例を示す図である。
【図１６】本発明の第一の実施形態において検知したバーコード領域の例を示す図である。
【図１７】本発明の第二の実施形態におけるバーコード領域検知装置の最小構成を示す図である。
【発明を実施するための形態】
【００１２】
＜第一の実施形態＞
本発明の第一の実施形態によるバーコード読み取りシステムについて説明する。
本発明の第一の実施形態によるバーコード読み取りシステム１は、図１に示すように、搬送制御装置２００と、画像取得カメラ３００と、バーコード領域検知装置４００と、バーコードリーダ５００と、区分先決定機６００と、を備える。
【００１３】
搬送制御装置２００は、郵便物１００を搬送する。なお、郵便物１００には、配送先の住所の情報を含んだバーコードが付与されている。
【００１４】
画像取得カメラ３００は、搬送中の郵便物１００の濃淡画像を示す濃淡画像データを取得する。
画像取得カメラ３００が取得した濃淡画像データは、例えば、０〜２５５の２５６階調の濃淡を示す複数の画素で構成される画像を示す画像データである。階調は、０が黒を示し、数値が２５５に近づくにつれて画像が明るくなる（白に近づく）ことを示す。
なお、画像取得カメラ３００が取得した濃淡画像データは、原画像を示す原画像データである。以下、画像取得カメラ３００が取得した濃淡画像データを「原画像データ」と記載する。
【００１５】
バーコード領域検知装置４００は、郵便物１００の原画像データに基づいてバーコードが存在するバーコード領域を検知する。
【００１６】
バーコードリーダ５００は、バーコード領域検知装置４００が検知したバーコード領域においてバーコードを読み取る。
【００１７】
区分先決定機６００は、バーコードリーダ５００が読み取ったバーコードが示す配送先の住所に応じて、郵便物１００の配送先ごとに設けられた複数の容器７００の中から１つの容器７００を決定する。
【００１８】
次に、本発明の第一の実施形態によるバーコード領域検知装置４００について説明する。
本発明の第一の実施形態によるバーコード領域検知装置４００は、図２に示すように、エッジ画像生成部４０２と、直交エッジ画像生成部４０３と、ブロック平均処理部４０４と、ブロック差分処理部４０５と、最小値フィルタ部４０６と、処理回数判定部４０７と、画像間引き処理部４３０と、バーコード領域絞り込み部４０１と、繰り返し判定部４２０と、バーコード領域合成部４４０と、領域座標出力部４５０と、を備える。
【００１９】
エッジ画像生成部４０２は、画像取得カメラ３００から原画像データを取得する。
エッジ画像生成部４０２は、取得した原画像データが示す原画像における注目画素ａ（ｉ，ｊ）とその注目画素ａ（ｉ，ｊ）に隣接する８つの画素の合計９つの画素について、隣接する８つの画素のうちの２つを結ぶ複数のベクトルのうち注目画像ａ（ｉ，ｊ）の一部を通過する８つのベクトル１〜ベクトル８のそれぞれに対してエッジ画像を示すエッジ画像データを生成する。なお、エッジ画像とは、次に示すように、階調の差に基づいて生成される画像のことである。
８つのベクトルは、例えば、図３に示すように、二次元の原画像上の注目画素ａ（ｉ，ｊ）を中心とする８つの方向（原画像における所定の方向）を向くベクトルである。具体的には、８つのベクトルは、画素ａ（ｉ−１，ｊ）から画素ａ（ｉ＋１，ｊ）へ向かうベクトル１、画素ａ（ｉ−１，ｊ）から画素ａ（ｉ＋１，ｊ＋１）へ向かうベクトル２、画素ａ（ｉ−１，ｊ−１）から画素ａ（ｉ＋１，ｊ＋１）へ向かうベクトル３、画素ａ（ｉ−１，ｊ−１）から画素ａ（ｉ，ｊ＋１）へ向かうベクトル４、画素ａ（ｉ，ｊ−１）から画素ａ（ｉ，ｊ＋１）へ向かうベクトル５、画素ａ（ｉ＋１，ｊ−１）から画素ａ（ｉ，ｊ＋１）へ向かうベクトル６、画素ａ（ｉ＋１，ｊ−１）から画素ａ（ｉ−１，ｊ＋１）へ向かうベクトル７、画素ａ（ｉ＋１，ｊ）から画素ａ（ｉ−１，ｊ＋１）へ向かうベクトル８である。
エッジ画像生成部４０２は、図３に示すベクトル１に対してエッジ画像データを生成する場合、「画素ａ（ｉ−１，ｊ）の階調と画素ａ（ｉ＋１，ｊ）の階調との差の絶対値」を算出し、算出した絶対値をベクトル１に対するエッジ画像における画素ａ（ｉ，ｊ）の階調とする。具体的には、画素ａ（ｉ−１，ｊ）の階調が２０３であり画素ａ（ｉ＋１，ｊ）の階調が１０５である場合、エッジ画像生成部４０２は、差の絶対値として９８を算出する。同様に、エッジ画像生成部４０２は、原画像におけるすべての画素を注目画素ａ（ｉ，ｊ）として、上述の絶対値を算出し、すべての画素に対する絶対値（階調の差）を算出し、ベクトル１に対するエッジ画像データを生成する。なお、階調の差が大きいということは、白と黒の差が大きい、すなわち、エッジがはっきりし、エッジ強度が強いことを意味する。
エッジ画像生成部４０２は、ベクトル１に対する上述のエッジ画像データの生成と同様に、ベクトル２〜ベクトル８のそれぞれに対してエッジ画像データを生成する。
【００２０】
直交エッジ画像生成部４０３は、エッジ画像生成部４０２が生成した８つのエッジ画像が示すエッジ画像のそれぞれに対して直交する方向のエッジ画像（以下、「直交エッジ画像」と記載）を示す直交エッジ画像データを生成する。
【００２１】
ブロック平均処理部４０４は、エッジ画像データにおいて８×８画素を１ブロックとし、１ブロックごとに階調の平均値を求める処理を行い、階調が平均化された複数のブロックで構成される画像（以下、「ブロック平均画像」と記載）を示すブロック平均画像データを生成する。なお、ブロック平均処理部４０４がこの処理を行うことにより、１ブロックは、平均化された階調を有する１画素で示される。そのため、ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて８分の１に縮小される。
【００２２】
また、ブロック平均処理部４０４は、直交エッジ画像データにおいて８×８画素を１ブロックとし、１ブロックごとに階調の平均値を求める処理を行い、階調が平均化された複数のブロックで構成される画像（以下、「直交ブロック平均画像」と記載）を示す直交ブロック平均画像データを生成する。なお、ブロック平均処理部４０４がこの処理を行うことにより、１ブロックは、平均化された階調を有する１画素で示される。そのため、直交ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて８分の１に縮小される。
【００２３】
ブロック差分処理部４０５（エッジ強度算出部）は、ブロック平均画像データと直交ブロック平均画像データのそれぞれが示す画像どうしの階調の差分を算出して、その階調の差分を示す画像（以下、「ブロック平均差分画像」と記載）を示すブロック平均差分画像データを生成する。
なお、階調の差分は、白と黒の差、すなわち、エッジ強度を示す。
【００２４】
最小値フィルタ部４０６は、ブロック平均差分画像データが示すブロック平均差分画像に対して、積分を用いて階調を平滑化する一般的に最小値フィルタと呼ばれる処理を行う。
例えば、最小値フィルタ部４０６は、ブロック平均差分画像データを３×３のブロックを示す３×３ブロックデータごとに分割する。最小値フィルタ部４０６は、３×３ブロックデータのそれぞれに対して、最小値フィルタの処理を行う。具体的には、最小値フィルタ部４０６は、図４（ａ）に示す数値の階調の差分（エッジ強度）を有する３×３ブロックデータに対して最小値フィルタの処理を行う場合、図４（ｂ）に示すように、３×３のブロックの中心のブロックに対して、隣接する８つのブロックそれぞれが示すエッジ強度のうち最小のエッジ強度(図４に示すエッジ強度の場合、ブロック１のエッジ強度３０)を適用する。したがって、最小値フィルタ部４０６が行う処理は、エッジ強度の強いブロックがエッジ強度の弱いブロックに囲まれて孤立している場合に、エッジ強度の強いブロックを、エッジ強度の弱いブロックに置き替えて、３×３ブロックデータを生成する処理である。
【００２５】
処理回数判定部４０７は、エッジ画像生成部４０２、直交エッジ画像生成部４０３、ブロック平均処理部４０４、ブロック差分処理部４０５、最小値フィルタ部４０６のそれぞれが行った画像データ処理が１回目であるか２回目であるかを判定する。
【００２６】
画像間引き処理部４３０は、処理回数判定部４０７が画像データ処理が１回目であると判定した場合、原画像データが示す原画像の縦方向と横方向のそれぞれに対して画素を間引き、間引き後画像を示す間引き後画像データを生成する。
具体的には、画像間引き処理部４３０は、処理回数判定部４０７が画像データ処理が１回目であると判定した場合、例えば、図５（ａ）に示す原画像における画素を縦方向に２分の１間引き、横方向に２分の１間引いて、原画像において残った画素を最も近い画素どうしを結合させて図５（ｂ）に示す間引き後画像を示す間引き後画像データを生成する。
なお、本発明の実施形態において「間引く」とは、所定のアルゴリズムに基づいて決定した画素それぞれに対して画像データ処理を行わないことをいう。また、本発明の実施形態において、「間引く」画素は、画像において１つの行を構成する画素の集合体、または、画像において１つの列を構成する画素の集合体の単位で所定のアルゴリズムに基づいて決定される。
【００２７】
バーコード領域絞り込み部４０１は、図６に示すように、画像合成部４０８と、二値化部４０９と、射影変換部４１０と、有効ブロック群生成部４１１と、統合ブロック生成部４１２と、エリア生成部４１３と、最小矩形探索部４１４と、領域統合判断部４１５と、分離領域結合部４１６と、画像サイズ復元部４１７と、領域座標取得部４１８と、領域座標評価部４１９と、を備える。
【００２８】
画像合成部４０８は、処理回数判定部４０７が画像データ処理が２回目であると判定した場合、最小値フィルタ部４０６が１回目に生成した画像データと２回目に生成した画像データとにおいて対応する各ブロックにおけるエッジ強度どうしを比較する。
画像合成部４０８は、エッジ強度の比較結果に基づいて、エッジ強度の強いブロックを選択し、選択したブロックを用いて合成画像を示す合成画像データを生成する。
【００２９】
二値化部４０９は、画像合成部４０８が生成した合成画像が示す各ブロックにおけるエッジ強度と所定のしきい値が示すエッジ強度とを比較する。
二値化部４０９は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であるか否かを判定する。
二値化部４０９は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であると判定した場合、合成画像におけるそのブロックをエッジ強度が強いことを示す有効ブロック“１（有効ブロック）”に変換する。
また、二値化部４０９は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度未満であると判定した場合、合成画像におけるそのブロックをエッジ強度が弱いことを示す無効ブロック“０（無効ブロック）”に変換する。
二値化部４０９は、合成画像における各ブロックを有効ブロックまたは無効ブロックに変換して、ブロック変換画像を示すブロック変換画像データを生成する。
例えば、二値化部４０９は、ベクトル２について、図７に示すブロック変換画像を示すブロック変換画像データを生成する。
なお、図７ではベクトル２についてのブロック変換画像であることを明確にするために、ベクトル２の方向の一直線上位置するブロックを有効ブロックまたは無効ブロックに変換した例を示している。しかしながら、実際には、図７に示すブロック変換画像において、白い四角で示されたブロックについても“１（有効ブロック）”または“０（無効ブロック）”の何れかに変換されている。
【００３０】
射影変換部４１０は、二値化部４０９が生成したブロック変換画像データを、エッジ画像生成部４０２が生成したエッジ画像に対応する８つのベクトル１〜ベクトル８のうち対象としている１つのベクトルが示す方向と、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向とに基づいて射影変換し、射影変換画像を示す射影変換画像データを生成する。
【００３１】
具体的には、射影変換部４１０は、二値化部４０９が生成したブロック変換画像データを、画像取得カメラ３００が取得した原画像において基準となる方向（例えば、原画像におけるＸ軸方向で示される横方向（原画像における一方の軸方向）または原画像におけるＹ軸方向で示される縦方向（原画像における他方の軸方向））に対して射影変換し、射影変換画像を示す射影変換画像データを生成する。
例えば、射影変換部４１０は、図７で示したブロック変換画像の複数のブロックに対して、図８に示すように、所定の方向の一線上に位置するブロックごとにＹ軸方向の座標を同一とする変換を行った画像である射影変換画像を示す射影変換画像データを生成する。
なお、図８において、斜線が付与されたブロックは、図７で示したブロック変換画像において存在しないブロックであり、画像データ処理の対象としないブロックである。
【００３２】
有効ブロック群生成部４１１は、射影変換部４１０が生成した射影変換画像データをＸ軸方向に走査し、隣接する有効ブロックを示す有効ブロックデータどうしを統合して有効ブロック群を示す有効ブロック群データを生成する。
【００３３】
統合ブロック生成部４１２は、同一の走査線上にありＸ軸方向の距離が近い有効ブロック群データどうしを統合して統合ブロックを示す統合ブロックデータを生成する。
【００３４】
エリア生成部４１３は、Ｙ軸方向に隣接する統合ブロックどうしを接続してエリアを生成する。
【００３５】
最小矩形探索部４１４は、エリア生成部４１３が生成したすべてのエリアのそれぞれについて、エリアのＸ軸方向の最小座標と最大座標、Ｙ軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
例えば、図９に示すエリアＡである場合、最小矩形探索部４１４は、外接矩形Ｒ１の面積を「ΔＸ×ΔＹ」と算出する。
【００３６】
最小矩形探索部４１４は、エリア生成部４１３が生成したすべてのエリアに対して重心を算出する。
最小矩形探索部４１４は、すべてのエリアそれぞれに対して、算出した重心を中心としてエリアを１度ずつ回転させ、エリアのＸ軸方向の最小座標と最大座標、Ｙ軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
最小矩形探索部４１４は、すべてのエリアそれぞれに対して、算出した外接矩形の面積のうち最も小さい面積となる外形矩形の回転角度とそのときの外接矩形の領域とを特定する。
【００３７】
領域統合判断部４１５は、最小矩形探索部４１４が生成したすべての最小外接矩形領域に対して、４つの条件、すなわち、任意の２つの最小外接矩形領域どうしの回転角度の差が一定の差未満であることと、それら２つの最小外接矩形領域の中心を結ぶ直線の傾きとそれら２つの最小外接矩形領域に対応するそれぞれの回転角度との差が一定の差未満であることと、それら２つの最小外接矩形領域の間の距離が一定の距離未満であることと、それら２つの最小外接矩形領域の幅の差が一定の差未満であることとがすべて満たされた場合、それら２つの最小外接矩形領域が元々１つの領域であり画像処理の過程で２つに分離したと判断する。
【００３８】
分離領域結合部４１６は、領域統合判断部４１５が、２つの最小外接矩形領域が元々１つの領域であり画像処理の過程で２つに分離したと判断した場合に、２つの最小外接矩形領域を結合した結合領域を示す結合領域データを生成する。
【００３９】
画像サイズ復元部４１７は、結合領域データが示す結合領域に含まれるブロックのサイズ原画像が示すブロックのサイズに変更して復元結合領域を示す復元結合領域データを生成する。
【００４０】
領域座標取得部４１８は、画像サイズ復元部４１７が生成した復元結合領域データが示す復元結合領域の面積を取得する。
【００４１】
領域座標評価部４１９は、領域座標取得部４１８が取得した復元結合領域の面積と想定されるバーコードの面積とを比較し、面積の差が所定の面積の差の範囲内にある場合に、その復元結合領域をバーコードが存在する領域（以下、「バーコード領域」と記載）と判定する。
【００４２】
繰り返し判定部４２０は、エッジ画像生成部４０２、直交エッジ画像生成部４０３、ブロック平均処理部４０４、ブロック差分処理部４０５、最小値フィルタ部４０６、処理回数判定部４０７、画像間引き処理部４３０、画像合成部４０８、二値化部４０９、射影変換部４１０、有効ブロック群生成部４１１、統合ブロック生成部４１２、エリア生成部４１３、最小矩形探索部４１４、領域統合判断部４１５、分離領域結合部４１６、画像サイズ復元部４１７、領域座標取得部４１８、領域座標評価部４１９のそれぞれが行う処理を８つのベクトル１〜ベクトル８のそれぞれに対して繰り返す制御を行う。
【００４３】
バーコード領域合成部４４０は、８つのベクトル１〜ベクトル８のそれぞれに対してエッジ画像生成部４０２、直交エッジ画像生成部４０３、ブロック平均処理部４０４、ブロック差分処理部４０５、最小値フィルタ部４０６、処理回数判定部４０７、画像間引き処理部４３０、画像合成部４０８、二値化部４０９、射影変換部４１０、有効ブロック群生成部４１１、統合ブロック生成部４１２、エリア生成部４１３、最小矩形探索部４１４、領域統合判断部４１５、分離領域結合部４１６、画像サイズ復元部４１７、領域座標取得部４１８、領域座標評価部４１９のそれぞれが行う処理により得られた８つのバーコード領域どうしを比較する。
バーコード領域合成部４４０は、比較した結果、バーコード領域が他のバーコード領域を包含している場合には、包含されているバーコード領域を棄却する。
【００４４】
領域座標出力部４５０は、バーコード領域合成部４４０が内包されたバーコード領域を棄却した後のバーコード領域と、対応する回転角度とをバーコードリーダ５００に送信する。
【００４５】
次に、本発明の第一の実施形態によるバーコード読み取りシステム１の処理について説明する。
ここでは、図１０に示すバーコード読み取りシステム１の処理フローについて説明する。
ユーザは、郵便物１００の配送を手配する。
配送業者は、バーコード読み取りシステム１に郵便物１００を供給する。
【００４６】
搬送制御装置２００は、図１で示した点線で描かれた矢印Ｕの方向に郵便物１００を搬送する（ステップＳ１）。
【００４７】
画像取得カメラ３００は、搬送制御装置２００が郵便物１００を搬送している間に、郵便物１００の表面の画像を取得する（ステップＳ２）。
画像取得カメラ３００がステップＳ２の処理により取得した画像は、原画像である。
【００４８】
バーコード領域検知装置４００は、画像取得カメラ３００が取得した原画像を示す原画像データを画像取得カメラ３００から取得する。
バーコード領域検知装置４００は、取得した原画像データを解析する（ステップＳ３）。
バーコード領域検知装置４００は、解析結果に基づいて、バーコード領域の候補を特定する（ステップＳ４）。
バーコード領域検知装置４００は、特定した１つ以上のバーコード領域の候補の位置を含むバーコード領域情報をバーコードリーダ５００に送信する。
【００４９】
バーコードリーダ５００は、バーコード領域検知装置４００からバーコード領域情報を受信する。
バーコードリーダ５００は、受信したバーコード領域情報に基づいてバーコード領域の候補のそれぞれに対してバーコードを読み取る処理を行う（ステップＳ５）。
バーコードリーダ５００は、読み取ることのできたバーコードに含まれる住所の情報を特定する（ステップＳ６）。
バーコードリーダ５００は、特定した住所を示す住所情報を区分先決定機６００に送信する。
【００５０】
区分先決定機６００は、バーコードリーダ５００から住所情報を受信する。
区分先決定機６００は、区分先別に分かれた複数の容器７００の中から受信した住所の情報に応じた容器７００を決定する（ステップＳ７）。
【００５１】
バーコード読み取りシステム１において、搬送制御装置２００、画像取得カメラ３００、バーコード領域検知装置４００、バーコードリーダ５００、区分先決定機６００のそれぞれが行う一連の処理が、郵便物１００が複数の容器７００のうち最初の容器７００に到達するまでの間に完了することにより、郵便物１００を配送先の住所に応じた容器７００に区分することができる。
【００５２】
次に、本発明の第一の実施形態によるバーコード領域検知装置４００の処理について説明する。
ここでは、図１１Ａ〜図１１Ｂに示すバーコード領域検知装置４００の処理フローについて説明する。
【００５３】
エッジ画像生成部４０２は、画像取得カメラ３００から原画像を取得する。
そして、取得した原画像データが示す原画像における注目画素ａ（ｉ，ｊ）とその注目画素ａ（ｉ，ｊ）に隣接する８つの画素の合計９つの画素について、隣接する８つの画素のうちの２つを結ぶ複数のベクトルのうち注目画像ａ（ｉ，ｊ）の一部を通過する８つのベクトル１〜ベクトル８のうちの１つに対してエッジ画像データを生成する（ステップＳ１１）。
【００５４】
具体例として、図３で示したベクトル１に対してエッジ画像を生成する場合について説明する。
エッジ画像生成部４０２は、画像取得カメラ３００から原画像データを取得する。
エッジ画像生成部４０２は、取得した原画像データが示す原画像における注目画素ａ（ｉ，ｊ）とその注目画素ａ（ｉ，ｊ）に隣接する８つの画素の合計９つの画素について、隣接する８つの画素のうちの２つを結ぶ複数のベクトルのうち注目画像ａ（ｉ，ｊ）の一部を通過する８つのベクトル１〜ベクトル８のそれぞれに対してエッジ画像データを生成する。
エッジ画像生成部４０２は、図３で示したベクトル１に対してエッジ画像を示すエッジ画像データを生成する場合、「画素ａ（ｉ−１，ｊ）の階調と画素ａ（ｉ＋１，ｊ）の階調との差分の絶対値」を算出し、算出した絶対値をベクトル１に対するエッジ画像における画素ａ（ｉ，ｊ）の階調とする。具体的には、画素ａ（ｉ−１，ｊ）の階調が２０３であり画素ａ（ｉ＋１，ｊ）の階調が１０５である場合、エッジ画像生成部４０２は、差の絶対値として９８を算出する。同様に、エッジ画像生成部４０２は、原画像におけるすべての画素を注目画素ａ（ｉ，ｊ）として、上述の絶対値を算出し、すべての画素に対する絶対値（階調の差分）を算出し、ベクトル１に対するエッジ画像データを生成する。
【００５５】
エッジ画像生成部４０２は、生成したエッジ画像データをブロック平均処理部４０４に送信する。
【００５６】
直交エッジ画像生成部４０３は、エッジ画像生成部４０２が生成したエッジ画像データが示すエッジ画像に直交する画像である直交エッジ画像を示す直交エッジ画像データを生成する。（ステップＳ１２）。
具体的には、直交エッジ画像生成部４０３は、上述のベクトル１に直交するベクトルにおける始点と終点の画素どうしで階調の差分の絶対値を求め、エッジ画像データと同様に直交エッジ画像データを生成する。
【００５７】
直交エッジ画像生成部４０３は、生成した直交エッジ画像をブロック平均処理部４０４に送信する。
【００５８】
ブロック平均処理部４０４は、エッジ画像生成部４０２からエッジ画像を受信する。
ブロック平均処理部４０４は、エッジ画像データにおいて８×８画素を１ブロックとし、１ブロックごとの階調の平均値を求める処理を行い、複数のブロック平均画像を示すブロック平均画像データを生成する（ステップＳ１３）。なお、ブロック平均処理部４０４は、８×８画素から成る１ブロックの階調の平均値を１画素として生成する。ブロック平均処理部４０４が行うこの処理により、ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて８分の１に縮小される。
ここで、８×８画素のサイズは、バーコードの高さを超えず、バーコードの複数のバーを含むサイズである。バーコードの一例を図１２に示す。図１２において、符号Ｈは、バーコードの高さを示している。また、符号Ｗは、バーの幅を示している。
なお、バーコードのサイズは未知ではあるが、画像上のバーコードの大きさはある程度想定できる。そのため、複数のバーを部分的に含むようなブロックのサイズを決定することができる。ここでは、ブロックのサイズの一例として８×８画素としている。
【００５９】
ブロック平均処理部４０４は、生成したブロック平均値画像データをブロック差分処理部４０５に送信する。
【００６０】
また、ブロック平均処理部４０４は、直交エッジ画像生成部４０３から直交エッジ画像データを受信する。
【００６１】
また、ブロック平均処理部４０４は、直交エッジ画像データにおいて８×８画素を１ブロックとし、１ブロックごとの階調の平均値を求める処理を行い、階調が平均化された複数の直交ブロック平均画像を示す直交ブロック平均画像データを生成する（ステップＳ１４）。なお、この処理によりブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて８分の１に縮小される。なお、ブロック平均処理部４０４が行うこの処理により、直交ブロック平均画像全体のサイズは、縦方向及び横方向のそれぞれについて８分の１に縮小される。
【００６２】
ブロック平均処理部４０４は、生成した直交ブロック平均画像データをブロック差分処理部４０５に送信する。
【００６３】
ブロック差分処理部４０５は、ブロック平均処理部４０４からブロック平均画像データと直交ブロック平均画像データのそれぞれを受信する。
【００６４】
ブロック差分処理部４０５は、ブロック平均画像データと直交ブロック平均画像データのそれぞれが示す画像どうしの階調の差分を算出して、その差分を示すブロック平均差分画像を示すブロック平均差分画像データを生成する（ステップＳ１５）。
なお、ブロック差分処理部４０５が生成したブロック平均差分画像データは、１つのブロックにおいてバーコードのバーの外形を多く含む場合に階調の差分の大きい（エッジ強度の強い）ブロックが連続する画像のデータとなる。また、ブロック差分処理部４０５が生成したブロック平均差分画像データは、１つのブロックにおいて文字のようにさまざまな方向にエッジを持つ場合に階調の差分の大きい（エッジ強度の強い）ブロックが不連続な画像のデータとなる。また、ブロック差分処理部４０５が生成したブロック平均差分画像データは、どの方向にも強いエッジを持たない階調の差分が平坦な場合に階調の差分の小さいブロックが連続する画像のデータとなる。
【００６５】
ブロック差分処理部４０５は、生成したブロック平均差分画像データを最小値フィルタ部４０６に送信する。
【００６６】
最小値フィルタ部４０６は、ブロック差分処理部４０５からブロック平均差分画像データを受信する。
【００６７】
最小値フィルタ部４０６は、ブロック平均差分画像データが示すブロック平均差分画像に対して、最小値フィルタの処理を行う（ステップＳ１６）。
具体的には、最小値フィルタ部４０６は、ブロック平均差分画像データを３×３のブロックを示す３×３ブロックデータごとに分割する。最小値フィルタ部４０６は、３×３ブロックデータのそれぞれに対して、最小値フィルタの処理を行う。具体的には、最小値フィルタ部４０６は、図４（ａ）で示した数値の階調の差分（エッジ強度）を有する３×３ブロックデータに対して最小値フィルタの処理を行う場合、図４（ｂ）で示したように、３×３のブロックの中心のブロックに対して、隣接する８つのブロックそれぞれが示すエッジ強度のうち最小のエッジ強度(図４で示したエッジ強度の場合、ブロック１のエッジ強度３０)を適用する。したがって、最小値フィルタ部４０６が行う処理は、エッジ強度の強いブロックがエッジ強度の弱いブロックに囲まれて孤立している場合に、エッジ強度の強いブロックを、エッジ強度の弱いブロックに置き替えて、３×３ブロックデータを生成する処理である。
【００６８】
処理回数判定部４０７は、エッジ画像生成部４０２、直交エッジ画像生成部４０３、ブロック平均処理部４０４、ブロック差分処理部４０５、最小値フィルタ部４０６のそれぞれが行った画像データ処理が１回目であるか２回目であるかを判定する（ステップＳ１７）。
【００６９】
画像間引き処理部４３０は、処理回数判定部４０７が処理データ処理が１回目であると判定した場合（ステップＳ１７において“１回目”）、原画像データが示す原画像の縦方向と横方向のそれぞれに対して画素を間引き、間引き後画像を示す間引き後画像データを生成する（ステップＳ１８）。
具体的には、画像間引き処理部４３０は、処理回数判定部４０７が画像データ処理が１回目であると判定した場合、例えば、図５（ａ）で示した原画像における画素を縦方向に２分の１間引き、横方向に２分の１間引いて、原画像において残った画素を最も近い画素どうしを結合させて図５（ｂ）で示した間引き後画像を示す間引き後画像データを生成する。
画像間引き処理部４３０は、ステップＳ１１の処理に戻す。
【００７０】
エッジ画像生成部４０２、直交エッジ画像生成部４０３、ブロック平均処理部４０４、ブロック差分処理部４０５、最小値フィルタ部４０６のそれぞれは、画像間引き処理部４３０が生成した間引き後画像データに対して、画像取得カメラ３００が取得した原画像を示す原画像データの場合と同様の処理を行う。
【００７１】
画像合成部４０８は、処理回数判定部４０７が画像データ処理が２回目であると判定した場合（ステップＳ１７において“２回目”）、最小値フィルタ部４０６が１回目に生成した画像データと２回目に生成した画像データとにおいて対応する各ブロックにおけるエッジ強度どうしを比較する。
画像合成部４０８は、エッジ強度の比較結果に基づいて、エッジ強度の強いブロックを選択し、選択したブロックを用いて合成画像を示す合成画像データを生成する（ステップＳ１９）。
画像合成部４０８は、生成した合成画像データを二値化部４０９に送信する。
【００７２】
ここで、バーコード領域検知装置４００が行うステップＳ１７〜ステップＳ１９の処理は、バーコードにおいて最も幅の狭いナローバーと最も幅の広いワイドバーの両方に対応するための処理である。
バーコードは、バー幅の異なるバーで構成されている。最も幅の狭いバーと最も幅の広いバーとでは、バーコードの規格にもよるが、バーの幅は約２〜４倍異なる。上記のステップＳ１１〜ステップＳ１６の処理は、最も幅の狭いバーと最も幅の広いバーの両方に対して同時に有効な処理ではない。そこで、画像解像度にもよるが、例えば、原画像を使用して最も幅の狭いバーに対応し、間引き後画像を使用して最も幅の広いバーに対応するためにステップＳ１７〜ステップＳ１９の処理を行っている。
【００７３】
なお、２回目に生成したブロック平均差分画像データは、縦方向と横方向のそれぞれに２分の１ずつ間引きされた画像をもとに生成されている。そのため、画像合成部４０８は、ステップＳ１９の処理においてブロック平均差分画像データどうしを合成する場合、２回目に生成したブロック平均差分画像データを縦方向と横方向のそれぞれに２倍に拡大して、１回目に生成したブロック平均差分画像データと同一のサイズにした後にブロック平均差分画像データどうしを比較し選択して合成画像を生成する。画像合成部４０８が生成した合成画像は、バーコードにおける最も幅の狭いバーと最も幅の広いバーの両方に対して階調の差分が大きい（エッジ強度の強い）ことを示す合成画像である。
【００７４】
二値化部４０９は、画像合成部４０８から合成画像を受信する。
二値化部４０９は、画像合成部４０８が生成した合成画像が示す各ブロックにおけるエッジ強度と所定のしきい値が示すエッジ強度とを比較する。
【００７５】
二値化部４０９は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であるか否かを判定する。
二値化部４０９は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度以上であると判定した場合、合成画像におけるそのブロックをエッジ強度が強いことを示す有効ブロック“１（有効ブロック）”に変換する。
また、二値化部４０９は、合成画像におけるブロックが示すエッジ強度がしきい値が示すエッジ強度未満であると判定した場合、合成画像におけるそのブロックをエッジ強度が弱いことを示す無効ブロック“０（無効ブロック）”に変換する。
【００７６】
二値化部４０９は、合成画像における各ブロックを有効ブロックまたは無効ブロックに変換して、ブロック変換画像を示すブロック変換画像データを生成する（ステップＳ２０）。
例えば、二値化部４０９は、ベクトル２について、図７で示したブロック変換画像を示すブロック変換画像データを生成する。
二値化部４０９は、生成したブロック変換画像データを射影変換部４１０に送信する。
【００７７】
射影変換部４１０は、二値化部４０９からブロック変換画像データを受信する。
射影変換部４１０は、二値化部４０９が生成したブロック変換画像データを、エッジ画像生成部４０２が生成したエッジ画像に対応する８つのベクトル１〜ベクトル８のうち対象としている１つのベクトルが示す方向と、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向とに基づいて射影変換し、射影変換画像を示す射影変換画像データを生成する（ステップＳ２１）。
【００７８】
具体的には、射影変換部４１０は、二値化部４０９が生成したブロック変換画像データを、画像取得カメラ３００が取得した原画像において基準となる方向（例えば、原画像におけるＸ軸方向で示される横方向（原画像における一方の軸方向）または原画像におけるＹ軸方向で示される縦方向（原画像における他方の軸方向））に対して射影変換し、射影変換画像を示す射影変換画像データを生成する。
例えば、射影変換部４１０は、図７で示したブロック変換画像の複数のブロックに対して、図８で示したように、所定の方向の一線上に位置するブロックごとにＹ軸方向の座標を同一とする変換を行った画像である射影変換画像を示す射影変換画像データを生成する。
【００７９】
射影変換部４１０は、生成した射影変換画像データを有効ブロック群生成部４１１に送信する。
【００８０】
有効ブロック群生成部４１１は、射影変換部４１０から射影変換画像データを受信する。
【００８１】
有効ブロック群生成部４１１は、射影変換部４１０が生成した射影変換画像データをＸ軸方向に走査し、隣接する有効ブロックを示す有効ブロックデータどうしを統合して有効ブロック群を示す有効ブロック群データを生成する（ステップＳ２２）。
【００８２】
例えば、有効ブロック群生成部４１１は、有効ブロックとなったブロックを縦横４方向に隣接するという条件で接続して領域を形成する。その際、図３で示したベクトル１またはベクトル５のように、画像の走査方向（Ｘ軸方向）または副走査方向（Ｙ軸方向）に一致している方向には、プログラムなどで処理を行いやすい。しかしながら、その他の方向に関しては、後段の処理を簡単にするために、以下のような画像の射影変換を行う。
有効ブロック群生成部４１１は、例えば、図３で示したベクトル２の方向について、注目ブロックは図７で示したように斜め下方に向かって並んで存在する。
ベクトル２の方向に基づいて射影変換された画像が図８で示した画像である。
有効ブロック群生成部４１１は、射影変換後の画像上で、同じ走査線上にある有効ブロックを接続するため、図８で示した注目ブロックの行において隣接する有効ブロック同士を接続して１つの有効ブロック群とした有効ブロック群データを生成する。
【００８３】
有効ブロック群生成部４１１は、生成したすべての有効ブロック群データをエリア生成部４１３に送信する。
【００８４】
統合ブロック生成部４１２は、有効ブロック群生成部４１１からすべての有効ブロック群データを受信する。
【００８５】
統合ブロック生成部４１２は、同一の走査線上にありＸ軸方向の距離が近い有効ブロック群データどうしを統合して統合ブロックを示す統合ブロックデータを生成する（ステップＳ２３）。
例えば、図８で示した射影変換画像の場合、統合ブロック生成部４１２は、同一の行で距離が近い有効ブロック群どうしである有効ブロック群aと有効ブロック群bのデータを統合して統合ブロックを示す統合ブロックデータを生成する。
統合ブロック生成部４１２は、統合ブロックデータを生成する処理をすべての行について行う。
【００８６】
統合ブロック生成部４１２は、生成したすべての統合ブロックデータをエリア生成部４１３に送信する。
【００８７】
エリア生成部４１３は、統合ブロック生成部４１２からすべての統合ブロックデータを受信する。
【００８８】
エリア生成部４１３は、Ｙ軸方向に隣接する統合ブロックの統合ブロックデータどうしを統合してエリアを示すエリアデータを生成する（ステップＳ２４）。
【００８９】
例えば、統合ブロック生成部４１２が統合ブロックを生成する処理を行い図１３に示す統合ブロックを示す統合ブロックデータが生成された場合、エリア生成部４１３は、Ｙ軸方向に隣接する統合ブロックを示す統合ブロックデータどうしを統合してエリア１を示すエリア１データとエリア２を示すエリア２データのそれぞれを生成する。
なお、エリア生成部４１３が行うこの処理は、一種のラベリング処理である。
【００９０】
エリア生成部４１３は、生成したすべてのエリアデータを最小矩形探索部４１４に送信する。
【００９１】
最小矩形探索部４１４は、エリア生成部４１３からすべてのエリアデータを受信する。
【００９２】
最小矩形探索部４１４は、エリア生成部４１３から受信したすべてのエリアデータが示すエリアのそれぞれについて、エリアのＸ軸方向の最小座標と最大座標、Ｙ軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
例えば、図９に示すエリアＡである場合、最小矩形探索部４１４は、外接矩形Ｒ１の面積を「ΔＸ×ΔＹ」と算出する。
【００９３】
最小矩形探索部４１４は、エリア生成部４１３が生成したすべてのエリアに対して重心を算出する。
最小矩形探索部４１４は、すべてのエリアそれぞれに対して、算出した重心を中心としてエリアを例えば−４５度〜+４５度の範囲で１度ずつ回転させ、エリアのＸ軸方向の最小座標と最大座標、Ｙ軸方向の最小座標と最大座標を四角形の頂点とする外接矩形の面積を算出する。
最小矩形探索部４１４は、すべてのエリアそれぞれに対して、算出した外接矩形の面積のうち最も小さい面積となる外形矩形の回転角度とそのときの外接矩形の領域とを特定する（ステップＳ２５）。
なお、最小矩形探索部４１４は、最小矩形の傾きが「８方向の範囲角度（１８０度÷８）＋誤差」の範囲内すなわち対象とするベクトルが示す向きに対して−１５度〜＋１５度程度であった場合、その回転角度はバーコード領域を特定する回転角度であると判定する。
また、最小矩形探索部４１４は、回転角度が対象とするベクトルが示す向きに対して−１５度〜＋１５度程度の範囲から外れた場合、その回転角度はバーコード領域を特定する回転角度ではないと判定する。
【００９４】
領域統合判断部４１５は、最小矩形探索部４１４が生成したすべての最小外接矩形領域のそれぞれに対して、４つの条件のすべてが満足された場合、それら２つの最小外接矩形領域が元々１つの領域であり画像処理の過程で２つに分離したと判断する（ステップＳ２６）。
【００９５】
４つの条件の１つ目は、任意の２つの最小外接矩形領域どうしの回転角度の差が一定の差未満（例えば、５度未満）であることである。
この４つの条件の１つ目は、結合すべき領域の回転角度は同じ方向（平行）であることを示す。
【００９６】
４つの条件の２つ目は、２つの最小外接矩形領域の中心を結ぶ直線の傾きと、それら２つの最小外接矩形領域に対応するそれぞれの回転角度との差が一定の差未満（例えば、５度未満）であることである。
この４つの条件の２つ目は、１つ目の条件を満たしていても、隣接する別のバーコードのように平行であるが段違いである場合に結合しないようにする条件である。
【００９７】
４つの条件の３つ目は、２つの最小外接矩形領域の間の距離が一定の距離未満（例えば、８ブロック未満）であることである。
この４つの条件の３つ目は、近隣する雑音領域を結合しないように、所定以上の距離の差がある場合には結合しないようにする条件である。
【００９８】
４つの条件の４つ目は、２つの最小外接矩形領域の幅の差が一定の差未満（例えば、４ブロック未満）であることである。
この４つの条件の４つ目は、同一のバーコードでないものどうしを結合しないようにするための条件である。
【００９９】
分離領域結合部４１６は、領域統合判断部４１５が、２つの最小外接矩形領域が元々１つの領域であり画像処理の過程で２つに分離したと判断した場合に、２つの最小外接矩形領域を結合した結合領域を示す結合領域データを生成する（ステップＳ２７）。
【０１００】
分離領域結合部４１６は、生成した結合領域データを画像サイズ復元部４１７に送信する。
【０１０１】
画像サイズ復元部４１７は、分離領域結合部４１６から結合領域を受信する。
画像サイズ復元部４１７は、結合領域データが示す結合領域に含まれるブロックのサイズ原画像が示すブロックのサイズに変更して復元結合領域を示す復元結合領域データを生成する（ステップＳ２８）。
画像サイズ復元部４１７は、生成した復元結合領域データを領域座標取得部４１８に送信する。
【０１０２】
領域座標取得部４１８は、画像サイズ復元部４１７から復元結合領域データを受信する。
領域座標取得部４１８は、画像サイズ復元部４１７が生成した復元結合領域データが示す復元結合領域の面積を取得する（ステップＳ２９）。
領域座標取得部４１８は、取得した復元結合領域の面積を示す情報を領域座標評価部４１９に送信する。
【０１０３】
領域座標評価部４１９は、領域座標取得部４１８から復元結合領域の面積を示す情報を受信する。
領域座標評価部４１９は、領域座標取得部４１８が取得した復元結合領域の面積と想定されるバーコードの面積とを比較する。
領域座標評価部４１９は、比較結果に基づいて、復元結合領域の面積と想定されるバーコードの面積の差が所定の面積の差の範囲内にあるか否かを判定する（ステップＳ３０）。
【０１０４】
領域座標評価部４１９は、復元結合領域の面積と想定されるバーコードの面積の差が所定の面積の差の範囲内にないと判定した場合（ステップＳ３０においてＮＯ）、バーコード領域以外の領域が検知されたと判定し、その復元結合領域を棄却する（ステップＳ３１）。
【０１０５】
領域座標評価部４１９は、復元結合領域の面積と想定されるバーコードの面積の差が所定の面積の差の範囲内にあると判定した場合（ステップＳ３０においてＹＥＳ）、その復元結合領域をバーコード領域と判定して、バーコード領域を特定する（ステップＳ３２）。
【０１０６】
繰り返し判定部４２０は、エッジ画像生成部４０２、直交エッジ画像生成部４０３、ブロック平均処理部４０４、ブロック差分処理部４０５、最小値フィルタ部４０６、処理回数判定部４０７、画像間引き処理部４３０、画像合成部４０８、二値化部４０９、射影変換部４１０、有効ブロック群生成部４１１、統合ブロック生成部４１２、エリア生成部４１３、最小矩形探索部４１４、領域統合判断部４１５、分離領域結合部４１６、画像サイズ復元部４１７、領域座標取得部４１８、領域座標評価部４１９のそれぞれが行う処理を８つのベクトル１〜ベクトル８のそれぞれに対して繰り返す制御を行う（ステップＳ３３）。
【０１０７】
繰り返し判定部４２０がステップＳ３３の処理を行った場合、例えば、図１４に示すような８つのベクトルのそれぞれに対して検知したバーコード領域を示す画像が得られる。なお、図１４において、バーコード領域として検出された領域の外周の座標は実線で囲まれている。図１４から、ベクトル１、ベクトル７、ベクトル８のそれぞれに対応する画像それぞれにおいて、１つ以上のバーコード領域が検出されていることが分かる。
【０１０８】
バーコード領域合成部４４０は、８つのベクトル１〜ベクトル８のそれぞれに対してエッジ画像生成部４０２、直交エッジ画像生成部４０３、ブロック平均処理部４０４、ブロック差分処理部４０５、最小値フィルタ部４０６、処理回数判定部４０７、画像間引き処理部４３０、画像合成部４０８、二値化部４０９、射影変換部４１０、有効ブロック群生成部４１１、統合ブロック生成部４１２、エリア生成部４１３、最小矩形探索部４１４、領域統合判断部４１５、分離領域結合部４１６、画像サイズ復元部４１７、領域座標取得部４１８、領域座標評価部４１９のそれぞれが行う処理により得られた８つのバーコード領域どうしを比較する。
【０１０９】
バーコード領域合成部４４０は、比較した結果、バーコード領域が他のバーコード領域を包含している場合には、包含されている小さいバーコード領域を棄却して、バーコード領域を生成する（ステップＳ３４）。
【０１１０】
バーコード領域合成部４４０は、生成した棄却後のバーコード領域を示す情報を領域座標出力部４５０に送信する。
【０１１１】
領域座標出力部４５０は、バーコード領域合成部４４０から棄却後のバーコード領域を示す情報を受信する。
領域座標出力部４５０は、バーコード領域合成部４４０が内包された小さいバーコード領域を棄却した後のバーコード領域と、対応する回転角度とをバーコードリーダ５００に送信する（ステップＳ３５）。
【０１１２】
このようにすれば、バーコード領域検知装置４００は、複雑な背景の中にバーコードがある場合であっても、バーコードを検知することができる。
【０１１３】
（実施例）
本発明を実際の大型郵便物に対して適用した例を図１４、図１５、図１６に示す。図１５が原画像、図１４が８つのベクトル１〜ベクトル８のそれぞれに対して生成したエリアデータが示すエリアを示す画像であり、検知した領域を実線で囲っている。図１６はバーコードの検知結果を示す画像で、バーコード領域を実線で表している。検出した領域は封筒上の２つのバーコードを囲っており、この領域座標を目安に、後段のバーコード認識処理を容易に自動実行できる。
【０１１４】
以上、本発明の第一の実施形態によるバーコード読み取りシステム１について説明した。
本発明の第一の実施形態によるバーコード読み取りシステム１において、バーコード領域検知装置４００は、画像間引き処理部４３０、ブロック差分処理部４０５（エッジ強度算出部）、バーコード領域絞り込み部４０１と、を備える。画像間引き処理部４３０は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する。ブロック差分処理部４０５は、原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出する。バーコード領域絞り込み部４０１は、原画像におけるブロックのエッジ強度と、間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較する。バーコード領域絞り込み部４０１は、各画像の対応する位置において強いエッジ強度を示すブロックを選択する。バーコード領域絞り込み部４０１は、各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、原画像データとに基づいて、バーコードが存在するバーコード領域を特定する。
【０１１５】
このようにすれば、バーコード領域検知装置４００は、最も幅の狭いバーと最も幅の広いバーの両方を検知することができ、バーコード領域をより確実に検知することができる。その結果、バーコード領域検知装置４００は、複雑な背景の中にバーコードがある場合であっても、バーコードを検知することができる。
【０１１６】
＜第二の実施形態＞
本発明の第二の実施形態によるバーコード領域検知装置について説明する。
本発明の第二の実施形態によるバーコード領域検知装置４００は、本発明の最小構成のバーコード領域検知装置である。
本発明の第二の実施形態によるバーコード領域検知装置４００は、図１７に示すように、少なくとも、画像間引き処理部４３０、エッジ強度算出部４０５、バーコード領域絞り込み部４０１と、を備える。
【０１１７】
画像間引き処理部４３０は、原画像データが示す直交する二軸で表される二次元の原画像における一方の軸方向と他方の軸方向のそれぞれに対して画素を間引いた、間引き後画像データを生成する。
【０１１８】
エッジ強度算出部４０５は、原画像を区分けした複数のブロックそれぞれにおけるエッジ強度と、間引き後画像を区分けした複数のブロックそれぞれにおけるエッジ強度とを算出する。
【０１１９】
バーコード領域絞り込み部４０１は、原画像におけるブロックのエッジ強度と、間引き後画像におけるブロックのエッジ強度とを各画像の対応する位置のブロック間でそれぞれ比較する。
バーコード領域絞り込み部４０１は、各画像の対応する位置において強いエッジ強度を示すブロックを選択する。
バーコード領域絞り込み部４０１は、各画像の対応する位置において選択した原画像または間引き後画像におけるブロックを有する画像を示す合成画像データと、原画像データとに基づいて、バーコードが存在するバーコード領域を特定する。
【０１２０】
このようにすれば、バーコード領域検知装置４００は、最も幅の狭いバーと最も幅の広いバーの両方を検知することができ、バーコード領域をより確実に検知することができる。その結果、バーコード領域検知装置４００は、複雑な背景の中にバーコードがある場合であっても、バーコードを検知することができる。
【０１２１】
本発明の実施形態における処理フローは、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【０１２２】
本発明の実施形態における記憶部のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、記憶部のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【０１２３】
本発明の実施形態について説明したが、上述の搬送制御装置２００、画像取得カメラ３００、バーコード領域検知装置４００、バーコードリーダ５００、区分先決定機６００のそれぞれは内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータがそのプログラムを実行するようにしてもよい。
【０１２４】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１２５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、追加、種々の省略、置き換え、変更を行ってよい。
【符号の説明】
【０１２６】
１・・・バーコード読み取りシステム
１００・・・郵便物
２００・・・搬送制御装置
３００・・・画像取得カメラ
４００・・・バーコード領域検知装置
４０２・・・エッジ画像生成部
４０３・・・直交エッジ画像生成部
４０４・・・ブロック平均処理部
４０５・・・ブロック差分処理部（エッジ強度算出部）
４０６・・・最小値フィルタ部
４０７・・・処理回数判定部
４０８・・・画像合成部
４０９・・・二値化部
４１０・・・射影変換部
４１１・・・有効ブロック群生成部
４１２・・・統合ブロック生成部
４１３・・・エリア生成部
４１４・・・最小矩形探索部
４１５・・・領域統合判断部
４１６・・・分離領域結合部
４１７・・・画像サイズ復元部
４１８・・・領域座標取得部
４１９・・・領域座標評価部
４２０・・・繰り返し判定部
４３０・・・画像間引き処理部
４４０・・・バーコード領域合成部
４５０・・・領域座標出力部
５００・・・バーコードリーダ
６００・・・区分先決定機
７００・・・容器
【図１】
0006561891.tif 000002
【図２】
0006561891.tif 000003
【図３】
0006561891.tif 000004
【図４】
0006561891.tif 000005
【図５】
0006561891.tif 000006
【図６】
0006561891.tif 000007
【図７】
0006561891.tif 000008
【図８】
0006561891.tif 000009
【図９】
0006561891.tif 000010
【図１０】
0006561891.tif 000011
【図１１Ａ】
0006561891.tif 000012
【図１１Ｂ】
0006561891.tif 000013
【図１２】
0006561891.tif 000014
【図１３】
0006561891.tif 000015
【図１４】
0006561891.tif 000016
【図１５】
0006561891.tif 000017
【図１６】
0006561891.tif 000018
【図１７】
0006561891.tif 000019