(57)【特許請求の範囲】
【請求項１】
バーコードが表された画像からノイズを除去するノイズ除去手段と、
前記ノイズ除去手段によりノイズが除去された前記画像に表された前記バーコードをデコードするデコード手段と、を含み、
前記ノイズ除去手段は、
前記バーコードにおける各バーの輪郭位置を判定する輪郭位置判定手段と、
前記輪郭位置判定手段によって判定された前記輪郭位置におけるノイズの除去を制限するノイズ除去制限手段と、を含み、
前記デコード手段は、前記バーコードにおける複数の読取線から読み取られるバー及びスペースの配置に基づいてデコードする、
ことを特徴とするバーコード認識装置。
【請求項２】
請求項１記載のバーコード認識装置において、
前記バーコードは、前記画像の一部の領域に表され、
前記バーコード認識装置は、
前記画像の一部の領域に表されたバーコードを抽出するバーコード抽出手段をさらに含む、
ことを特徴とするバーコード認識装置。
【請求項３】
請求項１又は２に記載のバーコード認識装置において、
前記輪郭位置判定手段は、前記画像の各部分が所定のパターンの画像に該当するか否かに基づいて前記バーコードにおける前記各バーの輪郭位置を判定する、
ことを特徴とするバーコード認識装置。
【請求項４】
請求項１又は２に記載のバーコード認識装置において、
前記輪郭位置判定手段は、前記画像において、前記バーコードのバーを表す色情報が付与された画素が互いに隣接することにより形成される複数の画素群のうち、該画素群に含まれる画素数が所定の画素数以上となる画素群に従って、前記各バーの輪郭位置を判定する、
ことを特徴とするバーコード認識装置。
【請求項５】
請求項１又は２に記載のバーコード認識装置において、
前記輪郭位置判定手段は、前記バーコードの長さ方向の各バーにおけるエッジと、その他の方向の各バーにおけるエッジとを検出するとともに、前記画像の各部分において、それら２方向の各エッジを比較することにより、前記各バーの輪郭位置を判定する、
ことを特徴とするバーコード認識装置。
【請求項６】
請求項３又は５に記載のバーコード認識装置において、
前記ノイズ除去手段は、前記輪郭位置判定手段が各部分を判定する毎に、その判定結果に応じてノイズを除去する、
ことを特徴とするバーコード認識装置。
【請求項７】
請求項４に記載のバーコード認識装置において、
前記ノイズ除去手段は、前記画素群に含まれる画素数が所定の画素数未満となる画素群に従って、ノイズを除去する、
ことを特徴とするバーコード認識装置。
【請求項８】
バーコードが表された画像からノイズを除去するノイズ除去手段、及び
前記ノイズ除去手段によりノイズが除去された前記画像に表された前記バーコードをデコードするデコード手段としてコンピュータを機能させるプログラムであって、
前記ノイズ除去手段は、
前記バーコードにおける各バーの輪郭位置を判定する輪郭位置判定手段と、
前記輪郭位置判定手段によって判定された前記輪郭位置におけるノイズの除去を制限するノイズ除去制限手段と、を含み、
前記デコード手段は、前記バーコードにおける複数の読取線から読み取られるバー及びスペースの配置に基づいてデコードする、
ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード認識装置及びプログラムに関し、特に、バーコードの認識精度向上に関する。
【背景技術】
【０００２】
文書を電子化する場合に、電子化する文書と電子化された文書のデータとを関連付けるために、バーコードが使用されることが多くなっている。関連付けに用いられるバーコードを含む電子データは、例えば写真モード等の方式によって画像読取装置の読取処理がなされると、ディザや誤差拡散等の処理が施される場合がある。また、文書の電子化において画像サイズを小さくするために、バーコードの読取処理が低解像度でなされる場合もある。これらの場合に、画像として読み取られたバーコードのバーの輪郭の両面に凹凸が発生することがある。 
【０００３】
ここで、例えば図７（ａ）は、上記のようにして輪郭に凹凸が生じたバーコードを示している。このバーコードに対して、バーの凹凸を復元する処理を施すと、図７（ｂ）のようにバーが太くなることや、図７（ｃ）のようにバーが細くなることがある。なお、特許文献１では、バーの周辺に現れる凹凸を除去するフィルタをかける等の処理により、ノイズの入ったバーコードを復号する技術が提案されている。
【特許文献１】特開平１０−１７１９１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このように、上記の写真モード等の方式によって、ディザや誤差拡散等の処理が施されて多くのノイズがバーコードを含む画像に発生する場合や、バーコードを含む画像データの解像度が低い場合には、画像データに含まれるバーコード上のノイズを除去することで認識率が低下するという課題がある。
【０００５】
本発明は、上記課題に鑑みてなされたものであって、その目的は、画像データで表されたバーコードの認識率を向上させたバーコードの認識装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１の発明は、バーコードが表された画像からノイズを除去するノイズ除去手段と、前記ノイズ除去手段によりノイズが除去された前記画像に表された前記バーコードをデコードするデコード手段と、を含み、前記ノイズ除去手段は、前記バーコードにおける各バーの輪郭位置を判定する輪郭位置判定手段と、前記輪郭位置判定手段によって判定された前記輪郭位置におけるノイズの除去を制限するノイズ除去制限手段と、を含み、前記デコード手段は、前記バーコードにおける複数の読取線から読み取られるバー及びスペースの配置に基づいてデコードする、ことを特徴とするバーコード認識装置である。
【０００７】
請求項２の発明は、請求項１記載のバーコード認識装置において、前記バーコードは、前記画像の一部の領域に表され、前記バーコード認識装置は、前記画像の一部の領域に表されたバーコードを抽出するバーコード抽出手段をさらに含むことを特徴とする。
【０００８】
請求項３の発明は、請求項１又は２に記載のバーコード認識装置において、前記輪郭位置判定手段は、前記バーコードの各部分が所定のパターンの画像に該当するか否かに基づいて前記バーコードにおける前記各バーの輪郭位置を判定する、ことを特徴とする。
【０００９】
請求項４の発明は、請求項１又は２に記載のバーコード認識装置において、前記輪郭位置判定手段は、前記画像において、前記バーコードのバーを表す色情報が付与された画素が互いに隣接することにより形成される複数の画素群のうち、該画素群に含まれる画素数が所定の画素数以上となる画素群に従って、前記各バーの輪郭位置を判定する、ことを特徴とする。
【００１０】
請求項５の発明は、請求項１又は２に記載のバーコード認識装置において、前記輪郭位置判定手段は、前記バーコードの長さ方向の各バーにおけるエッジと、その他の方向の各バーにおけるエッジとを検出するとともに、前記画像の各部分において、それら２方向の各エッジを比較することにより、前記各バーの輪郭位置を判定する、ことを特徴とする。
【００１１】
請求項６の発明は、請求項３又は５に記載のバーコード認識装置において、前記ノイズ除去手段は、前記輪郭位置判定手段が各部分を判定する毎に、その判定結果に応じてノイズを除去する、ことを特徴とする。
【００１２】
請求項７の発明は、請求項４に記載のバーコード認識装置において、前記ノイズ除去手段は、前記画素群に含まれる画素数が所定の画素数未満となる画素群に従って、ノイズを除去する、ことを特徴とする。
【００１３】
請求項８の発明は、バーコードが表された画像からノイズを除去するノイズ除去手段、及び前記ノイズ除去手段によりノイズが除去された前記画像に表された前記バーコードをデコードするデコード手段としてコンピュータを機能させるプログラムであって、前記ノイズ除去手段は、前記バーコードにおける各バーの輪郭位置を判定する輪郭位置判定手段と、前記輪郭位置判定手段によって判定された前記輪郭位置におけるノイズの除去を制限するノイズ除去制限手段と、を含み、前記デコード手段は、前記バーコードにおける複数の読取線から読み取られるバー及びスペースの配置に基づいてデコードする、ことを特徴とする。
【発明の効果】
【００１４】
請求項１及び請求項８によれば、バーコードが表された画像におけるバーコードの各バーの輪郭位置のノイズ除去を制限するとともに、複数の読取線からバーコードのバー及びスペースの配置を読み取るので、バー及びスペースの本来の配列から生じた情報を有効に活用して、バーコードの認識率を向上させることができる。
【００１５】
請求項２の発明によれば、バーコードが画像の一部の領域に表されている場合に、バーコードが表された領域を抽出するので、バーコードを認識する速度を向上させることができる。
【００１６】
請求項３の発明によれば、所定のパターンに該当するか否かを判定することにより、バーコードの各バーの輪郭位置を判定できる。
【００１７】
請求項４の発明によれば、所定の画素数以上となる画素群であるか否かを判断して、バーコードの各バーを表す画素群を識別することにより、バーコードの各バーの輪郭位置を判定できる。
【００１８】
請求項５の発明によれば、バーコードとバーコード以外のノイズによって生じるエッジに着目して、バーコードの各バーの輪郭位置を判定できる。
【００１９】
請求項６の発明によれば、バーコードが表されている画像の各部分においてバーコードの各バーの輪郭位置を判定しつつ、ノイズを除去することで、バーコードを認識する速度を向上させることができる。
【００２０】
請求項７の発明によれば、バーコードの各バーの輪郭位置を判定しつつノイズを除去するので、バーコードを認識する速度を向上させることができる。
【発明を実施するための最良の形態】
【００２１】
[第１の実施形態]
以下、本発明の一実施形態について図面に基づき説明する。
【００２２】
図１は、本発明の実施形態にかかるバーコード認識装置１におけるハードウェア構成と機能的構成を示すブロック図である。
【００２３】
バーコード認識装置１は、制御部２、記憶部３、バーコード画像取得部４を含んで構成される。本実施形態におけるバーコード認識装置１は、手持ち型、あるいは据え置き型のいずれのバーコードリーダであってもよいし、パーソナルコンピュータ等の情報処理装置に実装されてもよい。ここで、バーコードは、複数種類の幅を有したバー及びスペースの配列からなり、コンピュータが識別するためのコードである。
【００２４】
制御部２は、ＣＰＵ（Central Processing Unit）等のプログラム制御デバイスである。制御部２は、ノイズ除去部２１と、バーコード抽出部２２と、デコード部２３とを機能ブロックとして含んでおり、本発明の実施形態にかかるプログラムを実行することによって各機能が実現される。このプログラムは、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭ等のコンピュータ読取可能な各種の情報記憶媒体に格納されて提供されてもよいし、インターネット等の通信手段を介して提供されてもよい。
【００２５】
記憶部３は、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）等のメモリ素子、ならびにハードディスク等によって構成される。この記憶部３は、制御部２が実行するプログラム（ソフトウェア）を格納している。また、この記憶部３は、制御部２の処理の過程で利用される種々のデータを保持するワークメモリとしても動作する。
【００２６】
バーコード画像取得部４は、イメージスキャナ等によって構成される。そして、このイメージスキャナは、例えば、紙媒体に光を照射するＬＥＤ等の光源、及び、その反射光を取り込むＣＣＤ等の受光素子から構成される。特に、本実施形態におけるバーコード画像取得部４は、画像を含む文書を電子化する際には写真モードが選択されて、文書上に表されたバーコードが２値の画像データとして取得される。バーコード画像取得部４がバーコードを２値の画像データで取得する際には、ディザや誤差拡散等の処理が伴うことによりノイズが発生する。ここで、バーコード画像とは、バーコード認識装置１が認識する対象となるバーコードが、少なくとも一部の領域に表されている画像データのことである。バーコード画像取得部４は、バーコード画像を取得する。バーコード画像取得部４に取得されたバーコード画像は、デコード処理等の対象として制御部２に提供される。また、バーコード画像取得部４と制御部２とが別構成となって、ネットワークを通じてバーコード画像取得部４から取得された画像データが提供されることとしてもよい。
【００２７】
つぎに、バーコード認識装置１の制御部２に含まれる、ノイズ除去部２１と、バーコード抽出部２２と、デコード部２３とが実現する各機能について説明する。
【００２８】
ノイズ除去部２１は、バーコード画像取得部４が取得したバーコード画像に発生しているノイズを除去する処理を行う。図２は、バーコード画像に含まれるバーコードの一部に発生しているノイズの一例を示す図である。これらのノイズは、バーコードが示すバー及びスペースの本来の配列以外を示す画素となる。このようなノイズには、バーコードを画像化する際に発生する場合、及び、バーコードの表された媒体上にすでに発生している場合がある。前者は、例えば、紙媒体等に表されたバーコードを２値の画像データとして取得する際に、ディザや誤差拡散等の処理に伴って発生する。また、ノイズを除去するとは、ノイズと判断された画素群を、ノイズの周囲に存在する画素に置換等により調整する処理である。このノイズ除去処理は、バーコード本来の配列を認識しやすくするために実行される。
【００２９】
そして、特に本実施形態では、ノイズ除去部２１は更に輪郭位置判定部２１Ａとノイズ除去制限部２１Ｂとを含んで構成される。
【００３０】
輪郭位置判定部２１Ａは、バーコード画像に含まれる各パターンの境界となる輪郭位置と共に、バーコードを構成するバー及びスペースの境界となる各バーの輪郭位置を判定する。この輪郭位置では、各パターンが有する色情報によって色差が発生している。バーコード画像におけるバーコードの各バーの輪郭位置は、バーコード画像全体に、いわゆるマスク処理のアルゴリズムを適用することによって判定できる。以下では、この処理について詳細に述べる。
【００３１】
輪郭位置判定部２１Ａは、バーコード画像におけるバーコードを構成する各部分が、例えば図３（ａ）〜（ｆ）に示すような３×３のサイズの６種類の画像のいずれかに該当するか否かに基づいて、輪郭位置を判定する。図３は、中心の黒画素に対して上下・左右のうちの少なくとも２画素を黒画素として連結している３×３のパターンを示している。２値化されたバーコード画像であれば、バーコードの各バーが黒画素群で表現され、各バーの輪郭を構成する画素が上下・左右のうち少なくとも２箇所に互いに連結されることとなる。従って、輪郭位置判定部２１Ａは、バーコード画像における全ての黒画素について、上下・左右のうちの少なくとも２画素を黒画素として連結しているパターンの一部に該当するか否かを判定する。そして、輪郭位置判定部２１Ａは、当該パターンの一部であると判断される黒画素が白画素と隣接して、黒画素群の外延部を構成する境界を、バーコードの各バー及びその他のパターンの輪郭位置として判定する。
【００３２】
なお、上記では輪郭位置判定部２１Ａが、いわゆるマスク処理を施すことによって輪郭位置を判断することとしているが、いわゆるラベリング処理を施すこととしてもよい。具体的には、輪郭位置判定部２１Ａは、バーコード画像におけるバーコードのバーを示す階調が付与されて、上下又は左右の少なくとも１方向に隣接する画素が連結することにより一群を構成する画素群が、所定の画素数以上で構成されているか否かに従って、バーコードの各バー及びその他のパターンの輪郭位置を判定する。２値化されたバーコード画像であれば、各バーが黒画素群で表現される。そこで、まず輪郭位置判定部２１Ａは、バーコード画像上に存在する全ての黒画素を、上下又は左右の少なくとも１方向に隣接する画素が連結することにより一群を構成している画素群に分類する。バーコードのバーを構成する黒画素数は、一般的に、ノイズを構成する黒画素数に比べて多い。従って、輪郭位置判定部２１Ａは、分類された各画素群が所定の画素数以上で構成されているか否かを判断することにより、バー及びその他のパターンを構成する黒画素群を特定する。さらに、輪郭位置判定部２１Ａは、所定の画素数以上を有しているとして特定された各黒画素群にいて、黒画素と白画素とが隣接する境界を判定する。そして、輪郭位置判定部２１Ａは、黒画素の外延に白画素が存在する境界を、バー及びその他のパターンの輪郭位置として判定する。
【００３３】
なお、輪郭位置判定部２１Ａは、いわゆるエッジ検出処理を施すことにより輪郭位置を判断することとしてもよい。具体的には、輪郭位置判定部２１Ａは、バーコード画像におけるバーコードの各バーの長さ方向と、それ以外の方向とのエッジを検出する処理により、各バーの輪郭位置であるか否かを判定する。ここで、バーコードの長さ方向とは、バーコードにおける各バーが延伸する方向に垂直な方向（バーコードの長手方向）のことをいう。また、エッジとは、所定の方向に色差が存在する場所のことをいう。図４はバーコードが存在する画像におけるバーコードの長さ方向のエッジ（図４（ａ））と、バーコードの高さ方向（バーコードの短手方向）のエッジ（図４（ｂ））とを検出する処理を施した様子を示す図である。さらに、図４（ｃ）及び図４（ｄ）は、図４（ａ）及び図４（ｂ）で実行されたそれぞれバーコードの長さ方向と高さ方向のエッジを検出する処理を、バーコードが存在しない画像で適用した様子を示す図である。図４の各図では、それぞれの元画像に、バーコードの長さ方向または高さ方向のエッジを検出する処理を施すことにより、エッジの存在する場所は黒画素に、エッジの存在しない場所は白画素に変換されている。同図で示されるように、バーコードの各バーが存在する部分では、長さ方向のエッジと、高さ方向のエッジの存在する比率が明らかに異なるが、バーコードが存在しない部分では、長さ方向のエッジと、高さ方向のエッジとが存在する比率が同程度となる。そこで、例えば、バーコード画像を１０×１０の領域毎に仕切った各部分において、バーコードの長さ方向のエッジを検出することによって得られる黒画素の面積を長さ方向のエッジ量とし、高さ方向のエッジを検出することによって得られる白画素の面積を高さ方向のエッジ量として、輪郭位置判定部２１Ａが各部分毎にこれらを求めて比較する。そして、輪郭位置判定部２１Ａは、長さ方向のエッジ量が高さ方向のエッジ量よりも、所定の比率を超えて多い部分において、バーコードの長さ方向のエッジが存在する位置にしたがって、バーコードの各バー及びその他のパターンの輪郭位置を判定する。なお、バーコード画像を仕切る各部分の大きさは、少なくとも、バーコードの長さ方向のエッジの一部を認識するために必要なサイズである。
【００３４】
次に、ノイズ除去部２１によるノイズ除去処理の際に、ノイズ除去制限部２１Ｂは、輪郭位置判定部２１Ａで判定された各バー及びその他のパターンの輪郭位置に存在するノイズの少なくとも一部を残すことにより、ノイズ除去部２１によるノイズ除去処理を制限する。ノイズ除去部２１が、バーコード全体のノイズを除去しつつ、各バーの輪郭位置のノイズの除去を制限することにより、バーコードが示すバーの本来の幅をさらに認識しやすくすることができる。ここで、輪郭位置におけるノイズとは、各バーと各スペースの境界に接して存在するノイズのことであり、例えば、図７（ａ）等においてその一例が表示されている。また、ノイズの除去を制限するとは、例えば、バーコード画像全体に平滑化等のフィルタを一律にかけてノイズを除去する処理をノイズ除去部２１が実行する場合には、輪郭位置判定部２１Ａで判定された輪郭位置に存在するノイズを、予め当該フィルタによるノイズ除去処理の対象とならないようにすることである。また、例えば、輪郭位置判定部２１Ａで判定された各バーの輪郭位置以外の部分に存在するノイズだけを除去する処理をノイズ除去部２１が行うことによって、ノイズ除去制限部２１Ｂが輪郭位置のノイズの除去を制限することとしてもよい。ノイズ除去制限部２１Ｂによるノイズの除去の制限は、例えば輪郭位置判定部２１Ａが輪郭位置を判定するのに伴って、輪郭位置以外に存在するノイズが識別されて除去されるのであってもよい。また、輪郭位置に存在するノイズが除去されない方式のノイズ除去処理をノイズ除去部２１が実行することによりノイズ除去を制限してもよい。或いは、輪郭位置に存在するノイズのうちの少なくとも一部の除去が制限される処理をノイズ除去部２１が実行してもよい。なお、図５（ａ）は、ノイズ除去部２１がバーコードを含む画像全体にかかっているノイズを除去する前の画像の一例を示している。図５（ｂ）は、図５（ａ）の画像にノイズ除去部２１が、バーコード等のパターンの輪郭位置に存在するノイズ除去を制限しつつ、画像全体にかかっているノイズを除去する処理を施した画像の一例を示している。
【００３５】
また、輪郭位置判定部２１Ａが上記のマスク処理に従って輪郭位置を判定する際には、輪郭位置判定部２１Ａが、バーコード画像の各部分を、図３に示すようなパターンの画像に該当するか否か判定する毎に、ノイズ除去部２１が、その判定結果に応じて当該部分をノイズとして除去する。具体的には、輪郭位置判定部２１Ａは、バーコード画像における黒画素であって、上下・左右のうちの少なくとも２画素が黒画素と連結されているパターンの一部に該当しないと判定する場合に、ノイズ除去部２１が当該黒画素をノイズであるとして除去する。なお、輪郭位置判定部２１Ａが上記のラベリング処理に従って輪郭位置を判定する場合であれば、輪郭位置判定部２１Ａが所定の画素数未満であると判断した画素群に従って、ノイズ除去部２１が当該画素群をノイズとして除去する。ここで例えば、所定画素数を５とすれば、バーコード画像において５画素未満で構成される黒画素群が、ノイズとして除去される。また、所定の画素数を、バーコードの下部に記載されている文字列等よりも多く、バーを構成する黒画素群の黒画素数よりも少なく設定することにより、輪郭位置判定部２１Ａが各バーの輪郭位置を判定しつつ、ノイズ除去部２１はこれら文字列等をノイズとして除去する。なお、輪郭位置判定部２１Ａが上記のエッジ検出処理に従って輪郭位置を判定する場合であれば、輪郭位置判定部２１Ａが、バーコード画像の各部分を、バーコードの長さ方向と高さ方向のエッジ量を比較して各バーの輪郭位置を判定する毎に、ノイズ除去部２１が、その判定結果に応じて当該部分をノイズとして除去する。具体的には、ノイズ除去部２１は、長さ方向のエッジ量が高さ方向のエッジ量に対して所定の比率を超えない部分に存在する黒画素をノイズとして除去したり、所定の比率を超える部分においてバーコードの各バーの輪郭位置として判定されなかった位置に存在するパターンをノイズとして除去する。これらのようにして、輪郭位置判定部２１Ａが輪郭位置を判定するとともに、ノイズ除去部２１が輪郭位置のノイズを除去しないようにバーコード画像のノイズを除去することで、バーコード画像のノイズ除去処理が効率化されるとともに、ノイズが除去されたバーコード画像からバーコードを抽出しやすくなり、バーコードを認識する速度の向上につながる。
【００３６】
バーコード抽出部２２は、ノイズ除去部２１がノイズを除去したバーコード画像におけるバーコードが表された領域の画像から、バーコードを抽出する。バーコードが表された領域とは、バーコードの各バー及び各スペースを識別できる画像として切り出すことができる範囲のことをいい、バー及びスペースの全ての部分を切り出しつつバーコード以外のパターンをなるべく含まずに切り出すことができる範囲であることが望ましい。ここで、バーコード抽出部２２がバーコードを抽出する処理は、バーコードが所定の方向に並んで配置されるバーの集合であるという特徴を持っていることから、パターンマッチング等の当業者に既知のアルゴリズムを用いて施すことが可能である。ノイズ除去後のバーコード画像ではディザパターン等が除去されているため、ノイズ除去前のバーコード画像からバーコードを抽出するよりも、バーコードがより高速に抽出される。
【００３７】
デコード部２３は、バーコード画像から抽出されたバーコードに対して、バー及びスペースの配置を読み取るための読取線を設定し、複数の読取線から取得されるバー及びスペースの配置を示すラインデータにしたがって、バーコードをデコードする。この読取線は、少なくとも１画素の幅で、バーコードの開始位置からバーコードが終了する位置まで、バーコードの長さ方向に引かれる仮想的な線のことをいう。デコード部２３は、バーコード画像の各読取線上に存在する画素の情報から、バー及びスペースの配置を示すラインデータを取得し、複数の読取線から取得されるラインデータに従ってバーコードをデコードする。特に本実施形態では、ノイズ除去制限部２１Ｂの機能によりバーコードの各バーにおける輪郭位置に存在するノイズの除去が制限されている。これにより、デコード部２３のデコード処理に用いられる複数の読取線には各バーの輪郭位置の凹凸が残されることとなる。輪郭位置の凹凸が残されたバーコードを複数の読取線に従ってデコードする場合には、凹凸の除去されたバーコードをデコードする場合よりも多様な複数のラインデータが取得されることにより、バーコード画像の情報を有効に活用して、本来のバーコードの配列に近いバー及びスペースの配置を認識することができ、認識率の向上につながる。
【００３８】
図６は、バーコード画像におけるバー及びその他のパターンの輪郭位置のノイズ除去を制限したノイズ除去処理のフローの一例を示す図である。まずＳ６０１では、図４に示すような３×３マスクを用いて、マスクに該当しない黒画素を白画素に調整することによってノイズを除去する。この処理により、例えば、バーコードのスペース上であってバーコードの輪郭位置にない黒画素によるノイズが除去される。次にＳ６０２では、Ｓ６０１でノイズが除去されたバーコード画像の白画素を黒画素に、黒画素を白画素に反転する。そして、Ｓ６０１と同様に３×３マスクを用いて、マスクに該当しない黒画素を白画素に調整することによってノイズを除去する（Ｓ６０３）。この処理により、例えば、バーコードのバー上であってバーコードの輪郭位置にないノイズを除去することとなる。そして、Ｓ６０４で再びバーコード画像の白画素を黒画素に、黒画素を白画素に反転して、バーの輪郭位置以外のノイズが除去されたバーコード画像を得る。Ｓ６０５では、いわゆるラベリング処理により、Ｓ６０４で得られた各黒画素群を分類して名称を与え、記憶部３にその名称と当該画素群を構成する画素とを記憶する。そしてＳ６０６では、Ｓ６０５で記憶された各画素群を構成する画素の情報に従って、所定の画素数以下の黒画素群を除去する処理を行う。このＳ６０６の処理により、バーコードの数字部分の記載や、Ｓ６０２で除去されずに残ったノイズがさらに除去されることとなる。
【００３９】
なお、上記では、バーコード画像は、少なくとも一部の領域に表されている画像データとしているが、バーコード認識装置１が認識する対象のバーコードのみが表示されている画像データであってもよい。この場合にノイズ除去部２１は、上記と同様にバーコードの輪郭位置を判断して輪郭位置のノイズ除去を制限しつつ、ノイズ除去処理を行う。そして、輪郭位置以外のノイズが除去されたバーコードを、デコード部２３がデコードする。
【００４０】
[第２の実施形態]
第２の実施形態では、バーコード抽出部２２は、ノイズ除去前のバーコード画像から、バーコードが表されている領域の画像を抽出し、ノイズ除去部２１が、抽出された画像において、バーコードの輪郭位置を判断して輪郭位置のノイズ除去を制限しつつ、ノイズを除去する。以下において、第２の実施形態を説明するが、第１の実施形態と共通する部分は説明を省略する。
【００４１】
バーコード抽出部２２は、まず、バーコード画像取得部４が取得したバーコード画像の一部の領域に表されているバーコードを抽出する。具体的には、例えば、バーコード抽出部２２は、バーコード画像を記憶部３に記憶するとともに、バーコードの各バーの輪郭位置であるか否かに関わらずバーコード画像全体にかかっているノイズを除去し、ノイズの除去されたバーコード画像からバーコードが表された領域を検出する。そしてさらにバーコード抽出部２２は、ノイズの除去後のバーコード画像から検出された領域に対応しているノイズ除去前のバーコード画像の領域から、ノイズが除去されていないバーコードが表された画像を抽出する。
【００４２】
上記のバーコード画像全体にかかっているノイズを除去する処理は、具体的には、バーコード画像のバーコードが表示されている領域、及び、バーコードが表示されていない領域に対して一律にノイズを除去する平滑化処理等である。この平滑化処理は、例えば膨張・収縮フィルタを画像の全面に適用する処理である。平滑化処理が行われたバーコード画像からは、バーコードが表された領域を判断することが容易となり、バーコード画像におけるバーコード以外のパターン等がバーコードとして判断される可能性が低くなる。なお、バーコード抽出部２２が、バーコードが表された領域を検出する処理は、バーコードが所定の方向に並んで配置されるバーの集合であるという特徴を持っていることため、例えば、パターンマッチング等の当業者に既知のアルゴリズムを用いることが可能である。
【００４３】
ノイズ除去部２１は、バーコード抽出部２２が抽出したバーコードが表された画像に従って、バーコードの輪郭位置を判断し、輪郭位置のノイズ除去を制限しつつ、ノイズを除去する。
【００４４】
なお、上述した第一及び第二の実施形態において、ノイズ除去部２１、バーコード抽出部２２、又は、デコード部２３による処理の際には、バーコード画像に対して、あらかじめ回転調整等の他の画像処理を行ってもよい。例えば、バーコード画像を回転調整することで、上述のマスク処理、ラベリング処理、エッジ検出処理において、ノイズ除去部２１による処理を円滑化し、処理の精度を向上させることができる。
【００４５】
なお、上述した第一及び第二の実施形態において、バーコード画像取得部４が、バーコードを２値の画像データとして取得することとしているが、多値の画像データとして取得してもよい。この場合には、例えば、制御部２が、バーコード画像取得部４から提供される多値の画像データを２値化して、画像ノイズ除去部２１等の処理に供される。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施形態にかかるバーコード認識装置が実現する機能を示す機能ブロック図である。
【図２】バーコード画像の一部に発生しているノイズの一例を示す図である。
【図３】バーコード画像の各バーの輪郭位置を判定するための所定のパターンの画像の例を示す図である。
【図４】エッジを検出する処理を施した画像の例を示す図である。
【図５】バーコードが表された領域を含む画像と、バーコードの輪郭位置のノイズ除去処理を制限してノイズを除去する処理を施した画像の一例を示す図である。
【図６】本発明の実施形態にかかる、バーコード画像におけるノイズ除去処理のフローの一例を示す図である。
【図７】輪郭に凹凸が生じたバーコードと、凹凸を復元する処理を施したバーコードの例を示す図である。
【符号の説明】
【００４７】
１  バーコード認識装置、２  制御部、３  記憶部、４  バーコード画像取得部、２１  ノイズ除去部、２１Ａ  輪郭位置判定部、２１Ｂ  ノイズ除去制限部、２２  バーコード抽出部、２３  デコード部。
【図１】
0004978460.tif 000002
【図２】
0004978460.tif 000003
【図３】
0004978460.tif 000004
【図４】
0004978460.tif 000005
【図５】
0004978460.tif 000006
【図６】
0004978460.tif 000007
【図７】
0004978460.tif 000008