説明

画像処理装置およびプログラム

【課題】表領域ではない領域が表領域として判定されることを少なくする。
【解決手段】コンピュータ装置においては、構造特定部204が、図形特定部201の特定した図形部分において矩形の升目部分が複数行または複数列で並んだ構造を特定する。次に、リスト作成部205が、構造特定部204で特定された構造を表すリストを作成する。コンピュータ装置は、矩形の面積が特定して構造において占める割合を求め、求めた割合を用いて図形部分が表であるか否か判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置およびプログラムに関する。
【背景技術】
【0002】
画像中の表領域を認識する装置としては、例えば、特許文献1に開示された装置がある。この装置は、画像からセル領域の候補領域を特定し、複数の候補領域について表を構成することが可能な組み合わせ候補を選定する。そして、組み合わせの候補毎に表を構成する可能性の度合いを示す評価値を算出し、算出した度合いが最大の候補を選択して表を構成する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−213255号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、表領域ではない領域が表領域として判定されることを少なくする技術を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明の請求項1に係る画像処理装置は、画像を二値で表した二値化画像を取得する取得手段と、前記取得手段で取得された二値化画像中の図形部分を特定する図形特定手段と、前記図形特定手段で特定された部分にある線分を特定する線分特定手段と、前記線分特定手段で特定された各線分の交差関係を判定する交差判定手段と、前記線分特定手段で特定された線分と、前記交差判定手段で判定された交差関係とにより、矩形が複数行または複数列で並んだセル構造と、該セル構造を構成せずに独立した独立矩形を特定する構造特定手段と、前記構造特定手段で特定された前記独立矩形に基づいて、前記前記図形特定手段で特定された図形部分が表領域であるか否かを判定する表領域判定手段とを有する。
【0006】
本発明の請求項2に係る画像処理装置は、請求項1に記載の画像処理装置において、前記表領域判定手段は、前記構造特定手段で特定されたセル構造を構成する矩形のうち、前記構造特定手段で特定された独立矩形が内側にある矩形以外の矩形について、該矩形の面積が前記セル構造の面積において占める割合を算定し、該算定した割合に基づいて、前記前記図形特定手段で特定された図形部分が表領域であるか否かを判定することを特徴とする。
【0007】
本発明の請求項3に係る画像処理装置は、請求項1または請求項2に記載の画像処理装置において、前記構造特定手段は、特定したセル構造を構成する矩形の内部についてさらに前記セル構造を特定することを特徴とする。
【0008】
本発明の請求項4に係る画像処理装置は、請求項1乃至請求項3のいずれかに記載の画像処理装置において、前記セル構造は、1行n列またはn行1列(n≧2)で矩形が並んだ構造であることを特徴とする。
【0009】
本発明の請求項5に係る画像処理装置は、請求項3または請求項4に記載の画像処理装置において、前記構造特定手段は、特定したセル構造を構成する矩形について、該矩形の角部の内側にある前記セル構造を特定することを特徴とする。
【0010】
本発明の請求項6に係るプログラムは、画像を二値で表した二値化画像を取得する取得手段と、前記取得手段で取得された二値化画像中の図形部分を特定する図形特定手段と、前記図形特定手段で特定された部分にある線分を特定する線分特定手段と、前記線分特定手段で特定された各線分の交差関係を判定する交差判定手段と、前記線分特定手段で特定された線分と、前記交差判定手段で判定された交差関係とにより、矩形が複数行または複数列で並んだセル構造と、該セル構造を構成せずに独立した独立矩形を特定する構造特定手段と、前記構造特定手段で特定された前記独立矩形に基づいて、前記前記図形特定手段で特定された図形部分が表領域であるか否かを判定する表領域判定手段として機能させるためのプログラムである。
【発明の効果】
【0011】
本発明の請求項1、6に係る発明によれば、本発明の構成を有さないものと比較して、表領域ではない領域が表領域として判定されることを少なくすることができる。
本発明の請求項2に係る発明によれば、本発明の構成を有さないものと比較して、表領域ではない領域が表領域として判定されることを少なくすることができる。
本発明の請求項3に係る発明によれば、特定したセル構造に含まれる矩形の内部についてさらにセル構造を特定しないものと比較して、表領域ではない領域が表領域として判定されることを少なくすることができる。
本発明の請求項4に係る発明によれば、1行n列またはn行1列(n≧2)で矩形が並んだ構造をセル構造と特定しないものと比較して、表領域ではない領域が表領域として判定されることを少なくすることができる。
本発明の請求項5に係る発明によれば、特定したセル構造に含まれる矩形の角部の内側にセル構造がある図形を、表領域として判定することができる。
【図面の簡単な説明】
【0012】
【図1】コンピュータ装置1のハードウェア構成を示したブロック図。
【図2】コンピュータ装置1において実現する機能ブロックを示した図。
【図3】CPU102が行う処理の流れを示したフローチャート。
【図4】二値化画像の一例を示した図。
【図5】線分テーブルTB10のフォーマットを例示した図。
【図6】リスト300の内容を示した図。
【図7】実施形態の動作を説明するための図。
【図8】実施形態の動作を説明するための図。
【図9】実施形態の動作を説明するための図。
【図10】実施形態の動作を説明するための図。
【図11】二値化画像の一例を示した図。
【図12】実施形態の動作を説明するための図。
【図13】リスト300の内容を示した図。
【図14】二値化画像の一例を示した図。
【図15】リスト300の内容を示した図。
【図16】二値化画像の一例を示した図。
【図17】リスト300の内容を示した図。
【図18】二値化画像の一例を示した図。
【図19】リスト300の内容を示した図。
【発明を実施するための形態】
【0013】
[実施形態]
(実施形態の構成)
図1は、本発明の一実施形態に係るコンピュータ装置1のハードウェア構成を示したブロック図である。本実施形態においてコンピュータ装置1は、所謂PC(Personal Computer)であり、図1に示したように、各部は、バス101に接続され、このバス101を介して各部間で情報のやり取りを行う。
【0014】
表示部107は、画像を表示する表示装置として液晶ディスプレイを備えており、CPU102の制御の下、コンピュータ装置1を操作するためのメニュー画面や各種メッセージ、画像等を表示する。なお、表示装置は液晶ディスプレイに限定されるものではなく、CRT(Cathode Ray Tube)やEL(electroluminescence)を用いたディスプレイなど他の表示装置であってもよい。
操作部106は、コンピュータ装置1を操作するためのキーボードやマウスを備えている。ユーザがこのキーボードやマウスを操作することにより、コンピュータ装置1に対する各種指示の入力や各種設定が行われる。
画像取得部108は、スキャナが接続されるインターフェースであり、紙面の画像を読み取り、読み取った画像の画像データを生成するスキャナと通信を行い、スキャナから画像データを取得する。
【0015】
記憶部105はハードディスク装置を具備しており、コンピュータ装置1にオペレーティングシステムの機能を実現させるプログラムや、画像データが示す画像に画像処理を施す画像処理プログラム、スキャナから取得した画像データなどを記憶する。
ROM(Read Only Memory)103は、IPL(Initial Program Loader)を記憶しており、CPU(Central Processing Unit)102は、ROM103に記憶されているIPLを読み出して実行する。IPLが実行されると、記憶部105からオペレーティングシステムの機能を実現させるプログラムが読み出されて実行される。また、オペレーティングシステムの機能を実現させるプログラムが実行されると、CPU102により画像処理プログラムを実行することが可能となる。そして、CPU102により画像処理プログラムが実行されると、コンピュータ装置1は、画像データが示す画像を処理する画像処理装置として機能し、画像中にある図形が表であるか否か判定し、表の領域を特定する機能が実現する。
【0016】
図2は、画像処理プログラムをCPU102が実行したことにより実現する機能を示したブロック図である。
二値化部200は、画像取得部108で取得された画像データが表す画像を白黒の二値の画像に二値化するブロックであり、二値化された画像(以下、二値化画像と称する)を得る取得手段の一例である。本実施形態においては、二値化画像は、画素の値を1ビットで表しており、黒の画素を「1」、白の画素を「0」とし、白画素が画像の背景を表している。なお、二値化画像は、黒の画素を「0」、白の画素を「1」で表してもよい。また、黒の画素を「10」、白の画素を「1」というように、「0」と「1」以外の数値で黒画素と白画素を表してもよい。
図形特定部201は、二値化画像中の図形の部分を特定するブロックである。画像から図形の部分を特定する技術としては、例えば、特開平3−102964号公報に記載されている技術など公知の技術を採用できる。なお、画像から図形の部分を特定する技術は、特開平3−102964号公報に記載されている技術に限定されず、他の技術を採用してもよい。
線分特定部202は、図形特定部201で特定された図形部分にある線分を特定するブロックである。線分を特定する技術としては、例えば、特開平2−210586号公報に記載されている技術のように、二値化画像を走査し、予め定められた閾値以上に黒画素が連続している部分を線分として特定するという手法など公知の様々な技術を採用できる。なお、図形部分にある線分を特定する技術は、特開平2−210586号公報に記載されている技術に限定されず、他の技術を採用してもよい。
【0017】
交差判定部203は、線分特定部202で特定された線分同士の交差関係を判定するブロックであり、線分の始点と終点の座標から、線分同士が交差しているか否か判定する。
構造特定部204は、図形特定部201が特定した図形部分において矩形の升目部分を特定するブロックであり、線分特定部202が特定した線分と、交差判定部203が判定した線分同士の交差関係とを用いて図形部分にある矩形を特定し、複数行または複数列で矩形が並んだ構造や、セル構造を構成せずに独立した矩形などを特定する。
リスト作成部205は、構造特定部204で特定された構造を表すリストを生成するブロックである。
表領域判定部206は、リスト作成部205が作成したリストを用いて図形特定部201が特定した図形部分が表であるか否か判定するブロックである。
【0018】
(実施形態の動作)
以下、本実施形態の動作例について説明する。なお、以下の説明においては、まず、画像データが示す画像を表ではないと判定する場合の動作について説明し、次に画像データが示す画像を表であると判定する場合の動作について説明する。
【0019】
(画像を表ではないと判定する場合の動作)
まず、ユーザが画像取得部108に接続されたスキャナに画像が描かれた紙をセットし、紙面の画像の読み取りを行わせると、紙面の画像を表す画像データがスキャナにおいて生成される。次に、ユーザが、スキャナで生成された画像データの取得を指示する操作を操作部106において行うと、画像取得部108がスキャナと通信を行い、スキャナで生成された画像データが取得されて記憶部105に記憶される。
【0020】
また、ユーザが、画像処理プログラムの実行を指示する操作を操作部106において行うと、画像処理プログラムがCPU102により実行される。次に、記憶部105に記憶された画像データを指定し、この指定した画像データに対して画像処理を行うように指示する操作をユーザが操作部106において行うと、CPU102は、画像処理プログラムに従って図3に示した処理を実行する。
【0021】
具体的には、まず、CPU102は、ユーザにより指定された画像データの画像を二値化する処理(ステップSA1)を行う。ここで、図4は、二値化処理により得られた二値化画像の一例を示した図であり、図4に示した画像G10は、棒グラフの画像である。なお、CPU102は、画像データの画像を二値化しているため、ここで二値化部200として機能している。
【0022】
CPU102は、二値化処理が終了すると二値化画像を解析し、二値化画像にある図形の部分を特定する(ステップSA2)。例えば、図4の二値化画像の場合、画像G10の部分が図形の部分として特定される。CPU102は、二値化画像にある図形部分を特定すると、各図形部分を一意に識別する図形識別子を生成し、例えば、画像G10の部分に対して「1」という図形識別子を生成する。なお、CPU102は、二値化画像にある図形部分を特定しているため、ここで図形特定部201として機能している。
【0023】
次にCPU102は、特定した図形部分にある線分を特定し、各線分の座標を特定する(ステップSA3)。例えば、図4の二値化画像の場合、画像G10の部分からは、縦方向に描かれた線分L101〜L110と、横方向に描かれた線分L121〜L130とが特定される。なお、線分の座標としては、例えば画像の左下隅を原点として、原点から横方向にx座標、原点から縦方向にy座標をとった場合の座標が特定される。CPU102は、図形部分にある線分の特定をしているため、ここで線分特定部202として機能している。
【0024】
CPU102は、各図形部分にある線分を特定すると、各線分を一意に識別するラベル番号を各線分に付ける。そして、図形部分に付けられた図形識別子と、この図形識別子で特定される部分にある各線分のラベル番号、各線分の両端の座標を対応付け、RAM(Random Access Memory)104に設けられる線分テーブルTB10に格納する(ステップSA4)。ここで、図5は、線分テーブルTB10のフォーマットの一例である。線分テーブルTB10は、図形識別子、ラベル番号、線分の両端の座標、交差する他の線分のラベル番号の列を有している。なお、本説明においては、各線分の符号における数の部分とラベル番号とを同じにしており、例えば、101というラベル番号は、線分L101に付けたラベル番号である。
【0025】
CPU102は、ステップSA4の処理が終了すると、ラベル番号が付けられた各線分を参照して線分同士の交差関係を判定する(ステップSA5)。そして、一の線分に交差する他の線分のラベル番号を、線分テーブルTB10に格納する。つまり、CPU102は、ここで線分同士の交差関係を判定する交差判定部203として機能する。
例えば、図4の画像の場合、線分L101については、線分L121,L122,L124,L128,L130が交差しているため、線分L101のラベル番号「101」に対応付けて、線分L121,L122,L124,L128,L130のラベル番号が図5に示したように格納される。
【0026】
CPU102は、ステップSA5の処理が終了すると、線分テーブルTB10に格納されている情報を用いて、特定された図形部分において複数行または複数列で矩形がある部分を特定し(ステップSA6)、特定した矩形間の関係を表すリスト300を作成する(ステップSA7)。つまり、ここでCPU102は、複数行または複数列で矩形が並んだ構造(セル構造)を特定する構造特定部204と、構造特定部204で特定された構造を表すリストを作成するリスト作成部205として機能する。なお、本実施形態においては、CPU102は、複数行または複数列で矩形がある部分を特定する際、n行1列または1行n列(n≧2)で矩形がある部分を特定する。
具体的には、まずCPU102は、ステップSA2で特定した図形の外周となる線分で囲まれて複数行または複数列で矩形が並んでいる部分を特定し、並んでいる各矩形に対してラベルを付ける処理を行う。例えば図4の画像の場合、CPU102は、線分の座標と交差関係から図形の外周となる線分として線分L101,L121,L110,L130を特定し、図7に示したように、複数行で矩形がある部分として矩形R10、矩形R20、矩形R30および矩形R40の部分を特定する。そして、CPU102は、各矩形に対してID10,ID20,ID30,ID40というラベルを付け、図6に示したように図形の図形識別子に対して各ラベルを関連付けたリスト300を作成する。
なお、以下の説明においては、特定した矩形内にさらに矩形がある場合、矩形内に含まれる矩形を下位の矩形と称し、内側に矩形を含んでいる矩形を上位の矩形と称する。例えば、矩形R20の部分は、内側に後述する矩形R21〜R23があるため、矩形R20は、矩形R21〜R23に対して上位の矩形となり、矩形R21〜R23は、矩形R20に対して下位の矩形となる。
【0027】
CPU102は、特定した各矩形について、さらに矩形内において複数行または複数列で矩形がある部分を特定する処理を続ける。例えば、矩形R10については、この矩形内には、複数行または複数列で矩形がないため、この矩形R10については、CPU102は、下位にある矩形の特定を終了する。
【0028】
また、矩形R20については、CPU102は、図8に示したように複数列の矩形R21〜R23を特定し、各矩形に対してID21,ID22,ID23というラベルを付け、図6に示したように各矩形のラベルをリスト300にあるID20に関連付ける。これにより、図6のリスト300を参照すると、ID21,ID22,ID23で特定される矩形がID20で特定される矩形の下位の矩形であることが分かる。
そして、さらに矩形R21については、複数行または複数列ではないものの、内側に矩形がある。この場合、CPU102は、矩形R21の内側にある矩形についてはセル構造を構成しない独立した矩形(独立矩形)として特定する。そして、独立矩形を含む矩形R21については表の一部を構成する矩形ではないものと判断し、表を構成する矩形ではない矩形であることを示す「?」を図6に示したようにID21に対応付ける。
【0029】
また、矩形R30については、CPU102は、図9に示したように、複数列の矩形R31〜R37を特定し、各矩形に対してID31〜ID37というラベルを付け、図6に示したように各矩形のラベルをリスト300にあるID30に関連付ける。
そして矩形R34と矩形R36については、各矩形内に複数行の矩形があるため、CPU102は、複数行の各矩形に対してラベルを付し、図6に示したように、リスト300にあるID34とID36に対して各矩形のラベルを関連付ける。
なお、矩形R37については、セル構造ではなく内側に独立矩形がある。CPU102は、セル構造でない矩形R37については表の一部を構成する矩形ではないものとし、表を構成する矩形ではない矩形であることを示す「?」を図6に示したようにリスト300にあるID37に対応付ける。
【0030】
また、矩形R40については、CPU102は、図10に示したように、複数列の矩形R41〜R49を特定し、各矩形に対してID41〜ID49というラベルを付け、図6に示したように各矩形のラベルをリスト300にあるID40に関連付ける。
そして、矩形R48については、矩形内に複数行の矩形があるため、CPU102は、複数行の各矩形に対してラベルを付し、図6に示したように、リスト300にあるID48に対して各矩形のラベルを関連付ける。
【0031】
次にCPU102は、ラベルが付けられた各矩形の面積について上位の矩形の面積に占める割合を算出し、算出した割合を図6のリスト300にあるラベルに対応付ける(ステップSA8)。
例えば、矩形R10,R20,R30,R40の各面積が等しい場合、図形識別子として「1」が付けられた画像G10の面積に占める各矩形の面積の割合は、各々25%となるため、CPU102は、図6に示したように「25%」をリスト300にあるID10,ID20,ID30,ID40に対応付ける。また、例えば矩形R20の面積に占める矩形R21の面積の割合が60%、矩形R20の面積に占める矩形R22の面積の割合が10%、矩形R20の面積に占める矩形R23の面積の割合が30%である場合、CPU102は、図6に示したようにリスト300にあるID21に対して60%、ID22に対して10%、ID23に対して30%を対応付ける。なお、他のラベルが付けられた矩形についても同様に面積の割合を求めると、図4に示した画像の場合、図6に示したように各矩形の面積の割合がラベルに対応付けられる。このように、ここでもCPU102は、リストを作成するためリスト作成部205として機能している。
【0032】
次にCPU102は、リスト300において「?」が対応付けられているラベルを特定し、特定したラベル対応付けられている割合を0%に置換する(ステップSA9)。例えば、矩形R21のラベルであるID21には「?」が対応付けられているため、CPU102は、ID21に対して対応付けられている割合を0%に置換する。また、矩形R37のラベルであるID37には「?」が対応付けられているため、CPU102は、ID37に対して対応付けられている割合を0%に置換する。
【0033】
CPU102は、ステップSA9の処理を終了すると、リスト300にあるラベルに対応付けられた割合に基づいて、特定した図形部分が表であるか否か判定する(ステップSA10)。つまり、ここでCPU102は、図形部分が表であるか否か判定する表領域判定部206として機能する。
具体的には、CPU102は、まず下位の矩形について矩形の面積の割合を加算し、加算結果が予め定められた閾値未満である場合、上位の矩形について、対応付けて格納されている割合を0%に置換する。
例えば、矩形R20に対して下位層の矩形である矩形R21〜R23については、ID21に対応付けられている割合が「0%」、ID22に対応付けられている割合が「10%」、ID23に対応付けられている割合が「30%」であるため、加算結果は40%となる。ここで、閾値が例えば85%である場合、加算結果は40%であって閾値未満であるため、上位層の矩形R20については、ID20に対応付けて格納されている割合を0%に置換する。
【0034】
次に、ID341とID342の矩形については、ID341に対応付けられている割合が「80%」、ID342に対応付けられている割合が「20%」であり、加算結果が閾値以上となるため、上位層となる矩形R34のラベルであるID34については、対応づけられている割合を0%に置換せず、そのままとする。
なお、ラベルがID361とID362の矩形についても、「?」が対応づけられていないため、上位層となる矩形R36のラベルであるID36については、対応づけられている割合を0%に置換せず、そのままとする。
また、矩形R31〜R37の矩形については、ID31〜ID37に対応づけられている割合を加算すると加算結果は「65%」となる。ここで、加算結果は65%であって閾値未満であるため、上位層の矩形R30のラベルであるID30については、対応付けて格納されている割合を0%に置換する。
なお、ID481,ID482,ID41〜ID49の矩形については、「?」が対応付けられていないため、ID41〜ID49およびID40に対応付けられている割合が0%に置換されることがない。
【0035】
次にCPU102は、矩形R10,R20,R30,R40のラベルに対応付けられた割合「25%」、「0%」、「0%」、「25%」を加算する。ここで、加算結果は50%となり、加算結果が閾値未満であるため、画像G10については表ではないと判定する。CPU102は、判定結果を得ると、表示部107を制御して判定結果を表示部107に表示させる。
【0036】
(画像を表であると判定する場合の動作)
次に、二値化画像の図形部分を表であると判定する場合の動作について説明する。なお、本動作例においては、図11に示した二値化画像が得られた場合を例に動作の説明を行う。
【0037】
まず、本動作例においては、画像データを取得してから二値化画像中の線分同士の交差関係を判定するまでは、上述の動作例と同じ動作を行う。CPU102は、ステップSA1からステップSA5までの処理が終了すると、線分テーブルTB10に格納されている情報を用いて、図形部分において複数行または複数列で矩形がある部分を特定し(ステップSA6)、特定した矩形間の関係を表すリスト300を生成する(ステップSA7)。
【0038】
例えば、図11に示した画像G11の場合、図12に示したように、矩形R50、矩形R60、矩形R70および矩形R80が、複数行で矩形がある部分として特定される。そして、CPU102は、各矩形に対してID50,ID60,ID70,ID80というラベルを付ける。また、矩形R50、矩形R60、矩形R70および矩形R80の下位の矩形についてもラベルを付け、図13に示したように各ラベルを付けたリスト300を作成する。
【0039】
次にCPU102は、ラベルが付けられた各矩形の面積について上位の矩形の面積に占める割合を算出し、算出した割合をリスト300にあるラベルに対応付ける(ステップSA8)。例えば、矩形R50,R60,R70,R80の各面積が等しい場合、
図形識別子として「1」が付けられた画像G11の面積に占める各矩形の面積の割合は、各々25%となるため、CPU102は、図13に示したように「25%」をリスト中のID50,ID60,ID70,ID80に対応付ける。なお、他のラベルが付けられた矩形についても同様に面積の割合を求めると、図11に示した画像の場合、図13に示したように各矩形の面積の割合がラベルに対応付けられる。
【0040】
次にCPU102は、図13のリストにおいて「?」に対応付けられているラベルを特定し、特定したラベルに対応付けられている割合を0%に置換する処理を行う(ステップSA9)。なお、図11に示した画像の場合、図13のリストが作成されて「?」が対応付けられているラベルが無いため、いずれのラベルにおいても、対応付けられている面積の割合が0%に置換されることがない。
【0041】
次にCPU102は、リスト300にあるラベルに対応付けられた割合に基づいて、特定した図形部分が表であるか否か判定する(ステップSA10)。ここでCPU102が、矩形R50,R60,R70,R80のラベルに対応付けられた割合「25%」、「25%」、「25%」、「25%」を加算すると、加算結果は100%となる。ここで加算結果が閾値以上であるため、CPU102は、画像G11については表であると判定する。CPU102は、判定結果を得ると、表示部107を制御して判定結果を表示部107に表示させる。
以上説明したように本実施形態によれば、グラフのように表ではない領域は表と認識しないため、表の認識率を高めることができる。
【0042】
[変形例]
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。なお、上述した実施形態及び以下の変形例は、各々を組み合わせてもよい。
【0043】
画像処理プログラムを実行したCPU102は、図14に示したように外枠が矩形でない図形の場合、複数行で矩形がある部分として矩形R101、矩形R102、矩形R103および矩形R104を特定して各矩形に対してID101〜ID104というラベルを付けると共に、複数列で矩形がある部分として、矩形R105と矩形R106を特定してID105、ID106というラベルを付け、図15に示したリスト300を作成してもよい。なお、図15に示したリスト300は、矩形の面積の割合を対応付ける前の状態のリストを示した図である。
【0044】
また、画像処理プログラムを実行したCPU102は、図16に示したように外枠が矩形でない画像の場合、複数行で矩形がある部分として、矩形R201および矩形R202の部分と、矩形R203および矩形R204の部分と、矩形R205および矩形R206の部分とを特定するようにしてもよい。そして、矩形R201,R202に対してID201,ID202、矩形R203,R204に対してID203,ID204、矩形R205,R206に対してID205,ID206というラベルを付け、図17に示したリスト300を作成してもよい。なお、図17に示したリスト300は、矩形の面積の割合を対応付ける前の状態のリストを示した図である。
【0045】
また、画像処理プログラムを実行したCPU102は、図18に示したように矩形の内側の角部にさらに矩形がある図形の場合、複数行で矩形がある部分として、矩形R301〜R304を特定し、矩形R304の内側において、矩形R3041と矩形R3042を特定してもよい。
そして、矩形R301〜R304に対してID301〜ID304というラベルを付け、さらに矩形R3041,R3042に対してID3041,ID3042というラベルを付け、図19に示したリスト300を作成してもよい。なお、図19に示したリスト300は、矩形の面積の割合を対応付ける前の状態のリストを示した図である。
【0046】
本発明においては、独立矩形の面積が画像中に占める割合を算定し、算定した割合が予め定められた閾値以上である場合には、画像が表ではないと判定するようにしてもよい。
また、本発明においては、独立矩形を内側に含む矩形の面積が画像中に占める割合を算定し、算定した割合が予め定められた閾値以上である場合には、画像が表ではないと判定するようにしてもよい。
【0047】
上述した実施形態においては、操作部106を操作することにより、ユーザが閾値を設定できるようにしてもよい。
また、閾値を複数設定可能とし、ユーザが複数の閾値のいずれかから閾値を選択するようにしてもよい。例えば、2つの閾値を設定可能とし、一方の閾値を例えば95%とし、他方の閾値を50%というように、2つの閾値の値を異ならせてもよい。
また、閾値を設定する場合、表の画像とグラフの画像とを複数準備し、これらの画像に対しての判定結果からWidrow-Hoffの学習規則やフィッシャーの判別分析などの学習方法により、表であるか否かを判定する際の閾値を設定するようにしてもよい。
【0048】
上述した実施形態においては、CPU102が画像処理プログラムを実行することにより、CPU102が画像データを処理し、画像データ中の表の領域を特定しているが、画像データの画像に上述した画像処理を施す構成は、この構成に限定されるものではない。例えば、上述した処理を行うDSP(Digital Signal Processor)やプログラマブルロジックデバイスなどのハードウェアをバス101に接続し、画像データを、このハードウェアに供給することにより、ハードウェアで上述した処理を行うようにしてもよい。
【0049】
上述した画像処理プログラムは、磁気記録媒体(磁気テープ、磁気ディスク(HDD(Hard Disk Drive)、FD(Flexible Disk))など)、光記録媒体(光ディスク(CD(Compact Disc)、DVD(Digital Versatile Disk))など)、光磁気記録媒体、半導体メモリなどのコンピュータ読取り可能な記録媒体に記憶した状態で提供し、コンピュータ装置1にインストールしてもよい。また、通信回線を介してダウンロードしてインストールしてもよい。
【0050】
上述した実施形態においては、PCが画像処理プログラムを実行しているが、PC以外のコンピュータ装置が画像処理プログラムを実行してもよく、例えば、複写機能やスキャナの機能を有する画像形成装置が画像処理プログラムを実行し、上述した処理を画像形成装置が行うようにしてもよい。
【符号の説明】
【0051】
1・・・コンピュータ装置、101・・・バス、102・・・CPU、103・・・ROM、104・・・RAM、105・・・記憶部、106・・・操作部、107・・・表示部、108・・・画像取得部、200・・・二値化部、201・・・図形特定部、202・・・線分特定部、203・・・交差判定部、204・・・構造特定部、205・・・リスト作成部、206・・・表領域判定部

【特許請求の範囲】
【請求項1】
画像を二値で表した二値化画像を取得する取得手段と、
前記取得手段で取得された二値化画像中の図形部分を特定する図形特定手段と、
前記図形特定手段で特定された部分にある線分を特定する線分特定手段と、
前記線分特定手段で特定された各線分の交差関係を判定する交差判定手段と、
前記線分特定手段で特定された線分と、前記交差判定手段で判定された交差関係とにより、矩形が複数行または複数列で並んだセル構造と、該セル構造を構成せずに独立した独立矩形を特定する構造特定手段と、
前記構造特定手段で特定された前記独立矩形に基づいて前記前記図形特定手段で特定された図形部分が表領域であるか否かを判定する表領域判定手段と
を有する画像処理装置。
【請求項2】
前記表領域判定手段は、前記構造特定手段で特定されたセル構造を構成する矩形のうち、前記構造特定手段で特定された独立矩形が内側にある矩形以外の矩形について、該矩形の面積が前記セル構造の面積において占める割合を算定し、該算定した割合に基づいて、前記前記図形特定手段で特定された図形部分が表領域であるか否かを判定すること
を特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記構造特定手段は、特定したセル構造を構成する矩形の内部についてさらに前記セル構造を特定することを特徴とする請求項1または請求項2に記載の画像処理装置。
【請求項4】
前記セル構造は、1行n列またはn行1列(n≧2)で矩形が並んだ構造であることを特徴とする請求項1乃至請求項3のいずれかに記載の画像処理装置。
【請求項5】
前記構造特定手段は、特定したセル構造を構成する矩形について、該矩形の角部の内側にある前記セル構造を特定することを特徴とする請求項3または請求項4に記載の画像処理装置。
【請求項6】
コンピュータを、
画像を二値で表した二値化画像を取得する取得手段と、
前記取得手段で取得された二値化画像中の図形部分を特定する図形特定手段と、
前記図形特定手段で特定された部分にある線分を特定する線分特定手段と、
前記線分特定手段で特定された各線分の交差関係を判定する交差判定手段と、
前記線分特定手段で特定された線分と、前記交差判定手段で判定された交差関係とにより、矩形が複数行または複数列で並んだセル構造と、該セル構造を構成せずに独立した独立矩形を特定する構造特定手段と、
前記構造特定手段で特定された前記独立矩形に基づいて前記前記図形特定手段で特定された図形部分が表領域であるか否かを判定する表領域判定手段
として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate