JP5470734B2 - 画像処理装置及び画像処理プログラム - Google Patents

画像処理装置及び画像処理プログラム Download PDF

Info

Publication number
JP5470734B2
JP5470734B2 JP2008101471A JP2008101471A JP5470734B2 JP 5470734 B2 JP5470734 B2 JP 5470734B2 JP 2008101471 A JP2008101471 A JP 2008101471A JP 2008101471 A JP2008101471 A JP 2008101471A JP 5470734 B2 JP5470734 B2 JP 5470734B2
Authority
JP
Japan
Prior art keywords
image
information
detected
detection means
end portion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008101471A
Other languages
English (en)
Other versions
JP2009032236A (ja
Inventor
亮子 薄葉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2008101471A priority Critical patent/JP5470734B2/ja
Priority to US12/163,190 priority patent/US8196836B2/en
Publication of JP2009032236A publication Critical patent/JP2009032236A/ja
Application granted granted Critical
Publication of JP5470734B2 publication Critical patent/JP5470734B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、画像処理装置及び画像処理プログラムに関する。
情報画像の1つであるバーコードを用いた情報処理技術が種々開発されている。特に、画像内にあるバーコード画像を抽出する技術がある。
なお、ここで、バーコードとは、異なる幅や間隔をもつ平行な縦線の組み合わせによって情報を表現するコードであって、横断走査によって光学的に読み取るものをいう。また、バーコードの種類として、例えば、JANコード、NW−7、ITF、CODE39、CODE128、郵便カスタマーコード、EAN128等がある。
これに関連する技術として、例えば、特許文献1には、長方形バーコード領域を含む原画像の走査分解データを2値データに変換する2値化手段と、その2値データを記憶する記憶手段と、前記2値データの輪郭データを走査する走査窓内データの論理和で前記輪郭データを所定サイズ分拡大しバーコードの輪郭データ間を塗り潰す輪郭信号膨張手段と、その膨張データの間引き入力による前記膨張データの所定サイズ分の縮小データを走査する走査窓内データの論理積で前記縮小データを所定サイズ分縮小することによりバーコード領域の一部を残し背景画像領域を消去する縮小・収縮手段と、その縮小・収縮したデータから前記長方形バーコードの傾きと中心を演算する傾き・中心演算手段と、その傾き方向にしたがって前記記憶手段からデータを読み出すためのアドレスを演算するアドレス演算手段と、その読みだしデータからバーコードを復号するバーコード復号手段とを具備する画像信号処理装置によって、バーコードラベルが入力原稿の任意の位置・方向に貼られていても復号を可能とすることが開示されている。
また、例えば、特許文献2には、フレームメモリ内のバーコードが、どのような種類であっても同一のアルゴリズムを用いて検出ができ、バーコードの種類が予め判っていなくても検出ができるようにすることを目的とし、2値変換部は、フレームメモリに記憶された画像データを8×8画素のブロックに分割し、2値データに変換し、離散的コサイン変換(DCT)部は、この8×8画素のブロックにDCTを施し、係数メモリは、その変換結果(DCT変換係数)を記憶し、この2値化、DCTがフレームメモリの全てのブロックについて行われ、バーコード検出部は、係数メモリに記憶された各ブロックのDCT変換係数からバーコード領域を検出することが開示されている。
また、例えば、特許文献3には、バーコード抽出装置に関し、入力した画像データから、バーコード矩形領域を自動的に抽出できるようにすることを目的とし、画像メモリと、画像メモリの画像データの全領域を順次走査して抽出ウインドゥ内に黒/白パターンが交互に出現する領域を仮バーコード領域として抽出する黒/白パターン抽出部と、仮バーコード領域にレフトガードバー、センターバー、ライトガードバーが存在するか否かを判定し、真のバーコード領域を抽出するバーコード判定部と、真のバーコード領域の矩形範囲を探索してバーコードを囲む矩形領域の位置を決定しバーコード矩形領域として抽出するバーコード矩形範囲探索部と、抽出したバーコード矩形領域を既抽出済みのバーコード矩形領域と比較し、両者がオーバーラップしていない場合にのみ、バーコード矩形領域を登録するバーコード領域比較部を備えていることが開示されている。
また、例えば、特許文献4には、バーコードの位置、大きさ及び傾きが不特定であってもバーコードを特定してバーコードの位置及び傾きを検出することを課題とし、入力画像から抽出した物品領域の画像を所定の閾値によって2値データに変換し画像メモリに記憶し、そして、2値データに対して拡大と縮退操作を行って黒画素の連結領域を作成し、所定個数以上の黒画素で構成される連結領域を抽出して各連結領域に対する形状の特徴量を求め、また、連結領域と2値データとについて論理積を求め、所定個数以上の黒画素が連続する図形を抽出し、この図形に対して傾きの方向を求め、各傾きの図形の個数を連結領域毎に集計し、連結領域の形状の特徴量と図形の傾き別個数を連結領域毎に比較し、形状が矩形で同一の傾きの図形の個数が多い連結領域をバーコード領域として検出することが開示されている。
特開平02−125381号公報 特開平06−266879号公報 特開平09−016701号公報 特開平09−062763号公報
ところで、情報画像が記載されている画像の解像度又は情報画像の大きさが予め分からない場合、又はさまざまな種類の情報画像が混在する場合に、2値データに対して拡大と縮退操作を行って黒画素の連結領域を作成すると、それらの情報画像の誤抽出が起こってしまう。
本発明は、情報画像の解像度又は大きさが異なっている場合、又は複数種類の情報画像が混在している場合であっても、その情報画像の解読可能な領域を抽出する画像処理装置及び画像処理プログラムを提供することを目的としている。
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
本願請求項1記載の発明は、画像内を走査して、黒画像領域及び白画像領域によって情報を表現する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と第1の判断基準に基づいて、該情報画像の始端部分を検出する第1の検出手段と、前記第1の検出手段によって検出された始端部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準とは異なる第2の判断基準に基づいて、該情報画像の始端部分以外の部分を検出する第2の検出手段と、前記第1の検出手段と前記第2の検出手段により検出された領域を情報画像として解析して情報を抽出する情報抽出手段を具備し、前記画像内には、複数種類の情報画像があり、該情報画像は走査方向に対して傾いていることを特徴とする画像処理装置である。
本願請求項2記載の発明は、前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の本数を検出する第3の検出手段と、前記第3の検出手段によって検出された本数に応じて、前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準及び前記第2の判断基準とは異なる第3の判断基準に基づいて、前記情報画像の終端部分を検出する第4の検出手段を具備することを特徴とする請求項1に記載の画像処理装置である。
本願請求項3記載の発明は、ある走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該検出における走査にあっては、前記第2の検出手段及び前記第3の検出手段による検出を行わないことを特徴とする請求項に記載の画像処理装置である。
本願請求項4記載の発明は、あるラインの走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該ラインにおいて始端部分を検出した後の走査にあっては、前記第1の検出手段による検出を行わず、前記第2の検出手段及び前記第3の検出手段による検出を行うことを特徴とする請求項3に記載の画像処理装置である。
本願請求項5記載の発明は、前記第4の検出手段によって終端部分を検出した場合は、前記情報画像を解読する解読手段を具備することを特徴とする請求項2に記載の画像処理装置である。
本願請求項6記載の発明は、コンピュータを、画像内を走査して、黒画像領域及び白画像領域によって情報を表現する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と第1の判断基準に基づいて、該情報画像の始端部分を検出する第1の検出手段と、前記第1の検出手段によって検出された始端部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準とは異なる第2の判断基準に基づいて、該情報画像の始端部分以外の部分を検出する第2の検出手段と、前記第1の検出手段と前記第2の検出手段により検出された領域を情報画像として解析して情報を抽出する情報抽出手段として機能させ、前記画像内には、複数種類の情報画像があり、該情報画像は走査方向に対して傾いていることを特徴とする画像処理プログラムである。
本願請求項7記載の発明は、前記コンピュータを、前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の本数を検出する第3の検出手段と、前記第3の検出手段によって検出された本数に応じて、前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準及び前記第2の判断基準とは異なる第3の判断基準に基づいて、前記情報画像の終端部分を検出する第4の検出手段としてさらに機能させることを特徴とする請求項6に記載の画像処理プログラムである。
本願請求項8記載の発明は、ある走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該検出における走査にあっては、前記第2の検出手段及び前記第3の検出手段による検出を行わないことを特徴とする請求項に記載の画像処理プログラムである。
本願請求項9記載の発明は、あるラインの走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該ラインにおいて始端部分を検出した後の走査にあっては、前記第1の検出手段による検出を行わず、前記第2の検出手段及び前記第3の検出手段による検出を行うことを特徴とする請求項8に記載の画像処理プログラムである。
本願請求項10記載の発明は、前記コンピュータを、前記第4の検出手段によって終端部分を検出した場合は、前記情報画像を解読する解読手段として機能させることを特徴とする請求項7に記載の画像処理プログラムである。
本願請求項11記載の発明は、画像内の走査対象とするラインを設定する対象ライン設定手段を具備し、前記第1の検出手段は、前記対象ライン設定手段によって設定されたラインを走査対象とし、前記第4の検出手段が終端部分を検出した後に、前記第1の検出手段によって検出された始端部分から前記第4の検出手段によって検出された終端部分までの間における画像領域又は白画像領域の分布に関する情報を検出する分布情報検出手段と、前記分布情報検出手段によって検出された分布に関する情報に基づいて、既に走査対象としたラインにおける情報画像に今回の走査対象としたラインにおける情報画像を付加して、情報画像を生成する情報画像付加生成手段をさらに具備することを特徴とする請求項2に記載の画像処理装置である。
本願請求項12記載の発明は、前記分布情報検出手段によって検出された分布に関する情報と既に走査対象としたラインにおける情報画像の分布に関する情報とを比較する比較手段を具備し、前記情報画像付加生成手段は、前記比較手段による比較結果に基づいて、情報画像を生成することを特徴とする請求項11に記載の画像処理装置である。
本願請求項13記載の発明は、前記コンピュータを、画像内の走査対象とするラインを設定する対象ライン設定手段として機能させ、前記第1の検出手段は、前記対象ライン設定手段によって設定されたラインを走査対象とし、前記第4の検出手段が終端部分を検出した後に、前記第1の検出手段によって検出された始端部分から前記第4の検出手段によって検出された終端部分までの間における画像領域又は白画像領域の分布に関する情報を検出する分布情報検出手段と、前記分布情報検出手段によって検出された分布に関する情報に基づいて、既に走査対象としたラインにおける情報画像に今回の走査対象としたラインにおける情報画像を付加して、情報画像を生成する情報画像付加生成手段としてさらに機能させることを特徴とする請求項7に記載の画像処理プログラムである。
本願請求項14記載の発明は、前記コンピュータを、前記分布情報検出手段によって検出された分布に関する情報と既に走査対象としたラインにおける情報画像の分布に関する情報とを比較する比較手段としてさらに機能させ、前記情報画像付加生成手段は、前記比較手段による比較結果に基づいて、情報画像を生成することを特徴とする請求項13に記載の画像処理プログラムである。
請求項1の画像処理装置によれば、情報画像の解読可能な領域を抽出することができる。
請求項2の画像処理装置によれば、情報画像以外の余分なものを含めて抽出してしまう誤りを低減させることができる。
請求項3の画像処理装置によれば、情報画像の抽出にかかる処理の負荷を軽減することができるようになる。
請求項4の画像処理装置によれば、情報画像の抽出にかかる処理の負荷を軽減することができるようになる。
請求項5の画像処理装置によれば、情報画像を解読することができるようになる。
請求項6の画像処理プログラムによれば、情報画像の解読可能な領域を抽出することができる。
請求項7の画像処理プログラムによれば、情報画像以外の余分なものを含めて抽出してしまう誤りを低減させることができる。
請求項8の画像処理プログラムによれば、情報画像の抽出にかかる処理の負荷を軽減することができるようになる。
請求項9の画像処理プログラムによれば、情報画像の抽出にかかる処理の負荷を軽減することができるようになる。
請求項10の画像処理プログラムによれば、情報画像を解読することができるようになる。
請求項11の画像処理装置によれば、情報画像の抽出の精度の劣化を防止して、情報画像の抽出にかかる処理の負荷を軽減することができる。
請求項12の画像処理装置によれば、情報画像の抽出の精度の劣化をさらに防止することができる。
請求項13の画像処理プログラムによれば、情報画像の抽出の精度の劣化を防止して、情報画像の抽出にかかる処理の負荷を軽減することができる。
請求項14の画像処理プログラムによれば、情報画像の抽出の精度の劣化をさらに防止することができる。
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
図1は、第1の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア(コンピュータ・プログラム)、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、1モジュールを1プログラムで構成してもよいし、複数モジュールを1プログラムで構成してもよく、逆に1モジュールを複数プログラムで構成してもよい。また、複数モジュールは1コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって1モジュールが複数コンピュータで実行されてもよい。なお、1つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続(データの授受、指示、データ間の参照関係等)を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク(一対一対応の通信接続を含む)等の通信手段で接続されて構成されるほか、1つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。所定という用語は、予め定められたの意の他に、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じての意を含めて用いる。
情報画像とは、黒画像領域及び白画像領域によって情報を表現するものであって、機械可読な態様で電子データを表すために体系的に作られたコードをいい、具体的には、1次元バーコード、スタック型2次元コード等である。
本実施の形態が処理対象とする情報画像の例を、図4に示す。1次元バーコードとして、(A)CODE39、(B)NW7、(C)ITF、(D)CODE93、(E)JAN、(F)CODE128があり、その他にも、EAN128等がある。スタック型2次元コードとして、(G)CODE49、(H)CODE16K、(I)PDF417等がある。なお、1次元バーコードとしては、現状存在する、あらゆるものを対象とする。2次元コードとしては、1次元バーコードを複数段積層したものを対象とする。したがって、QRコードのような2次元コードは対象としない。なお、本実施の形態を説明するにあたって、対象とする情報画像として1次元バーコードを例示する。また、情報画像の構成として、黒画像領域であるバーと白画像領域(隙間)であるホワイトバーを有している。なお、ホワイトバーと対比する等の文脈に応じて、バーを黒バーと称する場合がある。
第1の実施の形態の情報画像検出モジュール32は、画像内を走査することによって、その画像内にある情報画像を抽出するものであって、図1に示すように、始端部分検出モジュール11、始端部分以外の部分検出モジュール12、本数検出モジュール13を有している。
始端部分検出モジュール11は、始端部分以外の部分検出モジュール12と接続されており、バーコード内のバー又はホワイトバーの幅の相互間の比率と第1の判断基準に基づいて、そのバーコードのスタートコードを検出する。相互間の比率とは、対象としているバー又はホワイトバーの幅とそのバー又はホワイトバーよりも前に検出しているバー又はホワイトバーの幅との間の比率をいう。特に、ここでの相互間の比率とは、最初に発見したバーの幅と次のホワイトバー(前記バーに隣接しているホワイトバー)の幅との間の比率をいう。
始端部分以外の部分検出モジュール12は、始端部分検出モジュール11、本数検出モジュール13と接続されており、始端部分検出モジュール11によって検出されたスタートコードを有するバーコード内のバー又はホワイトバーの幅の相互間の比率と前記第1の判断基準とは異なる第2の判断基準に基づいて、そのバーコードの始端部分以外の部分を検出する。なお、始端部分以外の部分とは、バーコードの画像内の解読可能な領域であって、始端部分に続く領域のことをいう。
本数検出モジュール13は、始端部分以外の部分検出モジュール12と接続されており、始端部分以外の部分検出モジュール12によって検出された始端部分以外の部分を有するバーコード内のバー又はホワイトバーの本数を検出する。
また、ある走査において始端部分検出モジュール11がバーコードのスタートコードを検出した場合は、その検出における走査にあっては、始端部分以外の部分検出モジュール12及び本数検出モジュール13による検出を行わず、また、あるラインの走査において始端部分検出モジュール11がバーコードのスタートコードを検出した場合は、そのラインにおいて始端部分を検出した後の走査にあっては、始端部分検出モジュール11による検出を行わず、始端部分以外の部分検出モジュール12及び本数検出モジュール13による検出を行うようにしてもよい。
また、第1の実施の形態を別の観点で捉えた場合の情報画像検出モジュール32は、図2に示すように、第1の判断モジュール21、第2の判断モジュール22、第3の判断モジュール23、第4の判断モジュール24、候補領域追加モジュール25、第5の判断モジュール26を有している。
第1の判断モジュール21は、第2の判断モジュール22と接続されており、対象としているホワイトバーの幅が直前に検出されたバーの幅の2倍以下であり、かつ1/2以上であるか否かを判断する。つまり、ここでは、最初のバーの幅と次のホワイトバー(つまり最初のホワイトバー)の幅とを比較している。そして、この基準を満たす場合は、バーコードのスタートコードを検出したという可能性がある場合であり、この基準を満たさない場合は、最初のバーがバーコードの一部を形成していない場合である。この基準を満たしたバーとホワイトバーの連続領域について、次の第2の判断モジュール22による処理を行う。
第2の判断モジュール22は、第1の判断モジュール21、第3の判断モジュール23と接続されており、第1の判断モジュール21による基準を満たしたものについて、対象としているバー又はホワイトバーの幅は、それまで走査したバー又はホワイトバーのうち最小のものの幅の4倍以下であり、かつ最大のものの幅の1/4以上であるか否かを判断する。この基準を満たしたバーとホワイトバーの連続領域について、次の第3の判断モジュール23による処理を行う。
また、第2の判断モジュール22による判断は、バー毎に又はホワイトバー毎に判断するようにしてもよい。つまり、第2の判断モジュール22は、対象としているバーの幅が、それまで走査したバーのうち最小のものの幅の4倍以下であり、かつ最大のものの幅の1/4以上であるか否かを判断するようにしてもよい。又は、第2の判断モジュール22は、対象としているホワイトバーの幅が、それまで走査したホワイトバーのうち最小のものの幅の4倍以下であり、かつ最大のものの幅の1/4以上であるか否かを判断するようにしてもよい。印刷によっては、一様にバーを太くするように印刷してしまうものがあるが、そのような印刷物に対応させる場合に適している。
第3の判断モジュール23は、第2の判断モジュール22、第4の判断モジュール24と接続されており、第2の判断モジュール22による基準を満たしたものについて、既に出現したバーの本数は、バーコードのバーの最小限本数に到達したか否かを判断する。バーコードとして成り立つ本数のバーが出現したバーとホワイトバーの連続領域について、次の第4の判断モジュール24による処理を行う。
第4の判断モジュール24は、第3の判断モジュール23、候補領域追加モジュール25と接続されており、第3の判断モジュール23によって検出された本数に応じて、第2の判断モジュール22によって検出されたバーコード内のバー又はホワイトバーの幅の比率と第1の判断モジュール21の判断基準及び第2の判断モジュール22の判断基準とは異なる判断基準に基づいて、バーコードのストップコードを検出する。つまり、具体的には、対象としているホワイトバーの幅は、それまで走査したホワイトバーのうち最大のものの幅の1.5倍以下であるか否かを判断する。これは、バーコードの終端部分であるか否かを判断するものである。
候補領域追加モジュール25は、第4の判断モジュール24、第5の判断モジュール26と接続されており、対象としているバーを、バーコードの候補領域のバーとして追加する。
第5の判断モジュール26は、候補領域追加モジュール25と接続されており、バーコード領域の候補領域が複数ライン続いているか否かを判断する。
図3を用いて、第1の実施の形態の構成例についての全体的なモジュール構成を説明する。第1の実施の形態の全体は、画像入力モジュール31、情報画像検出モジュール32、バーコードデコードモジュール33、デコード結果処理モジュール34を有している。
画像入力モジュール31は、情報画像検出モジュール32と接続されており、バーコードを含む画像を入力する。入力した画像を情報画像検出モジュール32へ渡す。その入力した画像に含まれるバーコードは、複数あってもよいし、複数種類のバーコードが含まれていてもよいし、また、そのバーコードは走査方向に対して傾きをもっていてもよい。
情報画像検出モジュール32は、画像入力モジュール31、バーコードデコードモジュール33と接続されており、画像入力モジュール31によって入力された画像から情報画像であるバーコードを検出する。その検出したバーコードの画像をバーコードデコードモジュール33へ渡す。
バーコードデコードモジュール33は、情報画像検出モジュール32、デコード結果処理モジュール34と接続されており、情報画像検出モジュール32から受け取ったバーコードの画像を解析して情報を抽出する。つまり、バーコードを解読するデコーダーである。そして、抽出した情報をデコード結果処理モジュール34へ渡す。
デコード結果処理モジュール34は、バーコードデコードモジュール33と接続されており、バーコードデコードモジュール33から受け取った情報を処理する。例えば、画像内に記載されたバーコードによって表現されているその文書名を用いて、その画像の電子情報である電子文書を取り出す等の処理を行う。
図5を用いて第1の実施の形態の具体的な概要を述べる。
まず、1次元バーコードは、主に細いバーと太いバーの2種類の太さのバーからなるものと、4種類の太さのバーからなるものがある。よって、バーを検出する際、今まで走査したバーのうち最小のバーの4倍以上の太さ、又は最大のバーの1/4以下の太さのバーが出現した場合はバーコード領域が途切れたものと判断できる。
このとき、つまり、始端部分のバーを検出する時点で、許容比率を4倍又は1/4としてしまうと、バーコード領域ではない領域をバーコード領域として検出してしまう可能性がある。このような場合を図5を用いて説明する。
図5(A)は、画像入力モジュール31によって入力された画像内のバーコードの周辺を示したものである。バーコードは罫線53によって囲まれている状態である。図5(B)は、図5(A)に示すライン51を走査する場合、最初に検出する箇所52を拡大したものである。
この場合、最初の走査によって、本来のバーコードのバー(54〜58)よりも前にある罫線53が検出されるが、この罫線53とバーコードの始まりのバー54までのスペースは罫線53の太さの4倍以下なので、罫線53もバーコード領域として検出されてしまう。
ここで、一般的なバーコードのスタートコード及びストップコードを図6に示す。なお、スタートコードとは、バーコードの始めを示す特定のコードをいう。ストップコードとは、バーコードの終わりを示す特定のコードをいう。また、それぞれ、スタートキャラクタ、ストップキャラクタとも言われる。例えば、JANコードでは、レフトガードバー(バーコードの左端部分)、ライトガードバー(バーコードの右端部分)、センターバー(レフトガードバー以外であってライトガードバー以外の部分)という用語を用いており、ここでは、レフトガードバーをスタートコード、ライトガードバーをストップコードと称する。
これらのキャラクタ構成を検討すると、スタートコードにおいて、1本目のバーから2本目のバーまでの距離(すなわち、1本目のホワイトバー)の幅が、最初のバーの幅の4倍以上又は1/4以下となることはない。よって、1本目のバーから次のバーを検出する際は、比率の許容量を小さくする。ここでの比率は、1本目のホワイトバーの幅は、前のバーの2倍以下かつ1/2以上の太さ以内を許容することとする。なお、図6(D)UPC/EAN/JANには、スタートコード、ストップコードの他に中間コードも示している。
また、1キャラクタが成り立つ本数のバーが出てくると、ほとんどのサイズのバーが一度は出現した可能性が高くなる。そのまま「今まで走査したバーのうち最小のバーの4倍以下の太さ、かつ最大のバーの1/4以上の太さ」を許容比率として検出を続けると、バーコードの最後のクワイエットゾーンが少ない場合などは、バーコードを超えてバーの検出を続けてしまう可能性がある。なお、クワイエットゾーン(Quiet Zone)とは、バーコードを読み取る際に必要なバーコードの前後の空白部分をいう。マージンともいわれる。一般的に、このクワイエットゾーンの中に他の図柄である罫線53などがあるとバーコードとして認識できない。このような場合を図7を用いて説明する。
図7に例示するように、バーコード71の最後の部分(検出領域73)を検出する場合、隣の罫線72の枠までの距離が「今まで走査したバーのうち最小のバーの4倍以下の太さ、かつ最大のバーの1/4以上の太さ」に入ってしまうため、罫線72までバーコードとして検出されてしまう。よって、1キャラクタが成り立つ本数のバーが出現した後は、再び比率の許容量を小さくする。
図6の標準的なバーコードのスタートコード及びストップコードの例を検討すると、太さが2種類のコードではスタートコードが出現した時点で太さ1と太さ2のバーが両方必ず出現する。
しかし、太さが4種類のCODE128では、スタートコードが出現した時点で太さ3のバーまでしか出現せず、今後太さ4のバーが出現する可能性がある。つまり、比率としては、4/3(=1.33)であるが、誤差を考慮して1.5倍を採用する。
よって「今まで走査したバーのうち最大のバーの1.5倍より太い太さのスペース」が出現した場合はバーコード領域終了とする。
このようにバーの検出本数により許容比率を変え、それを超えるバーが現れた場合は検出終了とする。このような処理を行って、最後のクワイエットゾーンをクワイエットゾーンとして読み取り、バーコードのみを取り出す。
ここで、バーコードは1キャラクタを6〜9本のバーで構成しており、必ずスタートコードとストップコードを含むため、バーコードとして成り立つための最低バー数というものが存在する。
スタートコードとストップコードとを含む最低の1キャラクタとして、CODE39では29本、NW7では23本、CODE128では19本となる。
よって、検出されたバーの本数がバーコードとして成り立つ最低本数(この場合、CODE128として19本)を満たすかどうかの判断をして、満たす場合はバーコード候補領域として登録する。
以上のように1ラインを走査してバーコード候補領域の検出を行ったら、次のラインの走査に移る。次のラインで検出されたバーコード候補領域が、前のラインで検出された領域と重なっていたら、この2つの領域を結合する。重なっているか否かは、X座標(走査ライン方向の座標)が一致しているか否かによって判断する。つまり、一致している部分があれば、重なっていると判断する。
以上の走査を繰り返し、最終的に所定以上の連続したラインでバーコード候補領域として判断したならば、これを結合してバーコード領域とする。
図8に示すフローチャートを用いて、第1の実施の形態の情報画像検出モジュール32における処理例の流れを説明する。
まずステップS201では、画像入力モジュール31で入力され、二値化された画像を受け取り、その画像を1ラインずつ走査する。以後、バーを1本検出した後、次のバーの太さを判断し、バーコードとして成り立つかどうかを順に判断していく。
ステップS202では、バーの検出を開始する。
ステップS203では、バーコード領域として最初のバーの検出かどうかを判断する。最初のバーである場合(Yesの場合)はステップS205へ進み、それ以外の場合(Noの場合)はステップS204へ進む。
ステップS205では、現在の黒バーの次のホワイトバーに進み、ホワイトバーの幅が前のバーの幅の2倍以下かつ1/2以上かを判断する。この処理は図2の例に示す第1の判断モジュール21に相当するものである。この範囲から外れている場合(Noの場合)はバーコード領域ではないので、ステップS212に進む。この範囲内の場合(Yesの場合)はステップS208へ進んで、この黒バーとホワイトバーをバーコード候補領域として追加し、ステップS209へ進む。つまり、バーコードのスタートコードを検出した場合は、ステップS204、ステップS206、ステップS207の処理を行わずに、同一ラインにおける次のバーの抽出を行うようにする(ステップS209)。その場合、そのラインにおいてスタートコードを検出した後の走査にあっては、ステップS205での処理を行わず、ステップS204、ステップS206での処理を行い、場合によってはステップS207での処理を行う。
ステップS203で、バーコード領域として最初のバーではないと判断した場合はステップS204へ進み、ステップS204では、対象としているバーの幅は、今まで走査したバーのうち最小のバーの幅の4倍以下の太さ、かつ最大のバーの幅の1/4以上かを判断する。この処理は図2の例に示す第2の判断モジュール22に相当するものである。Noであった場合はバーコード領域の終了なので、ステップS210へ進む。Yesであった場合はステップS206へ進む。なお、ステップS204での判断は、ホワイトバーの幅を用いて行うようにしてもよい。
ステップS206では、既に検出した領域にバーコードとして成り立つ本数のバーが含まれているかどうかを判断する。この処理は図2の例に示す第3の判断モジュール23に相当するものである。含まれている場合(Yesの場合)はステップS207へ進み、含まれていない場合(Noの場合)はステップS208へ進む。
ステップS207では、ホワイトバーの幅が今まで走査したホワイトバーの幅のうち最大のものの1.5倍以下かを判断する。この処理は図2の例に示す第4の判断モジュール24に相当するものである。Yesの場合はバーコード領域が継続しているとしてステップS208に進み、現在のバーをバーコード候補領域を構成するバーとして登録する。Noの場合はバーコード領域が終了したとしてステップS210へ進む。
ステップS208では、現在のバーをバーコード候補領域を構成するバーとして登録する。その後、ステップS209に進む。
ステップS209では、走査ライン上に次のバーがあるかどうかのチェックを行い、ある場合(Yesの場合)はステップS202に戻って次のバーを検出する。ない場合(Noの場合)はステップS210に進む。
ステップS210には連続するバーコード領域が終了するとたどり着く。ステップS210では、今までに検出した候補領域はバーコードとして成り立つ本数のバーが含まれているかどうかを判断する。含まれている場合(Yesの場合)、ステップS211へ進む。含まれていない場合(Noの場合)は、その領域を破棄し、ステップS212に進む。
なお、ステップS210で、前述したバーの本数に関する判断基準にさらに加えて、黒バー又はホワイトバーの太さは2種類であるか又は4種類であるかを判断するようにしてもよい。つまり、前述の判断基準で含まれていると判断された場合(Yesの場合)であって、太さが2種類又は4種類である場合は、ステップS211へ進み、それ以外の場合はステップS212へ進む。この判断を行うために、黒バー又はホワイトバーの太さをグルーピングする。このグルーピングは、ある太さを基準にして所定の範囲内にあるものは1つのグループに属すると判断してグループを形成する。そして、そのグループ数が太さの種類数に該当する。
ステップS211では、今までにバーコードのバーとして検出した領域をバーコード候補領域とする。
ステップS212では、次のバーを検出する。ある場合(Yesの場合)はステップS202に戻り処理を繰り返す。ない場合(Noの場合)はステップS213に進む。
ステップS213では、次の走査ラインがあるかどうかを判断する。次のラインが存在する場合(Yesの場合)はステップS201に戻る。存在しない場合(Noの場合)はステップS214へ進む。
ステップS214では、各ラインで検出したバーコード候補領域が、所定数の複数ラインにわたって存在しているかどうかを判断する。この処理は図2の例に示す第5の判断モジュール26に相当するものである。所定数の複数ラインにわたっている場合(Yesの場合)はステップS215に進む。それ以外の場合(Noの場合)はステップS216へ進む。
ステップS215では、その領域をバーコード領域としてデコーダーに出力する。ここでのバーコード領域は、図4に例示されている各バーコードのすべてである必要はなく、バーコードが解読可能な領域であれば足りる。例えば、図4(E)のJANは、すべてのバーの長さが一定ではなく一部のバーの長さが他のバーよりも長くなっている。このようなコード体系の場合、他のバーより長いバーの一部をバーコード領域とする必要はなく、他のバーの長さと同じ長さまでの領域をバーコード領域としてデコーダーに出力してもよい。
ステップS216では、所定数の複数ラインにわたってバーコード候補領域がないので、バーコード領域は無しとして処理する。
なお、1ライン内に複数のバーコードがあった場合に対応するために、検出したバーコード候補領域に識別符号を付して、X座標を用いてバーコード候補領域を特定するようにしてもよい。
前述の実施の形態が処理対象とする画像の例を図9、図10を用いて説明する。
図9は、複数の帳票(帳票91、帳票93、帳票95、帳票97)にそれぞれバーコード(バーコード92、バーコード94、バーコード96、バーコード98)が付されている場合であって、自動原稿送り装置等を用いて、それらの画像を連続して画像入力モジュール31が入力した場合である。また、それぞれのバーコードは異なる種類のものである。これら全ての画像は、前述の実施の形態によって処理対象となる。
図10は、1つの画像100を画像入力モジュール31が入力した場合である。その画像100には、2つの帳票(送り状101、納品書103)があり、それぞれにバーコード(バーコード102、バーコード104)が付されている。そして、それぞれの帳票には、バーコードが罫線等と隣接或いは接触している。また、バーコードは異なる種類であり、傾いたものである。このような画像をもバーコード領域が分断されることなく、また抽出領域が他のオブジェクトと接触しても、バーコードとして抽出する形状が変わってしまうことなく、処理する。つまり、図8に示したフローチャートにおけるステップS214でYesとなるほどに、各走査ラインのバーコード候補領域が重なっており、そのバーコード候補領域が所定数以上のラインからなっていればよい。
次に、第2の実施の形態を説明する。
第1の実施の形態では、1ラインずつ処理を行っていたが、第2の実施の形態は、所定ライン毎に処理を行う。そして、処理を省いてはいるが、バーコード抽出の精度を落とさないようにするために、第5の判断モジュール116による処理を加える。
図11は、第2の実施の形態の情報画像検出モジュール32の構成例についての概念的なモジュール構成図を示している。なお、第1の実施の形態と同種のモジュールには同一符号を付し重複した説明を省略する。また、第2の実施の形態の全体的なモジュール構成例は、第1の実施の形態と同様であり、図3に示すものと同様である。
情報画像検出モジュール32は、図11に示すように、対象ライン設定モジュール111、第1の判断モジュール21、第2の判断モジュール22、第3の判断モジュール23、第4の判断モジュール24、候補領域追加モジュール25、第5の判断モジュール116を有している。また、第5の判断モジュール116は、分布情報検出モジュール1161、比較モジュール1162、バーコード付加生成モジュール1163を有している。
対象ライン設定モジュール111は、第1の判断モジュール21と接続されており、対象とする画像内の走査対象とするラインを設定する。その設定したラインを第1の判断モジュール21に渡す。例えば、走査対象を所定のライン毎(10ライン毎)と設定してもよい。
第1の判断モジュール21は、対象ライン設定モジュール111、第2の判断モジュール22と接続されており、対象ライン設定モジュール111によって設定されたラインに対して、前述の第1の実施の形態のものと同様の処理を行う。
分布情報検出モジュール1161は比較モジュール1162と接続されており、第4の判断モジュール24がストップコードを検出した後に、第1の判断モジュール21によって検出されたスタートコードから第4の判断モジュール24によって検出されたストップコードまでの間におけるバー又はホワイトバーの分布に関する情報(以下、分布情報ともいう)を検出する。例えば、分布情報として、バー又はホワイトバーの太さ、その本数等、又はそれらの平均、分散等の統計情報等がある。バーコード内であれば、バー又はホワイトバーの太さ、その本数等は一定であるため、その分布情報も一定となる。しかし、バーコードではない文字領域では、分布情報は一定にはならない。特に、所定のライン毎に検出した場合は、隣り合うラインではないので、分布情報はライン毎に異なることになる。これによって、バーコードと文字領域とを区別する。
比較モジュール1162は分布情報検出モジュール1161、バーコード付加生成モジュール1163と接続されており、分布情報検出モジュール1161によって検出された分布情報と既に走査対象としたラインにおけるバーコードの分布情報とを比較する。例えば、バー又はホワイトバーの太さ、その本数等のそれぞれの差分を算出して、その差分を比較結果とする。
バーコード付加生成モジュール1163は比較モジュール1162と接続されており、分布情報検出モジュール1161によって検出された分布情報に基づいて、既に走査対象としたラインにおけるバーコード(1ライン又は複数ラインのバーコード、以下、「前者のバーコード」ともいう)に今回の走査対象としたラインにおけるバーコード(1ラインのバーコード、以下、「後者のバーコード」ともいう)を付加して、バーコードを生成する。バーコード付加生成モジュール1163による処理は繰り返して行われるので、生成したバーコードは、次の処理では、既に走査対象としたラインにおけるバーコードとなる。このようにして、徐々にバーコードを生成、つまり抽出していく。なお、候補領域追加モジュール25は、対象としているバーを、バーコードの候補領域のバーとして追加することによって、バーを縦向きにした場合に、横方向にバーコードを生成するものであるが、バーコード付加生成モジュール1163は、縦方向にバーコードを生成するものである。また、比較モジュール1162による比較結果に基づいて、バーコードを生成するようにしてもよい。つまり、既に走査対象としたラインにおけるバーコードの分布情報と分布情報検出モジュール1161によって検出された分布情報とが合致すると、比較モジュール1162によって判断された場合に、バーコードを生成する。両者の分布情報が合致するとは、一致する場合を含み、所定の範囲内にある場合を含む。例えば、比較モジュール1162による比較結果である差分が所定の閾値以下である場合がある。
バーコード付加生成モジュール1163は、バーコードを生成する前に、更に、分布情報検出モジュール1161、場合によっては比較モジュール1162に対して、前者のバーコードと後者のバーコードとの間にある中間ラインにおける分布情報を検出させ、その比較結果(前者のバーコードの分布情報と中間ラインにおける分布情報との比較結果、又は後者のバーコードの分布情報と中間ラインにおける分布情報との比較結果)を得させるようにしてもよい。そして、その比較結果を用いて、バーコードを生成するようにしてもよい。なお、この更なる処理は、比較結果が前記所定の閾値(第1閾値)とは異なる所定の閾値(第2閾値)以下の場合に行うようにしてもよい。例えば、第2閾値は、第1閾値未満であって近似する値等である。また、中間ラインは前者のバーコードと後者のバーコードとの間にあれば、その間を2等分する地点のラインであってもよいし、ランダムに選択してもよい。更に、1つではなく、複数であってもよい。
図12、13に示すフローチャート、図14に示す処理例を用いて、第2の実施の形態の情報画像検出モジュール32における処理例の流れを説明する。
なお、ステップS1202からステップS1212までの処理は、第1の実施の形態による図8に示したフローチャートのステップS202からステップS212までの処理に対応するので、説明を省略する。
まず、ステップS1201では、画像入力モジュール31で入力され、二値化された画像を受け取り、対象ライン設定モジュール111によって設定されたラインを走査する。
ステップS1202からステップS1212までの処理によって、走査対象とされたライン内で、バーコード候補領域を生成する。つまり、バーを1本検出した後、次のバーの太さを判断し、バーコードとして成り立つかどうかを順に判断していく。
例えば、図14(a)の例に示すように、対象画像140の1行目のライン内で、バーコード候補領域141、142を抽出する。ここで、バーコード候補領域141はバーコードであるが、バーコード候補領域142は文字領域である。次の処理、つまり、2回目のステップS1201で1+Nライン目を走査対象とした後のステップS1202からステップS1212までの処理では、図14(b)の例に示すように、バーコード候補領域143を新たに抽出する。
ステップS1213では、1ライン走査した結果、つまりそのラインにおけるステップS1201からステップS1212までの処理の結果、バーコード候補領域が検出されたか否かを判断する。かかる判断において、検出されている場合(Yesの場合)はステップS1214へ進み、それ以外の場合(Noの場合)はステップS1218へ進む。
ステップS1214では、前の走査ラインで検出されたバーコード候補領域と、今回の走査ラインで検出されたバーコード候補領域の横(走査ライン方向)の位置座標が所定範囲内にあるか否かを判断する。かかる判断において、所定範囲内にある場合(Yesの場合)はステップS1215へ進み、それ以外の場合(Noの場合)はステップS1218へ進む。つまり、2つのバーコード候補領域は、その位置から1つのバーコードになり得るか否かを判断している。例えば、図14(b)の例に示すバーコード候補領域143はバーコード候補領域141と横の位置座標が所定範囲内にあるので、ステップS1215へ進む。なお、バーコード候補領域143はバーコード候補領域142とは所定範囲内にない。なお、横の位置座標とは、バーコードの左右端の座標をいい、バーコードの左端の座標のみ、右端の座標のみであってもよい。
ステップS1215では、前の走査ラインまでのバーコード候補領域と今回の走査ラインのバーコード候補領域の分布情報を取得する。ここで、分布情報検出モジュール1161が両者の分布情報を検出するようにしてもよいし、前の走査ラインまでのバーコード候補領域については、既に分布情報検出モジュール1161によって検出された分布情報を用いるようにしてもよい。
ステップS1216では、ステップS1215で取得した両者の分布情報が所定範囲内にあるか否かを判断する。かかる判断において、所定範囲内にある場合(Yesの場合)はステップS1217へ進み、それ以外の場合(Noの場合)はステップS1218へ進む。つまり、2つのバーコード候補領域は、その分布情報から1つのバーコードになり得るか否かを判断している。例えば、図14(b)の例に示すバーコード候補領域143はバーコード候補領域141と分布情報が所定範囲内にあるので、ステップS1217へ進む。
ステップS1217では、今回の走査ラインのバーコード候補領域を前の走査ラインまでのバーコード候補領域に付加する。つまり、前の走査ラインまでのバーコード候補領域を今回の走査ラインのバーコード候補領域まで延長して、矩形のバーコードを生成する。例えば、図14(c)の例に示すように、バーコード候補領域141をバーコード候補領域143まで延長してバーコード候補領域144を生成する。
ステップS1218では、前の走査ラインまでで検出されたバーコード候補領域であって、今回の走査ラインで検出されたバーコード候補領域と接続されなかったバーコード候補領域があるか否かを判断する。かかる判断において、バーコード候補領域がある場合(Yesの場合)はステップS1219へ進み、それ以外の場合(Noの場合)はステップS1221へ進む。つまり、バーコードの検出途中であるのか否かを判断している。
ステップS1219では、今までに検出したバーコード候補領域が所定の高さ以上であるか否かを判断する。かかる判断において、所定の高さ以上である場合(Yesの場合)はステップS1220へ進み、それ以外の場合(Noの場合)はステップS1221へ進む。つまり、ステップS1219には、前の走査ラインでバーコード領域が終了したと判断し得るバーコード候補領域がある場合にたどり着くものであり、ステップS1219では、バーコードとして成り立ち得る高さを有しているか否かを判断して、バーコードの検出が終了したか否かを判断している。図14(c)の例に示すバーコード候補領域142は所定の高さを有していないので、ステップS1221へ進み、ステップS1220の処理を行わないので、バーコード候補領域142はバーコード領域として登録されない。
ステップS1220では、対象としているバーコード候補領域をバーコード領域として登録する。つまり、そのバーコード候補領域をバーコードとして検出している。
ステップS1221では、次の走査ラインがあるか否かを判断する。ある場合(Yesの場合)はステップS1201へ戻り、次の対象ラインに対する処理を繰り返す。次の走査ラインがない場合は終了し、それまでにステップS1220で登録されたバーコード領域が、その画像内にあるバーコード領域である。
図15を参照して、前述の実施の形態のハードウェア構成例について説明する。図15に示す構成は、例えばパーソナルコンピュータ(PC)などによって構成されるものであり、スキャナ等のデータ読み取り部1517と、プリンタなどのデータ出力部1518を備えたハードウェア構成例を示している。
CPU(Central Processing Unit)1501は、前述の実施の形態において説明した各種のモジュール、すなわち、始端部分検出モジュール11、始端部分以外の部分検出モジュール12、本数検出モジュール13等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
ROM(Read Only Memory)1502は、CPU1501が使用するプログラムや演算パラメータ等を格納する。RAM(Random Access Memory)1503は、CPU1501の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはCPUバスなどから構成されるホストバス1504により相互に接続されている。
ホストバス1504は、ブリッジ1505を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス1506に接続されている。
キーボード1508、マウス等のポインティングデバイス1509は、操作者により操作される入力デバイスである。ディスプレイ1510は、液晶表示装置又はCRT(Cathode Ray Tube)などから成り、各種情報をテキストやイメージ情報として表示する。
HDD(Hard Disk Drive)1511は、ハードディスクを内蔵し、ハードディスクを駆動し、CPU1501によって実行するプログラムや情報を記録又は再生させる。ハードディスクは、入力された画像や情報画像検出モジュール32が検出したバーコードの画像などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
ドライブ1512は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体1513に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース1507、外部バス1506、ブリッジ1505、及びホストバス1504を介して接続されているRAM1503に供給する。リムーバブル記録媒体1513も、ハードディスクと同様のデータ記録領域として利用可能である。
接続ポート1514は、外部接続機器1515を接続するポートであり、USB、IEEE1394等の接続部を持つ。接続ポート1514は、インタフェース1507、及び外部バス1506、ブリッジ1505、ホストバス1504等を介してCPU1501等に接続されている。通信部1516は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部1517は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部1518は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
なお、図15に示すハードウェア構成は、1つの構成例を示すものであり、前述の実施の形態は、図15に示す構成に限らず、前述の実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア(例えば特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)等)で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図15に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機(スキャナ、プリンタ、複写機、ファックス等のいずれか2つ以上の機能を有している画像処理装置)などに組み込まれていてもよい。
前記実施の形態においては、情報画像検出モジュール32とバーコードデコードモジュール33は独立しており、情報画像検出モジュール32による処理を行った後に、バーコードデコードモジュール33による処理を行うようにしたが、情報画像検出モジュール32とバーコードデコードモジュール33を合成して、バーコードの検出を行いながら、そのバーコードのデコードを行うようにしてもよい。
なお、バーの幅を対象とした処理はホワイトバーの幅を対象とした処理にしてもよいし、ホワイトバーの幅を対象とした処理はバーの幅を対象とした処理にしてもよい。
前記実施の形態の説明で述べた閾値における具体的な数値は、ノイズ状況を考慮して多少許容量を大きくした値であってもよい。
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク(DVD)であって、DVDフォーラムで策定された規格である「DVD−R、DVD−RW、DVD−RAM等」、DVD+RWで策定された規格である「DVD+R、DVD+RW等」、コンパクトディスク(CD)であって、読出し専用メモリ(CD−ROM)、CDレコーダブル(CD−R)、CDリライタブル(CD−RW)等、光磁気ディスク(MO)、フレキシブルディスク(FD)、磁気テープ、ハードディスク、読出し専用メモリ(ROM)、電気的消去及び書換可能な読出し専用メモリ(EEPROM)、フラッシュ・メモリ、ランダム・アクセス・メモリ(RAM)等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク(LAN)、メトロポリタン・エリア・ネットワーク(MAN)、ワイド・エリア・ネットワーク(WAN)、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
第1の実施の形態の構成例についての概念的なモジュール構成図である。 第1の実施の形態の構成例について、別の観点から捉えた概念的なモジュール構成図である。 第1の実施の形態の構成例についての全体的なモジュール構成図である。 第1の実施の形態が対象とする情報画像の例を示す説明図である。 バーコードの始端部分を検出する処理例を示す説明図である。 バーコードのスタートコード、ストップコードの例を示す説明図である。 バーコードの終端部分を検出する処理例を示す説明図である。 第1の実施の形態によるバーコード抽出処理例を示すフローチャートである。 第1の実施の形態の処理対象となるバーコードを含む画像の例を示す説明図である。 第1の実施の形態の処理対象となるバーコードを含む画像の例を示す説明図である。 第2の実施の形態の構成例についての概念的なモジュール構成図である。 第2の実施の形態によるバーコード抽出処理例を示すフローチャートである。 第2の実施の形態によるバーコード抽出処理例を示すフローチャートである。 第2の実施の形態による処理例を示す説明図である。 第1の実施の形態、第2の実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
符号の説明
11…始端部分検出モジュール
12…始端部分以外の部分検出モジュール
13…本数検出モジュール
21…第1の判断モジュール
22…第2の判断モジュール
23…第3の判断モジュール
24…第4の判断モジュール
25…候補領域追加モジュール
26…第5の判断モジュール
31…画像入力モジュール
32…情報画像検出モジュール
33…バーコードデコードモジュール
34…デコード結果処理モジュール
111…対象ライン設定モジュール
116…第5の判断モジュール
1161…分布情報検出モジュール
1162…比較モジュール
1163…バーコード付加生成モジュール

Claims (14)

  1. 画像内を走査して、黒画像領域及び白画像領域によって情報を表現する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と第1の判断基準に基づいて、該情報画像の始端部分を検出する第1の検出手段と、
    前記第1の検出手段によって検出された始端部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準とは異なる第2の判断基準に基づいて、該情報画像の始端部分以外の部分を検出する第2の検出手段と、
    前記第1の検出手段と前記第2の検出手段により検出された領域を情報画像として解析して情報を抽出する情報抽出手段
    を具備し、
    前記画像内には、複数種類の情報画像があり、該情報画像は走査方向に対して傾いている
    ことを特徴とする画像処理装置。
  2. 前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の本数を検出する第3の検出手段と、
    前記第3の検出手段によって検出された本数に応じて、前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準及び前記第2の判断基準とは異なる第3の判断基準に基づいて、前記情報画像の終端部分を検出する第4の検出手段
    を具備することを特徴とする請求項1に記載の画像処理装置。
  3. ある走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該検出における走査にあっては、前記第2の検出手段及び前記第3の検出手段による検出を行わない
    ことを特徴とする請求項に記載の画像処理装置。
  4. あるラインの走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該ラインにおいて始端部分を検出した後の走査にあっては、前記第1の検出手段による検出を行わず、前記第2の検出手段及び前記第3の検出手段による検出を行う
    ことを特徴とする請求項3に記載の画像処理装置。
  5. 前記第4の検出手段によって終端部分を検出した場合は、前記情報画像を解読する解読手段
    を具備することを特徴とする請求項2に記載の画像処理装置。
  6. コンピュータを、
    画像内を走査して、黒画像領域及び白画像領域によって情報を表現する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と第1の判断基準に基づいて、該情報画像の始端部分を検出する第1の検出手段と、
    前記第1の検出手段によって検出された始端部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準とは異なる第2の判断基準に基づいて、該情報画像の始端部分以外の部分を検出する第2の検出手段と、
    前記第1の検出手段と前記第2の検出手段により検出された領域を情報画像として解析して情報を抽出する情報抽出手段
    として機能させ
    前記画像内には、複数種類の情報画像があり、該情報画像は走査方向に対して傾いている
    ことを特徴とする画像処理プログラム。
  7. 前記コンピュータを、
    前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の本数を検出する第3の検出手段と、
    前記第3の検出手段によって検出された本数に応じて、前記第2の検出手段によって検出された始端部分以外の部分を有する情報画像内の黒画像領域又は白画像領域の幅の相互間の比率と前記第1の判断基準及び前記第2の判断基準とは異なる第3の判断基準に基づいて、前記情報画像の終端部分を検出する第4の検出手段
    としてさらに機能させることを特徴とする請求項6に記載の画像処理プログラム。
  8. ある走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該検出における走査にあっては、前記第2の検出手段及び前記第3の検出手段による検出を行わない
    ことを特徴とする請求項に記載の画像処理プログラム。
  9. あるラインの走査において前記第1の検出手段が情報画像の始端部分を検出した場合は、該ラインにおいて始端部分を検出した後の走査にあっては、前記第1の検出手段による検出を行わず、前記第2の検出手段及び前記第3の検出手段による検出を行う
    ことを特徴とする請求項8に記載の画像処理プログラム。
  10. 前記コンピュータを、
    前記第4の検出手段によって終端部分を検出した場合は、前記情報画像を解読する解読手段
    として機能させることを特徴とする請求項7に記載の画像処理プログラム。
  11. 画像内の走査対象とするラインを設定する対象ライン設定手段
    を具備し、
    前記第1の検出手段は、前記対象ライン設定手段によって設定されたラインを走査対象とし、
    前記第4の検出手段が終端部分を検出した後に、前記第1の検出手段によって検出された始端部分から前記第4の検出手段によって検出された終端部分までの間における画像領域又は白画像領域の分布に関する情報を検出する分布情報検出手段と、
    前記分布情報検出手段によって検出された分布に関する情報に基づいて、既に走査対象としたラインにおける情報画像に今回の走査対象としたラインにおける情報画像を付加して、情報画像を生成する情報画像付加生成手段
    をさらに具備することを特徴とする請求項2に記載の画像処理装置。
  12. 前記分布情報検出手段によって検出された分布に関する情報と既に走査対象としたラインにおける情報画像の分布に関する情報とを比較する比較手段
    を具備し、
    前記情報画像付加生成手段は、前記比較手段による比較結果に基づいて、情報画像を生成する
    ことを特徴とする請求項11に記載の画像処理装置。
  13. 前記コンピュータを、
    画像内の走査対象とするラインを設定する対象ライン設定手段
    として機能させ、
    前記第1の検出手段は、前記対象ライン設定手段によって設定されたラインを走査対象とし、
    前記第4の検出手段が終端部分を検出した後に、前記第1の検出手段によって検出された始端部分から前記第4の検出手段によって検出された終端部分までの間における画像領域又は白画像領域の分布に関する情報を検出する分布情報検出手段と、
    前記分布情報検出手段によって検出された分布に関する情報に基づいて、既に走査対象としたラインにおける情報画像に今回の走査対象としたラインにおける情報画像を付加して、情報画像を生成する情報画像付加生成手段
    としてさらに機能させることを特徴とする請求項7に記載の画像処理プログラム。
  14. 前記コンピュータを、
    前記分布情報検出手段によって検出された分布に関する情報と既に走査対象としたラインにおける情報画像の分布に関する情報とを比較する比較手段
    としてさらに機能させ、
    前記情報画像付加生成手段は、前記比較手段による比較結果に基づいて、情報画像を生成する
    ことを特徴とする請求項13に記載の画像処理プログラム。
JP2008101471A 2007-06-28 2008-04-09 画像処理装置及び画像処理プログラム Expired - Fee Related JP5470734B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008101471A JP5470734B2 (ja) 2007-06-28 2008-04-09 画像処理装置及び画像処理プログラム
US12/163,190 US8196836B2 (en) 2007-06-28 2008-06-27 Image processing apparatus, image processing method and computer-readable medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2007170350 2007-06-28
JP2007170350 2007-06-28
JP2008101471A JP5470734B2 (ja) 2007-06-28 2008-04-09 画像処理装置及び画像処理プログラム

Publications (2)

Publication Number Publication Date
JP2009032236A JP2009032236A (ja) 2009-02-12
JP5470734B2 true JP5470734B2 (ja) 2014-04-16

Family

ID=40402633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008101471A Expired - Fee Related JP5470734B2 (ja) 2007-06-28 2008-04-09 画像処理装置及び画像処理プログラム

Country Status (1)

Country Link
JP (1) JP5470734B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5778918B2 (ja) * 2010-11-30 2015-09-16 株式会社沖データ バーコード印刷装置
JP5957255B2 (ja) * 2012-03-23 2016-07-27 Kyb株式会社 帳票読取システム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2500859B2 (ja) * 1986-11-01 1996-05-29 日本電装株式会社 バ−コ−ド読取装置
JPS6478393A (en) * 1987-09-19 1989-03-23 Fujitsu Kiden System for demodulating bar code
JPH02125381A (ja) * 1988-07-13 1990-05-14 Matsushita Electric Ind Co Ltd 画像信号処理装置
JP3290738B2 (ja) * 1993-03-15 2002-06-10 オリンパス光学工業株式会社 バーコード検出装置
JPH07282181A (ja) * 1994-04-06 1995-10-27 Omron Corp バーコード信号解析方式及びバーコード読取り装置
JP3335265B2 (ja) * 1995-06-29 2002-10-15 富士通株式会社 バーコード抽出装置
JPH0962763A (ja) * 1995-08-29 1997-03-07 Tec Corp バーコードの検出方法

Also Published As

Publication number Publication date
JP2009032236A (ja) 2009-02-12

Similar Documents

Publication Publication Date Title
US8411955B2 (en) Image processing apparatus, image processing method and computer-readable medium
US5304787A (en) Locating 2-D bar codes
US8196836B2 (en) Image processing apparatus, image processing method and computer-readable medium
US6742708B2 (en) Fiducial mark patterns for graphical bar codes
JP4180497B2 (ja) コード種類判別方法、およびコード境界検出方法
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
US7481374B2 (en) System and method for placement and retrieval of embedded information within a document
EP0999519B1 (en) Distortion correction method in optical code reading
US6722567B2 (en) Generating and decoding graphical bar codes
JP2004533071A (ja) グラフィカルバーコードの自動抽出
JPH0157394B2 (ja)
JP2007086954A (ja) 文字認識処理装置、および文字認識処理方法、並びにコンピュータ・プログラム
JP3640573B2 (ja) バーコード読取り方法及びバーコード読取りシステム
US20070246542A1 (en) Document element repair
US6655592B2 (en) Graphically demodulating graphical bar codes without foreknowledge of the original unmodulated base image
JP5470734B2 (ja) 画像処理装置及び画像処理プログラム
JP4652201B2 (ja) バーコードシンボル情報読取方法及びバーコードシンボル情報読取装置
JP5379626B2 (ja) スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置
JP5121685B2 (ja) バーコード読取装置、バーコード読取プログラム、バーコード読取方法
JP4398498B2 (ja) コード境界検出方法
JP4905767B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
JP3350596B2 (ja) 傾き検出方法
JP4403063B2 (ja) シンボル情報読取方法及びシンボル情報読取装置
CN118569285B (zh) 低质量图像场景下的条形码识别方法、终端及系统
JP4930288B2 (ja) 画像処理装置及び画像処理プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140107

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140120

R150 Certificate of patent or registration of utility model

Ref document number: 5470734

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees