(57)【特許請求の範囲】
【請求項１】
入力された画像データから、該画像データに係る画像の前景を構成する前景画素を抽出する画像処理装置において、
画像データを複数の画素ブロックに分割し、該画素ブロックに含まれる画素間の画素値の差が所定値より小さい平坦画素ブロックを抽出する平坦画素ブロック抽出手段と、該平坦画素ブロック抽出手段が抽出した平坦画素ブロックに含まれる画素の画素値に基づいて背景代表色を算出する背景代表色算出手段、該背景代表色算出手段が算出した背景代表色及び画素ブロックの画素値を比較して、該画素ブロックが画像の前景を構成する前景画素ブロックであるか否かを判定すると共に、前景画素ブロックと判定された画素ブロックより前景画素ブロックマスクを作成する前景画素ブロック判定手段、並びに、該前景画素ブロック判定手段が判定した前景画素ブロックに含まれる画素の画素値に基づいて前景代表色を算出する前景代表色算出手段を有する前景抽出処理部と、
前記前景画素ブロック判定手段が作成した前景画素ブロックマスクに基づいて、前景画素ブロックが連続する前景領域を抽出し、抽出された前景領域に係る前景情報を作成する前景領域抽出手段、該前景領域抽出手段が抽出した複数の前景領域間の距離及び方向を算出する前景領域間距離方向算出手段、並びに、該前景領域間距離方向算出手段が算出した距離及び方向に応じて、複数の前景領域で構成される文字列の領域を抽出する文字列領域抽出手段を有するレイアウト解析処理部と、
前記背景代表色、前記前景代表色及び前記文字列領域抽出手段が抽出した文字列領域に応じて、画像データから前景画素を抽出する前景画素抽出処理部と
を備えること
を特徴とする画像処理装置。
【請求項２】
前記前景画素ブロック判定手段が作成した前景画素ブロックマスクに基づいて、画像データに係る画像にて水平方向又は垂直方向に前景画素が直線状に連続するラインを抽出するライン抽出手段と、
前記前景画素ブロックマスクから前記ライン抽出手段が抽出したラインを構成する画素ブロックを除外する補正を行う前景画素ブロックマスク補正手段と
を更に備え、
前記レイアウト解析処理部及び前記前景画素抽出処理部は、前記前景画素ブロックマスク補正手段が補正した前景画素ブロックマスクを用いて処理を行うようにしてあること
を特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記平坦画素ブロック抽出手段は、
所定サイズの画素ブロック毎に、平坦画素ブロックであるか否かの判定を行い、
平坦画素ブロックでないと判定した画素ブロックを前記所定サイズより小さいサイズの画素ブロックに分割し、分割した画素ブロック毎に前記判定を行う処理を、画素ブロックのサイズが所定サイズに達するまで繰り返し行うようにしてあること
を特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記前景領域間距離方向算出手段は、各前景領域の座標情報に基づいて画像データの水平方向又は垂直方向に連続する複数の前景領域を探索し、水平方向又は垂直方向に連続する複数の前景領域間の距離を算出するようにしてあり、
前記前景領域間距離方向算出手段が算出した前景領域間の距離、及び、水平方向又は垂直方向に連続する複数の前景領域の連続数に応じて、複数の前景領域で構成される文字列の方向を推定する文字列方向推定手段を備え、
前記文字列領域抽出手段は、前記文字列方向推定手段が推定した文字列方向に応じて複数の前景領域を統合し、統合した前景領域を文字列領域として抽出するようにしてあること
を特徴とする請求項１から請求項３までのいずれか１つに記載の画像処理装置。
【請求項５】
前記前景画素抽出処理部は、画像データの対象画素の画素値と、前記文字列領域抽出手段が抽出した文字列領域の前景代表色及び背景代表色算出手段が算出した背景代表色との差分をそれぞれ算出し、算出した各差分が所定条件を満たす場合に、前記対象画素を前景画素として抽出するようにしてあること
を特徴とする請求項１から請求項４までのいずれか１つに記載の画像処理装置。
【請求項６】
画像データはページ単位で入力され、
前記前景画素抽出処理部は、前記文字列領域抽出手段が抽出した文字列領域の前景代表色を、画像データのページ単位で統合するようにしてあること
を特徴とする請求項５に記載の画像処理装置。
【請求項７】
請求項１から請求項６までのいずれか１つに記載の画像処理装置と、
該画像処理装置が画像データから抽出した前景画素に係るデータと、前記前景画素以外の画素に係るデータとをそれぞれ異なる方式で圧縮する画像圧縮手段と
を備えること
を特徴とする画像形成装置。
【請求項８】
入力された画像データから、該画像データに係る画像の前景を構成する前景画素を抽出する画像処理方法において、
画像データを複数の画素ブロックに分割し、該画素ブロックに含まれる画素間の画素値の差が所定値より小さい平坦画素ブロックを抽出し、
抽出した平坦画素ブロックに含まれる画素の画素値に基づいて背景代表色を算出し、
算出した背景代表色及び画素ブロックの画素値を比較して、該画素ブロックが画像の前景を構成する前景画素ブロックであるか否かを判定すると共に、前景画素ブロックと判定した画素ブロックより前景画素ブロックマスクを作成し、
判定した前景画素ブロックに含まれる画素の画素値に基づいて前景代表色を算出し、
作成した前景画素ブロックマスクに基づいて、前景画素ブロックが連続する前景領域を抽出し、抽出した前景領域に係る前景領域情報を作成し、
抽出した複数の前景領域間の距離及び方向を算出し、
算出した距離及び方向に応じて、複数の前景領域で構成される文字列の領域を抽出し、
前記背景代表色、前記前景代表色及び抽出した文字列領域に応じて、画像データから前景画素を抽出すること
を特徴とする画像処理方法。
【請求項９】
コンピュータに、画像データから、該画像データに係る画像の前景を構成する前景画素を抽出させるコンピュータプログラムにおいて、
コンピュータに、画像データを複数の画素ブロックに分割させて、該画素ブロックに含まれる画素間の画素値の差が所定値より小さい平坦画素ブロックを抽出させるステップと、
コンピュータに、抽出した平坦画素ブロックに含まれる画素の画素値に基づいて背景代表色を算出させるステップと、
コンピュータに、算出した背景代表色及び画素ブロックの画素値を比較させて、該画素ブロックが画像の前景を構成する前景画素ブロックであるか否かを判定させると共に、前景画素ブロックと判定された画素ブロックより前景画素ブロックマスクを作成させるステップと、
コンピュータに、判定した前景画素ブロックに含まれる画素の画素値に基づいて前景代表色を算出させるステップと、
コンピュータに、作成した前景画素ブロックマスクに基づいて、前景画素ブロックが連続する前景領域を抽出させるステップと、
コンピュータに、抽出した複数の前景領域間の距離及び方向を算出させるステップと、
コンピュータに、算出した距離及び方向に応じて、複数の前景領域で構成される文字列の領域を抽出させ、抽出した前景領域に係る前景領域情報を作成させるステップと、
コンピュータに、前記背景代表色、前記前景代表色及び抽出した文字列領域に応じて、画像データから前景画素を抽出させるステップと
を行わせること
を特徴とするコンピュータプログラム。
【請求項１０】
請求項９に記載のコンピュータプログラムが記録してあること
を特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レイヤ分離に基づく画像圧縮などの処理を行う際に、入力画像データから前景画素を精度よく抽出することができる画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体に関する。
【背景技術】
【０００２】
従来、電子写真方式又はインクジェット方式等により画像形成を行う複写機又は複合機等の画像形成装置が広く普及している。また近年の複合機は高機能化が進められており、スキャナにより読み取った文書を電子データとして保存し、保存した文書ファイルを管理する機能、及び文書データを電子メールとして送信する機能等が求められている。スキャナにより読み取った文書は画像データとして保存されるが、この画像データは一般的に容量が大きいため、画像データを蓄積又は送信する場合にはデータ量を低減する画像の圧縮技術などが必要不可欠である。
【０００３】
高圧縮率を実現するための画像の圧縮技術の１つに、ＭＲＣ（Mixed Raster Content）などのレイヤ分離による圧縮技術がある。この圧縮技術は、入力された画像データに係る画像を前景レイヤ及び背景レイヤの２つの画像データに分離し、各レイヤに適した画像データの圧縮を行うことによって、最終的な圧縮画像の圧縮率を高めることができる。前景レイヤは、文字又は線画（以下、文字等という）による画像であり、ＪＢＩＧ（Joint Bi-level Image experts Group）、ＭＭＲ（Modified Modified Read）又はＬＺＷ（Lempel Ziv Welch）等の可逆圧縮方式による圧縮が適している。また背景レイヤは、文字又は線画以外の画像であり、ＪＰＥＧ（Joint Photographic Experts Group）などの非可逆圧縮方式による圧縮が適している。
【０００４】
特許文献１においては、文字又は写真等が混在したカラー文書画像の読取画像データを、文字などの視認性を低下させることなく、高圧縮率で圧縮することを目的とした画像圧縮装置が提案されている。この画像圧縮装置は、スキャナなどにより読み取られたカラー文書画像の画像データから文字又は図形等の描画物を構成している画素の描画状態を調査し、描画されている画素がつながった状態となっている一塊の連結画素を、連結画素グループとして抽出する。画像圧縮装置は、抽出した連結画素グループを構成する画素の特徴から、解像度優先の圧縮方式に向く前景画像と、色の階調特性優先の圧縮方式に向く背景画像とに分類し、各画像を最適な圧縮方式で圧縮する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−２０２２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載の画像圧縮装置は、画像データから連結画素を抽出する際に、まずカラーの画像データを二値化し、二値化した画像データに基づいて連結画素グループの抽出を行って、抽出した複数の連結画素グループのうち所定サイズの範囲内のものを前景画像とし、所定サイズの範囲外のものを背景画像としている。しかしながら、この画像圧縮装置はカラー画像を二値化して処理を行うため、局所的な背景色に文字が描かれた画像において文字画素と背景画素とを分離することは難しく、また、下地明度と文字明度との関係が反転した反転文字領域において文字画素と背景画素とを分離することは難しいという問題がある。
【０００７】
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、局所的な背景色に文字が描かれた画像及び反転文字領域を含む画像等のような複雑なレイアウトを有する入力画像データに対しても精度よく前景画素の抽出を行うことができる画像処理装置、画像形成装置、画像処理方法、コンピュータプログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る画像処理装置は、入力された画像データから、該画像データに係る画像の前景を構成する前景画素を抽出する画像処理装置において、画像データを複数の画素ブロックに分割し、該画素ブロックに含まれる画素間の画素値の差が所定値より小さい平坦画素ブロックを抽出する平坦画素ブロック抽出手段と、該平坦画素ブロック抽出手段が抽出した平坦画素ブロックに含まれる画素の画素値に基づいて背景代表色を算出する背景代表色算出手段、該背景代表色算出手段が算出した背景代表色及び画素ブロックの画素値を比較して、該画素ブロックが画像の前景を構成する前景画素ブロックであるか否かを判定すると共に、前景画素ブロックと判定された画素ブロックより前景画素ブロックマスクを作成する前景画素ブロック判定手段、並びに、該前景画素ブロック判定手段が判定した前景画素ブロックに含まれる画素の画素値に基づいて前景代表色を算出する前景代表色算出手段を有する前景抽出処理部と、前記前景画素ブロック判定手段が作成した前景画素ブロックマスクに基づいて、前景画素ブロックが連続する前景領域を抽出し、抽出された前景領域に係る前景情報を作成する前景領域抽出手段、該前景領域抽出手段が抽出した複数の前景領域間の距離及び方向を算出する前景領域間距離方向算出手段、並びに、該前景領域間距離方向算出手段が算出した距離及び方向に応じて、複数の前景領域で構成される文字列の領域を抽出する文字列領域抽出手段を有するレイアウト解析処理部と、前記背景代表色、前記前景代表色及び前記文字列領域抽出手段が抽出した文字列領域に応じて、画像データから前景画素を抽出する前景画素抽出処理部とを備えることを特徴とする。
【０００９】
また、本発明に係る画像処理装置は、前記前景画素ブロック判定手段が作成した前景画素ブロックマスクに基づいて、画像データに係る画像にて水平方向又は垂直方向に前景画素が直線状に連続するラインを抽出するライン抽出手段と、前記前景画素ブロックマスクから前記ライン抽出手段が抽出したラインを構成する画素ブロックを除外する補正を行う前景画素ブロックマスク補正手段とを更に備え、前記レイアウト解析処理部及び前記前景画素抽出処理部は、前記前景画素ブロックマスク補正手段が補正した前景画素ブロックマスクを用いて処理を行うようにしてあることを特徴とする。
【００１０】
また、本発明に係る画像処理装置は、前記平坦画素ブロック抽出手段が、所定サイズの画素ブロック毎に、平坦画素ブロックであるか否かの判定を行い、平坦画素ブロックでないと判定した画素ブロックを前記所定サイズより小さいサイズの画素ブロックに分割し、分割した画素ブロック毎に前記判定を行う処理を、画素ブロックのサイズが所定サイズに達するまで繰り返し行うようにしてあることを特徴とする。
【００１１】
また、本発明に係る画像処理装置は、前記前景領域間距離方向算出手段が、各前景領域の座標情報に基づいて画像データの水平方向又は垂直方向に連続する複数の前景領域を探索し、水平方向又は垂直方向に連続する複数の前景領域間の距離を算出するようにしてあり、前記前景領域間距離方向算出手段が算出した前景領域間の距離、及び、水平方向又は垂直方向に連続する複数の前景領域の連続数に応じて、複数の前景領域で構成される文字列の方向を推定する文字列方向推定手段を備え、前記文字列領域抽出手段は、前記文字列方向推定手段が推定した文字列方向に応じて複数の前景領域を統合し、統合した前景領域を文字列領域として抽出するようにしてあることを特徴とする。
【００１２】
また、本発明に係る画像処理装置は、前記前景画素抽出処理部が、画像データの対象画素の画素値と、前記文字列領域抽出手段が抽出した文字列領域の前景代表色及び背景代表色算出手段が算出した背景代表色との差分をそれぞれ算出し、算出した各差分が所定条件を満たす場合に、前記対象画素を前景画素として抽出するようにしてあることを特徴とする。
【００１３】
また、本発明に係る画像処理装置は、画像データがページ単位で入力され、前記前景画素抽出処理部は、前記文字列領域抽出手段が抽出した文字列領域の前景代表色を、画像データのページ単位で統合するようにしてあることを特徴とする。
【００１４】
また、本発明に係る画像形成装置は、上述の画像処理装置と、該画像処理装置が画像データから抽出した前景画素に係るデータと、前記前景画素以外の画素に係るデータとをそれぞれ異なる方式で圧縮する画像圧縮手段とを備えることを特徴とする。
【００１５】
また、本発明に係る画像処理方法は、入力された画像データから、該画像データに係る画像の前景を構成する前景画素を抽出する画像処理方法において、画像データを複数の画素ブロックに分割し、該画素ブロックに含まれる画素間の画素値の差が所定値より小さい平坦画素ブロックを抽出し、抽出した平坦画素ブロックに含まれる画素の画素値に基づいて背景代表色を算出し、算出した背景代表色及び画素ブロックの画素値を比較して、該画素ブロックが画像の前景を構成する前景画素ブロックであるか否かを判定すると共に、前景画素ブロックと判定した画素ブロックより前景画素ブロックマスクを作成し、判定した前景画素ブロックに含まれる画素の画素値に基づいて前景代表色を算出し、作成した前景画素ブロックマスクに基づいて、前景画素ブロックが連続する前景領域を抽出し、抽出した前景領域に係る前景領域情報を作成し、抽出した複数の前景領域間の距離及び方向を算出し、算出した距離及び方向に応じて、複数の前景領域で構成される文字列の領域を抽出し、前記背景代表色、前記前景代表色及び抽出した文字列領域に応じて、画像データから前景画素を抽出することを特徴とする。
【００１６】
また、本発明に係るコンピュータプログラムは、コンピュータに、画像データから、該画像データに係る画像の前景を構成する前景画素を抽出させるコンピュータプログラムにおいて、コンピュータに、画像データを複数の画素ブロックに分割させて、該画素ブロックに含まれる画素間の画素値の差が所定値より小さい平坦画素ブロックを抽出させるステップと、コンピュータに、抽出した平坦画素ブロックに含まれる画素の画素値に基づいて背景代表色を算出させるステップと、コンピュータに、算出した背景代表色及び画素ブロックの画素値を比較させて、該画素ブロックが画像の前景を構成する前景画素ブロックであるか否かを判定させると共に、前景画素ブロックと判定された画素ブロックより前景画素ブロックマスクを作成させるステップと、コンピュータに、判定した前景画素ブロックに含まれる画素の画素値に基づいて前景代表色を算出させるステップと、コンピュータに、作成した前景画素ブロックマスクに基づいて、前景画素ブロックが連続する前景領域を抽出させるステップと、コンピュータに、抽出した複数の前景領域間の距離及び方向を算出させるステップと、コンピュータに、算出した距離及び方向に応じて、複数の前景領域で構成される文字列の領域を抽出させ、抽出した前景領域に係る前景領域情報を作成させるステップと、コンピュータに、前記背景代表色、前記前景代表色及び抽出した文字列領域に応じて、画像データから前景画素を抽出させるステップとを行わせることを特徴とする。
【００１７】
また、本発明に係る記録媒体は、上述のコンピュータプログラムが記録してあることを特徴とする。
【００１８】
本発明においては、入力された画像データから画像の前景を構成する前景画素ブロックを抽出する際に、算出した背景代表色、及び前景画素ブロックから算出した前景代表色を用いて前景画素の抽出を行う構成とすることによって、入力画像データからの前景画素の抽出を効率的に行うことができる。また、入力画像データから文字列領域を抽出して前景画素の抽出を行う構成とすることによって、文字列領域単位で例えば色情報の量子化（インデックス化）などを行うことができるため、前景代表色などの色情報を文字列領域単位で扱うことができ、入力画像データが過分割された領域単位（例えば画素ブロック単位）で色情報が扱われることがなく、精度よく前景画素の抽出を行うことができる。
【００１９】
また、本発明においては、入力画像データからラインを抽出し、前景画素ブロックマスクからライン（水平方向又は垂直方向に前景画素が直線状に連続する領域）を構成する画素ブロックを除外する補正を行う構成とすることによって、前景画素の抽出対象からラインを除外することができるため、前景画素として文字のみを扱うことが可能となり、入力画像データを圧縮する場合に圧縮率を向上できる。また、ラインは背景として扱われるためシャギーなどの発生を抑制することができ、画質向上を実現できる。また、ラインを抽出することによって画像中の表を検知することができ、表中の文字列を抽出することができるため、文字列領域の抽出精度を向上することができる。
【００２０】
また、本発明においては、入力画像データを所定サイズの画素ブロックに分割して、各画素ブロックが平坦画素ブロックであるかを判定する。このときに、平坦画素ブロックでないと判定された画素ブロックを更に小さなサイズの画素ブロックに分割し、分割した画素ブロックが平坦画素ブロックであるかを更に判定する。このように、画素ブロックの分割と、平坦画素ブロックであるかの判定とを、画素ブロックのサイズが所定サイズに達するまで繰り返し行い、最終的な判定結果を平坦画素ブロックの抽出結果とする。これにより、入力画像データの広域的な領域から局所的な領域までを参照しながら前景画素ブロックの抽出及び前景代表色の算出等の処理を行うことができるため、背景代表色及び前景代表色等を高精度に算出することができる。
【００２１】
また、本発明においては、前景領域間の距離及び連続数に応じて水平方向又は垂直方向の文字列方向を推定し、推定した方向に連なる前景領域を統合して文字列領域として抽出する。これにより、入力画像データからの文字列領域の抽出を高精度に行うことができる。
【００２２】
また、本発明においては、文字列領域の前景代表色及び背景代表色との差分値がそれぞれ所定条件を満たす画素を前景画素として抽出する。これにより、前景代表色及び背景代表色に基づく入力画像データからの前景画素の抽出を精度よく行うことができる。
【００２３】
また、本発明においては、画像データがページ単位で入力される場合に、文字列領域についての前景代表色を、入力画像データのページ単位で統合することによって、前景画像に係る色数を低減することができ、色情報をインデックス化した際にインデックス数を低減することができる。
【００２４】
また、本発明においては、入力画像データから抽出した前景画素に係るデータ（前景レイヤ）と、これ以外のデータ（背景レイヤ）とをそれぞれ異なる方式で圧縮する。これにより、入力画像データの圧縮率を高めることができる。
【発明の効果】
【００２５】
本発明による場合は、入力画像データから前景画素ブロックを抽出する際に算出した背景代表色、前景画素ブロックから算出した前景代表色、及び、これらを基に入力画像データから抽出した文字列領域に基づいて前景画素の抽出を行う構成とすることにより、前景画素の抽出を効率的に行うことができると共に、色情報を文字列領域単位で扱うことができるため精度よく前景画素の抽出を行うことができる。よって、複雑なレイアウトを有する画像に対して精度よく前景画素の抽出を行うことができ、画像を前景レイヤ及び背景レイヤに精度よく分離して各画像を最適な圧縮方式で圧縮できるため、画像の圧縮率を向上することができる。
【図面の簡単な説明】
【００２６】
【図１】本発明に係るＭＦＰの構成を示すブロック図である。
【図２】画像処理装置の圧縮処理部の構成を示すブロック図である。
【図３】前景抽出処理部の構成を示すブロック図である。
【図４】前景抽出処理部の構成を示すブロック図である。
【図５】初期平坦画素ブロック抽出処理部が行う処理を説明するための模式図である。
【図６】水平方向連結平坦画素ブロック抽出処理部が行う処理を説明するための模式図である。
【図７】垂直方向連結平坦画素ブロック抽出処理部が行う処理を説明するための模式図である。
【図８】ブロックベース平坦画素ブロック抽出処理部が行う処理を説明するための模式図である。
【図９】アップサンプリング処理部が行う処理を説明するための模式図である。
【図１０】前景画素ブロック抽出処理部が行う処理を説明するための模式図である。
【図１１】ライン検知処理部の構成を示すブロック図である。
【図１２】水平ライン候補抽出処理部が行う処理を説明するための模式図である。
【図１３】ライン候補結合処理部が行う処理を説明するための模式図である。
【図１４】ライン分布判定処理部が行う処理を説明するための模式図である。
【図１５】ライン最終判定処理部が行う処理を説明するための模式図である。
【図１６】水平ライン候補抽出処理部が行う処理の手順を示すフローチャートである。
【図１７】水平ライン候補抽出処理部が行うライン候補に対するラベル付けを説明するための模式図である。
【図１８】ライン分布判定処理部が行う処理の手順を示すフローチャートである。
【図１９】ライン最終判定処理部が行う処理の手順を示すフローチャートである。
【図２０】水平方向及び垂直方向のライン候補の接続判定を説明するための模式図である。
【図２１】レイアウト解析処理部の構成を示すブロック図である。
【図２２】ラベリング処理部が行う処理の手順を示すフローチャートである。
【図２３】ラベリング処理部が行う処理を説明するための模式図である。
【図２４】ラベリング処理部による処理の一例を示す模式図である。
【図２５】近傍矩形間距離算出処理部が行う処理を説明するための模式図である。
【図２６】近傍矩形間距離算出処理部が行う処理の手順を示すフローチャートである。
【図２７】文字列方向推定処理部が行う処理の手順を示すフローチャートである。
【図２８】文字列方向推定処理部が行う処理の一例を示す模式図である。
【図２９】文字列方向補正処理部が行う処理の手順を示すフローチャートである。
【図３０】文字列方向補正処理部が行う処理の一例を示す模式図である。
【図３１】文字列抽出処理部が行う処理の手順を示すフローチャートである。
【図３２】文字列抽出処理部が行う処理の手順を示すフローチャートである。
【図３３】文字列抽出処理部が行う処理の手順を示すフローチャートである。
【図３４】文字列抽出処理部が行う処理の手順を示すフローチャートである。
【図３５】文字列抽出処理部が行う処理の一例を示す模式図である。
【図３６】前景レイヤ生成処理部の構成を示すブロック図である。
【図３７】前景レイヤ生成処理部の処理の概要を説明するための模式図である。
【図３８】画素ブロック前景代表色の量子化を説明するための模式図である。
【図３９】前景代表色統合処理部の構成を示すブロック図である。
【図４０】前景代表色統合処理部が行う処理の手順を示すフローチャートである。
【図４１】色差ヒストグラムの一例を示す模式図である。
【図４２】背景レイヤ生成処理部が行う処理を説明するための模式図である。
【図４３】背景レイヤ生成処理部が行う処理の手順を示すフローチャートである。
【図４４】圧縮処理部が行う処理の手順を示すフローチャートである。
【図４５】圧縮処理部が行う処理の手順を示すフローチャートである。
【図４６】圧縮処理部が行う処理の手順を示すフローチャートである。
【図４７】圧縮処理部が行う処理の手順を示すフローチャートである。
【図４８】圧縮処理部が行う処理の手順を示すフローチャートである。
【図４９】変形例１に係るレイアウト解析処理部の構成を示すブロック図である。
【図５０】変形例１に係る圧縮処理部が行う処理の手順を示すフローチャートである。
【図５１】変形例１に係る圧縮処理部が行う処理の手順を示すフローチャートである。
【図５２】変形例２に係る平坦画素ブロック抽出処理部の構成を示すブロック図である。
【発明を実施するための形態】
【００２７】
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。なお本実施の形態においては、デジタルカラー複合機（以下、ＭＦＰ（MultiFunction Peripheral）という）を例に説明を行う。なおＭＦＰはカラーコピー機能、カラープリント機能及びカラースキャナ機能等の種々の機能を有しているが、本発明の技術はカラー原稿を読み取ることにより得られるカラー画像を圧縮する処理を行う場合などに適用可能であり、例えばＭＦＰのカラーコピー機能及びカラースキャナ機能に好適である。またＭＦＰのカラースキャナ機能には、カラー原稿を読み取って得られたカラー画像データを圧縮して他の装置へ送信するデータ送信機能、及びカラー画像データを圧縮してＭＦＰ内部のメモリなどに記憶する保存機能等があるが、本発明の技術はこれらの機能における画像データの圧縮処理を行う場合に適用可能である。
【００２８】
図１は、本発明に係るＭＦＰの構成を示すブロック図である。本発明に係るＭＦＰは、画像入力装置１１、画像出力装置１２、送信装置１３、操作パネル１５及び画像処理装置２０等を備えて構成されている。操作パネル１５は、ＭＦＰの動作モードなどを設定する設定ボタン及びテンキー、処理の開始指示などを受け付けるスタートキー、並びに電源キー及び各種のファンクションキー等の種々のハードウェアキーを有している。また操作パネル１５は、ＭＦＰの動作状態、ユーザへの警告メッセージ及びユーザの操作を補助する各種のメニュー等を表示するディスプレイを有している。なお、ユーザの操作を受け付けるハードウェアキーに代えて、ディスプレイ上にタッチパネルを設ける構成としてもよい。操作パネル１５は、受け付けた指示又は設定等を画像入力装置１１、画像出力装置１２、送信装置１３及び画像処理装置２０へ与え、これにより各装置は受け付けた指示又は設定等に応じた処理を行うことができる。
【００２９】
画像入力装置１１は、原稿に光を照射する光源、及びＣＣＤ（Charge Coupled Device）などのイメージセンサが並設された受光部等を備えるスキャナにて構成されている。画像入力装置１１は、光源から原稿へ光を照射すると共に、受光部を一方向へ移動させて、原稿からの反射光をＲ（赤）Ｇ（緑）Ｂ（青）の３つの色成分に分解して受光部で読み取り、ＲＧＢのアナログ信号として画像処理装置２０へ与える。
【００３０】
画像処理装置２０は、Ａ／Ｄ変換部２１、シェーディング補正部２２、入力階調補正部２３、領域分離処理部２４、色補正部２５、黒生成下色除去部２６、空間フィルタ処理部２７、出力階調補正部２８、階調再現処理部２９、圧縮処理部３０及び記憶部３１等を備えている。画像入力装置１１から入力されたＲＧＢのアナログ信号は、画像処理装置２０のＡ／Ｄ変換部２１〜階調再現処理部２９の各部にて画像処理が施されて画像出力装置１２へ出力されるか、又は、画像処理装置２０のＡ／Ｄ変換部２１〜領域分離処理部２４、圧縮処理部３０の各部にて画像処理が施されて送信装置１３へ出力される。
【００３１】
Ａ／Ｄ変換部２１は、画像入力装置１１から与えられたＲＧＢのアナログ信号を例えば各８ビットのデジタルの画像データに変換するものであり、変換したＲＧＢの画像データをシェーディング補正部２２に与える。シェーディング補正部２２は、Ａ／Ｄ変換部２１から与えられたＲＧＢの画像データに対して、画像入力装置１１の照明系、結像系及び撮像系等において生じる各種の歪みを取り除くシェーディング処理を行い、シェーディング処理後のＲＧＢの画像データを入力階調補正部２３へ与える。
【００３２】
入力階調補正部２３は、シェーディング補正部２２にて歪みが取り除かれたＲＧＢの画像データ（ＲＧＢの反射率信号）に対して、カラーバランスの調整及びコントラストの調整等の処理を行うと共に、濃度信号など画像処理装置２０の各部の処理に適した信号形式に変換し、処理後のＲＧＢの画像データを領域分離処理部２４へ与える。
【００３３】
領域分離処理部２４は、入力階調補正部２３から与えられたＲＧＢの画像データに係る画像の各画素が、文字により構成される文字領域、網点画像により構成される網点領域又は写真で構成される写真領域のいずれに属する画素であるかを判定することによって、各画素を分離する。領域分離処理部２４は、処理結果として各画素がいずれの領域に属しているかを示す情報を、領域分離信号として黒生成下色除去部２６、空間フィルタ処理部２７及び階調再現処理部２９へ与えると共に、入力階調補正部２３から与えられたＲＧＢの画像データをそのまま色補正部２５及び圧縮処理部３０へ与える。
【００３４】
色補正部２５は、領域分離処理部２４から与えられたＲＧＢの画像データを、Ｃ（シアン）Ｍ（マゼンタ）Ｙ（イエロー）の色空間の画像データに変換すると共に、画像出力装置１２での色再現の忠実化実現のために、ＣＭＹの各色成分に色補正処理を行う。色補正処理は、具体的には、不要吸収成分をそれぞれ含むＣＭＹのトナー又はインク等の分光特性に基づいた色濁りを、ＣＭＹの各色成分から取り除く処理である。色補正部２５は、変換したＣＭＹの画像データを黒生成下色除去部２６へ与える。
【００３５】
黒生成下色除去部２６は、領域分離処理部２４から与えられる領域分離信号、及び色補正部２５から与えられるＣＭＹの画像データの各色成分に基づいて、Ｋ（黒）の色成分を生成する黒生成処理を行うと共に、元のＣＭＹの各色成分から黒生成処理にて生成されたＫ成分を差し引いて新たなＣＭＹの画像データを生成する処理を行う。これにより、色補正部２５から与えられたＣＭＹの画像データは、ＣＭＹＫの４つの色成分を有する画像データに変換される。
【００３６】
例えば、スケルトンブラックによる黒生成処理を行う場合に、スケルトンカーブの入出力特性をｙ＝ｆ（ｘ）とし、入力される画像の画素値をＣ、Ｍ、Ｙとし、出力される画素値をＣ'、Ｍ'、Ｙ'、Ｋ'とし、ＵＣＲ（Under Color Removal、下色除去）率をα（０＜α＜１）とすると、黒生成下色除去処理は以下の式で表される。黒生成下色除去部２６の黒生成下色除去処理により変換されたＣＭＹＫの画像データは、空間フィルタ処理部２７へ与えられる。
Ｋ'  ＝  ｆ｛ｍｉｎ（Ｃ、Ｍ、Ｙ）｝
Ｃ'  ＝  Ｃ−αＫ'
Ｍ'  ＝  Ｍ−αＫ'
Ｙ'  ＝  Ｙ−αＫ'
【００３７】
空間フィルタ処理部２７は、領域分離処理部２４から与えられる領域分離信号に基づいて、黒生成下色除去部２６から与えられたＣＭＹＫの画像データに係る画像に対して、デジタルフィルタによる空間フィルタ処理を行う。これにより、画像の空間周波数特性が補正され、画像出力装置１２が出力する画像にぼやけ又は粒状性劣化等を生じることが防止される。空間フィルタ処理部２７にて空間フィルタ処理が施された画像に係るＣＭＹＫの画像データは、出力階調補正部２８にて画像出力装置１２の出力特性に基づく出力階調補正処理が施された後に、階調再現処理部２９へ与えられる。
【００３８】
階調再現処理部２９は、領域分離処理部２４から与えられる領域分離信号に応じて、出力階調補正部２８から与えられたＣＭＹＫの画像データに対して、階調再現処理を行う。階調再現処理は、画像データに係る画像を複数の画素に分類して中間調を再現できるようにする処理であり、二値又は多値のディザ法又は誤差拡散法等を用いることができる。
【００３９】
例えば、領域分離処理部２４にて文字領域に分離された領域には、特に黒文字又は色文字の再現性を高めることを目的として、空間フィルタ処理部２７が鮮鋭強調のフィルタ処理を施して高周波成分を強調する。階調再現処理部２９は、領域分離処理部２４にて文字領域に分離された領域に対して、特に黒文字又は色文字の再現性を高めることを目的とし、画像出力装置１２の高域周波数成分の再現に適した高解像度のスクリーンでの二値化処理又は多値化処理を施す。
【００４０】
また、例えば領域分離処理部２４にて網点領域に分離された領域には、空間フィルタ処理部２７がローパスフィルタ処理を施して入力網点成分を除去する。階調再現処理部２９は、フィルタ処理が施された画像データに対して、画像出力装置１２における階調再現性を重視したスクリーンでの二値化処理又は多値化処理を施す。
【００４１】
また、例えば領域分離処理部２４にて写真領域に分離された領域には、階調再現処理部２９が、画像出力装置１２における階調再現性を重視したスクリーンでの二値化処理又は多値化処理を施す。
【００４２】
階調再現処理部２９による処理が施されたＣＭＹＫの画像データは、図示しない画像メモリなどの記憶手段に一時的に蓄積された後、画像形成のタイミングに合わせて記憶手段から読み出されて画像出力装置１２へ与えられる。画像出力装置１２は、与えられた画像データに係る画像を紙などの記録媒体上に出力するものであり、電子写真方式又はインクジェット方式等のプリンタである。例えば、電子写真方式の場合には、画像出力装置１２は、感光体ドラムを所定の電位に帯電する帯電器、与えられた画像信号に応じてレーザ光を発して感光体ドラム表面に静電潜像を生成するレーザ書込器、感光体ドラム表面に生成された静電潜像にトナーを供給して顕像化する現像器及び感光体ドラム表面に形成されたトナー像を紙上に転写する転写器等を備える。なお、画像出力装置１２は、ディスプレイなどの表示装置であってもよい。
【００４３】
画像処理装置２０の圧縮処理部３０は、領域分離処理部２４から与えられたＲＧＢの画像データに対して、データ量を低減する圧縮処理を行い、圧縮した画像データを記憶部３１へ蓄積する。記憶部３１はハードディスク又はフラッシュメモリ等の大容量の記憶素子で構成されており、記憶部３１に蓄積された画像データは送信装置１３へ与えられる。
【００４４】
送信装置１３は、ネットワークカード又はモデム等の一又は複数の通信用ハードウェアを有し、これらの通信手段により他の装置へ画像データの送信を行う。例えば、操作パネル１５にてＭＦＰの動作モードが電子メール送信に設定されている場合、送信装置１３は、記憶部３１に蓄積された画像データを電子メールに添付して予め設定された宛先へ送信する。また例えばファクシミリ通信を行う場合には、通信装置１３は、指定された相手先との送信手続をモデムにて行って送信可能な状態が確保された後、画像入力装置１１にて読み取られて所定の形式で圧縮された画像データを記憶部３１から読み出し、圧縮形式の変更などのファクシミリ通信に必要な処理を施して、相手先に通信回線を介して順次送信する。
【００４５】
また、図示は省略するが、送信装置１３は、他の装置からファクシミリ通信により送信された画像データを受信する受信装置としての機能を有していてもよい。この場合、送信装置１３は、通信手続を行いながら、相手先から送信された画像データを受信して画像処理装置２０へ与える。画像処理装置２０は、受信した画像データに伸長処理を施し、伸長した画像データに対して必要に応じて回転処理又は解像度変換処理等の画像処理を施し、出力階調補正部２８による階調補正処理及び階調再現処理部２９による階調再現処理を施して画像出力装置１２へ出力する。これにより、ファクシミリ通信により送信装置１３にて受信された画像データに係る画像が形成されて出力される。
【００４６】
また、送信装置１３は、ネットワークカード及びネットワークケーブル等により、ＬＡＮ（Local Area Network）などのネットワークに接続された他のコンピュータ又はＭＦＰ等の通信機能を有する装置との間でデータ通信を行うことができる。これにより、ＭＦＰは画像入力装置１１にて読み取った画像データを他の装置へ与えて保存することができ、他の装置から与えられた画像データを画像出力装置１２から出力することができる。
【００４７】
なお、上述の画像形成処理及び画像送信処理等の種々の処理は、ＭＦＰに搭載された不図示のＣＰＵ（Central Processing Unit）によって各部が制御されることにより行われる。
【００４８】
圧縮処理部３０は、画像入力装置１１から与えられてＡ／Ｄ変換部２１〜領域分離処理部２４にて種々の画像処理が施された入力画像データを、文字及び線画等を含む前景レイヤと、文字及び線画以外の画像で構成される背景レイヤとに分離する。圧縮処理部３０は、入力画像データから分離した前景レイヤに対して、その画素色をインデックス化し、最終的にＪＢＩＧ、ＭＭＲ又はＬＺＷ等の可逆圧縮技術を用いて圧縮処理を行う。また圧縮処理部３０は、背景レイヤに対して、ＪＰＥＧなどの非可逆圧縮技術を用いて圧縮処理を行う。
【００４９】
また、圧縮処理部３０は、前景レイヤの各画素を１ビットのデータに変換した複数のマスクと、各マスクの色情報とに分解し、各マスクを可逆圧縮技術にて圧縮し、各マスクの色情報を可逆圧縮技術又は非可逆圧縮技術にて圧縮する。これにより、複数ビットの画素値を有する前景レイヤを直接的に圧縮する場合と比較して、圧縮率を向上することができる。
【００５０】
図２は、画像処理装置２０の圧縮処理部３０の構成を示すブロック図である。圧縮処理部３０は、色変換処理部５０、前景抽出処理部５１、ライン検知処理部５２、レイアウト解析処理部５３、前景レイヤ生成処理部５４、背景レイヤ生成処理部５５及び画像圧縮部５６等を備えて構成されている。
【００５１】
色変換処理部５０は、圧縮処理部３０に入力されたＲＧＢの画像データ（入力画像）を、ＹＣｂＣｒの画像データに変換して出力する。色変換処理部５０は、例えば下記のマトリクス演算式を用いることによって、画像データの色空間の変換を行うことができる。なお、圧縮処理部３０は、色変換処理部５０による変換を行わずに、後段の処理をＲＧＢの画像データにて行ってもよく、また例えばＬ＊ａ＊ｂ＊の色空間の画像データに変換して後段の処理を行ってもよい。
【００５２】
【数１】
0005153857.tif 000002
【００５３】
前景抽出処理部５１は、色変換処理部５０から与えられた画像データを複数の画素ブロックに分割して、画素ブロック単位で入力画像データの背景の代表色（画素ブロック背景代表色）を抽出し、抽出した画素ブロック背景代表色と入力画像データとを比較することによって、入力画像データの各画素ブロックが前景に相当する画素ブロック（前景画素ブロック）であるか否かを示すマスク情報（前景画素ブロックマスク）を生成すると共に、各画素ブロックの前景の代表色（画素ブロック前景代表色）を算出する。前景抽出処理部５１が生成及び算出した前景画素ブロックマスク、画素ブロック前景代表色及び画素ブロック背景代表色は、ライン検知処理部５２及び背景レイヤ生成処理部５５へ与えられる。（詳細は、後述の（１）前景抽出処理部５１を参照。）
【００５４】
ライン検知処理部５２は、前景抽出処理部５１が出力する前景画素ブロックマスクに基づいて、入力画像データに含まれる水平ライン、垂直ライン又は表等を形成するラインを検知し、検知結果をライン情報としてレイアウト解析処理部５３へ出力する。またライン検知処理部５２は、ラインの検知結果に基づいて、前景画素ブロックマスクからライン部分を除去する補正を行い、補正後の前景画素ブロックマスクを出力する。（詳細は、後述の（２）ライン検知処理部５２を参照。）
【００５５】
レイアウト解析処理部５３は、前景抽出処理部５１が出力した前景画素ブロックマスク、及び、ライン検知処理部５２が出力したライン情報に基づいて、入力画像データに含まれる文字列の領域に係る情報（文字列領域情報）を生成して前景レイヤ生成処理部５４へ出力する。（詳細は、後述の（３）レイアウト解析処理部５３を参照。）
【００５６】
前景レイヤ生成処理部５４は、入力画像データ、前景抽出処理部５１が出力する画素ブロック背景代表色及び画素ブロック前景代表色、ライン検知処理部５２にて補正された前景画素ブロックマスク、並びに、レイアウト解析処理部５３が出力する文字列領域情報を用いて、入力画像データの各画素が前景画素であるか否かを示す前景画素マスク、及び、前景画素の色をインデックス化した前景インデックス色情報を生成し、生成した前景画素マスク及び前景インデックス色情報に基づいて、各前景インデックス色に対応した２値画像（前景レイヤ）と、この前景インデックス色に係る情報を格納するテーブルとを作成する。（詳細は、後述の（４）前景レイヤ生成処理部５４を参照。）
【００５７】
背景レイヤ生成処理部５５は、入力画像データから前景画素を除いた背景レイヤを生成するためのものであり、入力画像データの前景画素の部分を、前景画素でない周辺の背景画素を用いて穴埋めする処理を行う。詳しくは、背景レイヤ生成処理部５５は、前景レイヤ生成処理部５４が出力する前景レイヤを参照することによって、入力画像データの前景画素に相当する部分を探索し、前景画素に相当する部分をこの周辺に存在する背景画素の画素値（又は背景画素の平均値など）を用いて穴埋め処理することによって、背景レイヤを生成する。このときに背景レイヤ生成処理部５５は、前景画素部分の近傍に背景画素が存在しない場合、近傍の穴埋め処理に用いた画素値を流用して穴埋め処理を行ってもよい。又は、前景抽出処理部５１が出力した画素ブロック前景代表色を用いて穴埋め処理を行ってもよい（この場合、前景抽出処理部５１が出力した画素ブロック前景代表色と周辺の背景画素の画素値との差分が小さいときにのみ、画素ブロック前景代表色を用いて穴埋め処理を行う構成としてもよい）。背景レイヤ生成処理部５５が、前景画素に相当する部分の穴埋め処理を行うことによって、背景レイヤの圧縮率を高めることができる。（詳細は、後述の（５）背景レイヤ生成処理部５５を参照。）
【００５８】
画像圧縮部５６は、前景レイヤ生成処理部５４が生成した前景レイヤ及び背景レイヤ生成処理部５５が生成した背景レイヤに対してそれぞれ適した圧縮処理を施すことによって、画像データのデータ量を低減する処理を行う。画像圧縮部５６は、例えば可逆圧縮方式のＭＭＲにより前景レイヤを圧縮し、例えば非可逆圧縮方式のＪＰＥＧにより背景レイヤを圧縮する。なお、ＭＭＲ及びＪＰＥＧ等の圧縮方式は、既知の技術であるため詳細な説明は省略する。また画像圧縮部５６は、前景レイヤ及び背景レイヤと共に、前景インデックス色に係る情報を格納したテーブルの圧縮を行う。
【００５９】
以上のようにして圧縮処理部３０は、画像圧縮部５６が前景レイヤ及び背景レイヤをそれぞれ圧縮した画像データを出力する。圧縮処理部３０にて圧縮された画像データは、画像処理装置２０の記憶部３１に蓄積され、送信装置１３により電子メール又はファクシミリ通信等の手段により他の装置へ送信される。
【００６０】
次に、圧縮処理部３０の各部が行う処理の詳細について説明する。
【００６１】
（１）前景抽出処理部５１
図３及び図４は、前景抽出処理部５１の構成を示すブロック図である。前景抽出処理部５１は、入力画像データから前景画素ブロックマスクを生成する画像処理、並びに、画素ブロック前景代表色及び画素ブロック背景代表色を算出する画像処理を行う。この処理を行うために前景抽出処理部５１は、平坦画素ブロック抽出処理部６１、背景代表色算出処理部６２、前景画素ブロック抽出処理部６３及び前景代表色算出処理部６４を備えている。
【００６２】
前景抽出処理部５１の平坦画素ブロック抽出処理部６１は、入力画像データを所定サイズの画素ブロック（画像領域）に分割し、画像データ中の複数の画素ブロックから、画素ブロックに含まれる画素間の画素値の差が所定値より小さい画素ブロックを平坦画素ブロック（平坦領域）に分類すると共に、平坦画素ブロック以外の画素ブロックを前景画素ブロック（変化領域）に分類することで前景画素ブロックを抽出する処理を行うものである。この処理を行うために平坦画素ブロック抽出処理部６１は、初期平坦画素ブロック抽出処理部７１、水平方向連結平坦画素ブロック抽出処理部７２、垂直方向連結平坦画素ブロック抽出処理部７３、ブロックベース平坦画素ブロック抽出処理部７４及びアップサンプリング処理部７５を備えている。
【００６３】
初期平坦画素ブロック抽出処理部７１は、画素ブロック内の各画素の画素値を調べて最大画素値と最小画素値との差分を算出し、差分が所定値より小さい画素ブロックを平坦画素ブロックの候補（以下、平坦画素ブロック候補という）として抽出する処理を行う。初期平坦画素ブロック抽出処理部７１は、抽出した平坦画素ブロック候補を、水平方向連結平坦画素ブロック抽出部７２〜ブロックベース平坦画素ブロック抽出処理部７４へ順に与える。
【００６４】
水平方向連結平坦画素ブロック抽出処理部７２は、入力画像データの水平方向について近接する（連続する）複数の平坦画素ブロック候補を検索して、複数の平坦画素ブロック候補の近接数を算出し、算出した近接数が所定値を超える場合に、これらの近接する複数の平坦画素ブロック候補を平坦画素ブロックであると判定する。
【００６５】
同様に、垂直方向連結平坦画素ブロック抽出処理部７３は、入力画像データの垂直方向について近接する複数の平坦画素ブロック候補を検索して、複数の平坦画素ブロック候補の近接数を算出し、算出した近接数が所定値を超える場合にこれらの近接する複数の平坦画素ブロック候補を平坦画素ブロックであると判定する。
【００６６】
ブロックベース平坦画素ブロック抽出処理部７４は、入力画像データの各画素ブロックについて、その周囲の画素ブロックが平坦画素ブロック又は平坦画素ブロック候補であるか否かを調べ、所定数以上の平坦画素ブロック又は平坦画素ブロック候補が周囲に存在している画素ブロックを平坦画素ブロックであると判定する。
【００６７】
ただし、平坦画素ブロック抽出処理部６１は、最初に初期平坦画素ブロック抽出処理部７１による平坦画素ブロック候補の抽出処理を行った後、水平方向連結平坦画素ブロック抽出処理部７２、垂直方向連結平坦画素ブロック判定処理部７３及びブロックベース平坦画素ブロック抽出処理部７４による平坦画素ブロックの抽出処理を繰り返し行っている。
【００６８】
例えば、平坦画素ブロック抽出処理部６１は、入力画像データをサイズが１６画素×１６画素の画素ブロック（以下、単に１６×１６画素ブロックという）に分割し、各１６×１６画素ブロックが平坦画素ブロック候補であるか否かを初期平坦画素ブロック抽出処理部７１にて判定した後、平坦画素ブロック候補が平坦画素ブロックであるか否かを水平方向連結平坦画素ブロック抽出処理部７２、垂直方向連結平坦画素ブロック抽出処理部７３及びブロックベース平坦画素ブロック抽出処理部７４にてそれぞれ判定する。
【００６９】
その後、平坦画素ブロック抽出処理部６１は、平坦画素ブロックであると判定された１６×１６画素ブロックを、アップサンプリング処理部７５にて更にサイズの小さい画素ブロックに分割し、例えば８画素×８画素の画素ブロック（以下、単に８×８画素ブロックという）に分割して、各８×８画素ブロックが平坦画素ブロックであるか否かを水平方向連結平坦画素ブロック抽出処理部７２、垂直方向連結平坦画素ブロック抽出処理部７３及びブロックベース平坦画素ブロック抽出処理部７４にてそれぞれ判定する。このように、平坦画素ブロック抽出処理部６１は、画素ブロックのサイズが予め定められた所定サイズ（例えば４画素×４画素の画素ブロック）に達するまで、入力画像データの分割と平坦画素ブロックの抽出処理とを繰り返し、最終的に各判定処理において一度でも平坦画素ブロックであると判定された画素ブロックを平坦画素ブロックに分類し、これ以外の画素ブロックを前景画素ブロックに分類する。
【００７０】
図５は、初期平坦画素ブロック抽出処理部７１が行う処理を説明するための模式図であり、入力画像データを１６×１６画素ブロックに分割し、各１６×１６画素ブロックが平坦画素ブロック候補であるか否かを判定する例を図示してある。初期平坦画素ブロック抽出処理部７１は、例えば図５（ａ）に示すように入力画像データ中の１つの１６×１６画素ブロックを処理対象とした場合、図５（ｂ）〜図５（ｆ）に示す複数のパターンで３２画素×３２画素の判定領域を設定し、各判定領域が平坦であるか否かに基づいて、処理対象の１６×１６画素ブロックが平坦画素ブロック候補であるか否かを判定する。このとき初期平坦画素ブロック抽出処理部７１は、３２画素×３２画素の各判定領域が平坦であるか否かを、各判定領域内の最大画素値と最小画素値との差分が所定値（例えば３２）以下であるか否かに応じた判定することができる。初期平坦画素ブロック抽出処理部７１は、全パターンの判定領域が平坦であると判定した場合に、処理対象の１６×１６画素ブロックを平坦画素ブロック候補であると判定する。初期平坦画素ブロック抽出処理部７１は、入力画像データの全ての１６×１６画素ブロックについて同様の処理を行って、入力画像データ中の全ての平坦画素ブロック候補を抽出する。
【００７１】
図６は、水平方向連結平坦画素ブロック抽出処理部７２が行う処理を説明するための模式図である。水平方向連結平坦画素ブロック抽出処理部７２は、入力画像データの水平方向に関して、平坦画素ブロック候補が連続する数をカウントし（図６（ａ）参照）、平坦画素ブロック候補の連続数が所定数以上の場合に、これら連続する複数の平坦画素ブロック候補が平坦画素ブロックであると判定する。
【００７２】
ただし水平方向連結平坦画素ブロック抽出処理部７２は、水平方向に関する平坦画素ブロック候補の連続数をカウントする際に、平坦画素ブロックの所定範囲内での途切れを許容する。水平方向連結平坦画素ブロック抽出処理部７２は、平坦画素ブロック候補の連続数を水平方向へ順にカウントしていき、平坦画素ブロック候補でない画素ブロックを見出した場合であっても、平坦画素ブロック候補でない画素ブロックの連続数（即ち平坦画素ブロック候補の途切れ数）が、この時点での平坦画素ブロック候補の連続数に所定数（例えば０．３）を積算した値より少ないときには、水平方向に平坦画素ブロック候補が連続しているとみなしてカウントを続行する。
【００７３】
例えば図６（ｂ）に示すように、水平方向連結平坦画素ブロック抽出処理部７２が、水平方向に平坦画素ブロック候補が５つ連続した後に、平坦画素ブロック候補でない画素ブロック（ハッチングを付したブロック）を見出した場合、この時点での連続数は５であり、連続数に所定数として０．３を乗算した値は１．５であるため、この値よりも平坦画素ブロック候補でない画素ブロックの連続数は少ない。よって水平方向連結平坦画素ブロック抽出処理部７２は、図示のような平坦画素ブロック候補の途切れを許容して、水平方向への連続数のカウントを続行する。これにより、例えば画像中に表などが描かれており、平坦な画像領域が表の枠などを構成する線分で途切れるような場合であっても、これらの領域を平坦な領域として扱うことができ、精度のよい平坦画素ブロックの抽出を行うことができる。
【００７４】
図７は、垂直方向連結平坦画素ブロック抽出処理部７３が行う処理を説明するための模式図である。垂直方向連結平坦画素ブロック抽出処理部７３は、入力画像データの垂直方向に関して、平坦画素ブロック候補が連続する数をカウントし（図７（ａ）参照）、平坦画素ブロック候補の連続数が所定数以上の場合に、これら連続する複数の平坦画素ブロック候補が平坦画素ブロックであると判定する。
【００７５】
ただし垂直方向連結平坦画素ブロック抽出処理部７３は、垂直方向に関する平坦画素ブロック候補の連続数をカウントする際に、平坦画素ブロックの所定範囲内での途切れを許容する。垂直方向連結平坦画素ブロック抽出処理部７３は、平坦画素ブロック候補の連続数を垂直方向へ順にカウントしていき、平坦画素ブロック候補でない画素ブロックを見出した場合であっても、平坦画素ブロック候補でない画素ブロックの連続数（即ち平坦画素ブロック候補の途切れ数）が、この時点での平坦画素ブロック候補の連続数に所定数（例えば０．３）を積算した値より少ないときには、垂直方向に平坦画素ブロック候補が連続しているとみなしてカウントを続行する。
【００７６】
例えば図７（ｂ）に示すように、垂直方向連結平坦画素ブロック抽出処理部７３が、垂直方向に平坦画素ブロック候補が５つ連続した後に、平坦画素ブロック候補でない画素ブロック（ハッチングを付したブロック）を見出した場合、この時点での連続数は５であり、連続数に所定数として０．３を乗算した値は１．５であるため、この値よりも平坦画素ブロック候補でない画素ブロックの連続数は少ない。よって垂直方向連結平坦画素ブロック抽出処理部７３は、図示のような平坦画素ブロック候補の途切れを許容して、垂直方向への連続数のカウントを続行する。これにより、例えば画像中に表などが描かれており、平坦な画像領域が表の枠などを構成する線分で途切れるような場合であっても、これらの領域を平坦な領域として扱うことができ、精度のよい平坦画素ブロックの抽出を行うことができる。
【００７７】
図８は、ブロックベース平坦画素ブロック抽出処理部７４が行う処理を説明するための模式図である。ブロックベース平坦画素ブロック抽出処理部７４は、平坦画素ブロック候補として抽出された画素ブロックを注目画素ブロック（図８においてハッチングを付したブロック）とし、注目画素ブロックの画素値の平均値（画素平均値）を算出すると共に、注目画素ブロックの周囲８方向（図８の矢印参照）に存在する画素ブロックについて、各画素ブロック画素平均値をそれぞれ算出する。これらの算出結果に基づいて、ブロックベース平坦画素ブロック抽出処理部７４は、注目画素ブロックの画素平均値に最も近い画素平均値を有する画素ブロックを選択し、画素平均値の差が所定値より小さいか否かを判定する。注目画素ブロックと周囲の画素ブロックとの画素値平均値の差が所定値より小さい場合、両画素ブロックはローカルな（グローバルであってもよい）同一の背景に属するものであると判断できるため、ブロックベース平坦画素ブロック抽出処理部７４は同一背景に属する画素ブロックをグループ化する。ブロックベース平坦画素ブロック抽出処理部７４は、入力画像データに含まれる全ての平坦画素ブロック候補について同様の処理を行って得られた一又は複数のグループについて、各グループに属する画素ブロックの数が所定数を超えるか否かを判定し、所定数を超えるグループに属する画素ブロックを平坦画素ブロックとして抽出する。
【００７８】
図９は、アップサンプリング処理部７５が行う処理を説明するための模式図である。アップサンプリング処理部７５は、水平方向連結平坦画素ブロック抽出処理部７２〜ブロックベース平坦画素ブロック抽出処理部７４の処理を終えた入力画像データについて、画素ブロックの分割サイズを変更する処理を行う。例えば図９に示すように入力画像データが８×８画素ブロックに分割されていた場合、アップサンプリング処理部７５は、１つの８×８画素ブロックを４つの４×４画素ブロックに分割する。アップサンプリング処理部７５は、分割サイズを変更した入力画像データを水平方向連結平坦画素ブロック抽出処理部７２へ与え、水平方向連結平坦画素ブロック抽出処理部７２〜ブロックベース平坦画素ブロック抽出処理部７４は分割サイズが変更されて入力画像データに対して同様の処理を繰り返し行う。このように、画素ブロックのサイズを変更して平坦画素ブロックの抽出を繰り返し行うことによって、平坦画素ブロックの抽出精度を向上することができる。
【００７９】
平坦画素ブロック抽出処理部６１による入力画像データからの平坦画素ブロックの抽出結果は、背景代表色算出処理部６２、前景画素ブロック抽出処理部６３及び前景代表色算出処理部６４へ与えられる。
【００８０】
背景代表色算出処理部６２は、平坦画素ブロック抽出処理部６１が抽出した平坦画素ブロック毎に平均画素値を算出し、算出した画素ブロック毎の平均画素値を画素ブロック背景代表色として出力する。
【００８１】
前景画素ブロック抽出処理部６３は、入力画像データを所定サイズに分割した画素ブロックの画素値と、背景代表色算出処理部６２が算出した画素ブロック背景代表色（各平坦画素ブロックの平均画素値）とを比較して、両値の差分が所定値より大きい場合に、この画素ブロックを前景画素ブロックとして抽出する。前景画素ブロックとして抽出する画素ブロックのサイズは、入力データの解像度などに応じて、前景画素が抽出できる大きさに予め設定されており、例えば入力画像データの解像度が３００ｄｐｉの場合に画素ブロックのサイズを２画素×２画素に設定することができる。
【００８２】
図１０は、前景画素ブロック抽出処理部６３が行う処理を説明するための模式図である。なお、本図では、平坦画素ブロック抽出処理部６１が４×４画素ブロック単位で平坦画素ブロックの抽出を行い、背景代表色算出処理部６２が４×４画素ブロック単位での画素ブロック背景代表色の算出を行い、前景画素ブロック抽出処理部６３が２画素×２画素の画素ブロック（以下、２×２画素ブロックという）単位での前景画素ブロックの抽出を行う場合の例を示してある。平坦画素ブロック及び画素ブロック背景代表色に係る４×４ブロック（図１０において細実線で区切られた領域）と、前景画素ブロックに係る２×２画素ブロック（図１０においてハッチングを付した領域）との対応関係は、図１０（ａ）〜（ｄ）に示すように４通りである。即ち、２×２画素ブロックが４×４画素ブロックの左上、右上、左下又は右下のいずれかの位置に対応する。
【００８３】
前景画素ブロック抽出処理部６３は、処理対象の２×２画素ブロックの位置に応じて、周囲の４つの４×４画素ブロック（図１０において太実線で囲まれた領域）について画素ブロック背景代表色をそれぞれ取得し、２×２画素ブロックの画素値（４つの画素値をそれぞれ個別に用いてもよく、４つの画素値の平均値を用いてもよい）と、４つの画素ブロック背景代表色との各差分が所定値（例えば８０）より大きいか否かを判定する。判定の結果、２×２画素ブロックの画素値と４つの画素ブロック背景代表色との差分の全てが所定値より大きい場合、前景画素ブロック抽出処理部６３は、この２×２画素ブロックを前景画素ブロックであると判定する。
【００８４】
前景画素ブロック抽出処理部６３は、入力画像データの全ての２×２画素ブロックに対して上記の処理を行って、入力画像データから前景画素ブロックを抽出し、抽出された前景画素ブロックを前景画素ブロックマスクとして出力する。上記の方法で前景画素ブロックの抽出を行うことによって、平坦画素ブロックの境界を前景画素ブロックとして検知することを回避できる。
【００８５】
前景代表色算出処理部６４は、入力画像データ入力画像データを所定サイズに分割した画素ブロックの画素値と、背景代表色算出処理部６２が算出した画素ブロック背景代表色とを比較して、両値の差分が最大となる画素値を、この画素ブロックの前景代表色として算出する。例えば画素ブロック背景代表色が４×４画素ブロック毎に算出されたものである場合、前景代表色算出処理部６４は、入力画像データの４×４画素ブロックに含まれる各画素の画素値と、この４×４画素ブロックに係る画素ブロック背景代表色との差分をそれぞれ算出し、各差分が所定値（例えば９６）より大きいか否かを判定し、差分が所定値より大きい画素の画素値から、差分が最大となる画素値を取得し、この画素値を画素ブロック前景代表色として出力する。これにより、前景代表色算出処理部６４は、簡易な演算処理によって画素ブロック前景代表色の算出を行うことができる。
【００８６】
以上の処理によって、前景抽出処理部５１は、前景画素ブロックマスク、画素ブロック前景代表色及び画素ブロック背景代表色の生成又は算出を行うことができ、これらをライン検知処理部５２及び背景レイヤ生成処理部５５へ出力する。
【００８７】
（２）ライン検知処理部５２
図１１は、ライン検知処理部５２の構成を示すブロック図である。ライン検知処理部５２は、前景抽出処理部５１にて生成された前景画素ブロックマスクを用いて、入力画像中の水平ライン、垂直ライン及び表等を形成するラインの検知処理を行う。この処理を行うためにライン検知処理部５２は、水平ライン候補抽出処理部８１、垂直ライン候補抽出処理部８２、ライン候補結合処理部８３、ライン分布判定処理部８４及びライン最終判定処理部８５を備えている。
【００８８】
図１２は、水平ライン候補抽出処理部８１が行う処理を説明するための模式図である。なお、図１２の上段には、前景画素ブロックマスクの一例として、入力画像データにおける前景画素ブロックを実線で囲んだ領域として図示してある。水平ライン候補抽出処理部８１は、前景画素ブロックマスクに基づいて水平方向に所定数以上連続する複数の前景画素ブロックを探し出し、連続する一群の前景画素ブロックを水平ライン候補とし、１つの水平ライン候補に対して１つのラベルを付す処理を行う。図１２の下段には、上段の例に対して水平ライン候補抽出処理部８１が２つの水平ライン候補（ハッチングを付した２つの領域）を抽出し、それぞれにラベルを付した例を図示してある。
【００８９】
図示は省略するが、垂直ライン候補抽出処理部８２は、水平ライン候補抽出処理部８１が行う上述の処理と同様の処理を、入力画像データの垂直方向について行う。即ち、垂直ライン候補抽出処理部８２は、前景画素ブロックマスクに基づいて垂直方向に所定数以上連続する複数の前景画素ブロックを探し出し、連続する一群の前景画素ブロックを垂直ライン候補とし、１つの垂直ライン候補に対して１つのラベルを付す処理を行う。
【００９０】
図１３は、ライン候補結合処理部８３が行う処理を説明するための模式図である。なお、図１３の上段には、水平ライン候補抽出処理部８１の処理結果として、２つの水平ライン候補にそれぞれラベルを付した例（即ち、図１２の下段と同じ例）を図示してある。ライン候補結合処理部８３は、抽出された水平ライン候補及び垂直ライン候補について、入力画像データの水平方向又は垂直方向の同一ライン上に存在し、且つ、互いに近接する複数のライン候補を探し出し、これら複数のライン候補を１つのライン候補として、各ライン候補に付されたラベルを１つのラベルに統合することによって、ライン候補を結合する。図１３の上段に示された２つの水平ライン候補は、水平方向の同一ライン上に存在し、且つ、互いに近接するため、図１３の下段に示すようにラベルを統合して水平ライン候補を結合することができる。
【００９１】
図１４は、ライン分布判定処理部８４が行う処理を説明するための模式図であり、ライン候補結合処理部８３の処理結果として、図１３の下段に示した１つのライン候補を拡大して図示してある。ライン分布判定処理部８４は、ライン候補結合処理部８３による結合処理を終えたライン情報を取得し、ラベルが付された各ライン候補の太さ（水平方向のライン候補であれば垂直方向の画素数、垂直方向のライン候補であれば水平方向の画素数）の分布を抽出し、抽出結果に基づいて各ライン候補がラインであるか否かの判定を行う。ライン分布判定処理部８４は、ライン候補について抽出した太さの分布を調べ、例えば極端に太い部分を有するライン候補はラインではないと判断し、このライン候補を除外する。このようにライン分布判定処理部８４は、ライン候補の太さの分布に基づいて、ラインではないと判断できるライン候補を除外する処理を行う。
【００９２】
図１５は、ライン最終判定処理部８５が行う処理を説明するための模式図である。ライン最終判定処理部８５は、抽出された水平方向のライン候補と垂直方向のライン候補とが接続するか否かを判定し、相互に接続する複数のライン候補の数が所定数を超える場合には、これら複数のライン候補を画像中の表を形成するラインであると識別し、これら以外のライン候補を水平方向又は垂直方向の単独のラインであると識別する。またライン最終判定処理部８５は、各ライン候補のライン長が所定長を超えるか否かを調べることによって、表を形成するライン又は単独ラインの識別を行う。図１５には、水平単独ライン、垂直単独ライン及び表を形成するラインと識別されたラインをそれぞれ実線で示し、表を形成するラインであるか否かの判定を行う際に用いられたライン候補の接続点を丸印で囲んで示してある。このように、単独ラインと表を形成するラインとの識別を行うことによって、後段の処理において画像データの内容に応じた適切な画像処理を施すことが可能となる。
【００９３】
次に、ライン検知処理部５２の各処理部が行う処理の詳細な手順を、フローチャート又は数式等に基づいて説明する。
【００９４】
図１６は、水平ライン候補抽出処理部８１が行う処理の手順を示すフローチャートである。なお本処理において変数ｘ及びｙを用いているが、これらの変数は画像データ中の画素ブロックの水平方向及び垂直方向の位置（座標）を示すものであり、画像の左上の点を（ｘ、ｙ）＝（０、０）とし、画像の水平右向きにｘの値が増加し、画像の垂直下向きにｙの値が増加するものとする。また本処理においては、水平方向の座標ｘの値を格納するために変数ｍｉｎＸ及びｍａｘＸを用いる。水平ライン候補抽出処理部８１は、まず、変数ｙの値を０に設定し（ステップＳ１）、変数ｘの値を０に設定する（ステップＳ２）。
【００９５】
次いで、水平ライン候補抽出処理部８１は、（ｘ、ｙ）に位置する画素ブロックが水平方向のラインの始点となり得るライン候補であるか否かを判定し（ステップＳ３）、ラインの始点となり得ると判定した場合には（Ｓ３：ＹＥＳ）、始点設定処理を行う（ステップＳ４）。始点設定処理において、水平ライン候補抽出処理部８１は、変数ｍｉｎＸに現時点での変数ｘの値（即ち、水平方向ラインの始点座標）を設定する。
始点設定処理：ｍｉｎＸ＝ｘ；
【００９６】
また水平ライン候補抽出処理部８１は、（ｘ、ｙ）の画素ブロックがラインの始点となり得ないと判定した場合（Ｓ３：ＮＯ）、（ｘ、ｙ）の画素ブロックがラインの連続部分となり得るライン候補であるか（即ち、直前の画素ブロックがライン候補であり、（ｘ、ｙ）の画素ブロックがこのライン候補に連続するものであるか）否かを判定する（ステップＳ５）。ラインの連続部分となり得ると判定した場合（Ｓ５：ＹＥＳ）、水平ライン候補抽出処理部８１は、終点更新処理を行う（ステップＳ６）。終点更新処理において、水平ライン候補抽出処理部８１は、変数ｍａｘＸに現時点でのｘの値（即ち、現時点での水平方向ラインの終点座標）を設定する。
終点設定処理：ｍａｘＸ＝ｘ；
【００９７】
また水平ライン候補抽出処理部８１は、（ｘ、ｙ）の画素ブロックがラインの連続部分となり得ないと判定した場合（Ｓ５：ＮＯ）、変数ｍｉｎＸ及びｍａｘＸの差分から算出されるライン長が、所定値TH_MIN_RUNLENGTH（例えば５０）以上であるか否かを判定する（ステップＳ７）。ステップＳ７にて行うライン長判定は、以下の式で表される。
ライン長判定：（ｍａｘＸ−ｍｉｎＸ＋１）≧TH_MIN_RUNLENGTH；
【００９８】
ライン長が所定値以上の場合（Ｓ７：ＹＥＳ）、水平ライン候補抽出処理部８１は、始点ｍｉｎＸから終点ｍａｘＸまでの複数の画素ブロックをライン候補として抽出し、ライン情報更新処理を行う（ステップＳ８）。ライン情報更新処理は、抽出したライン候補にラベルを付すと共に、既に付されたラベルを更新する処理である。水平ライン候補抽出処理部８１は、抽出したライン候補の直上に位置する他のライン候補を探し出し、これら他のライン候補に付されたラベルを参照して、新たに抽出したライン候補に対するラベル付けを行う。このとき水平ライン候補抽出処理部８１は、始点ｍｉｎＸから終点ｍａｘＸまでの座標に対して、その一部又は全部のｘ座標が重なり合う直上のライン候補が存在する場合、新たに抽出したライン候補を直上のライン候補に統合する。
【００９９】
図１７は、水平ライン候補抽出処理部８１が行うライン候補に対するラベル付けを説明するための模式図である。水平ライン候補抽出処理部８１は、新たに抽出したライン候補に対するラベル付けを行う場合、まず、新たなライン候補に重なり合う直上のライン候補としてラベル２が付されたライン候補を探し出し、新たに抽出したライン候補にラベル２を付す。次いで水平ライン候補抽出処理部８１は、新たなライン候補に重なり合う直上のライン候補としてラベル１が付されたライン候補を探し出す。このとき、ラベル付け対象のライン候補には既にラベル２が付されているため、水平ライン候補抽出処理部８１は、ラベル１及びラベル２を統合する。ラベルの統合では値の小さいラベルを優先し、ラベル２が付されたライン候補をラベル１に変更することで行うことにより、ラベルの値と副走査座標との相関を保持することができる。また、新たに抽出したライン候補の直上に重なり合う他のライン候補が存在しない場合、水平ライン候補抽出処理部８１は、このライン候補に新たなラベルを付す。
【０１００】
ステップＳ４、Ｓ６若しくはＳ８の処理を終えた後、又は、ステップＳ７にてライン長が所定値より小さい場合（Ｓ７：ＮＯ）、水平ライン候補抽出処理部８１は、現時点での変数ｘの値が最大値（水平方向の画素ブロック数）に達したか否かを判定する（ステップＳ９）。変数ｘが最大値に達していない場合（Ｓ９：ＮＯ）、水平ライン候補抽出処理部８１は、変数ｘの値に１を加算し（ステップＳ１０）、ステップＳ３へ処理を戻して、水平方向の次の画素ブロックに対する処理を行う。変数ｘが最大値に達した場合（Ｓ９：ＹＥＳ）、水平ライン候補抽出処理部８１は、変数ｙの値が最大値（垂直方向の画素ブロック数）に達したか否かを判定する（ステップＳ１１）。変数ｙが最大値に達していない場合（Ｓ１１：ＮＯ）、水平ライン候補抽出処理部８１は、変数ｙの値に１を加算し（ステップＳ１２）、ステップＳ２へ処理を戻して、画像データにおける次段先頭の画素ブロックに対する処理を行う。変数ｙが最大値に達した場合（Ｓ１１：ＹＥＳ）、水平ライン候補抽出処理部８１は、画像データの全ての画素ブロックに対する処理を終えたため、ラベル付けの処理を終了する。
【０１０１】
以上の処理によって、水平ライン候補抽出処理部８１は水平方向のライン候補の抽出と抽出したライン候補に対するラベル付けとを行うことができ、抽出したライン候補とこのライン候補に付したラベルとについての情報を含むライン情報を出力する。
【０１０２】
なお、垂直ライン候補抽出処理部８２については、上述の水平ライン候補抽出処理部８１が行う処理を水平方向に代えて垂直方向に行うことによって、垂直方向のライン方向の抽出及びラベル付けを行うことができる。
【０１０３】
ライン候補結合処理部８３は、水平ライン候補抽出処理部８１及び垂直ライン候補抽出処理部８２が抽出したライン候補について、ライン方向において重なり合い、且つ、互いに近接する複数のライン候補を結合（ラベルを統合）する。ライン候補結合処理部８３は、例えば第１ライン候補及び第２ライン候補を結合するか否かを判定するために、下記の２つの判定条件を用いる。なお、下記の判定条件において、ｍｉｎＸはｘ方向の最小座標であり、ｍａｘＸはｘ方向の最大座標であり、ｍｉｎＹはｙ方向の最小座標であり、ｍａｘＹはｙ方向の最大座標であり、TH_LINEGAPは近接判定用の閾値（例えば２）である。また下記の判定条件は水平方向のライン候補を結合する際に用いる判定条件であり、垂直方向のライン候補のための判定条件は、下記の判定条件のｘ方向及びｙ方向を交換したものである。
【０１０４】
重なり判定条件：
第１ライン候補のｍａｘＹ≧第２ライン候補のｍｉｎＹ
且つ
第１ライン候補のｍｉｎＹ≦第２ライン候補のｍａｘＹ
近接判定条件：
｜第２ライン候補のｍｉｎＸ−第１ライン候補のｍａｘＸ−１｜≦TH_LINEGAP
又は
｜第１ライン候補のｍｉｎＸ−第２ライン候補のｍａｘＸ−１｜≦TH_LINEGAP
【０１０５】
ライン候補結合処理部８３は、上記の重なり判定条件及び近接判定条件を満たす２つのライン候補を結合し、ライン情報を更新して出力する。
【０１０６】
図１８は、ライン分布判定処理部８４が行う処理の手順を示すフローチャートであり、水平方向のライン候補に対して行う処理の手順を示してある（垂直方向のライン候補に対して行う処理の手順は、ｘ方向及びｙ方向を交換して同様の処理を行えばよいため、図示を省略する）。ライン分布判定処理部８４は、水平方向のライン候補に対する処理を行う場合、画像データの垂直方向に処理を進める。
【０１０７】
ライン分布判定処理部８４は、まず、変数ｘの値を０に設定し（ステップＳ２１）、変数ｙの値を０に設定する（ステップＳ２２）。次いで、ライン分布判定処理部８４は、（ｘ、ｙ）に位置する画素ブロックが水平方向のライン候補の垂直方向の始点（即ち、水平方向のラインの上端の点）であるか否かを判定し（ステップＳ２３）、ライン候補の始点であると判定した場合には（Ｓ２３：ＹＥＳ）、始点設定処理を行う（ステップＳ２４）。始点設定処理において、ライン分布判定処理部８４は、変数ｍｉｎＹに現時点での変数ｙの値（即ち、水平方向ラインの垂直方向の始点座標）を設定する。
始点設定処理：ｍｉｎＹ＝ｙ；
【０１０８】
またライン分布判定処理部８４は、（ｘ、ｙ）の画素ブロックがライン候補の始点でないと判定した場合（Ｓ２３：ＮＯ）、（ｘ、ｙ）の画素ブロックがライン候補の連続部分であるか（即ち、直前の画素ブロックがライン候補であり、（ｘ、ｙ）の画素ブロックがこのライン候補に連続するものであるか）否かを判定する（ステップＳ２５）。ライン候補の連続部分であると判定した場合（Ｓ２５：ＹＥＳ）、ライン分布判定処理部８４は、終点更新処理を行う（ステップＳ２６）。終点更新処理において、ライン分布判定処理部８４は、変数ｍａｘＹに現時点でのｙの値（即ち、現時点での水平方向ラインの垂直方向の終点座標）を設定する。
終点設定処理：ｍａｘＹ＝ｙ；
【０１０９】
またライン分布判定処理部８４は、（ｘ、ｙ）の画素ブロックがライン候補の連続部分でないと判定した場合（Ｓ２５：ＮＯ）、ライン候補の太さ算出処理を行う（ステップＳ２７）。太さ算出処理において、ライン分布判定処理部８４は、変数ｍａｘＹ及び変数ｍｉｎＹの差分に基づいてライン候補の太さを算出し、このライン候補に付されたラベルに対応づけて算出した太さを記憶する。
ライン候補の太さ算出処理：ライン候補の太さ＝ｍａｘＹ−ｍｉｎＹ＋１；
【０１１０】
ステップＳ２４、Ｓ２６又はＳ２７の処理を終えた後、ライン分布判定処理部８４は、現時点での変数ｙの値が最大値（垂直方向の画素ブロック数）に達したか否かを判定する（ステップＳ２８）。変数ｙが最大値に達していない場合（Ｓ２８：ＮＯ）、ライン分布判定処理部８４は、変数ｙの値に１を加算し（ステップＳ２９）、ステップＳ２３へ処理を戻して、垂直方向の次の画素ブロックに対する処理を行う。変数ｙが最大値に達した場合（Ｓ２８：ＹＥＳ）、ライン分布判定処理部８４は、変数ｘの値が最大値（水平方向の画素ブロック数）に達したか否かを判定する（ステップＳ３０）。変数ｘが最大値に達していない場合（Ｓ３０：ＮＯ）、ライン分布判定処理部８４は、変数ｘの値に１を加算し（ステップＳ３１）、ステップＳ２２へ処理を戻して、処理を繰り返す。変数ｘが最大値に達した場合（Ｓ３０：ＹＥＳ）、ライン分布判定処理部８４は、画像データの全ての画素ブロックに対する処理を終えたため、ライン候補の太さを算出する処理を終了する。
【０１１１】
以上の処理を行うことによって、ライン分布判定処理部８４は画像データに含まれるライン候補の太さ分布を得ることができる。その後、ライン分布判定処理部８４は、ライン候補に付されたラベルを基に太さの分布を調べ、各ライン候補の太さの最大値及び最小値を取得して閾値（TH_MAXTHICK（例えば６）及びTH_MINTHIC（例えば４））との比較を行い、各ライン候補がラインであるか否かの判定を行う。ライン分布判定処理部８４は、下記の太さ判定条件を満たすライン候補をラインとし、太さ判定条件を満たさないライン候補はラインでないものとみなして、このライン候補に係る情報をライン情報から削除する。
太さ判定条件：
太さの最大値≦TH_MAXTHICK
且つ
太さの最小値≦TH_MINTHICK
【０１１２】
図１９は、ライン最終判定処理部８５が行う処理の手順を示すフローチャートである。なお本処理において変数ｉ及びｊを用いているが、これらの変数はそれぞれ水平方向のライン候補に付されたラベル値及び垂直方向のライン候補に付されたラベル値を示すものである。ライン最終判定処理部８５は、まず、変数ｉの値を１に設定し（ステップＳ４１）、変数ｊの値を１に設定する（ステップＳ４２）。次いで、ライン最終判定処理部８５は、水平方向のラベルｉのライン候補と垂直方向のラベルｊのライン候補とが接続しているか否かを判定する（ステップＳ４３）。
【０１１３】
図２０は、水平方向及び垂直方向のライン候補の接続判定を説明するための模式図である。ライン最終判定処理部８５は、水平方向のライン候補（水平ライン候補）と垂直方向のライン候補（垂直ライン候補）とが接続するか否かを、下記の接続判定条件を満たすか否かに応じて判定する。
接続判定条件：
垂直ライン候補のｍａｘＸ≧水平ライン候補のｍｉｎＸ
且つ
水平ライン候補のｍａｘＸ≧垂直ライン候補のｍｉｎＸ
且つ
垂直ライン候補のｍａｘＹ≧水平ライン候補のｍｉｎＹ
且つ
水平ライン候補のｍａｘＹ≧垂直ライン候補のｍｉｎＹ
【０１１４】
水平方向及び垂直方向のライン候補が接続すると判定した場合（Ｓ４３：ＹＥＳ）、ライン最終判定処理部８５は、ステップＳ４３にて接続すると判定した両ライン候補について、接続すると判定したのが初めてであるか否かを調べる（ステップＳ４４）。両ライン候補の接続が初めての場合（Ｓ４４：ＹＥＳ）、ライン最終判定処理部８５は、両ライン候補に新規の表ラベルを設定する（ステップＳ４５）。なお、表ラベルとは、画像中に含まれる表に対して付されるものであり、ライン最終判定処理部８５が１つの画像データに対する処理を終えた場合、この画像データ中の１つの表に対して１つの表ラベルがそれぞれ付される。ライン候補の接続が初めてであるか否かは、既に表ラベルが付されているか否かに応じて判断することができる。
【０１１５】
両ライン候補の接続が初めてでない場合（Ｓ４４：ＮＯ）、ライン最終判定処理部８５は、いずれか一方のライン候補について、接続すると判定したのが初めてであるか否かを調べる（ステップＳ４６）。これは、いずれか一方のライン候補に表ラベルが付されているか否かに応じて判断することができる。いずれか一方のライン候補の接続が初めての場合（Ｓ４６：ＹＥＳ）、ライン最終判定処理部８５は、接続が初めてでない他方のライン候補に付された表ラベルを、接続が初めてのライン候補に対して設定する（ステップＳ４７）。また、両ライン候補について、接続が初めてではない場合（Ｓ４６：ＮＯ）、ライン最終判定処理部８５は、両ライン候補にそれぞれ付された表ラベルを調べ、値が小さい方の表ラベルに統合すべく、値が大きい方の表ラベルが付されたライン候補について表ラベルを更新する処理を行う（ステップＳ４８）。
【０１１６】
ステップＳ４５、Ｓ４７若しくはＳ４８の処理を終えた後、又は、ステップＳ４３にて水平方向及び垂直方向のライン候補が接続しないと判定した場合（Ｓ４３：ＮＯ）、ライン最終判定処理部８５は、現時点での変数ｊの最大値（垂直方向のライン候補の総数）に達したか否かを判定する（ステップＳ４９）。変数ｊが最大値に達していない場合（Ｓ４９：ＮＯ）、ライン最終判定処理部８５は、変数ｊの値に１を加算し（ステップＳ５０）、ステップＳ４３へ処理を戻して、水平方向及び垂直方向のライン候補の次の組み合わせに対する処理を行う。変数ｊが最大値に達した場合（Ｓ４９：ＹＥＳ）、ライン最終判定処理部８５は、変数ｉの値が最大値（水平方向のライン候補の総数）に達したか否かを判定する（ステップＳ５１）。変数ｉが最大値に達していない場合（Ｓ５１：ＮＯ）、ライン最終判定処理部８５は、変数ｉの値に１を加算し（ステップＳ５２）、ステップＳ４２へ処理を戻して、水平方向及び垂直方向のライン候補の次の組み合わせに対する処理を行う。変数ｉが最大値に達した場合、ライン最終判定処理部８５は処理を終了する。
【０１１７】
ライン最終判定処理部８５は、図１９に示した処理を行うことによって、画像データ中の複数のライン候補から、表を形成する可能性のあるライン候補を検出することができ、このようなライン候補に対して表ラベルを付すことができる。その後、ライン最終判定処理部８５は、各ライン候補が単独の水平ラインであるか否か、単独の垂直ラインであるか否か、表を形成する水平ラインであるか否か、又は、表を形成する垂直ラインであるか否かの最終判定を行う。
【０１１８】
ライン最終判定処理部８５は、ライン候補が単独のもの（即ち表ラベルが付されていないもの）である場合、ライン候補のライン長が所定値TH_ISO_RUNLENGTH（例えば１００）以上であるか否かに応じて、ライン候補が単独のラインであるか否かを最終判定する。
単独水平ラインの条件：
水平ライン候補のｍａｘＸ−水平ライン候補のｍｉｎＸ＋１≧TH_ISO_RUNLENGTH；
単独垂直ラインの条件：
垂直ライン候補のｍａｘＹ−垂直ライン候補のｍｉｎＹ＋１≧TH_ISO_RUNLENGTH；
【０１１９】
またライン最終判定処理部８５は、ライン候補が票を形成する可能性があるもの（即ち表ラベルが付されたもの）である場合、上記と同様の所定値TH_ISO_RUNLENGTHを用いた判定に加えて、同一の表ラベルが付された複数のライン候補の最大ライン長に所定重み係数TH_LINERATIO（例えば０．８）を乗算した値を用いた判定を行う。ライン最終判定処理部８５は、表を形成する可能性があるライン候補のライン長が、所定値TH_ISO_RUNLENGTH以上である場合、又は、最大ライン長の所定重み係数TH_LINRATIOを乗じた値以上である場合に、このライン候補を、表を形成するライン候補であると判定する。これにより、単独のラインとしては短いラインであっても、表の一部のラインであれば、ライン最終判定処理部８５は、ラインとして判定することができる。
【０１２０】
表を形成する水平ラインの条件：
水平ライン候補のｍａｘＸ−水平ライン候補のｍｉｎＸ＋１≧同一表ラベルのライン候補の最大ライン長×TH_LINERATIO≫１０；
又は
水平ライン候補のｍａｘＸ−水平ライン候補のｍｉｎＸ＋１≧TH_ISO_RUNLENGTH；
【０１２１】
表を形成する垂直ラインの条件：
垂直ライン候補のｍａｘＹ−垂直ライン候補のｍｉｎＹ＋１≧同一表ラベルのライン候補の最大ライン長×TH_LINERATIO≫１０；
又は
垂直ライン候補のｍａｘＹ−垂直ライン候補のｍｉｎＹ＋１≧TH_ISO_RUNLENGTH；
【０１２２】
以上の処理により、ライン検知処理部５２は、前景抽出処理部５１から与えられた前景画素ブロックマスクから画像中の水平ライン、垂直ライン又は表を形成するラインを検知することができ、検知されたラインに係る情報をライン情報としてレイアウト解析処理部５３へ出力することができる。なお、以降の処理（レイアウト解析処理部５３、前景レイヤ生成処理部５４及び背景レイヤ生成処理部５５の処理）においては、前景抽出処理部５１が生成した前景画素ブロックマスクから、ライン検知処理部５２が検知したラインに相当する画素ブロックを除外する補正を行った前景画素ブロックマスクを用いる。
【０１２３】
（３）レイアウト解析処理部５３
図２１は、レイアウト解析処理部５３の構成を示すブロック図である。レイアウト解析処理部５３は、前景抽出処理部５１にて生成されてライン検知処理部５２の検知結果に基づいてラインを構成する画素ブロックを除外するよう補正された前景画素ブロックマスクと、ライン検知処理部５２の検知結果であるライン情報とを用いて、画像データに含まれる文字列の領域に係る情報（文字列領域情報）を生成する処理を行う。この処理を行うためにレイアウト解析処理部５３は、ラベリング処理部９１、非文字矩形除去処理部９２、表内矩形特定処理部９３、近傍矩形間距離算出処理部９４、文字列方向推定処理部９５、文字列方向補正処理部９６、文字列領域抽出処理部９７及び非文字列領域除去処理部９８を備えている。
【０１２４】
ラベリング処理部９１は、画像データ中において連続する複数の前景画素ブロックの塊に固有のラベルを割り当てることによって、前景画素ブロックを分類する処理を行うものである。図２２は、ラベリング処理部９１が行う処理の手順を示すフローチャートである。また図２３は、ラベリング処理部９１が行う処理を説明するための模式図である。
【０１２５】
ラベリング処理部９１は、まず、変数ｙの値を０に設定し（ステップＳ６１）、変数ｘの値を０に設定する（ステップＳ６２）。次いで、ラベリング処理部９１は、（ｘ、ｙ）に位置する処理対象の画素ブロックが、水平方向に連続する複数の前景画素ブロックで構成される領域（前景領域）の始点（直前の画素ブロックが前景画素ブロックでない点）であるか否かを判定し（ステップＳ６３）、処理対象の画素ブロックが前景領域の始点である場合（Ｓ６３：ＹＥＳ）、始点設定処理を行う（ステップＳ６４）。始点設定処理において、ラベリング処理部９１は、変数ｍｉｎＸに現時点での変数ｘの値を設定する。
始点設定処理：ｍｉｎＸ＝ｘ；
【０１２６】
またラベリング処理部９１は、処理対象の画素ブロックが前景領域の始点でないと判定した場合（Ｓ６３：ＮＯ）、処理対象の画素ブロックが、水平方向に連続する前景領域の連続部分（直前の画素ブロックが前景画素ブロックである点）であるか否かを判定する（ステップＳ６５）。処理対象の画素ブロックが前景領域の連続部分であると判定した場合（Ｓ６５:ＹＥＳ）、ラベリング処理部９１は、終点更新処理を行う（ステップＳ６６）。終点更新処理において、ラベリング処理部９１は、変数ｍａｘＸに現時点でのｘの値を設定する。
終点設定処理：ｍａｘＸ＝ｘ；
【０１２７】
またラベリング処理部９１は、処理対象の画素ブロックが前景領域の連続部分でないと判定した場合（Ｓ６５：ＮＯ）、矩形情報更新処理を行う（ステップＳ６７）。矩形情報更新処理は、前景領域にラベルを付すと共に、既に付されたラベルを更新する処理である。また矩形情報とは、各ラベルが付された前景領域の座標情報（例えば水平方向の最小座標、水平方向の最大座標、垂直方向の最小座標及び垂直方向の最大座標）及び各前景領域に含まれる前景画素ブロックの数等の情報で構成されるものである（なお、各前景領域は必ずしも矩形とは限らず、矩形情報には矩形以外の形状の前景領域についての情報が含まれていてもよい）。ラベリング処理部９１は、処理対象の画素ブロックを含む前景領域の直上に位置する他の前景領域を探し出し、これら他の前景領域に付されたラベルを参照して、新規のラベル付け又は既に付されたラベルの統合を行う。
【０１２８】
例えば図２３に示すように、処理対象の画素ブロックを含む前景領域（処理対象の前景領域）にラベル付けを行う場合、ラベリング処理部９１は、まず、処理対象の前景領域に重なり合う直上の前景領域として、ラベル２が付された前景領域を探し出し、処理対象の前景領域にラベル２を付す。次いで、ラベリング処理部９１は、処理対象の前景領域に重なり合う直上の前景領域として、ラベル１が付された前景領域を探し出す。このとき、処理対象の前景領域には既にラベル２が付されているため、ラベリング処理部９１は、ラベル１及びラベル２を統合する。ラベルの統合では値の小さいラベルを優先し、ラベル２が付された前景領域をラベル１に変更することで行う。これにより、ラベルの値と副走査座標との相関を保持することができる。また、処理対象の前景領域の直上に重なり合う他の前景領域が存在しない場合、ラベリング処理部９１は、処理対象の前景領域に新規のラベルを付し、矩形情報に新規のラベルに係る座標情報などを追加する。
【０１２９】
ステップＳ６４、Ｓ６６又はＳ６７の処理を終えた後、ラベリング処理部９１は、現時点での変数ｘの値が最大値（水平方向の画素ブロック数）に達したか否かを判定する（ステップＳ６８）。変数ｘが最大値に達していない場合（Ｓ６８：ＮＯ）、ラベリング処理部９１は、変数ｘの値に１を加算し（ステップＳ６９）、ステップＳ６３へ処理を戻して、水平方向の次の画素ブロックに対する処理を行う。変数ｘが最大値に達した場合（Ｓ６８：ＹＥＳ）、ラベリング処理部９１は、変数ｙの値が最大値（垂直方向の画素ブロック数）に達したか否かを判定する（ステップＳ７０）。変数ｙが最大値に達していない場合（Ｓ７０：ＮＯ）、ラベリング処理部９１は、変数ｙの値に１を加算し（ステップＳ７１）、ステップＳ６２へ処理を戻して、画像データにおける次段先頭の画素ブロックに対する処理を行う。変数ｙが最大値に達した場合（Ｓ７０：ＹＥＳ）、ラベリング処理部９１は、ラベル付けの処理を終了する。
【０１３０】
以上の処理によって、ラベリング処理部９１は、画像データ中の前景画素ブロックが連続した前景領域に対してラベル付けを行うことができ、ラベル付けの結果を矩形情報として出力する。図２４は、ラベリング処理部９１による処理の一例を示す模式図である。なお、図２４には、ラベリング処理部９１に入力された前景画素ブロックマスクにて前景画素ブロックと指定された一又は複数の画素ブロックによる領域（前景領域）を実線で囲んだ領域として図示してある。ラベリング処理部９１は、一又は複数の前景領域に対して重複することのないラベルを付し、各前景領域の座表示情報及び画素ブロック数等をラベルに対応づけた矩形情報を生成し、非文字矩形除去処理部９２へ出力する。図２４に示す例では、１８個の領域に対してラベル１〜１８が付されている。
【０１３１】
非文字矩形除去処理部９２は、ラベリング処理部９１によってラベル付けされた各前景領域について、前景領域の高さ（垂直方向の画素ブロック数）若しくは前景領域の幅（水平方向の画素ブロック数）等の前景領域の大きさ、又は、前景領域に含まれる画素ブロックの数等の情報に基づいて、各前景領域が画像中の文字に相当し得るものであるか否かを判定し、文字に相当し得ない前景領域を除外する処理を行う。例えば各前景領域の高さ又は幅のいずれかが、画像データのサイズに対して大きすぎる又は小さすぎる場合、非文字矩形除去処理部９２は、この前景領域が文字に相当し得ないと判定することができる（判定方法はこれに限らない）。非文字矩形除去処理部９２は、文字に相当し得ないと判定した前景領域に係る情報を矩形情報から除外して、表内矩形特定処理部９３へ与える。
【０１３２】
表内矩形特定処理部９３は、非文字矩形除去処理部９２が出力した矩形情報と、前景抽出処理部５１が出力したライン情報とが入力されている。表内矩形特定処理部９３は、ライン情報に含まれる表を形成するラインに係る情報に基づいて、矩形情報に含まれる各前景領域が表の内部に位置するものであるか否かを判定する。表の内部に位置すると判定された複数の前景領域（表の一区画内に位置する複数の領域）について、レイアウト解析処理部５３は、後段の処理結果に関わらず、これらを１つの文字列として扱う。これにより、レイアウト解析処理部５３は、通常の文字列とは分布が異なる表内の文字列を容易且つ確実に抽出することができる。表内矩形特定処理部９３は、各前景領域が表の内部に位置するものであるか否かに関する情報を矩形情報に付加し、近傍矩形間距離算出処理部９４へ与える。
【０１３３】
図２５は、近傍矩形間距離算出処理部９４が行う処理を説明するための模式図である。近傍矩形間距離算出処理部９４は、矩形情報に含まれる各前景領域について、画像における上下左右のいずれかの方向に位置し、且つ、所定の条件を満たす周辺の他の前景領域を抽出し、抽出した他の前景領域と処理対象の前景領域との間の距離を算出する処理を行う。なお図２５に示す例は、図２４に示したラベリング処理の処理結果の例に対して、近傍矩形間距離算出処理部９４が距離算出を行うために抽出する２つの領域の関係を矢印で示した（矢印の始点が処理対象の前景領域であり、矢印の終点が周辺の他の前景領域である）ものである。
【０１３４】
図２６は、近傍矩形間距離算出処理部９４が行う処理の手順を示すフローチャートである。なお本処理において変数ｉ及びｊを用いているが、これらの変数はラベリング処理部９１が各前景領域に対して付したラベル値を格納するためのものである。近傍矩形間距離算出処理部９４は、まず、変数ｉの値を１に設定し（ステップＳ８１）、変数ｊの値を１に設定する（ステップＳ８２）。次いで、近傍矩形間距離算出処理部９４は、ラベルｉの前景領域に対するラベルｊの前景領域の方向を判定する処理を行う（ステップＳ８３）。方向判定処理において近傍矩形間距離算出処理部９４は、ラベルｉの前景領域及びラベルｊの前景領域について、下記の条件１〜４を満たすか否かを順に判定する。ただし下記の条件式において、ｍｉｎＸは各前景領域の水平方向（右方向）の最小座標を示し、ｍａｘＸは各前景領域の水平方向の最大座標を示し、ｍｉｎＹは各前景領域の垂直方向（下方向）の最小座標を示し、ｍａｘＹは各前景領域の垂直方向の最大座標を示す。
【０１３５】
条件１：
ラベルｊの前景領域のｍａｘＸ＞ラベルｉの前景領域のｍａｘＸ；
且つ
ラベルｊの前景領域のｍｉｎＸ＞ラベルｉの前景領域のｍｉｎＸ；
条件２：
ラベルｊの前景領域のｍｉｎＸ＜ラベルｉの前景領域のｍｉｎＸ；
且つ
ラベルｊの前景領域のｍａｘＸ＜ラベルｉの前景領域のｍａｘＸ；
条件３：
ラベルｊの前景領域のｍｉｎＹ＜ラベルｉの前景領域のｍｉｎＹ；
且つ
ラベルｊの前景領域のｍａｘＹ＜ラベルｉの前景領域のｍａｘＹ；
条件４：
ラベルｊの前景領域のｍａｘＹ＞ラベルｉの前景領域のｍａｘＹ；
且つ
ラベルｊの前景領域のｍｉｎＹ＞ラベルｉの前景領域のｍｉｎＹ；
【０１３６】
近傍矩形間距離算出処理部９４は、条件１〜４の判定をこの順に行い、ラベルｉの前景領域及びラベルｊの前景領域が条件１を満たす場合、ラベルｊの前景領域がラベルｉの前景領域の右側に位置すると判定する。条件１を満たさずに条件２を満たす場合、近傍矩形間距離算出処理部９４は、ラベルｊの前景領域がラベルｉの前景領域の左側に位置すると判定する。条件１、２を満たさずに条件３を満たす場合、近傍矩形間距離算出処理部９４は、ラベルｊの前景領域がラベルｉの前景領域の上側に位置すると判定する。条件１〜３を満たさずに条件４を満たす場合、近傍矩形間距離算出処理部９４は、ラベルｊの前景領域がラベルｉの前景領域の下側に位置すると判定する。
【０１３７】
方向判定処理の後、近傍矩形間距離算出処理部９４は、ラベルｊの前景領域がラベルｉの前景領域の右方向に存在するか否かを判定する（ステップＳ８４）。ステップＳ８４の判定では、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の右側に位置すると判定されたことに加えて、ラベルｉの前景領域及びラベルｊの前景領域の一部又は全部が水平方向に関して重なり合うか否かの判定を行う。近傍矩形間距離算出処理部９４は、水平方向の重なり判定を、下記の条件を満たすか否かを判定することで行う。
水平方向重なり条件：
ラベルｉの前景領域のｍａｘＹ＞ラベルｊの前景領域のｍｉｎＹ；
且つ
ラベルｉの前景領域のｍｉｎＹ＜ラベルｊの前景領域のｍａｘＹ；
【０１３８】
近傍矩形間距離算出処理部９４は、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の右側に位置すると判定され、且つ、上記の水平方向重なり条件を満たす場合に、ラベルｊの前景領域がラベルｉの前景領域の右方向に存在すると判定し（ステップＳ８４：ＹＥＳ）、右方向最短距離算出処理を行う（ステップＳ８５）。右方向最短距離算出処理において近傍矩形間距離算出処理部９４は、ラベルｉの前景領域及びラベルｊの前景領域の距離Ｄｉｓｔを下記の式で算出する。
Ｄｉｓｔ＝ラベルｊの前景領域のｍｉｎＸ−ラベルｉの前景領域のｍａｘＸ；
【０１３９】
更に近傍矩形間距離算出処理部９４は、下記の５つの条件（右方向最短距離条件１〜５）を満たすか否かを判定し、５つの条件全てを満たす場合に、算出した距離Ｄｉｓｔをラベルｉの前景領域の右方向最短距離として、右方向に存在する前景領域のラベルｊと共に記憶する（既に別の前景領域が右方向最短距離として記憶されている場合、これを新たな値で更新する）。近傍矩形間距離算出処理部９４が判定する第１の条件は、距離Ｄｉｓｔが所定の閾値（例えば３６）より小さいこと、である。
右方向最短距離条件１：
Ｄｉｓｔ＜閾値；
【０１４０】
近傍矩形間距離算出処理部９４が判定する第２の条件は、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の高さと、それぞれラベルｉの前景領域及びラベルｊの前景領域の高さの差分を算出し、算出した２つの差分のうちの値が小さい方の差分が所定の閾値（例えば３６）より小さいこと、である。
右方向最短距離条件２：
ＭＩＮ（統合前後のラベルｉの前景領域の高さの差分、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の高さとラベルｊの前景領域の高さの差分）＜閾値；
【０１４１】
近傍矩形間距離算出処理部９４が判定する第３の条件は、ラベルｊの前景領域の水平方向の最大座標ｍａｘＸが、ラベルｉの前景領域の水平方向の最大座標ｍａｘＸより大きいこと、である。
右方向最短距離条件３：
ラベルｊの前景領域のｍａｘＸ＞ラベルｉの前景領域のｍａｘＸ；
【０１４２】
近傍矩形間距離算出処理部９４が判定する第４の条件は、ラベルｉの前景領域の水平方向の最小座標ｍｉｎＸが、ラベルｊの前景領域の水平方向の最小座標ｍｉｎＸ以下、である。
右方向最短距離条件４：
ラベルｉの前景領域のｍｉｎＸ≦ラベルｊの前景領域のｍｉｎＸ；
【０１４３】
近傍矩形間距離算出処理部９４が判定する第５の条件は、ラベルｉの前景領域について既に別の前景領域との右方向最短距離が記憶されている場合に、算出した距離Ｄｉｓｔが、記憶されている右方向最短距離より小さいこと、である。
右方向最短距離条件５：
Ｄｉｓｔ＜記憶された右方向最短距離；
【０１４４】
右方向最短距離条件１〜５の全てを満たすと判定した場合、近傍矩形間距離算出処理部９４は、算出したＤｉｓｔを右方向最短距離として記憶する。またステップＳ８４にて、ラベルｊの前景領域がラベルｉの前景領域の右方向に存在しないと判定した場合（Ｓ８４：ＮＯ）、近傍矩形間距離算出処理部９４は、ラベルｊの前景領域がラベルｉの前景領域の上方向に存在するか否かを判定する（ステップＳ８６）。ステップＳ８６の判定では、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の上側に位置すると判定されたことに加えて、ラベルｉの前景領域及びラベルｊの前景領域の一部又は全部が垂直方向に関して重なり合うか否かの判定を行う。近傍矩形間距離算出処理部９４は、垂直方向の重なり判定を、下記の条件を満たすか否かを判定することで行う。
垂直方向重なり条件：
ラベルｉの前景領域のｍａｘＸ＞ラベルｊの前景領域のｍｉｎＸ；
且つ
ラベルｉの前景領域のｍｉｎＸ＜ラベルｊの前景領域のｍａｘＸ；
【０１４５】
近傍矩形間距離算出処理部９４は、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の上側に位置すると判定され、且つ、上記の垂直方向重なり条件を満たす場合に、ラベルｊの前景領域がラベルｉの前景領域の上方向に存在すると判定し（ステップＳ８６：ＹＥＳ）、上方向最短距離算出処理を行う（ステップＳ８７）。上方向最短距離算出処理において近傍矩形間距離算出処理部９４は、ラベルｉの前景領域及びラベルｊの前景領域の距離Ｄｉｓｔを下記の式で算出する。
Ｄｉｓｔ＝ラベルｉの前景領域のｍｉｎＹ−ラベルｊの前景領域のｍａｘＹ；
【０１４６】
更に近傍矩形間距離算出処理部９４は、下記の５つの条件（上方向最短距離条件１〜５）を満たすか否かを判定し、５つの条件全てを満たす場合に、算出した距離Ｄｉｓｔをラベルｉの前景領域の上方向最短距離として、上方向に存在する前景領域のラベルｊと共に記憶する（既に別の前景領域が上方向最短距離として記憶されている場合、これを新たな値で更新する）。近傍矩形間距離算出処理部９４が判定する第１の条件は、距離Ｄｉｓｔが所定の閾値（例えば３６）より小さいこと、である。
上方向最短距離条件１：
Ｄｉｓｔ＜閾値；
【０１４７】
近傍矩形間距離算出処理部９４が判定する第２の条件は、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の幅と、それぞれラベルｉの前景領域及びラベルｊの前景領域の幅の差分を算出し、算出した２つの差分のうちの値が小さい方の差分が所定の閾値（例えば３６）より小さいこと、である。
上方向最短距離条件２：
ＭＩＮ（統合前後のラベルｉの前景領域の幅の差分、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の幅とラベルｊの前景領域の幅の差分）＜閾値；
【０１４８】
近傍矩形間距離算出処理部９４が判定する第３の条件は、ラベルｊの前景領域の垂直方向の最小座標ｍｉｎＹが、ラベルｉの前景領域の垂直方向の最小座標ｍｉｎＹより小さいこと、である。
上方向最短距離条件３：
ラベルｊの前景領域のｍｉｎＹ＜ラベルｉの前景領域のｍｉｎＹ；
【０１４９】
近傍矩形間距離算出処理部９４が判定する第４の条件は、ラベルｉの前景領域の垂直方向の最大座標ｍａｘＹが、ラベルｊの前景領域の垂直方向の最大座標ｍａｘＹより大きいこと、である。
上方向最短距離条件４：
ラベルｉの前景領域のｍａｘＹ＞ラベルｊの前景領域のｍａｘＹ；
【０１５０】
近傍矩形間距離算出処理部９４が判定する第５の条件は、ラベルｉの前景領域について既に別の前景領域との上方向最短距離が記憶されている場合に、算出した距離Ｄｉｓｔが、記憶されている上方向最短距離より小さいこと、である。
上方向最短距離条件５：
Ｄｉｓｔ＜記憶された上方向最短距離；
【０１５１】
上方向最短距離条件１〜５の全てを満たすと判定した場合、近傍矩形間距離算出処理部９４は、算出したＤｉｓｔを上方向最短距離として記憶する。またステップＳ８６にて、ラベルｊの前景領域がラベルｉの前景領域の上方向に存在しないと判定した場合（Ｓ８６：ＮＯ）、近傍矩形間距離算出処理部９４は、ラベルｊの前景領域がラベルｉの前景領域の左方向に存在するか否かを判定する（ステップＳ８８）。ステップＳ８８の判定では、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の左側に位置すると判定されたことに加えて、ラベルｉの前景領域及びラベルｊの前景領域の一部又は全部が水平方向に関して重なり合うか否かの判定を行う。近傍矩形間距離算出処理部９４は、水平方向の重なり判定を、ステップＳ８４にて用いたものと同じ水平方向重なり条件を満たすか否かを判定することで行う。
【０１５２】
近傍矩形間距離算出処理部９４は、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の左側に位置すると判定され、且つ、水平方向重なり条件を満たす場合に、ラベルｊの前景領域がラベルｉの前景領域の左方向に存在すると判定し（ステップＳ８８：ＹＥＳ）、左方向最短距離算出処理を行う（ステップＳ８９）。左方向最短距離算出処理において近傍矩形間距離算出処理部９４は、ラベルｉの前景領域及びラベルｊの前景領域の距離Ｄｉｓｔを下記の式で算出する。
Ｄｉｓｔ＝ラベルｉの前景領域のｍｉｎＸ−ラベルｊの前景領域のｍａｘＸ；
【０１５３】
更に近傍矩形間距離算出処理部９４は、下記の５つの条件（左方向最短距離条件１〜５）を満たすか否かを判定し、５つの条件全てを満たす場合に、算出した距離Ｄｉｓｔをラベルｉの前景領域の左方向最短距離として、左方向に存在する前景領域のラベルｊと共に記憶する（既に別の前景領域が左方向最短距離として記憶されている場合、これを新たな値で更新する）。近傍矩形間距離算出処理部９４が判定する第１の条件は、距離Ｄｉｓｔが所定の閾値（例えば３６）より小さいこと、である。
左方向最短距離条件１：
Ｄｉｓｔ＜閾値；
【０１５４】
近傍矩形間距離算出処理部９４が判定する第２の条件は、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の高さと、それぞれラベルｉの前景領域及びラベルｊの前景領域の高さの差分を算出し、算出した２つの差分のうちの値が小さい方の差分が所定の閾値（例えば３６）より小さいこと、である。
左方向最短距離条件２：
ＭＩＮ（統合前後のラベルｉの前景領域の高さの差分、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の高さとラベルｊの前景領域の高さの差分）＜閾値；
【０１５５】
近傍矩形間距離算出処理部９４が判定する第３の条件は、ラベルｊの前景領域の水平方向の最小座標ｍｉｎＸが、ラベルｉの前景領域の水平方向の最小座標ｍｉｎＸより小さいこと、である。
左方向最短距離条件３：
ラベルｊの前景領域のｍｉｎＸ＜ラベルｉの前景領域のｍｉｎＸ；
【０１５６】
近傍矩形間距離算出処理部９４が判定する第４の条件は、ラベルｉの前景領域の水平方向の最大座標ｍａｘＸが、ラベルｊの前景領域の水平方向の最大座標ｍａｘＸより大きいこと、である。
左方向最短距離条件４：
ラベルｉの前景領域のｍａｘＸ＞ラベルｊの前景領域のｍａｘＸ；
【０１５７】
近傍矩形間距離算出処理部９４が判定する第５の条件は、ラベルｉの前景領域について既に別の前景領域との左方向最短距離が記憶されている場合に、算出した距離Ｄｉｓｔが、記憶されている左方向最短距離より小さいこと、である。
左方向最短距離条件５：
Ｄｉｓｔ＜記憶された左方向最短距離；
【０１５８】
左方向最短距離条件１〜５の全てを満たすと判定した場合、近傍矩形間距離算出処理部９４は、算出したＤｉｓｔを左方向最短距離として記憶する。またステップＳ８８にて、ラベルｊの前景領域がラベルｉの前景領域の左方向に存在しないと判定した場合（Ｓ８８：ＮＯ）、近傍矩形間距離算出処理部９４は、ラベルｊの前景領域がラベルｉの前景領域の下方向に存在するか否かを判定する（ステップＳ９０）。ステップＳ９０の判定では、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の下側に位置すると判定されたことに加えて、ラベルｉの前景領域及びラベルｊの前景領域の一部又は全部が垂直方向に関して重なり合うか否かの判定を行う。近傍矩形間距離算出処理部９４は、垂直方向の重なり判定を、ステップＳ８６にて用いたものと同じ垂直方向重なり条件を満たすか否かを判定することで行う。
【０１５９】
近傍矩形間距離算出処理部９４は、ステップＳ８３の方向判定処理でラベルｊの前景領域がラベルｉの前景領域の下側に位置すると判定され、且つ、垂直方向重なり条件を満たす場合に、ラベルｊの前景領域がラベルｉの前景領域の下方向に存在すると判定し（ステップＳ９０：ＹＥＳ）、下方向最短距離算出処理を行う（ステップＳ９１）。下方向最短距離算出処理において近傍矩形間距離算出処理部９４は、ラベルｉの前景領域及びラベルｊの前景領域の距離Ｄｉｓｔを下記の式で算出する。
Ｄｉｓｔ＝ラベルｊの前景領域のｍｉｎＹ−ラベルｉの前景領域のｍａｘＹ；
【０１６０】
更に近傍矩形間距離算出処理部９４は、下記の５つの条件（下方向最短距離条件１〜５）を満たすか否かを判定し、５つの条件全てを満たす場合に、算出した距離Ｄｉｓｔをラベルｉの前景領域の下方向最短距離として、下方向に存在する前景領域のラベルｊと共に記憶する（既に別の前景領域が下方向最短距離として記憶されている場合、これを新たな値で更新する）。近傍矩形間距離算出処理部９４が判定する第１の条件は、距離Ｄｉｓｔが所定の閾値（例えば３６）より小さいこと、である。
下方向最短距離条件１：
Ｄｉｓｔ＜閾値；
【０１６１】
近傍矩形間距離算出処理部９４が判定する第２の条件は、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の幅と、それぞれラベルｉの前景領域及びラベルｊの前景領域の幅の差分を算出し、算出した２つの差分のうちの値が小さい方の差分が所定の閾値（例えば３６）より小さいこと、である。
下方向最短距離条件２：
ＭＩＮ（統合前後のラベルｉの前景領域の幅の差分、ラベルｉの前景領域とラベルｊの前景領域を１つに統合したときの矩形の幅とラベルｊの前景領域の幅の差分）＜閾値；
【０１６２】
近傍矩形間距離算出処理部９４が判定する第３の条件は、ラベルｊの前景領域の垂直方向の最大座標ｍａｘＹが、ラベルｉの前景領域の垂直方向の最大座標ｍａｘＹより大きいこと、である。
下方向最短距離条件３：
ラベルｊの前景領域のｍａｘＹ＞ラベルｉの前景領域のｍａｘＹ；
【０１６３】
近傍矩形間距離算出処理部９４が判定する第４の条件は、ラベルｉの前景領域の垂直方向の最小座標ｍｉｎＹが、ラベルｊの前景領域の垂直方向の最小座標ｍｉｎＹより小さいこと、である。
下方向最短距離条件４：
ラベルｉの前景領域のｍｉｎＹ＜ラベルｊの前景領域のｍｉｎＹ；
【０１６４】
近傍矩形間距離算出処理部９４が判定する第５の条件は、ラベルｉの前景領域について既に別の前景領域との下方向最短距離が記憶されている場合に、算出した距離Ｄｉｓｔが、記憶されている下方向最短距離より小さいこと、である。
下方向最短距離条件５：
Ｄｉｓｔ＜記憶された下方向最短距離；
【０１６５】
下方向最短距離条件１〜５の全てを満たすと判定した場合、近傍矩形間距離算出処理部９４は、算出したＤｉｓｔを下方向最短距離として記憶する。
【０１６６】
ステップＳ８５、Ｓ８７、Ｓ８９若しくはＳ９１にて最短距離を算出した後、又は、ステップＳ９０にてラベルｊの前景領域がラベルｉの前景領域の下方向に存在しないと判定した場合（Ｓ９０：ＮＯ）、近傍矩形間距離算出処理部９４は、現時点での変数ｊの最大値（前景領域の総数）に達したか否かを判定する（ステップＳ９２）。変数ｊが最大値に達していない場合（Ｓ９２：ＮＯ）、近傍矩形間距離算出処理部９４は、変数ｊの値に１を加算し（ステップＳ９３）、ステップＳ８３へ処理を戻して、２つの前景領域の次の組み合わせに対する処理を行う。変数ｊが最大値に達した場合（Ｓ９２：ＹＥＳ）、近傍矩形間距離算出処理部９４は、変数ｉの値が最大値（前景領域の総数）に達したか否かを判定する（ステップＳ９４）。変数ｉが最大値に達していない場合（Ｓ９４：ＮＯ）、近傍矩形間距離算出処理部９４は、変数ｉの値に１を加算し（ステップＳ９５）、ステップＳ８２へ処理を戻して、２つの前景領域の次の組み合わせに対する処理を行う。変数ｉが最大値に達した場合（Ｓ９４：ＹＥＳ）、近傍矩形間距離算出処理部９４は処理を終了する。
【０１６７】
近傍矩形間距離算出処理部９４は、画像データ中のラベルが付された各前景領域について、上下左右方向に近接する他の前景領域との最短距離をそれぞれ算出し、算出結果を文字列方向推定処理部９５へ出力する。
【０１６８】
文字列方向推定処理部９５は、矩形情報に含まれる各前景領域について、水平方向に並ぶ前景領域の数及びこれら複数の前景領域間の距離総和、並びに、垂直方向に並ぶ前景領域の数及びこれら複数の前景領域間の距離総和を算出する。算出結果に基づいて、文字列方向推定処理部９５は、水平方向の前景領域数及び垂直方向の前景領域数を比較し、且つ、水平方向の前景領域間の距離総和及び垂直方向の前景領域間の距離総和を比較し、両比較結果に基づいて複数の前景領域が水平方向又は垂直方向の文字列を構成するものであるか否かを推定する。
【０１６９】
図２７は、文字列方向推定処理部９５が行う処理の手順を示すフローチャートである。なお本処理において変数ｉを用いているが、これらの変数はラベリング処理部９１が各前景領域に対して付したラベル値を格納するためのものである。文字列方向推定処理部９５は、まず、変数ｉの値を１に設定する（ステップＳ１０１）。次いで文字列方向推定処理部９５は、ラベルｉの前景領域について、水平方向の前景領域数及び距離総和算出処理を行う（ステップＳ１０２）。水平方向の前景領域数及び距離総和算出処理において、文字列方向推定処理部９５は、近傍矩形間距離算出処理部９４の算出結果に基づいて、ラベルｉの前景領域について左方向及び右方向に最短距離で位置する他の前景領域を順に探索することで、水平方向に並ぶ前景領域数と、これらの前景領域間の距離の総和を算出する。
【０１７０】
次いで、文字列方向推定処理部９５は、ラベルｉの前景領域について、垂直方向の前景領域数及び距離総和算出処理を行う（ステップＳ１０３）。垂直方向の前景領域数及び距離総和算出処理において、文字列方向推定処理部９５は、近傍矩形間距離算出処理部９４の算出結果に基づいて、ラベルｉの前景領域について上方向及び下方向に最短距離で位置する他の前景領域を順に探索することで、垂直方向に並ぶ前景領域数と、これらの前景領域間の距離の総和を算出する。
【０１７１】
次いで、文字列方向推定処理部９５は、ラベルｉの前景領域について、この前景領域を含む複数の前景領域を文字列とした場合の文字列の方向を判定する処理を行う（ステップＳ１０４）。文字列方向判定処理において、文字列方向推定処理部９５は、ステップＳ１０２及びＳ１０３の算出結果に基づいて、下記の条件が成立するか否かを判定することによって、文字列の方向を判定する。
【０１７２】
水平方向条件：
（水平方向距離総和×垂直方向前景領域数≦垂直方向距離総和×水平方向前景領域数  且つ  水平方向前景領域数≧閾値１  且つ  垂直方向前景領域数≧閾値２）
又は
（水平方向前景領域数≧閾値１  且つ  垂直方向前景領域数＜閾値２）
【０１７３】
垂直方向条件：
（水平方向距離総和×垂直方向前景領域数≧垂直方向距離総和×水平方向前景領域数  且つ  垂直方向前景領域数≧閾値１  且つ  水平方向前景領域数≧閾値２）
又は
（垂直方向前景領域数≧閾値１  且つ  水平方向前景領域数＜閾値２）
【０１７４】
文字列方向推定処理部９５は、上記の水平方向条件が成立する場合、ラベルｉの前景領域が含まれる文字列の方向が水平方向であると判定する。また文字列方向推定処理部９５は、上記の垂直方向条件が成立する場合、ラベルｉの前景領域が含まれる文字列の方向が垂直方向であると判定する。水平方向条件及び垂直方向条件の両条件が成立しない場合、文字列方向推定処理部９５は、ラベルｉの前景領域が文字列の方向に関して不定であると判定する。文字列方向推定処理部９５は、文字列方向の判定結果を、ラベルｉに対応づけて記憶する。なお上記の水平方向条件及び垂直方向条件において用いる閾値１、２は、予め決定されるものであり、その値として例えば３をそれぞれ設定することができる。
【０１７５】
文字列方向判定処理の終了後、文字列方向推定処理部９５は、変数ｉの値が最大値（前景領域の総数）に達したか否かを判定し（ステップＳ１０５）、変数ｉの値が最大値に達していない場合（Ｓ１０５：ＮＯ）、変数ｉの値に１を加算し（ステップＳ１０６）、ステップＳ１０２へ処理を戻して、次のラベルｉの前景領域について同様の処理を行う。変数ｉの値が最大値に達した場合（Ｓ１０５：ＹＥＳ）、文字列方向推定処理部９５は、処理を終了する。
【０１７６】
図２８は、文字列方向推定処理部９５が行う処理の一例を示す模式図であり、図２５に示した距離算出処理の結果に対して、文字列方向推定処理部９５が文字列方向を推定する処理を行ったものである。文字列方向推定処理部９５は、上述の処理を行うことによって、画像データ中のラベルが付された各前景領域を、水平方向の文字列（に含まれる前景領域）、垂直方向の文字列（に含まれる前景領域）又は不定の前景領域のいずれかと判定することができる。図示の例ではラベル１〜５、１１〜１３、１５、１７、１８が付された前景領域が水平方向の文字列と判定され、ラベル８〜１０が付された前景領域が垂直方向の文字列と判定され、ラベル６、７、１４、１６が付された前景領域が不定と判定されている。文字列方向推定処理部９５は、各前景領域の文字列の方向についての推定結果を、文字列方向補正処理部９６へ出力する。
【０１７７】
文字列方向補正処理部９６は、文字列方向推定処理部９５が推定した文字列の方向が妥当であるか否かを判定し、方向が妥当でないと判定した前景領域について、文字列の方向を不定に修正する処理を行う。図２９は、文字列方向補正処理部９６が行う処理の手順を示すフローチャートである。なお本処理において変数ｉを用いているが、これらの変数はラベリング処理部９１が各前景領域に対して付したラベル値を格納するためのものである。文字列方向補正処理部９６は、まず、変数ｉの値を１に設定する（ステップＳ１１１）。
【０１７８】
次いで文字列方向補正処理部９６は、ラベルｉの前景領域が水平方向の文字列に含まれる前景領域であるか否かを調べ（ステップＳ１１２）、水平方向の文字列に含まれる前景領域である場合（Ｓ１１２：ＹＥＳ）、水平方向領域数算出処理を行う（ステップＳ１１３）。水平方向領域数算出処理において、文字列方向補正処理部９６は、ラベルｉが付された前景領域に対して水平方向に並ぶ他の前景領域について、各前景領域が水平方向又は垂直方向のいずれの文字列に含まれると判定されたかを調べ、水平方向の前景領域数と垂直方向の前景領域数とをそれぞれ算出する。
【０１７９】
次いで文字列方向補正処理部９６は、算出した水平方向の前景領域数及び垂直方向の前景領域数に基づいて、ラベルｉの前景領域に係る方向を補正する水平方向補正処理を行う（ステップＳ１１４）。水平方向補正処理において、文字列方向補正処理部９６は、算出した水平方向の前景領域数及び垂直方向の前景領域数が下記の水平方向補正条件を満たすか否かを判定し、水平方向補正条件を満たす場合にラベルｉの前景領域に係る方向を不定に補正する。なお、水平方向補正条件に用いられる閾値は予め決定されるものであり、その値として例えば２を設定することができる。
水平方向補正条件：
水平方向の前景領域数＜垂直方向の前景領域数；
又は
水平方向の前景領域数＜閾値；
【０１８０】
また、ラベルｉの前景領域が水平方向の文字列に含まれる前景領域でない場合（Ｓ１１２：ＮＯ）、文字列方向補正処理部９６は、ラベルｉの前景領域が垂直方向の文字列に含まれる前景領域であるか否かを調べる（ステップＳ１１５）。垂直方向の文字列に含まれる前景領域である場合（Ｓ１１５：ＹＥＳ）、文字列方向法制処理部９６は、垂直方向領域数算出処理を行う（ステップＳ１１６）。垂直方向領域数算出処理において、文字列方向補正処理部９６は、ラベルｉが付された前景領域に対して垂直方向に並ぶ他の前景領域について、各前景領域が垂直方向又は水平方向のいずれの文字列に含まれると判定されたかを調べ、垂直方向の前景領域数と水平方向の前景領域数とをそれぞれ算出する。
【０１８１】
次いで文字列方向補正処理部９６は、算出した垂直方向の前景領域数及び水平方向の前景領域数に基づいて、ラベルｉの前景領域に係る方向を補正する垂直方向補正処理を行う（ステップＳ１１７）。垂直方向補正処理において、文字列方向補正処理部９６は、算出した垂直方向の前景領域数及び水平方向の前景領域数が下記の垂直方向補正条件を満たすか否かを判定し、垂直方向補正条件を満たす場合にラベルｉの前景領域に係る方向を不定に補正する。なお、垂直方向補正条件に用いられる閾値は予め決定されるものであり、その値として例えば２を設定することができる。
垂直方向補正条件：
垂直方向の前景領域数＜水平方向の前景領域数；
又は
垂直方向の前景領域数＜閾値；
【０１８２】
ステップＳ１１４若しくはＳ１１７の補正処理の終了後、又は、ステップＳ１１５にてラベルｉの前景領域が垂直方向の文字列に含まれる前景領域でない場合（Ｓ１１５：ＮＯ）、文字列方向補正処理部９６は、変数ｉの値が最大値（前景領域の総数）に達したか否かを判定し（ステップＳ１１８）、変数ｉの値が最大値に達していない場合（Ｓ１１８：ＮＯ）、変数ｉの値に１を加算し（ステップＳ１１９）、ステップＳ１１２へ処理を戻して、次のラベルｉの前景領域について同様の処理を行う。変数ｉの値が最大値に達した場合（Ｓ１１８：ＹＥＳ）、文字列方向補正処理部９６は、処理を終了する。
【０１８３】
図３０は、文字列方向補正処理部９６が行う処理の一例を示す模式図であり、図２８に示した文字列方向推定処理の結果に対して、文字列方向補正処理部９６が文字列方向の補正処理を行ったものである。文字列方向補正処理部９６は、上述の処理を行うことによって、文字列方向推定処理部９５が推定した各前景領域の方向が妥当であるか否かを判定し、方向が妥当でないと判定した前景領域について、文字列の方向を不定に修正する処理を行う。図示の例では、文字列方向補正処理部９６は、前景領域８〜１０の方向が妥当でないと判定し、これらの前景領域を不定に修正している。文字列方向補正処理部９６は、各前景領域の文字列の方向を補正して、文字列抽出処理部９７へ出力する。
【０１８４】
文字列抽出処理部９７は、画像データから文字列方向が同じ前景領域を探し出し、前景領域間の距離が短く、且つ、文字列方向に垂直な方向についての位置関係が適切である複数の前景領域を文字列として抽出し、文字列に係る情報（文字列情報）を作成して出力する。図３１〜図３４は、文字列抽出処理部９７が行う処理の手順を示すフローチャートである。文字列抽出処理部９７は、文字列方向が水平又は不定と推定された複数の前景領域を水平方向に統合して水平方向の文字列を生成する水平文字列生成処理を行い（ステップＳ１２１）、同様に、文字列方向が垂直又は不定と推定された複数の前景領域を垂直方向に統合して垂直方向の文字列を生成する垂直文字列生成処理を行う（ステップＳ１２２）。その後、文字列抽出処理部９７は、水平方向の文字列及び垂直方向の文字列に重複する前景領域を、いずれかの文字列に統合する重複領域統合処理を行って（ステップＳ１２３）、処理を終了する。
【０１８５】
ステップＳ１２１にて行う水平文字列生成処理にて、まず文字列抽出処理部９７は、変数ｉの値を１に設定する（ステップＳ１３１）。なお、変数ｉは、画像データ中の各前景領域に付されたラベル値を格納するためのものである。次いで、文字列抽出処理部９７は、ラベルｉの前景領域について、右方向領域統合処理を行う（ステップＳ１３２）。右方向領域統合処理において、文字列抽出処理部９７は、文字列方向が水平方向であると判定されたラベルｉの前景領域について、右方向に連続する前景領域が存在する場合、この右方向の前景領域をラベルｉの前景領域に水平方向の文字列として統合するか否かを判定する。文字列抽出処理部９７は、ラベルｉの前景領域が含まれる文字列（複数の前景領域）について垂直方向の最小座標upper_pos及び最大座標lower_posを取得し、右方向の前景領域の垂直方向の最小座標ｍｉｎＹ及び最大座標ｍａｘＹが下記の水平方向統合条件を満たす場合に、右方向の前景領域をラベルｉの前景領域に統合する。なお、水平方向統合条件に含まれるオフセットは、例えば予め決定した固定値（例えば８）を用いてもよく、また例えばlower_pos及びupper_posの差分値に所定係数（例えば０．２）を積算した値を用いてもよい。
水平方向統合条件：
右方向の前景領域のｍｉｎＹ≧（upper_pos−オフセット）；
且つ
右方向の前景領域のｍａｘＹ≦（lower_pos＋オフセット）；
【０１８６】
右方向領域統合処理の終了後、文字列抽出処理部９７は、変数ｉの値が最大値（前景領域の総数）に達したか否かを判定し（ステップＳ１３３）、変数ｉの値が最大値に達していない場合（Ｓ１３３：ＮＯ）、変数ｉの値に１を加算し（ステップＳ１３４）、ステップＳ１３２へ処理を戻して、次のラベルｉの前景領域について同様の処理を行う。
【０１８７】
変数ｉの値が最大値に達した場合（Ｓ１３３：ＹＥＳ）、文字列抽出処理部９７は、ラベルｉの前景領域について、左方向領域統合処理を行う（ステップＳ１３５）。左方向領域統合処理において、文字列抽出処理部９７は、文字列方向が水平方向であると判定されたラベルｉの前景領域について、左方向に連続する前景領域が存在する場合、この左方向の前景領域をラベルｉの前景領域に水平方向の文字列として統合するか否かを判定する。左方向領域統合処理は、右方向領域統合処理と同様の処理をラベルｉの左方向の前景領域に対して行えばよく、水平方向統合条件についても右方向の前景領域のｍｉｎＹ及びｍａｘＹに代えて左方向の前景領域のｍｉｎＹ及びｍａｘＹについて同様の判定を行えばよい。
【０１８８】
左方向領域統合処理の終了後、文字列抽出処理部９７は、変数ｉの値が１であるか否かを判定し（ステップＳ１３６）、変数ｉの値が１でない場合（Ｓ１３６：ＮＯ）、変数ｉの値から１を減算し（ステップＳ１３７）、ステップＳ１３５へ処理を戻して、１つ前のラベルｉの前景領域について同様の処理を行う。変数ｉの値が１である場合（Ｓ１３６：ＹＥＳ）、文字列抽出処理部９７は、水平文字列生成処理を終了する。
【０１８９】
ステップＳ１２２にて行う垂直文字列生成処理にて、まず文字列抽出処理部９７は、変数ｉの値を１に設定する（ステップＳ１４１）。なお、変数ｉは、画像データ中の各前景領域に付されたラベル値を格納するためのものである。次いで、文字列抽出処理部９７は、ラベルｉの前景領域について、下方向領域統合処理を行う（ステップＳ１４２）。下方向領域統合処理において、文字列抽出処理部９７は、文字列方向が垂直方向であると判定されたラベルｉの前景領域について、下方向に連続する前景領域が存在する場合、この下方向の前景領域をラベルｉの前景領域に垂直方向の文字列として統合するか否かを判定する。文字列抽出処理部９７は、ラベルｉの前景領域が含まれる文字列（複数の前景領域）について水平方向の最小座標left_pos及び最大座標right_posを取得し、下方向の前景領域の水平方向の最小座標ｍｉｎＸ及び最大座標ｍａｘＸが下記の垂直方向統合条件を満たす場合に、下方向の前景領域をラベルｉの前景領域に統合する。なお、垂直方向統合条件に含まれるオフセットは、例えば予め決定した固定値（例えば８）を用いてもよく、また例えばleft_pos及びright_posの差分値に所定係数（例えば０．２）を積算した値を用いてもよい。
垂直方向統合条件：
下方向の前景領域のｍｉｎＸ≧（left_pos−オフセット）；
且つ
下方向の前景領域のｍａｘＸ≦（right_pos＋オフセット）；
【０１９０】
下方向領域統合処理の終了後、文字列抽出処理部９７は、変数ｉの値が最大値（前景領域の総数）に達したか否かを判定し（ステップＳ１４３）、変数ｉの値が最大値に達していない場合（Ｓ１４３：ＮＯ）、変数ｉの値に１を加算し（ステップＳ１４４）、ステップＳ１４２へ処理を戻して、次のラベルｉの前景領域について同様の処理を行う。
【０１９１】
変数ｉの値が最大値に達した場合（Ｓ１４３：ＹＥＳ）、文字列抽出処理部９７は、ラベルｉの前景領域について、上方向領域統合処理を行う（ステップＳ１４５）。上方向領域統合処理において、文字列抽出処理部９７は、文字列方向が垂直方向であると判定されたラベルｉの前景領域について、上方向に連続する前景領域が存在する場合、この上方向の前景領域をラベルｉの前景領域に垂直方向の文字列として統合するか否かを判定する。上方向領域統合処理は、下方向領域統合処理と同様の処理をラベルｉの上方向の前景領域に対して行えばよく、垂直方向統合条件についても下方向の前景領域のｍｉｎＹ及びｍａｘＹに代えて上方向の前景領域のｍｉｎＹ及びｍａｘＹについて同様の判定を行えばよい。
【０１９２】
上方向領域統合処理の終了後、文字列抽出処理部９７は、変数ｉの値が１であるか否かを判定し（ステップＳ１４６）、変数ｉの値が１でない場合（Ｓ１４６：ＮＯ）、変数ｉの値から１を減算し（ステップＳ１４７）、ステップＳ１４５へ処理を戻して、１つ前のラベルｉの前景領域について同様の処理を行う。変数ｉの値が１である場合（Ｓ１４６：ＹＥＳ）、文字列抽出処理部９７は、垂直文字列生成処理を終了する。
【０１９３】
ステップＳ１２３にて行う重複領域統合処理にて、まず文字列抽出処理部９７は、変数ｉの値を１に設定し（ステップＳ１５１）、変数ｊの値を１に設定する（ステップＳ１５２）。なお、変数ｉは水平文字列生成処理又は垂直文字列生成処理にて複数の前景領域を統合して生成した文字列に付されるラベル値を格納するためのものであり、変数ｊは画像データ中の各前景領域に付されたラベル値を格納するためのものである。
【０１９４】
次いで、文字列抽出処理部９７は、ラベルｉの文字列の領域とラベルｊの前景領域とが重複するか否かを判定する（ステップＳ１５３）。ラベルｉの文字列領域とラベルｊの前景領域とが重複するか否かは、下記の重複判定条件を満たすか否か（換言すれば、ラベルｊの前景領域がラベルｉの文字列の領域内に収まるものであるか否か）に応じて判定することができる。なお重複判定条件において、ｍｉｎＸ、ｍｉｎＹ、ｍａｘＸ及びｍａｘＹとは、各前景領域又は各文字列領域の水平方向最小座標、垂直方向最小座標、水平方向最大座標及び垂直方向最大座標である。
重複判定条件：
ラベルｊの前景領域のｍｉｎＸ≧ラベルｉの文字列領域のｍｉｎＸ；
且つ
ラベルｊの前景領域のｍｉｎＹ≧ラベルｉの文字列領域のｍｉｎＹ；
且つ
ラベルｊの前景領域のｍａｘＸ≦ラベルｉの文字列領域のｍａｘＸ；
且つ
ラベルｊの前景領域のｍａｘＹ≦ラベルｉの文字列領域のｍａｘＹ；
【０１９５】
文字列抽出処理部９７は、ラベルｉの文字列領域とラベルｊの前景領域とが重複すると判定した場合（Ｓ１５３：ＹＥＳ）、ラベルｉの文字列にラベルｊの前景領域を統合する領域統合処理を行って（ステップＳ１５４）、また、ラベルｉの文字列領域とラベルｊの前景領域とが重複しないと判定した場合（Ｓ１５３：ＮＯ）、領域統合処理を行わずに、ステップＳ１５５へ処理を進める。文字列抽出処理部９７は、変数ｊの値が最大値（前景領域の総数）に達したか否かを判定し（ステップＳ１５５）、変数ｊの値が最大値に達していない場合（Ｓ１５５：ＮＯ）、変数ｊの値に１を加算し（ステップＳ１５６）、ステップＳ１５３へ処理を戻して、次のラベルｊの前景領域について同様の処理を行う。
【０１９６】
変数ｊの値が最大値に達した場合（Ｓ１５５：ＹＥＳ）、文字列抽出処理部９７は、変数ｉの値が最大値（文字列の総数）に達したか否かを判定し（ステップＳ１５７）、変数ｉの値が最大値に達していない場合（Ｓ１５７：ＮＯ）、変数ｉの値に１を加算し（ステップＳ１５８）、ステップＳ１５２へ処理を戻して、次のラベルｉの文字列について同様の処理を行う。変数ｉの値が最大値に達した場合（Ｓ１５７：ＹＥＳ）、文字列抽出処理部９７は、重複領域統合処理を終了する。
【０１９７】
図３５は、文字列抽出処理部９７が行う処理の一例を示す模式図であり、図３０に示した文字列方向補正処理の結果に対して、文字列抽出処理部９７が文字列の抽出処理を行ったものである。文字列抽出処理部９７は、上述の処理を行うことによって、画像データ中の複数の前景領域を統合し、水平方向文字列又は垂直方向文字列として抽出する。図示の例では、前景領域１〜１０を水平方向文字列１として抽出し、前景領域１１〜１８を水平方向文字列２として抽出している。文字列抽出処理部９７は、文字列を抽出した結果を文字列情報として非文字列領域除去処理部９８へ出力する。
【０１９８】
非文字列領域除去処理部９８は、文字列抽出処理部９７が抽出した各文字列について、文字列領域の幅又は高さが所定値（例えば４）以下の場合に、この文字列を除去することによって、領域のサイズから文字列らしくないものを除去する処理を行うものである。
除去条件：
文字列領域の幅≦閾値；
又は
文字列領域の高さ＜閾値；
【０１９９】
以上の処理により、レイアウト解析処理部５３は、ライン検知処理部５２から与えられた前景画素ブロックマスク及びライン情報から、画像データに含まれる文字列を抽出し、抽出した文字列に係る情報を文字列情報として前景レイヤ生成処理部５４へ出力することができる。
【０２００】
（４）前景レイヤ生成処理部５４
図３６は、前景レイヤ生成処理部５４の構成を示すブロック図である。また図３７は、前景レイヤ生成処理部５４の処理の概要を説明するための模式図である。前景レイヤ生成処理部５４は、ライン検知処理部５２が出力する前景画素ブロックマスク及び前景レイヤ生成処理部５４が出力する文字列情報を基に、前景画素の位置情報である前景マスクと、前景画素の色をインデックス化した前景インデックス色情報とを生成し、最終的には各前景インデックス色に対応した２値画像と前景インデックス色情報とを出力する処理を行う。この処理を行うために、前景レイヤ生成処理部５４は、前景領域前景代表色算出処理部１０１、文字列領域前景代表色算出処理部１０２、前景代表色統合処理部１０３、前景画素マスク抽出処理部１０４及び２値画像生成処理部１０５を備えている。
【０２０１】
前景レイヤ生成処理部５４は、まず前景領域前景代表色算出処理部１０１にて、前景画素ブロックマスクの各前景領域について前景代表色を算出する。文字列領域前景代表色算出処理部１０２は、各前景領域の前景代表色に基づいて、レイアウト解析処理部５３が出力する文字列情報の各文字列領域について前景代表色を算出する。前景代表色統合処理部１０３は、画像データにおける各文字列領域の前景代表色を頁単位で統合することにより、ページ全体の描画に必要な前景代表色の色数を削減する。前景画素マスク抽出処理部１０４は、画像データの各前景領域の画素値と、各前景領域の前景代表色及び／又は文字列領域の前景代表色とを比較することによって前景画素を抽出し、前景画素の抽出結果である前景画素マスクを生成して出力する。２値画像生成処理部１０５は、抽出された前景画素を文字列領域の前景代表色に対応付けて２値画像として出力する。
【０２０２】
前景領域前景代表色算出処理部１０１は、レイアウト解析処理部５３のラベリング処理部９１にて前景領域に付されたラベル値、及び、前景抽出処理部５１が生成した画素ブロック前景代表色を基に、前景領域の前景代表色を算出する。前景領域前景代表色算出処理部１０１は、まず、ラベルが付された前景領域を囲む矩形領域を処理対象として抽出し、この矩形領域の画素ブロック背景代表色（背景代表色が不定値でない画素ブロック背景代表色）の平均値を算出する。次いで、前景領域前景代表色算出処理部１０１は、処理対象の矩形領域に含まれる前景画素ブロックの画素ブロック前景代表色を量子化する。
【０２０３】
図３８は、画素ブロック前景代表色の量子化を説明するための模式図である。前景領域前景代表色算出処理部１０１は、画素ブロック前景代表色をＬＣＨ色空間の色に変換し、輝度Ｌを５段階の輝度範囲に量子化すると共に、彩度Ｃ及び色相Ｈを１つの無彩色及び１２の有彩色の１３段階に量子化する。図３８（ａ）に示すように本例では、輝度Ｌ＝０〜６３にインデックスＬ＝０を割り当て、輝度Ｌ＝６４〜１２７にインデックスＬ＝１を割り当て、輝度Ｌ＝１２８〜１９１にインデックスＬ＝２を割り当て、輝度Ｌ＝１９２〜２２３にインデックスＬ＝３を割り当て、輝度Ｌ＝２２４〜２５５にインデックスＬ＝４を割り当てている。また図３８（ｂ）に示すように本例では、彩度Ｃ及び色相Ｈをベクトルとして扱い、ベクトル長を示す彩度Ｃ＝０〜２０の場合にインデックスＣＨ＝０を割り当て、彩度Ｃ＞２０の場合にはベクトルの角度を示す色相Ｈの値に応じてインデックスＣＨ＝１〜１２を割り当てている。
【０２０４】
前景領域前景代表色算出処理部１０１は、量子化した画素ブロック前景代表色について、量子化レベル（上記のインデックス）毎に、画素ブロック数の累積和、及び、画素ブロック前景代表色の累積和を算出し、画素ブロック数が最大となる量子化レベルと、この量子化レベルの近傍量子化レベルにおける画素ブロック数及び画素ブロック前景代表色の累積和とから、前景領域の前景代表色を算出する。例えば、前景領域前景代表色算出処理部１０１は、前景領域の前景代表色として、前景領域に含まれる画素ブロックの画素ブロック前景代表色の平均値を用いてもよい。前景領域毎に前景代表色を算出することによって、前景代表色の過分割を抑制することができる。
【０２０５】
文字列領域前景代表色算出処理部１０２は、前景領域前景代表色算出処理部１０１にて算出された各前景領域の前景代表色から、文字列領域の前景代表色を算出する。文字列領域前景代表色算出処理部１０２は、まず、各文字列領域に含まれる前景領域の前景代表色を量子化する（量子化の手順は前景領域前景代表色算出処理部１０１と同じである）。量子化によって、前景代表色は輝度のインデックスＬと彩度及び色相のインデックスＣＨとの組み合わせにより５×１３＝６５通りに分割される。
【０２０６】
次いで、文字列領域前景代表色算出処理部１０２は、５段階に量子化された輝度を基準に、量子化レベル（インデックス）に対するラベル付けを行う。この際に文字列領域前景代表色算出処理部１０２は、各インデックスに属する画素数（画素ブロック数）が所定の閾値以上となるものをラベル付けの対象とし、画素数が閾値に満たないものはラベル付けの対象としない。なおラベル付けを行うか否かを判断するための閾値は、予め決定された固定値であってもよく、処理対象の文字列領域に含まれる画素数に所定係数（例えば０．１）を積算した値を用いてもよい。
【０２０７】
文字列領域前景代表色算出処理部１０２は、輝度のインデックスＬ＝０から順に画素数が所定値を超えるインデックスを探索してラベルを付し、対象となるインデックスが連続して存在する場合には、連続する複数のインデックスに対して同一のラベルを付すことでインデックスを統合する。また文字列領域前景代表色算出処理部１０２は、同一のラベルを付した複数のインデックスに係る画素ブロック数及び前景代表色の累積和を加算し、各ラベルについて前景代表色の累積和を画素ブロック数の累積和で除算したもの（即ち、平均値）を、そのラベルの代表色として算出する。このようなラベル付けを量子化のインデックスの全てに対して行うことで、輝度を基準としたインデックスの統合を行うことができる。
【０２０８】
次いで、文字列領域前景代表色算出処理部１０２は、１３段階に量子化された彩度及び色相のうち、１２個の有彩色（即ちインデックスＣＨ＝１〜１２）を基準として、色相軸において隣り合う（図３８（ｂ）に記載の円の周方向に隣り合う）ラベルが統合可能であるか否かを判定して、ラベルの統合を行う。隣り合う２つのラベルが統合可能であるか否かは、各ラベルの代表色から色相の成分を求めて差分値を算出し、この差分値が所定値（例えば３０°）より小さいか否かに基づいて判定でき、差分値が所定値より小さい場合に文字列領域前景代表色算出処理部１０２は両ラベルを統合する。この処理を有彩色インデックスの全てに対して行うことによって、文字列領域前景代表色算出処理部１０２は、各文字列領域単位で前景代表色をインデックス化することができる。インデックス化をページ全体で行うより、文字列領域単位でインデックス化を行う方が、前景代表色の過分割を抑制することができる。
【０２０９】
前景代表色統合処理部１０３は、文字列領域前景代表色算出処理部１０２にて算出された各文字列領域の前景代表色をページ単位で統合する処理を行うものであり、これによりページ全体の描画に必要な前景代表色数を削減することができる。図３９は、前景代表色統合処理部１０３の構成を示すブロック図である。また図４０は、前景代表色統合処理部１０３が行う処理の手順を示すフローチャートである。前景代表色統合処理部１０３は、文字列領域前景代表色算出処理部１０２が算出した前景代表色のインデックスの総数をページ毎に算出し、このインデックス総数が閾値（例えば３１）を超えるか否かをインデックス数判定処理部１１１にて判定する（ステップＳ１６１）。
【０２１０】
インデックス総数が閾値を超える場合（Ｓ１６１：ＹＥＳ）、前景代表色統合処理部１０３は、色差ヒストグラム生成処理部１１２にてページ毎の色差ヒストグラムの生成を行う（ステップＳ１６２）。図４１は、色差ヒストグラムの一例を示す模式図である。前景代表色統合処理部１０３の色差ヒストグラム生成処理部１１２は、各前景代表色について、色差が最小となる他の前景代表色を探索して、探索により見出した他の前景代表色との色差を横軸とし、この色差を有する他の前景代表色の数（度数）を縦軸とした色差ヒストグラムを生成する。なお色差は、例えばＬ＊ａ＊ｂ＊の色空間において、ΔＬ＋Δａ＊＋Δｂ＊として算出することができる。
【０２１１】
次いで前景代表色統合処理部１０３のインデックス統合処理部１１３は、作成した色差ヒストグラムに基づいて、前景代表色のインデックスを統合する（ステップＳ１６３）。インデックスの統合は、ステップＳ１６２にて作成した色差ヒストグラムのうち、色差が最も小さい複数の前景代表色についてインデックスを１つにまとめることによって行うことができる。図４１に示す例では、色差が最も小さい３つの前景代表色（図中のハッチングを付した部分）が１つの前景代表色に統合される。
【０２１２】
インデックスの統合処理を行った後、前景代表色統合処理部１０３は、ステップＳ１６１へ処理を戻し、インデックス総数が閾値を超えるか否かの判定を再度行う。インデックス総数が閾値以下の場合（Ｓ１６１：ＮＯ）、前景代表色統合処理部１０３は、処理を終了する。以上の処理を前景代表色統合処理部１０３が頁単位で行うことによって、ページ全体の描画に必要な前景代表色数を削減することができる。
【０２１３】
次いで、前景画素マスク抽出処理部１０４は、前景領域前景代表色算出処理部１０１が算出した前景代表色、及び／又は、文字列領域前景代表色算出処理部１０２が算出して前景代表色統合処理部１０３が統合した前景代表色と、入力画像データの画素値とを比較することによって、文字列領域の前景代表色に対応する前景画素マスクの作成を行う。まず、前景画素マスク抽出処理部１０４は、各文字列領域について、入力画像データと文字列領域の前景代表色及び背景代表色との差分値をそれぞれ算出する。前景画素マスク抽出処理部１０４は、処理対象の領域に背景代表色が存在し、入力画像データの画素値と前景代表色との差分値が所定の閾値より小さく、且つ、入力画像データの画素値と文字列領域の前景代表色との差分値に所定係数（例えば１．５）を積算した値が、入力画像データの画素値と背景代表色との差分値より小さい場合、入力画像データの対象画素が前景画素であると判定する。前景画素マスク抽出処理部１０４は、以上の処理を繰り返し行うことによって、前景画素に関する情報を有する前景画素マスクを生成し、２値画像生成処理部１０５へ与える。
【０２１４】
次いで、２値画像生成処理部１０５は、前景画素マスク抽出処理部１０４が抽出した前景画素マスクを、前景代表色統合処理部１０３にて統合された前景色のインデックス毎に分離することによって、前景色毎の前景画素マスクを生成する。前景色毎の前景画素マスクは、２値の画像として生成することができ、２値画像生成処理部１０５は、生成した前景色毎の前景画素マスクを前景レイヤ２値画像として出力する。また２値画像生成処理部１０５は、前景レイヤ２値画像と共に、前景色のインデックスに係る情報として前景インデックス色情報を出力する。
【０２１５】
以上の処理により、前景レイヤ生成処理部５４は、前景画素の色をインデックス化した前景インデックス色情報と、各前景代表色のインデックスに対応した前景レイヤ２値画像とを生成し、背景レイヤ生成処理部５５及び画像圧縮部５６へ出力することができる。なお、インデックス毎の複数の前景レイヤ２値画像を論理和演算することによって、入力画像データの前景画素マスクを得ることができる。
【０２１６】
（５）背景レイヤ生成処理部５５
背景レイヤ生成処理部５５は、背景レイヤの圧縮率を高めるために、入力画像データの前景画素の部分を、前景画素ではない周辺の背景画素を用いて穴埋めする処理を行うものであり、処理結果を背景レイヤとして出力する。図４２は、背景レイヤ生成処理部５５が行う処理を説明するための模式図である。図示のように、例えば文字と写真などの画像とを含む入力画像データからは、色変換処理部５０〜前景レイヤ生成処理部５４がそれぞれ行う処理によって、文字画素の位置を示す前景画素マスクを生成することができる。背景レイヤ生成処理部５５は、前景画素マスクに基づいて入力画像データ中の前景画素の位置を把握し、前景画素部分を周辺の背景画素に置き換えることによって、背景レイヤの生成を行う。
【０２１７】
図４３は、背景レイヤ生成処理部５５が行う処理の手順を示すフローチャートである。背景レイヤ生成処理部５５は、入力画像データから１つの画素を処理対象として取得し（ステップＳ１７１）、取得した処理対象の画素が前景画素であるか否かを前景画素マスクに基づいて判定する（ステップＳ１７２）。処理対象の画素が前景画素でない場合（Ｓ１７２：ＮＯ）、背景レイヤ生成処理部５５は、処理対象の画素値を背景レイヤの画素値としてそのまま出力すると共に（ステップＳ１７３）、この画素値を背景画素値として記憶し（ステップＳ１７４）、ステップＳ１７６へ処理を進める。
【０２１８】
また、処理対象の画素が前景画素である場合（Ｓ１７２：ＹＥＳ）、背景レイヤ生成処理部５５は、ステップＳ１７４にて記憶した背景画素値を基に、例えば記憶した複数の背景画素値の平均値又は最近に記憶した背景画素値等の画素値を処理対象の画素値と置き換え（ステップＳ１７５）、背景レイヤの画素値として出力する。その後、背景レイヤ生成処理部５５は、入力画像データの全画素について上記の処理を終了したか否かを判定し（ステップＳ１７６）、全画素の処理を終了していない場合（Ｓ１７６：ＮＯ）、ステップＳ１７１へ処理を戻し、入力画像データの次の１画素について同様の処理を行う。全画素に対する処理を終了した場合（Ｓ１７６：ＹＥＳ）、背景レイヤ生成処理部５５は、処理を終了する。
【０２１９】
以上の処理により、背景レイヤ生成処理部５５は、入力画像データから前景画素を取り除いた背景レイヤを生成して画像圧縮部５６へ出力することができる。これにより画像圧縮部５６は、前景レイヤ生成処理部５５にて生成された前景レイヤと、背景レイヤ生成処理部５５が生成した背景レイヤとに対して、それぞれ異なる圧縮方式によるデータ圧縮を行うことができる。
【０２２０】
次に、圧縮処理部３０の各部が行う処理の流れをフローチャートを参照して説明する。図４４〜図４８は、圧縮処理部３０が行う処理の手順を示すフローチャートである。圧縮処理部３０は、領域分離処理部２４からの入力画像データに対して、まず、色変換処理部５０による色変換を行い（ステップＳ２０１）、変換後の画像データに対して、前景抽出処理部５１による前景抽出処理を行って（ステップＳ２０２）、画素ブロック背景代表色、画素ブロック前景代表色及び前景画素ブロックマスクを得る。
【０２２１】
次いで圧縮処理部３０は、前景抽出処理により得られた前景画素ブロックマスクに基づいて、ライン検知処理部５２によるライン検知処理を行って（ステップＳ２０３）、ライン情報を生成し、このライン情報に基づいてレイアウト解析処理部５３が入力画像データのレイアウト解析処理を行って（ステップＳ２０４）、入力画像データ中の文字列に係る文字列領域情報を生成する。
【０２２２】
次いで圧縮処理部３０は、上記の処理により得られた画素ブロック背景代表色、画素ブロック前景代表色、前景画素ブロックマスク及び文字列領域情報等に基づいて、入力画像データから前景画素を抽出した前景レイヤの生成処理を前景レイヤ生成処理部５４にて行い（ステップＳ２０５）、生成した前景レイヤに基づいて、入力画像データの背景をなす背景レイヤの生成処理を背景レイヤ生成処理部５５にて行う（ステップＳ２０６）。その後、圧縮処理部３０は、生成した前景レイヤ及び背景レイヤのそれぞれに適した方式での画像圧縮処理を画像圧縮部５６にて行い（ステップＳ２０７）、処理を終了する。
【０２２３】
ステップＳ２０２にて行う前景抽出処理において、圧縮処理部３０の前景抽出処理部５１は、まず、入力画像データを分割するブロックサイズ（例えば８画素×８画素など）を設定し（ステップＳ２１１）、設定したブロックサイズとなるように、入力画像データを複数の画素ブロックに分割する（ステップＳ２１２）。次いで前景抽出処理部５１は、分割した画素ブロックに含まれる画素値の差を判定することによって、複数の画素ブロックから平坦画素ブロックを抽出する（ステップＳ２１３）。その後、前景抽出処理部５１は、画素ブロックのブロックサイズが所定サイズに達したか否かを判定し（ステップＳ２１４）、ブロックサイズが所定サイズに達していない場合（Ｓ２１４：ＮＯ）、ブロックサイズを小さいサイズに変更し（ステップＳ２１５）、ステップＳ２１２へ処理を戻して、画素ブロックの分割及び平坦画素ブロックの抽出を繰り返し行う。
【０２２４】
画素ブロックのブロックサイズが所定サイズに達した場合（Ｓ２１４：ＹＥＳ）、前景抽出処理部５１は、抽出した平坦画素ブロックの画素値から画素ブロック背景代表色を算出し（ステップＳ２１６）、算出した画素ブロック背景代表色と各画素ブロックの画素値との比較により前景画素ブロックを抽出して前景画素ブロックマスクを生成し（ステップＳ２１７）、各画素ブロックの画素値と画素ブロック背景代表色との比較により画素ブロック前景代表色を算出して（ステップＳ２１８）、前景抽出処理を終了する。
【０２２５】
ステップＳ２０３にて行うライン検知処理において、圧縮処理部３０のライン検知処理部５２は、まず、入力画像データの水平方向に連続する複数の前景画素ブロックを水平ライン候補として抽出し（ステップＳ２２１）、同様に入力画像データの垂直方向に連続する複数の前景画素ブロックを垂直ライン候補として抽出する（ステップＳ２２２）。次いでライン検知処理部５２は、抽出したライン候補について、水平方向又は垂直方向の同一ライン上に存在して近接する複数のライン候補を１つのライン候補に結合した後（ステップＳ２２３）、各ライン候補の太さの分布に基づいて各ライン候補がラインであるか否かの判定を行う（ステップＳ２２４）。次いでライン検知処理部５２は、各ラインが水平方向又は垂直方向の単独ラインであるか、又は、画像中の表を構成するラインであるかの判定を行い（ステップＳ２２５）、最終的に検知されたラインに係る情報をライン情報として出力して、ライン検知処理を終了する。
【０２２６】
ステップＳ２０４にて行うレイアウト解析処理において、圧縮処理部３０のレイアウト解析処理部５３は、まず、画像データ中において連続する複数の前景画素ブロックに対して、前景領域としての固有のラベルを割り当てるラベリング処理を行い（ステップＳ２３１）、ラベル付けされた各前景領域についての高さ、幅又は画素ブロック数等の情報に基づいて、各前景領域が文字に相当するものであるか否かを判定し、文字に相当しない前景領域を除外する（ステップＳ２３２）。次いでレイアウト解析処理部５３は、ライン検知処理部５２が出力したライン情報を基に、画像中の表内に位置する前景領域を文字列として抽出する処理を行う（ステップＳ２３３）。
【０２２７】
次いでレイアウト解析処理部５３は、各前景領域について、上下左右のいずれかに位置する近傍の他の前景領域との間の距離を算出すると共に（ステップＳ２３４）、前景領域の水平方向の連続数及び平均距離（又は距離総和）を算出し（ステップＳ２３５）、同様に垂直方向の連続数及び平均距離（又は距離総和）を算出する（ステップＳ２３６）。次いでレイアウト解析処理部５３は、水平方向の連続数及び平均距離と垂直方向の連続数及び平均距離とを比較することによって、複数の前景領域が水平方向又は垂直方向の文字列を構成するものであるか否かを推定し（ステップＳ２３７）、推定した文字列の方向が妥当であるか否かを判定して、妥当でないと判定した文字列の方向を補正する処理を行う（ステップＳ２３８）。次いでレイアウト解析処理部５３は、画像データから推定した文字列方向が同じ複数の前景領域を探し出し、前景領域間の距離が短く、且つ、文字列方向に垂直な方向についての位置関係が適切な複数の前景領域を文字列として抽出し、文字列に係る情報を文字列情報として作成すると共に（ステップＳ２３９）、文字列領域の幅又は高さに基づいて、文字列らしくない領域を文字列情報から削除する処理を行って（ステップＳ２４０）、レイアウト解析処理を終了する。
【０２２８】
ステップＳ２０５にて行う前景レイヤ生成処理において、圧縮処理部３０の前景レイヤ生成処理部５４は、まず、前景画素ブロックマスクの各前景領域について前景代表色を算出し（ステップＳ２５１）、各前景領域の前景代表色に基づいて各文字列領域の前景代表色を算出し（ステップＳ２５２）、算出した各文字列領域の前景代表色を画像データのページ単位で統合する処理を行う（ステップＳ２５３）。次いで前景レイヤ生成処理部５４は、画像データの画素値と前景代表色及び背景代表色との比較結果から前景画素を抽出し（ステップＳ２５４）、前景画素を前景代表色ごとに分離し、前景色毎の前景画素マスク（２値画像）を作成して（ステップＳ２５５）、前景レイヤ生成処理を終了する。
【０２２９】
以上の構成の画像形成装置は、入力画像データから文字列領域を抽出する処理を色変換処理部５０〜レイアウト解析処理部５３にて行い、前景レイヤ生成処理部５４が文字列領域から前景画素の抽出を行う構成とすることにより、文字列領域単位で色情報のインデックス化などを行うことができ、前景代表色などの色情報を文字列領域単位で扱うことができるため、入力画像データが過分割された領域単位（例えば画素ブロック単位）で色情報が扱われることがなく、精度よく前景画素の抽出を行うことができる。
【０２３０】
また、ライン検知処理部５２が入力画像データからラインを抽出し、前景画素ブロックマスクからラインを構成する画素ブロックを除外する補正を行うことによって、前景画素の抽出対象からラインを除外することができるため、前景画素として文字のみを扱うことが可能となり、画像圧縮部５６による入力画像データの圧縮率を向上することができる。またこのとき、ラインは背景として扱われるため、シャギーなどの発生を抑制することができ、画質向上を実現できる。また、ライン検知処理部５２はラインを検知することによって画像中の表を検知することができ、レイアウト解析処理部５３が表中の文字列を抽出することができるため、文字列領域の抽出精度を向上することができる。
【０２３１】
また、入力画像データから平坦画素ブロック抽出処理部６１が平坦画素ブロックを抽出する際に、画素ブロックのサイズを徐々に小さく分割して平坦画素ブロックであるか否かの判定を繰り返し行う構成とすることにより、入力画像データの広域的な領域から局所的な領域までを参照しながら平坦画素ブロックの抽出を行うことができるため、背景代表色及び前景代表色等を高精度に算出でき、前景画素を高精度に抽出することができる。
【０２３２】
また、前景領域間の距離及び連続数に応じて文字列方向推定処理部９５が文字列方向を推定し、推定した方向に連なる前景領域を文字列領域抽出処理部９７が統合して文字列領域として抽出することにより、入力画像データから文字列領域の抽出を高精度に行うことができる。また、入力画像データの各画素の画素値と、前景代表色及び背景代表色とのそれぞれの差分を求め、差分が所定条件を満たす画素を前景画素として前景レイヤ生成処理部５４が抽出する構成とすることにより、前景代表色及び背景代表色に基づく入力画像データからの前景画素の抽出を精度よく行うことができる。また、前景代表色統合処理部１０３が、文字列領域についての前景代表色を、入力画像データのページ単位で統合する構成とすることにより、前景画像に係る色数を低減することができ、色情報をインデックス化した際にインデックス数を低減することができる。
【０２３３】
また、画像圧縮部５６は、前景レイヤ生成処理部５４が生成した前景レイヤ及び背景レイヤ生成処理部５５が生成した背景レイヤに対して、例えば可逆圧縮方式のＭＭＲにより前景レイヤを圧縮し、例えば非可逆圧縮方式のＪＰＥＧにより背景レイヤを圧縮するなど、それぞれ適した圧縮処理を施すことによって、入力画像データの圧縮率を高めることができる。
【０２３４】
なお、本実施の形態においては、前景画素を抽出する画像処理を行う画像処理装置２０をＭＦＰに搭載する例を示したが、これに限るものではなく、フラットヘッドスキャナなどの画像読取装置に同様の構成を適用してもよく、画像の圧縮処理を行うその他の装置（例えばプロダクトスキャナ又はファイリングサーバ等）に同様の構成を適用してもよい。また、本実施の形態に係るＭＦＰはカラーの画像データを扱う構成としたが、これに限るものではなく、白黒の画像データを扱う構成であってもよい。
【０２３５】
また、本発明の画像処理をＭＦＰ又は画像読取装置等のハードウェアが行う構成として実現するのみでなく、コンピュータに画像処理を実行させるコンピュータプログラムとして実現することもでき、このコンピュータプログラムのプログラムコード（実行形式プログラム、中間コードプログラム又はソースプログラム等）を、コンピュータにて読み取ることができる記録媒体に記録する構成とすることができる。これにより、本発明の前景画素抽出処理及び圧縮処理等の画像処理を行うコンピュータプログラムを記録した記録媒体を持ち運び自由に提供することができる。
【０２３６】
上述の実施の形態１に係るＭＦＰ及び変形例に係る画像読取装置等の装置が、ＲＯＭ（Read Only Memory）又はハードディスク等の記憶手段を備えている場合には、この記憶手段にコンピュータプログラムのプログラムコードを記憶する構成であってもよく、またこれらの装置が、記録媒体を着脱してプログラムコードを読み取る装置を備えて、記録媒体から読み取ったコンピュータプログラムを実行することで画像処理を行う構成であってもよい。これらの場合、記憶手段又は記録媒体等に格納されたコンピュータプログラムは、ＭＦＰ又は画像読取装置等の装置に備えられたＣＰＵなどが直接的に読み出して実行させる構成であってもよく、記憶手段又は記録媒体からプログラムコードをＲＡＭ（Random Access Memory）などの記憶エリアにダウンロードしてＣＰＵなどが実行させる構成であってもよい（プログラムコードをダウンロードするためのコンピュータプログラムは、予め装置本体に備えられているものとする）。
【０２３７】
ＭＦＰ又は画像読取装置等の装置に着脱することができる記録媒体としては、磁気テープ若しくはカセットテープ等のテープ系媒体、フレキシブルディスク若しくはハードディスク等の磁気ディスク媒体、ＣＤ（Compact Disc）、ＭＯ（Magneto-Optical）、ＭＤ（Mini Disc）若しくはＤＶＤ（Digital Versatile Disk）等の光ディスク媒体、ＩＣ（Integrated Circuit）カード、メモリカード若しくは光カード等のカード系媒体、又は、マスクＲＯＭ、ＥＰＲＯＭ（Erasable Programmable ＲＯＭ）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ＲＯＭ）若しくはフラッシュメモリ等の半導体メモリ媒体等のように、コンピュータプログラムを固定的に担持する媒体であってよい。これらの記録媒体がＭＦＰ又は画像読取装置等の装置に装着され、記録媒体に記録されたコンピュータプログラムが読み取られて実行されることにより、上述の画像処理が行われる。
【０２３８】
またＭＦＰ又は画像読取装置等の装置がインターネットなどの通信ネットワークに接続してデータの送受信を行うことができる構成の場合には、通信ネットワークを介してコンピュータプログラムをダウンロードし、ダウンロードしたコンピュータプログラムを実行することで画像処理を行う構成であってもよい。この場合、通信ネットワークを介して画像処理用のコンピュータプログラムをダウンロードするためのコンピュータプログラムは、装置本体に予め備える構成であってもよく、記録媒体などを介してインストールされる構成であってもよい。なお本発明は、上記のコンピュータプログラムのプログラムコードが、電子的な伝送で具現化された搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０２３９】
またこれらのコンピュータプログラムを実行するコンピュータは、フラットヘッドスキャナ、フィルムスキャナ又はデジタルカメラ等の画像入力装置、コンピュータプログラムを実行して画像処理などの様々な処理を行う処理装置、処理結果を表示するＣＲＴ（Cathode Ray Tube）ディスプレイ又は液晶ディスプレイ等の画像表示装置、及び画像処理の結果などを紙などの媒体に出力するプリンタなどの画像出力装置等を備えて構成され、更には通信ネットワークに接続するためのネットワークカード又はモデム等の通信手段が備えられてもよい。
【０２４０】
（変形例１）
また、上述の実施の形態においては、圧縮処理部３０がライン検知処理部５２を備える構成としたが、これに限るものではなく、ライン検知処理部５２を備えない構成であってもよい。図４９は、変形例１に係るレイアウト解析処理部５３ａの構成を示すブロック図であり、圧縮処理部３０がライン検知処理部５２を備えない場合のレイアウト解析処理部５３ａの構成である。変形例１に係るレイアウト解析処理部５３ａは、図２１に示したレイアウト解析処理部５３から表内矩形特定処理部９３を除いた構成である。即ち、変形例１に係るレイアウト解析処理部５３ａは、ラベリング処理部９１及び非矩形文字列除去処理部９２による処理結果が近傍矩形間距離算出処理部９４へ与えられ、入力画像データから表内の文字列を抽出する処理を行わない構成である。変形例１に係るレイアウト解析処理部５３ａの各部が行う処理は、上述のレイアウト解析処理部５３の各部が行う処理と同じである。
【０２４１】
図５０及び図５１は、変形例１に係る圧縮処理部３０が行う処理の手順を示すフローチャートである。変形例１に係る圧縮処理部３０が行う処理は、図４４のフローチャートに示した処理からステップＳ２０３のライン検知処理を行う手順を除いたものである。また変形例１に係る圧縮処理部３０のレイアウト解析処理部５３ａがステップＳ２０４にて行うレイアウト解析処理は、図４７のフローチャートに示した処理からステップＳ２３３の抽出処理の手順を除いたものである。
【０２４２】
（変形例２）
また、上述の実施の形態においては、前景抽出処理部５１の平坦画素ブロック抽出処理部６１は、水平方向連結平坦画素ブロック抽出処理部７２、垂直方向連結平坦画素ブロック抽出処理部７３及びブロックベース平坦画素ブロック抽出処理部７４の処理を、画素ブロックのサイズを変更しながら繰り返し行っているが、これに限るものではない。図５２は、変形例２に係る平坦画素ブロック抽出処理部６１ａの構成を示すブロック図である。変形例２に係る平坦画素ブロック抽出処理部６１ａは、初期平坦画素ブロック抽出処理部７１による処理の終了後、ブロックベース平坦画素ブロック抽出処理部７４による平坦画素ブロックの抽出処理を、画素ブロックのサイズを変更しながら繰り返し行い、繰り返しの結果得られたサイズの画素ブロックに対して水平方向連結平坦画素ブロック抽出処理部７２及び垂直方向連結平坦画素ブロック抽出処理部７３が平坦画素ブロックの抽出処理を行う。水平方向連結平坦画素ブロック抽出処理部７２及び垂直方向連結平坦画素ブロック抽出処理部７３が行う抽出処理は画素ブロックのサイズが小さい場合に特に有効であるため、繰り返し行う処理をブロックベース平坦画素ブロック抽出処理部７４の抽出処理のみとすることによって、抽出精度を低下させることなく処理速度を向上することができる。
【符号の説明】
【０２４３】
１１  画像入力装置
１２  画像出力装置
１３  送信装置
１５  操作パネル
２０  画像処理装置
３０  圧縮処理部
３１  記憶部
５０  色変換処理部
５１  前景抽出処理部
５２  ライン検知処理部（ライン抽出手段、前景画素ブロックマスク補正手段）
５３、５３ａ  レイアウト解析処理部
５４  前景レイヤ生成処理部（前景画素抽出処理部）
５５  背景レイヤ生成処理部
５６  画像圧縮部
６１、６１ａ  平坦画素ブロック抽出処理部（平坦画素ブロック抽出手段）
６２  背景代表色算出処理部（背景代表色算出手段）
６３  前景画素ブロック抽出処理部（前景画素ブロック判定手段）
６４  前景代表色算出処理部（前景代表色算出手段）
７１  初期平坦画素ブロック抽出処理部
７２  水平方向連結平坦画素ブロック抽出処理部
７３  垂直方向連結平坦画素ブロック抽出処理部
７４  ブロックベース平坦画素ブロック抽出処理部
７５  アップサンプリング処理部
８１  水平ライン候補抽出処理部
８２  垂直ライン候補抽出処理部
８３  ライン候補結合処理部
８４  ライン分布判定処理部
８５  ライン最終判定処理部
９１  ラベリング処理部（前景領域抽出手段）
９２  非文字矩形除去処理部
９３  表内矩形特定処理部
９４  近傍矩形間距離算出処理部（前景領域間距離方向算出手段）
９５  文字列方向推定処理部（文字列方向推定手段）
９６  文字列方向補正処理部
９７  文字列領域抽出処理部（文字列領域抽出手段）
９８  非文字列領域除去処理部
１０１  前景領域前景代表色算出処理部
１０２  文字列領域前景代表色算出処理部
１０３  前景代表色統合処理部
１０４  前景画素マスク抽出処理部
１０５  ２値画像生成処理部
１１１  インデックス数判定処理部
１１２  色差ヒストグラム生成処理部
１１３  インデックス統合処理部
【図１】
0005153857.tif 000003
【図２】
0005153857.tif 000004
【図３】
0005153857.tif 000005
【図４】
0005153857.tif 000006
【図５】
0005153857.tif 000007
【図６】
0005153857.tif 000008
【図７】
0005153857.tif 000009
【図８】
0005153857.tif 000010
【図９】
0005153857.tif 000011
【図１０】
0005153857.tif 000012
【図１１】
0005153857.tif 000013
【図１２】
0005153857.tif 000014
【図１３】
0005153857.tif 000015
【図１４】
0005153857.tif 000016
【図１５】
0005153857.tif 000017
【図１６】
0005153857.tif 000018
【図１７】
0005153857.tif 000019
【図１８】
0005153857.tif 000020
【図１９】
0005153857.tif 000021
【図２０】
0005153857.tif 000022
【図２１】
0005153857.tif 000023
【図２２】
0005153857.tif 000024
【図２３】
0005153857.tif 000025
【図２４】
0005153857.tif 000026
【図２５】
0005153857.tif 000027
【図２６】
0005153857.tif 000028
【図２７】
0005153857.tif 000029
【図２８】
0005153857.tif 000030
【図２９】
0005153857.tif 000031
【図３０】
0005153857.tif 000032
【図３１】
0005153857.tif 000033
【図３２】
0005153857.tif 000034
【図３３】
0005153857.tif 000035
【図３４】
0005153857.tif 000036
【図３５】
0005153857.tif 000037
【図３６】
0005153857.tif 000038
【図３７】
0005153857.tif 000039
【図３８】
0005153857.tif 000040
【図３９】
0005153857.tif 000041
【図４０】
0005153857.tif 000042
【図４１】
0005153857.tif 000043
【図４２】
0005153857.tif 000044
【図４３】
0005153857.tif 000045
【図４４】
0005153857.tif 000046
【図４５】
0005153857.tif 000047
【図４６】
0005153857.tif 000048
【図４７】
0005153857.tif 000049
【図４８】
0005153857.tif 000050
【図４９】
0005153857.tif 000051
【図５０】
0005153857.tif 000052
【図５１】
0005153857.tif 000053
【図５２】
0005153857.tif 000054