以下に添付図面を参照して、この発明にかかる画像処理装置の一実施の形態を詳細に説明する。図1は、本発明に適用可能な画像処理システムの一例の構成を示す。図1に例示されるように、本発明に適用可能な画像処理システムは、画像入力装置11、画像処理装置100および画像形成装置12を有する。
画像入力装置11は、例えばスキャナ、複写機、スキャン機能や印刷機能を複合的に備える複合機といった、画像を取り込んで画像データとして出力する機能を備える。画像入力装置11がADF(Auto Document Feeder)を備え、複数の画像を連続して自動的に取り込み出力できるようにしてもよい。これに限らず、画像入力装置11がインターネットやLAN(Local Area Network)といったネットワークを介して通信を行う通信機能を備え、ネットワークに接続された記憶媒体から画像データを取り込むようにしてもよい。
また、画像入力装置11は、取り込んだ画像データに対してトリミングなどの加工を施し、当該画像データの所定領域を切り取ってコンテンツデータとして出力する機能を有する。
さらに、画像入力装置11は、原稿を読み取った画像データまたは当該画像データに対してトリミングを行ったコンテンツデータを解析し、解析結果を解析情報として出力する機能を有する。画像入力装置11は、この解析情報として、例えば、コンテンツデータの属性、コンテンツに含まれるオブジェクト、コンテンツデータの背景画像に関する情報、コンテンツデータがテキストを含む場合、そのテキストを表示させるフォントやテキストにより構成される文書の構造のうち少なくとも1を出力することができる。コンテンツデータの解析の詳細については、後述する。
画像処理装置100は、画像入力装置11から出力されたコンテンツデータおよび解析結果が入力される。画像処理装置100は、入力されたコンテンツデータの1または複数をページ単位に配置したレイアウト情報を生成することができる。
このとき、画像処理装置100は、コンテンツデータの配置を示すレイアウト情報や画像入力装置11から入力された解析結果に基づき、配置されたコンテンツに対して加工処理(詳細は後述する)を施すことができる。画像処理装置100は、配置および加工処理されたコンテンツデータと、当該コンテンツデータに対するレイアウト情報を含む出力データを生成する。
画像形成装置12は、例えばプリンタやディスプレイといった、コンテンツデータから画像を形成して出力する機能を備える。画像形成装置12は、画像処理装置100から供給された出力データに従い、コンテンツデータのページ単位での印刷や表示出力を行う。
画像処理装置100の構成について、より詳細に説明する。画像処理装置100において、内部バス110に対してCPU(Central Processing Unit)101、I/O(Input/Output)部102、ROM(Read Only Memory)103、RAM(Random Access Memory)104およびハードディスクドライブ(HDD)105が接続される。内部バス110に接続される各部は、内部バス110を介して互いにデータのやりとりを行うことができるようになっている。
HDD105は、各種のプログラムやデータが格納される。例えばOS(Operating System)や、この発明に係る画像処理方法を実行するための画像処理プログラムなどがHDD105に格納される。また、画像入力装置11から入力された画像データがHDD105に格納される。CPU101は、ROM103に予め記憶されたプログラムや、HDD105に格納されたプログラムに従い、RAM104をワークメモリとして用いて、この画像処理装置100の全体の動作を制御する。I/O部102は、画像入力装置11および画像形成装置12などを含む、この画像処理装置100に接続される外部機器との間でのデータの入出力を管理する。
この画像処理装置100で処理されるコンテンツデータとしての画像データは、画像入力装置11から画像処理装置100に対して入力され、I/O部102を介してHDD105に格納されたり、CPU101に供給される。
なお、画像処理装置100は、コンテンツデータとしてテキストデータを処理することもできる。テキストデータは、例えば、画像処理装置100に接続されたキーボード(図示しない)や、外部機器からI/O部102を介して画像処理装置100に入力される。
この画像処理装置100で生成された出力データは、I/O部102を介して画像形成装置12に対して出力される。
なお、上述では、本発明に適用可能な画像処理システムを構成する画像入力装置11、画像処理装置100および画像形成装置12がそれぞれ独立した機器であるように説明したが、これはこの例に限定されない。例えば、画像入力装置11と画像形成装置12とを一体的に構成し、複合機としてもよい。さらに、画像入力装置11、画像処理装置100および画像形成装置12を一体的に構成することもできる。
<本発明に適用可能なレイアウト生成方法>
ここで、理解を容易とするために、本発明に適用可能なレイアウト生成方法について説明する。本レイアウト生成方法では、図2に例示されるように、様々な大きさ(幅×高さ)を有する複数の矩形コンテンツを、幅W、高さHの配置領域200上に配置する際のレイアウトを生成する。ここで、幅Wは有限の値を持ち、高さHは、無限大の値を持つものとする。また、レイアウトとは、配置領域200上におけるコンテンツの配置を示し、レイアウト情報は、レイアウトにおけるコンテンツの配置を示す情報(例えば座標情報)からなるものとする。また、ページとは、一度に表示を行うための領域をいい、以下では、幅Wを持つ配置領域を、一度に表示を行う所定の高さh毎に区切った各領域をページと呼ぶ。
図3は、本レイアウト生成方法による画像処理を概念的に示す一例のフローチャートである。この図3のフローチャートにおける各処理は、CPU101により、本第1の実施形態による画像処理プログラムに従い実行される。
ステップS1で複数のコンテンツデータが画像処理装置100に取得される。次のステップS2で、画像処理装置100は、ステップS1で取得された複数のコンテンツデータに基づき、最密充填レイアウトを生成する。そして、次のステップS3で、ステップS2で生成された最密充填レイアウトに基づきページ毎の最終レイアウトを決定する。そして、このステップS3で決定された最終レイアウトを示すレイアウト情報が生成される。
<最密充填レイアウトの生成>
図3のステップS2における最密充填レイアウトの生成処理について、より詳細に説明する。なお、実際に入力されるコンテンツデータは、様々な形状が想定されるが、以下では、説明のため、コンテンツデータによる画像が矩形であるものとする。ここで、コンテンツデータによる画像を含む最小の矩形を想定してもよいし、コンテンツデータによる画像に対してマージンなどを考慮した矩形を想定してもよい。以下では、煩雑さを避けるため、「コンテンツデータによる画像」を単に「コンテンツ」と呼ぶ。
ステップS2の最密充填レイアウトでは、予め決められた幅を持ち、高さが無限の領域に対して、下記の条件を満たし、且つ、高さを最小にするように複数のコンテンツを配置する問題として考えて、各コンテンツのレイアウトを決める。
(1)コンテンツの形状が矩形であって、幅および高さが有理数値である。
(2)回転を許容しない。
(3)各コンテンツが互いに重ならない。
ここで、(3)の各コンテンツが互いに重ならないという条件は、2つのコンテンツCiおよびCjについて、下記の式(1)〜式(4)のうち少なくとも1つが成立することと等価である。なお、式(1)〜式(4)において、値wおよび値hは、それぞれコンテンツの幅および高さ、値xおよび値yは、それぞれコンテンツの一端(例えば左下隅)のx座標およびy座標である。
xi+wi≦xj …(1)
xj+wj≦xi …(2)
yi+hi≦yj …(3)
yj+hj≦yi …(4)
各コンテンツに対して、式(1)〜式(4)のうち何れを採用するかを決める場合、単純に見積もって4(n(n-1)/2)通りの可能性があるといえる。この問題は、一般的に箱詰め問題と称され、NP困難に属しており、実用的な演算時間で解決することが極めて困難であると考えられる。そこで、本実施形態では、最適解に近似する最適近似解をできるだけ簡単な手順で求める手法を用いて、最密充填レイアウトの生成を行う。
このような問題を解決するために、上述の各条件を満たし、且つ、評価値すなわち最適解からの外れ度が定まっている基本的なアルゴリズムとして、FFDH(First-Fit Decreasing-Height)やNFDH(Next-Fit Decreasing-Height)などが知られている。本発明の第1の実施形態では、FFDHを用いて最密充填レイアウトの生成を行う。FFDHについては、「E.G.Coffman, JR., M.R.Garey, D.S.Johonson, R.E.Tarjan(Bell Lab.&Stanford Univ.) "Performance bounds for level-oriented two-dimensional packing algorithms", SIAM J. Comput, vol.9., pp808-826, No.4, 1980.」(非特許文献1)に記載がある。
図4は、FFDHによるコンテンツの一例の配置方法を概略的に示すフローチャートである。この図4のフローチャートにおける各処理は、CPU101により所定のプログラムに従い実行される。FFDHによれば、先ず、コンテンツを高さの大きい順にソートして、ソート順で1番目のコンテンツ(すなわち最も高さの高いコンテンツ)を、配置領域の配置開始位置に配置して、処理を開始する。以下では、説明のため、配置開始位置を配置領域の左上隅とする。
図4のフローチャートによる処理の開始に先立って、何らかのコンテンツ(例えばソート順で1番目のコンテンツ)が配置領域に配置されているものとする。これを最後に配置されたコンテンツとして、図4のフローチャートによる処理が開始される。ステップS10で、全てのコンテンツについて配置が完了したか否かが判定され、完了していないと判定されたら、処理がステップS11に移行される。
ステップS11で、直前に選択したコンテンツに対してソート順で次のコンテンツを選択する。次のステップS12で、ステップS11で選択されたコンテンツがソート順で最後のコンテンツか否かが判定される。若し、最後のコンテンツではないと判定されたら、処理はステップS13に移行される。
ステップS13では、ステップS11で選択されたコンテンツが、最後に配置したコンテンツの右隣に配置可能な否かが判定される。すなわち、最後に配置したコンテンツの右端から配置領域の右端までの幅が、ステップS11で選択されたコンテンツの幅以上であれば、当該選択されたコンテンツが配置可能であると判定される。若し、配置不可であると判定されたら、処理はステップS10に戻され、全てのコンテンツについて配置が完了していなければソート順でさらに次のコンテンツが選択され(ステップS11)、処理が繰り返される。
一方、ステップS13で配置可能であると判定されたら、処理はステップS14に移行され、最後に配置したコンテンツの右隣にステップS11で選択されたコンテンツが配置される。コンテンツの配置位置を示す情報は、例えばRAM104に記憶される。そして、処理がステップS10に戻される。
上述のステップS12で、ステップS11で選択されたコンテンツがソート順で最後のコンテンツであると判定されたら、処理はステップS15に移行される。ステップS15では、未配置のコンテンツのうち、ソート順が最も早い(すなわち高さが最も高い)コンテンツを、最後に配置したコンテンツに対して幅方向の左端に配置されるコンテンツの下に、配置領域に対して左詰めで配置する。コンテンツの配置位置を示す情報は、例えばRAM104に記憶される。そして、処理はステップS11に戻される。
図5は、上述のようにしてFFDHにより生成した最密充填レイアウトの一例を示す。この例では、幅が「10」の配置領域に、8個のコンテンツが配置されている。この、図3のステップS2において生成された最密充填レイアウトを、初期ページレイアウトと呼ぶ。
図5および図4のフローチャートによる処理で分かるように、FFDHによる最密充填レイアウトでは、コンテンツの右隣には、当該コンテンツと高さが同じかまたは低いコンテンツが配置される。また、左端のコンテンツについては、コンテンツの下には当該コンテンツと高さが同じかまたは低いコンテンツが配置される。以下、配置領域の幅を持ち、左端のコンテンツの上下端で高さおよび配置領域における高さ方向の位置が規定される領域を、「ブロック」と呼び、ブロックとブロックとの区切りを、「行」と呼ぶ(図6参照)。
ここで、図5の例では、各コンテンツは、上端を揃えて一列に配置されている。これに限らず、左端のブロックに対して右方向に一列に配置される一連のブロックは、上下端が左端のブロックの上端および下端からなる範囲を越えなければ、他の配置でもよい。
なお、FFDHでは、最適解に対する評価値が下記の式(5)のようになることが知られている。式(5)は、コンテンツの高さと幅とをそれぞれ「1」に正規化した場合の例である。また、式(5)において、値HalgはFFDHにより求められる高さ、値Hoptは最適解を表す。
Halg≦1.7×Hopt+1 …(5)
<第1のレイアウト生成方法>
次に、上述した図3のステップS3における、ページ毎の最終レイアウトの生成について説明する。図3のステップS2において、図4を用いて説明した手順に従い最密充填レイアウトによる初期ページレイアウトを生成した後に、配置領域を、幅が配置領域の幅と一致し、所定の高さを持つページ単位に分割する。このとき、図7−1に例示されるように、あるブロックがページに跨って配置されてしまうことがある。図7−1の例では、配置領域300に配置されたブロック301〜304のうち、ブロック303がページを跨いで配置されてしまっている。このままでは、コンテンツが途中で分断されてしまう結果となり、好ましくない。そこで、この第1のレイアウト生成方法では、各ブロックがページを跨がないようにレイアウトを調整して、ページ毎の最終レイアウトを生成する。
本第1のレイアウト方法では、ページを跨いで配置されたブロックを、次のページの先頭に移動させる。ここで、次のページとは、ページを跨いで配置されたブロックの上端が属するページから見た次のページをいう。すなわち、図7−1の例では、ページを跨いで配置されているブロック303を次ページの先頭に移動させ、当該ブロック303より下に配置された各ブロックも、当該ブロック303の移動に伴い下方に位置をずらす。以降、この処理をページ毎に順次、繰り返して行うことで、最終的には全てのコンテンツがページを跨がないように配置されたレイアウトを生成することができる。
図8は、本第1のレイアウト生成方法によるページレイアウトの生成方法の一例の処理を示すフローチャートである。この図8のフローチャートにおける各処理は、CPU101により、所定のプログラムに従い実行される。先ず、ステップS20で、対象ページのページレイアウトを取得する。なお、ステップS20で取得されるページレイアウトは、処理の対象となる対象ページに係るブロックからなるレイアウトである。対象ページが第1ページ目の場合は、初期ページレイアウトから対象ページのページレイアウトを取得することになる。
次のステップS21で、対象ページのページレイアウトにページを跨るブロックがあるか否かを判定する。若し、ページを跨るブロックが無いと判定されたら、処理はステップS23に移行される。
一方、ステップS21で、対象ページのレイアウトにページを跨るブロックがあると判定されたら、処理はステップS22に移行される。ステップS22では、対象ページのレイアウト中においてページを跨って配置されたブロックが、対象ページの次のページの先頭に配置されるように、当該ブロックおよび当該ブロックの下に配置される各ブロックを下方へずらして再配置する。ブロックの再配置が終了すると、処理はステップS23に移行される。
ステップS23では、現在のブロックの配置状態に従い、対象ページにおけるページレイアウトを生成し、当該対象ページのページレイアウトを決定する。そして、処理はステップS24に移行され、全てのページについてページレイアウトが決定されたか否かが判定される。若し、ページレイアウトが決定されていないページが存在すると判定されたら、処理はステップS20に戻され、ステップS23でページレイアウトが決定された次のページを対象ページとして、処理が繰り返される。
一方、ステップS24で、全てのページについてページレイアウトが決定されたと判定されたら、一連の処理が終了される。この場合、未配置のブロックが存在しない場合に、全てのページについてページレイアウトが決定されたと判定する。
このように、本第1のレイアウト生成方法によれば、様々なサイズのコンテンツを複数ページに亘る配置領域に配置する場合に、出力ページ数がなるべく小さくなり、且つ、コンテンツがページで分断されないようなレイアウトを自動的に生成できる。
また、配置領域に対して様々なサイズのコンテンツを配置する場合、全てのコンテンツがページを跨がないようにページ区切りを設けることができる保証が無く、ページを跨いで配置されるコンテンツが発生する可能性が高い。すなわち、コンテンツが配置された状態でコンテンツを区切らないように幅方向の線(ページ区切り)を引くためには、幅方向に見たときに、コンテンツの上辺または下辺が揃っているなどの条件が必要となる。図9−1は、効率的な配置であっても、適当なページ区切りが見つからない例を示す。
本第1のレイアウト生成方法によれば、コンテンツを配置する際に、配置領域の幅方向については、図9−2に例示されるように、左端に配置されたコンテンツ201の高さからはみ出ない範囲202に収まるコンテンツを探索していくため、ブロック単位での配置の入れ替えが可能となる。したがって、ページ間でコンテンツが分断されないような各ページのレイアウトを、最密充填レイアウトによる初期ページレイアウトの配置から容易に決定することが可能となる。
<第2のレイアウト生成方法>
次に、第2のレイアウト生成方法について説明する。本第2のレイアウト生成方法では、上述した第1のレイアウト生成方法に対し、さらに、ページに跨るブロックが存在する場合に、当該ブロック以降のブロックから対象ページ内に収まるブロックを探索する。そして、探索されたブロックとページに跨るブロックとを入れ替えて再配置を行う。これにより、効率的なページレイアウトを簡易に生成することができる。
図4を用いて説明した最密充填レイアウトの生成方法によれば、新しいブロックの形成時には、その時点で未配置のコンテンツの中で高さが最大のコンテンツが当該ブロックの左端に配置されることになる。そのため、ブロックは、下方に配置されるに従い高さが単調に減少(または非増加)する。したがって、あるブロックがページを跨いで配置された場合、当該ブロックの下に、当該ブロックと配置を交換することでブロックがページを跨ぐ事態を解消可能な高さのブロックが存在している可能性がある。
そこで、本第2のレイアウト生成方法では、あるブロックがページを跨いで配置された場合、当該ブロックの下に位置するブロックから順次、対象ブロックと配置を交換した際にページ内に収まるか否かを判定する。そして、ページ内に収まる高さのブロックが存在したら、そのブロックの配置と、ページを跨るブロックの配置とを入れ替える。ブロックがページを跨いで配置される毎に同様の処理を繰り返すことで、最終的には、全てのコンテンツがページを跨がないようなページレイアウトを生成することができる。
図7を用いて、より具体的に説明する。図7−1に示される例では、配置領域300に対してブロック301〜304が配置され、それらのうち、ブロック303がページを跨いで配置されブロック303に含まれるコンテンツがページ区切りで分断されてしまっている。このようなコンテンツの分断は、特にコンテンツの内容が図や表などの場合、好ましくない。
ここで、上述した処理により、ページを跨いで配置されたブロック303の直下に配置されるブロックから順次、ブロック303との配置交換を試みる。図7−1の例では、1ページの高さ「11」に対して上から高さがそれぞれ「6」、「3」および「3」のブロック301〜303が配置され、ブロック303が高さ「1」だけページからはみ出している。ブロック303を取り去ると、ブロック303の直上のブロック302とページ下端との間に高さ「2」の余裕が生じる。一方、ブロック303の1つ下に配置されるブロック304は、高さが「2」であるため、ブロック303とブロック304とを入れ替えて再配置を行うことで、ブロックがページを跨ぐ事態が解消されることが分かる。
図7−2は、図7−1の状態から、ブロック303とブロック304とを入れ替えて再配置した場合の例を示す。対象ページに対して、ブロック303がページを跨がずに配置されていることが分かる。このような再配置を行うことで、効率性を保持しつつ、ブロックがページを跨いでしまう事態を解消することができる。
図10は、本第2のレイアウト生成方法によるページレイアウトの生成方法の一例の処理を示すフローチャートである。この図10のフローチャートにおける各処理は、CPU101により、本第2の実施形態による画像処理プログラムに従い実行される。先ず、ステップS30で、上述したステップS20と同様にして、対象ページのページレイアウトを取得する。そして、次のステップS31で、対象ページのページレイアウトにページを跨るブロックがあるか否かを判定する。若し、ページを跨るブロックが無いと判定されたら、処理はステップS37に移行される。
一方、ステップS31で、対象ページのレイアウトにページを跨るブロックがあると判定されたら、処理はステップS32に移行される。ステップS32では、ページを跨ると判定されたブロックの直上に配置されるブロックの下端から、対象ページの下端までの高さyが求められる。
次のステップS33で、対象ブロックの下にさらにブロックが配置されているか否かが判定される。ステップS33による判定が、ステップS31でページを跨るブロックがあると判定された直後の判定であれば、当該ページを跨るブロックが対象ブロックとされる。若し、対象ブロックの直下にさらにブロックが配置されていると判定されたら、処理はステップS34に移行される。
ステップS34では、対象ブロックの直下に配置されたブロックをページを跨るブロックと入れ替えて配置した場合に、ブロックが対象ページ内に収まるか否かが判定される。例えば、ステップS32で求められた高さyと、対象ブロックの直下に配置されたブロックの高さhとを比較し、高さyが高さhb以上であれば、当該ブロックが対象ページ内に収まると判定される。
若し、ステップS34で、高さhbが高さyよりも高く、対象ブロックとページを跨ぐブロックとを入れ替えて配置した際に、対象ブロックがページ内に収まらないと判定されたら、処理はステップS33に戻される。そして、直前にページを跨ぐブロックとの入れ替えを試みられたブロックを新たな対象ブロックとして、当該対象ブロックの直下に配置されているブロックについて、同様にして判定が行われる。
一方、ステップS34で、高さhbが高さy以内であって、対象ブロックとページを跨ぐブロックとを入れ替えて配置した際に、対象ブロックがページ内に収まると判定されたら、処理はステップS35に移行される。ステップS35では、当該対象ブロックとページを跨ぐブロックとが入れ替えられて、ブロックの再配置がなされる。この場合、当該対象ブロックがページを跨ぐブロックの直上のブロックの直下に配置されると共に、ページを跨ぐブロックが対象ページの次ページの先頭に配置される。そして、このブロックの直下から、当該対象ブロックの直下から配置されていた各ブロックが、順序を変えずに配置される。ステップS35でブロックの再配置が行われると、処理はステップS37に移行される。
上述のステップS33で、対象ブロックの下にブロックが配置されていないと判定されたら、処理はステップS36に移行される。この場合には、対象ページ内に収まるようにページを跨ぐブロックと入れ替え可能なブロックが存在しないことを意味する。そこで、ステップS36では、当該ページを跨ぐブロックを対象ページの次ページの先頭に配置されるように、当該ブロックおよび当該ブロックの下に配置される各ブロックを下方にずらして再配置する。ブロックの再配置が終了すると、処理はステップS37に移行される。
ステップS37では、現在のブロックの配置状態に従い、対象ページにおけるページレイアウトを生成し、当該対象ページのページレイアウトを決定する。そして、処理はステップS38に移行され、全てのページについてページレイアウトが決定されたか否かが判定される。若し、ページレイアウトが決定されていないページが存在すると判定されたら、処理はステップS30に戻され、ステップS37でページレイアウトが決定された次のページを対象ページとして、処理が繰り返される。
一方、ステップS38で、全てのページについてページレイアウトが決定されたと判定されたら、一連の処理が終了される。この場合、未配置のブロックが存在しない場合に、全てのページについてページレイアウトが決定されたと判定する。
このように、本第2のレイアウト生成方法によれば、様々なサイズのコンテンツを複数ページに亘る配置領域に配置する場合に、出力ページ数がなるべく小さくなり、且つ、コンテンツがページで分断されないようなレイアウトを自動的に生成できる。
また、本第2のレイアウト生成方法によれば、最密充填レイアウト生成により、新しいブロックの形成時には、その時点で未配置のコンテンツの中で高さが最大のコンテンツが当該ブロックの左端に配置されることになる。そのため、ブロックは、下方に配置されるに従い高さが単調に減少(または非増加)する。したがって、ブロックがページを跨いで配置されてしまった場合、直下のブロックから順次、ブロックの高さを調べていき、ページ内に収まる高さのブロックがあれば、そのブロックとページを跨ぐブロックとを入れ替えて再配置を行うことで、簡易に効率的なページレイアウトを生成することができる。
<第3のレイアウト生成方法>
次に、第3のレイアウト生成方法について説明する。本第3のレイアウト生成方法では、上述した第1または第2のレイアウト生成方法で生成された最終的なページレイアウトに対して、さらに調整を加えることで、より好ましいページレイアウトを生成する。この場合、ブロック自体の位置を調整する方法と、ブロック内でコンテンツの位置を調整する方法とが考えられる。
先ず、第1の方法として、ブロック自体の位置をページ内で調整する方法について説明する。すなわち、上述した第1および第2のレイアウト生成方法により生成されるページレイアウトでは、最終ページに対して1つのブロックのみが配置され、そのページの残り全ての領域が空白という事態が起こり得る。そこで、上述した第1または第2のレイアウト生成方法で説明した方法でページレイアウトを生成し、全ページ数が決定された後に、ブロック自体の位置をページ内およびページ間で調整する。
図11は、ブロック自体の位置を調整する処理を示す一例のフローチャートである。この図11のフローチャートにおける各処理は、CPU101により、本第3のレイアウト生成方法による画像処理プログラムに従い実行される。先ず、ステップS40で、図4を用いて説明したようにして最密充填レイアウトを取得し、次のステップS41で、最密充填レイアウトから初期ページレイアウトを生成する。この初期ページレイアウトでは、既に説明したように、ページを跨いで配置されるブロックが存在する可能性がある。次のステップS42で、初期ページレイアウトに基づきブロック単位で再配置を行い、ページを跨ぐブロックが全ページに亘って存在しないようにする。ステップS42での処理は、図8または図10を用いて説明した手順に従い、ページを跨ぐブロックを次のページの先頭に移動させたり、他のブロックとの入れ替えを行うことで、ブロックがページを跨いで配置される事態を解消する。
ステップS42までの処理により全ページのレイアウトが決定し、レイアウトに必要な全ページ数が確定すると、処理はステップS43に移行される。ステップS43では、ブロックの位置調整を行う。
ステップS43での処理として、例えばページ下部の空白部分のページ間でのバラツキが小さくなるように、ブロックを再配置することが考えられる。一例として、ステップS42の処理が終了した時点で、全ブロックの高さの合計をページ数で除して、1ページに配置されるブロックの合計高さの平均値havgを算出する。そして、最終ページに配置されるブロックの合計高さが平均値havgに近くなるように、各ページから1つずつ、ブロックを最終ページに移動させる。
また、ページ内でブロックの再配置を行ってページ毎のレイアウトを調整することもできる。例えば、ページ内の下部に生じた空白を、ブロック間のマージンとして割り当てることが考えられる。一例として、下記の式(6)に例示されるように、各ページにおいて、下部の空白領域の高さMをブロック数n−1で除して、ブロック間に対して等分にブロック間マージンBMを割り当てる。
BM=M/(n−1) …(6)
勿論、このページ内でのブロック再配置と、上述したページ間でのブロックの移動とを組み合わせて実行してもよい。すなわち、ページ下部の空白部分のページ間でのバラツキが小さくなるようにブロックを再配置した後に、ページ内でのブロックの再配置を行い空白部分を均一化する。
次に、第2の方法として、ブロック内でコンテンツの位置を調整する方法について説明する。ブロック内でコンテンツを移動させても、ブロック自体を移動させない限りはページ数が増加することはない。そこで、ブロック内で例えば水平方向にコンテンツを移動させて、左右のバランスを調整する方法が考えられる。このとき、ブロック内に配置されるコンテンツのサイズや形状(アスペクト比)などを考慮してコンテンツの移動を行うと好ましい。
図12は、ブロック内でコンテンツの位置を調整する処理を示す一例のフローチャートである。この図12のフローチャートにおける各処理は、CPU101により、本第3の実施形態による画像処理プログラムに従い実行される。先ず、ステップS50で、図4を用いて説明したようにして最密充填レイアウトを取得し、次のステップS51で、最密充填レイアウトから初期ページレイアウトを生成する。この初期ページレイアウトでは、既に説明したように、ページを跨いで配置されるブロックが存在する可能性がある。次のステップS52で、初期ページレイアウトに基づきブロック単位で再配置を行い、ページを跨ぐブロックが全ページに亘って存在しないようにする。ステップS52での処理は、図8または図10を用いて説明した手順に従い、ページを跨ぐブロックを次のページの先頭に移動させたり、他のブロックとの入れ替えを行うことで、ブロックがページを跨いで配置される事態を解消する。
ステップS52までの処理により全ページのレイアウトが決定すると、処理がステップS53に移行される。ステップS53では、ブロック内でのコンテンツの位置調整を行う。
ステップS53において、ブロックの視覚的な中心や、コンテンツの視覚的な中心は、例えば「Steven J.Harrington, J.Femando Naveda, Rhys Price Jones, Paul Roetling, Nishant Thakker, "Aesthetic Measures for Automated Document Layout"」(非特許文献2)に示される方法で算出可能である。例えば、ブロック内コンテンツ全体の水平方向の位置は下記の式(7)〜式(9)で、ブロック内コンテンツの左右のバランス度は下記の式(10)でそれぞれ算出することができる。
なお、上述の式(7)〜式(10)で用いられる各変数の意味は、次の通りである。
(xi,yi):コンテンツiのxy座標
(xc,yc):ブロックの視覚的な中心
Mi:コンテンツの視覚的中心
(dx,dy):ブロックの視覚的中心からの最大距離
dh:ブロックの高さ
また、ブロック内ではコンテンツを自由に移動させることができるため、例えば、ステップS53において、ブロック内のコンテンツの中心位置がブロックの中央に近付くように、コンテンツの位置調整を行うこともできる。ブロック内コンテンツの中心位置は例えば下記の式(11)および式(12)により、バランス度は式(13)により、それぞれ算出することができる。
ブロックおよびコンテンツのレイアウト調整方法は、上述の例に限定されるものではない。例えば、上述した非特許文献2に記載されている幾つかの指標を用いてブロック間のコンテンツの配置を調整することもできる。
上述した最密充填レイアウトでは、コンテンツは基本的に左詰め(または右詰め)で配置される。一方、レイアウトとしては、幅方向のバランスがとれた方が一般的に見やすいとされている。本第3のレイアウト生成方法によれば、ブロック内部でコンテンツの左右のバランスを調整する事で、レイアウトの効率性は保持しつつ、より美しいレイアウトを実現することができる。
また、上述した最密充填レイアウトでは、ブロック単位で見ると、基本的にコンテンツが左上詰め(または右上詰め)で配置される。一方、レイアウトとしては、コンテンツの重心がブロックの中央付近に位置していた方がバランスが良く、一般的に見やすいとされている。本第3のレイアウト生成方法によれば、ブロック内部でコンテンツの重心位置を調整することで、レイアウトの効率性を保持しつつ、より美しいレイアウトを実現することができる。
<第1の実施形態>
次に、本発明の第1の実施形態について説明する。本第1の実施形態では、予めページへのレイアウトが生成されたコンテンツについて、当該コンテンツを解析した解析情報を取得する。そして、コンテンツのレイアウト情報と解析情報とに基づき、レイアウト上のコンテンツに対して所定の加工処理を施して、出力データを生成する。
ここで、コンテンツのレイアウト生成は、上述した、最密充填レイアウトを利用した第1、第2および第3のレイアウト生成方法を用いて行うことができる。これに限らず、画像処理装置100に設けられた図示されない表示部および入力部からなるGUI(Graphical User Interface)を用いて、ユーザが手動でレイアウトを指示してもよい。例えば、表示部にページ領域と取得されたコンテンツのサムネイル画像を表示させ、ユーザがタッチパネルやマウスなどのポインティングデバイスを用いて当該サムネイル画像をページ領域に移動させることで、レイアウトを生成することが考えられる。
さらに、この手動によるレイアウト生成方法と、上述した第1、第2および第3のレイアウト生成方法とを組み合わせて、レイアウトを生成することも考えられる。例えば、第1、第2および第3のレイアウト生成方法で生成されたレイアウトに対して、ユーザが手動で変更を加える。変更が加えられたレイアウトに対して、さらに第1、第2および第3のレイアウト生成方法を利用してレイアウトの調整を行うことも可能である。
図13は、本第1の実施形態による画像処理装置100の機能を示す一例の機能ブロック図である。この画像処理装置100は、図1を用いて説明したCPU101上で動作する画像処理プログラムにより実現されるものである。例えば、画像処理装置100の各部は、当該画像処理プログラムにおけるモジュールとして実現される。
図13において、画像処理装置100は、レイアウト情報取得部401、解析情報取得部402、加工処理部403、出力データ生成部404、レイアウト生成部405およびコンテンツ取得部406を有する。
コンテンツ取得部406は、画像入力装置11から出力されたコンテンツを取得する。レイアウト生成部405は、上述したレイアウト生成方法を用い、コンテンツ取得部406により取得されたコンテンツをページに対して配置し、レイアウト情報を生成する。レイアウト情報取得部401は、レイアウト生成部405で生成されたレイアウト情報を取得する。解析情報取得部402は、画像入力装置11からコンテンツと共に出力される解析情報を取得する。
加工処理部403は、レイアウト情報取得部401および解析情報取得部402でそれぞれ取得されたレイアウト情報および解析情報に基づき、レイアウト生成部405でページに配置されたコンテンツに対して加工処理を施す。出力データ生成部404は、加工処理部403で加工処理されたコンテンツと、レイアウト生成部405で生成されたレイアウト情報とに基づき、画像形成装置12に対する出力データを生成する。画像形成装置12がプリンタ装置であれば、出力データは、例えばPDL(Page Description Language)で記述されたデータとなる。
<第1の実施形態による処理>
図14は、本第1の実施形態による基本的なデータ生成処理を示す一例のフローチャートである。先ず、ステップS100で、コンテンツ取得部406が画像入力装置11から出力されたコンテンツを取得する。取得されたコンテンツに対し、例えばレイアウト生成部405でレイアウト情報が生成される。次のステップS101で、解析情報取得部402が、画像入力装置11から出力された、当該コンテンツの解析情報を取得する。次のステップS102で、レイアウト情報取得部401が、レイアウト生成部405で生成されたレイアウト情報を取得する。次のステップS103で、加工処理部403が、解析情報取得部402で取得された解析情報と、レイアウト情報取得部401で取得されたレイアウト情報とに基づき、コンテンツに対して適切な加工処理を施す。そして、ステップS104で、出力データ生成部404が、レイアウト情報とコンテンツとに基づき出力データを生成する。
ここで、ステップS103で加工処理部403により行われる加工処理は、例えば、コンテンツの拡大/縮小やトリミング、特にコンテンツが画像の場合には色変換や画像補正などの画像処理である。この加工処理部403で行われる加工処理の詳細は、後述する。
なお、上述では、コンテンツの解析を画像入力装置11が行うように説明したが、これはこの例に限定されない。例えば、コンテンツの解析を、この画像処理装置100において行ってもよい。
図15−1〜図15−3は、コンテンツの例を示す。ここでいうコンテンツとは、新しく文書を作成する時に素材とするデータ全般を指す。例えば、コンピュータなどにローカルに保存されているデータや、新聞や雑誌などの紙原稿をスキャンして取得される画像などである。
図15−1は、コンピュータのフォルダ10に格納されるデータ11A、11Bの例を示す。図15−2は、新聞20をスキャンおよびトリミングして得られた画像21Aおよび21Bの例を示す。また、図15−3は、雑誌30のあるページをスキャンおよびトリミングして得られた画像31Aおよび31Bの例を示す。この例では、画像31Aおよび31Bは、テキストから構成されている。また、これら以外にも、例えばWebデータの一部をコピーしたデータもコンテンツに含まれる。
これらコンテンツは、ユーザが手動で指定してもよいが、画像に対する領域分割処理によってコンテンツを抽出してもよい。領域分割の技術としては、射影を利用する方法、黒画素の統合による方法、空白セパレータと射影を利用する方法等、様々な手法が提案されており、これら従来より知られている領域分割方法を適用可能である。
例えば、特許第3187895号公報には、文書画像から文字列を含む複数の小領域を抽出し、該複数の小領域から空白部または罫線を検出し、該検出された空白部または罫線を基に、1段組、複数段組、自由段組を含む段組種類を判別し、該段組種類に応じて該空白部を用いて前記小領域を統合し、前記文書画像を所定の領域に分割する文書画像の領域分割方法が提案されている。
本第1の実施形態によれば、コンテンツを解析した解析結果と、コンテンツのレイアウトを示すレイアウト情報とに基づき各コンテンツを画像処理により加工するようにしている。そのため、各コンテンツに対して、コンテンツのレイアウトを考慮した適切な加工処理を施すことができる。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。本第2の実施形態は、レイアウトされるコンテンツのうち類似度の高いコンテンツを判定し、この類似度の高いコンテンツに対して画像処理により適切な加工を施すようにしている。
すなわち、性質の似通ったコンテンツがレイアウト上で近くに配置されている場合、元データのサイズや色調が異なっていても適切に加工してコンテンツの類似性が容易に視認できるようにする。例えばコンテンツとしてスキャンデータの一部を利用する場合など、類似コンテンツがスキャナ設定や性能の違いによりサイズや色調の異なる画像として蓄積されるケースが起こり得る。その際、手動でサイズを合わせたり画像処理を行うとユーザの作業負荷は大きくなる。本第2の実施形態では、これら一連の作業を自動化することで、ユーザの作業負荷が大きく軽減される。
図16は、本第2の実施形態に適用可能な画像処理装置100の機能を示す一例の機能ブロック図である。なお、この図16において、上述した図13と共通する部分には同一の符号を付し、詳細な説明を省略する。図16に示す画像処理装置100は、上述した図13で説明した画像処理装置100に対して類似度判定部410が追加されている。類似度判定部410は、解析情報取得部402で取得された解析情報と、レイアウト情報取得部401で取得されたレイアウト情報とに基づき、第1のコンテンツに対する第2のコンテンツの類似度を求める。
図17は、本第2の実施形態に係る一例の処理を示すフローチャートである。この図17のフローチャートによる処理は、上述した図14におけるステップS103の処理を拡張した処理であり、類似性の高いコンテンツを判定し、適切な加工処理を施す。
まず、ステップS110で、コンテンツ取得部406が未処理コンテンツAを取得すると共に、解析情報取得部402が当該未処理コンテンツAの解析情報を取得する。次のステップS111で、解析情報取得部402がその他の未処理コンテンツ(コンテンツBとする)の解析情報を取得する。次のステップS112で、類似度判定部410が、取得された解析情報に基づきコンテンツBがコンテンツAと類似しているか否かを判定する。何を以て類似しているか否かを判断するかについては、後述する。若し、コンテンツBがコンテンツAと類似していないと判定されたら、処理はステップS115に移行される。
一方、ステップS112で、コンテンツBがコンテンツAに対して類似していると判定されたら、処理はステップS113に移行される。ステップS113では、類似度判定部410は、レイアウト情報取得部401で取得されたコンテンツAおよびコンテンツBのレイアウト情報に基づき、コンテンツBのコンテンツAに対する配置距離が閾値α未満であるか否かを判定する。若し、配置距離が閾値α以上であると判定されたら、処理はステップS115に移行される。
一方、ステップS113で、配置距離が閾値α未満であると判定されたら、処理はステップS114に移行される。ステップS114では、加工処理部403がコンテンツBに対して適切な加工処理を施す。この加工処理は、コンテンツBのコンテンツAに対する視覚的な類似度を高めるような画像処理である。
コンテンツの加工処理が行われると、処理はステップS115に移行され、コンテンツA以外の全ての未処理コンテンツに対する処理が行われたか否かが判定される。若し、未だ処理を行っていない未処理コンテンツがあると判定されたら、処理はステップS111に戻され、次の未処理コンテンツに対してステップS111〜ステップS114の処理が行われる。
一方、ステップS115で、未処理コンテンツA以外の全ての未処理コンテンツに対してステップS111〜ステップS114の処理が行われたと判定されたら、処理はステップS116に移行され、未処理コンテンツAを処理済みコンテンツAとして、処理を終了する。
なお、上述した未処理コンテンツAに対する処理は、予め重要度の高いコンテンツとして指定された所定のコンテンツのみに実施してもよいし、全てのコンテンツに実施してもよい。
ここで、上述のステップS111で取得される解析情報は、例えばコンテンツの属性情報である。すなわち、類似度を判定するための手段の1つとして、コンテンツの属性が一致しているか否かを用いる。この場合、コンテンツAの属性とコンテンツBの属性とが一致している場合に、類似しているとする。これに限らず、2つの解析情報の差分を数値化して類似度とし、数値化された類似度に対して閾値判定することも考えられる。
生成されたデータを文書として利用するケースを考えると、属性が一致するコンテンツ同士が文書上で互いに隣接して配置されている場合、コンテンツ内のオブジェクトのサイズや背景色などにばらつきがあると、視認性や可読性に影響を及ぼす。コンテンツの元となるデータのサイズや色調が異なっている場合に、コンテンツに対して類似度を高めるような加工処理を適切に施すことで、コンテンツが新しく生成される文書上で容易に視認可能となり、統一感のある文書を生成することができる。
ここでいうコンテンツの属性とは、概略的は、例えばテキスト、自然画像、人工画像といった類別情報を示す。より詳細には、テキストであれば、さらに、帳票、一般文書、記事などのテキスト種類を属性とすることが考えられる。また、自然画像であれば、人物、植物、建築物、風景、その他の物体などの、表現対象の種類を属性とすることが考えられる。
これらコンテンツを解析して属性を判定する方法として、例えば、特開2007−166541号公報に開示される方法を適用することができる。特開2007−166541号公報には、画像上に混在する文字、写真、表、線画などをそれぞれ解析し、コンテンツの属性に合わせた画像処理を施したり出力形式にあったデータに変換する技術が開示されており、画像中の黒画素塊、白画素塊の集合を抽出し、その形状、大きさ、集合状態などの特徴量から文字、写真、図形、表、枠、線画といった属性、およびその領域を抽出する方法が開示されている。
ステップS111で取得される解析情報の別の例として、コンテンツ内レイアウトが挙げられる。1つのコンテンツ内に複数の小コンテンツが含まれる場合、その小コンテンツの属性と相対位置関係の組み合わせによって類似しているか否かを判定することができる。レイアウト構成を把握し、その類似度を評価する方法として、例えば特開2007−310503号公報に開示される方法を適用することができる。特開2007−310503号公報には、文書中の非テキスト情報の領域、非テキスト情報、またはその構成要素を高精度に検索するための方法として、レイアウト解析により文書中の非テキスト情報領域とその構成要素である個々の非テキスト情報との関係を推定する方法が開示されている。
ステップS114における加工処理は、元のデータにおいて類似と判定される複数のコンテンツが、レイアウト上でも容易にその類似性を知覚できるようにすることを目的とする。この場合、何を以て類似と見做すかによって、適用される加工処理が適応的に判断されるべきである。以下、その一例を示す。
コンテンツをレイアウトしたデータに基づいて文書を作成して利用するケースを想定した場合、類似コンテンツの統一感に影響を及ぼす要因が幾つか考えられる。第1の要因として、コンテンツ内のオブジェクトのサイズが考えられる。
コンテンツからオブジェクトを抽出し、その情報を取得する方法としては、従来より知られるいかなる方法を利用してもよく、例えば特開2008−176764号公報に開示される方法を用いることができる。特開2008−176764号公報によれば、画像からオブジェクトを抽出した上で、所定の判定ルールに基づいてオブジェクトのレイアウト中における意味を判定し、オブジェクト情報を取得することができる。
ステップS114で、加工処理部403は、抽出されたオブジェクト情報に基づき、コンテンツAのオブジェクトサイズに対してコンテンツBのオブジェクトサイズが近似するように、コンテンツBを拡大/縮小する加工処理を施す。
一例として、オブジェクトとしてそれぞれ「家」を撮影した画像をコンテンツA、Bとし、それらコンテンツA、Bを1つのページ内に集めて文書を作成する場合について考える。この場合、撮影条件の違いによって、コンテンツA内の「家」の画像によるオブジェクトと、コンテンツB内の「家」の画像によるオブジェクトで、オブジェクトのサイズにバラツキが生じる可能性がある。オブジェクトのサイズにバラツキがあると、「家」を撮影したコンテンツA、Bを、コンテンツ自体のサイズを合わせて隣接させて配置すると、これらコンテンツA、B内のオブジェクトのサイズを比較したい場合に不便である。そこで、オブジェクトのサイズを合わせるように、コンテンツに対して拡大/縮小処理を施すことで、文書としての利用価値を高めることができる。
オブジェクトのサイズは、予め定められたレイアウトにおける相対的な位置関係を保ち、且つ、レイアウト上でコンテンツ同士が重複しないように拡大/縮小することが好ましい。例えば、対象となる2つのコンテンツにおいて、より小さいサイズのオブジェクトに合わせて、コンテンツの縮小を行うことが考えられる。このとき、例えば、特開2007−133780号公報に開示されている方法により、コンテンツデータの量に基づいて縮小限界サイズを設定し、変倍処理の閾値として用いてもよい。
コンテンツが類似しているか否かを、上述したコンテンツ内レイアウトに基づき判定する場合にも、コンテンツ同士のサイズの違いが類似コンテンツの統一感に影響を及ぼす可能性がある。一例として、1つのコンテンツ内の右半分にグラフ、左半分にテキストのように、2つのコンテンツがレイアウトされている場合について考える。この場合、2つのコンテンツのコンテンツ内レイアウトを比較し、類似しているか否かを判定する。
その際、例えばコンテンツAに対して縦横のサイズが2倍のコンテンツBが隣接して配置されている場合、コンテンツAが2つの異なるコンテンツ(グラフおよびテキスト)から構成されているかのような錯覚を招く可能性がある。つまり、コンテンツ内レイアウトが一致するコンテンツであっても、コンテンツのサイズが大きく異なると、類似性の視認が困難になる可能性がある。
そこで、コンテンツ内レイアウト情報が一致するか否かで、コンテンツが類似しているか否かを判定し、レイアウトの一致(類似)したコンテンツ同士を、そのサイズを一致させて文書上へ配置することで、各コンテンツの類似性の視認を容易とすることができる。
類似コンテンツの統一感に影響を及ぼす第2の要因として、背景色の統一感が考えられる。背景が有色(白色以外)のページをスキャナから読み込むと、スキャン設定や機種による違いによって、背景の「見え」に違いが生じる場合がある。背景の「見え」が異なる複数のコンテンツを1の文書上で並べて配置すると、色調の違いが目立ち、不自然な印象を与える可能性がある。このような場合、ステップS114で、加工処理部403により背景の「見え」が類似するように加工処理を施すことで、ユーザの意図に沿ったコンテンツデータを生成することが可能となる。
「見え」の違いを招く要因は様々に考えられる。例えば背景の輝度ムラに起因して「見え」の違いが生じた場合、この輝度ムラを補正することによって「見え」の違いが改善される。その場合、例えば、特開2002−117400号公報に開示されるような処理を用いることができる。特開2002−117400号公報によれば、画像の背景色を検出し、背景画素の輝度が均一になるように入力画像の輝度を補正することで、カラー画像を色ムラの無い自然な画像に補正することができる。
また、特許第4169674号公報には、多様な画像入力機器から入力されてテキストと写真とが混在するデジタル画像において、テキストと写真との割合や背景の色などのコンテンツに応じて最適な階調補正を行うための方法が開示されている。例えばこの特許第4169674号公報に開示される方法を用いて、類似したコンテンツから最適な階調補正方法を決定して補正処理を行ってもよい。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。本第3の実施形態は、コンテンツの属性がテキストの場合に、類似コンテンツ間のフォントサイズが等しくなるようにコンテンツのサイズを調整する例である。類似コンテンツの属性がテキストである場合、コンテンツ内に含まれるフォントサイズが互いに一致するように両コンテンツを変倍することで類似性がより明確になり、視認性を向上させる事ができる。なお、本第3の実施形態では、図16を用いて説明した画像処理装置100の構成をそのまま適用できる。
図18は、本第3の実施形態に係る一例の処理を示すフローチャートである。この図18のフローチャートによる処理は、上述した図14におけるステップS103の処理を拡張した処理であり、類似度の高いテキストコンテンツを判定し、適切な加工処理を施す。
先ず、ステップS120で、コンテンツ取得部406が、テキストによるコンテンツA(以下、テキストコンテンツA)を取得する。例えば、コンテンツ取得部406は、解析情報取得部402で解析情報として取得されたコンテンツの属性に基づき、テキストコンテンツを判別し、取得する。
次のステップS121で、類似度判定部410は、レイアウト情報に基づきテキストコンテンツAに対する配置距離が第1の閾値以下であるコンテンツの中で、当該テキストコンテンツAに類似しているテキストコンテンツBが存在するか否かを判定する。若し、存在しないと判定されたら、一連の処理が終了される。
一方、テキストコンテンツAに対する配置距離が閾値α以下であって、当該テキストコンテンツAに類似しているテキストコンテンツBが存在すると判定されたら、処理はステップS122に移行される。ステップS122では、解析情報取得部402がテキストコンテンツAおよびテキストコンテンツBそれぞれのフォントサイズを解析情報として取得する。
類似度判定部410は、ステップS122で取得されたテキストコンテンツAおよびテキストコンテンツBそれぞれのフォントサイズの差分が閾値βを超えているか否かを判定する。若し、超えていないと判定されたら、一連の処理が終了される。
一方、当該フォントサイズの差分が閾値βを超えていると判定されたら、処理はステップS124に移行される。ステップS124では、加工処理部403が、テキストコンテンツBのフォントサイズをテキストコンテンツAのフォントサイズに近付けるように、テキストコンテンツBに対して拡大/縮小処理を施す。
なお、上述では、フォントサイズを合わせる処理について説明したが、これはこの例に限定されない。すなわち、コンテンツの視覚的な類似性を強調するために、たとえはフォントタイプといった他のフォント情報を一致させるよう加工処理を施してもよい。
また、テキストコンテンツに関しては、文書構造に基づきコンテンツが類似しているか否かを判定することが有効であると考えられる。コンテンツの属性がテキストである場合に、文書構造を比較してコンテンツが類似しているか否かを判定する。必要に応じて、例えば類似の度合が所定以下の場合に、比較対象のコンテンツに対して類似度を向上させる加工処理を施す。これにより、同様の構造を有するコンテンツを隣接させて配したレイアウト情報上で、2つのコンテンツの類似性を容易に視認可能となる。
テキストコンテンツの文書構造を解析してコンテンツが類似しているか否かを判定する方法は、従来より知られているいかなる方法を用いてもよい。上述したテキストコンテンツが文書画像の場合、例えば特開2004−348706号公報に開示される技術を適用させることができる。すなわち、特開2004−348706号公報によれば、オリジナル文書を属性毎に複数のブロックに分割し、各ブロックの位置、サイズ、属性を含むレイアウト情報をオリジナル文書のインデックス情報として保存する。そして、入力画像を属性毎に複数のブロックに分割し、入力画像とオリジナル文書とで、ブロックの位置、サイズ、属性を比較してレイアウトの類似率を求める。
<第4の実施の形態>
次に、本発明の第4の実施形態について説明する。複数ページに亘るレイアウトの場合、レイアウトにおけるコンテンツ間の配置距離ではなく、複数のコンテンツが同一ページ内に配置されるか否かが、視認性に大きな影響を及ぼすと考えられる。本第4の実施形態は、類似しているコンテンツを同一ページ内に配置する例である。なお、本第4の実施形態では、図16を用いて説明した画像処理装置100の構成をそのまま適用できる。
図19は、本第4の実施形態による一例のレイアウト生成処理を示すフローチャートである。この図19のフローチャートによる処理は、上述した図14におけるステップS103の処理を拡張した処理であり、類似度の高いコンテンツを判定し、適切な加工処理を施す。
まず、ステップS130で、コンテンツ取得部406が未処理コンテンツAを取得すると共に、解析情報取得部402が当該未処理コンテンツAの解析情報を取得する。次のステップS131で、解析情報取得部402がその他の未処理コンテンツ(コンテンツBとする)の解析情報を取得する。次のステップS132で、類似度判定部410が、取得された解析情報に基づきコンテンツBがコンテンツAと類似しているか否かを判定する。類似しているか否かの判定基準については、後述する。若し、コンテンツBがコンテンツAと類似していないと判定されたら、処理はステップS135に移行される。
一方、ステップS132で、コンテンツBがコンテンツAに対して類似していると判定されたら、処理はステップS133に移行される。ステップS133では、類似度判定部410は、レイアウト情報取得部401で取得されたコンテンツAおよびコンテンツBのレイアウト情報に基づき、コンテンツBがコンテンツAと同一のページに属するか否かを判定する。若し、同一のページに属しないと判定されたら、処理はステップS135に移行される。
一方、ステップS133で、コンテンツBがコンテンツAと同一のページに属すると判定されたら、処理はステップS134に移行される。ステップS134では、加工処理部403がコンテンツBに対して適切な加工処理を施す。この加工処理は、コンテンツBのコンテンツAに対する視覚的な類似度を高めるような画像処理である。
コンテンツの加工処理が行われると、処理はステップS135に移行され、コンテンツA以外の全ての未処理コンテンツに対する処理が行われたか否かが判定される。若し、未だ処理を行っていない未処理コンテンツがあると判定されたら、処理はステップS131に戻され、次の未処理コンテンツに対してステップS131〜ステップS134の処理が行われる。
一方、ステップS135で、未処理コンテンツA以外の全ての未処理コンテンツに対してステップS131〜ステップS134の処理が行われたと判定されたら、処理はステップS136に移行され、未処理コンテンツAが処理済みコンテンツAとして、処理を終了する。
1ページ内に配置された類似コンテンツは、同時に視界に入る領域であるため、その出力データ上で類似性を保持していることが文書全体の理解に大きく貢献すると考えられる。一方、類似コンテンツが配置されたページが異なる場合は特に考慮する必要性が高くないと考えられる。このように、類似するコンテンツが同一ページ内に配置された場合だけを処理対象とすることで、無駄な加工処理を省くことができる。
なお、上述では、第1〜第4の実施形態による処理がそれぞれ独立的に行われるように説明したが、これはこの例に限定されず、各実施形態による処理は互いに組み合わせて実行することができる。
<他の実施形態>
上述した各実施形態による画像処理装置100で実行される画像処理プログラムは、インストール可能な形式または実行可能な形式のファイルでフレキシブルディスク(FD)、CD(Compact Disk)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、上述した各実施形態による画像処理装置100で実行される画像処理プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。また、上述した各実施形態による画像処理装置100で実行される画像処理プログラムをインターネットなどのネットワーク経由で提供または配布するように構成しても良い。
また、上述した各実施形態による画像処理装置100で実行される画像処理プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
上述した各実施形態による画像処理装置100で実行される画像処理プログラムは、図13または図16を用いて説明した画像処理装置100の各部をそれぞれ生成するモジュールを含むモジュール構成となっており、実際のハードウェアとしてはCPU101(プロセッサ)が例えばHDD105から画像処理プログラムを読み出して実行することにより、上述の各モジュールが主記憶装置(RAM104)上にロードされ、各モジュールが主記憶装置上に生成されるようになっている。