(57)【要約】【課題】文字や不定形の図形の画像を有する画像について、文字の領域や不定形の図形がある領域を分割できるようにする。【解決手段】ＣＰＵ１０２は、画像データが表す画像から二値化画像を生成し、二値化画像のライン毎に、白画素が複数連続した白ラン部分を特定する。ＣＰＵ１０２は、白ラン部分が複数隣接している領域を特定し、この特定した領域のうち、領域内の白画素の数が予め定められた閾値を超える領域を背景領域とする。ＣＰＵ１０２は、二値化画像において、背景領域とした領域外にある白画素を黒画素に置換した二値化画像を生成する。【選択図】図１
2011018997.tif 000002
【特許請求の範囲】
【請求項１】
画素値が第１値の第１画素と、画素値が第２値の第２画素とで表された２値化画像を取得する取得手段と、
前記取得手段で取得された２値化画像において、複数の第１画素が第１方向に予め定められた閾値以上の数で連続した第１連続部を特定する第１特定手段と、
前記第１特定手段で特定された第１連続部が複数隣接している領域であって、該領域内の画素の数が予め定められた閾値以下である第１領域を、前記取得手段で取得された２値化画像において特定する第１領域特定手段と、
前記取得手段で取得された２値化画像において、前記第１領域特定手段で特定された第１領域の外にある第１画素を第２画素に置換する第１置換手段と
を有する画像処理装置。
【請求項２】
前記第１置換手段で得られた２値化画像において、複数の第１画素が第２方向に予め定められた閾値以上の数で連続した第２連続部を特定する第２特定手段と、
前記第２特定手段で特定された第２連続部が複数隣接している領域であって、該領域内の画素の数が予め定められた閾値以下である第２領域を、前記第１置換手段で得られた２値化画像において特定する第２領域特定手段と、
前記第１置換手段で得られた２値化画像において、前記第２領域特定手段で特定された第２領域の外にある第１画素を第２画素にする第２置換手段と
を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１置換手段は、前記２値化画像において、画素の数が予め定められた閾値以上であって前記第１領域外にある前記第１連続部については、第１画素を第２画素に置換しないこと
を特徴とする請求項１または請求項２に記載の画像処理装置。
【請求項４】
前記第２置換手段は、前記２値化画像において、画素の数が予め定められた閾値以上であって前記第２領域外にある前記第２連続部については、第１画素を第２画素に置換しないこと
を特徴とする請求項２または請求項３に記載の画像処理装置。
【請求項５】
コンピュータを、
取得する取得手段と、
前記取得手段で取得された２値化画像において、複数の第１画素が第１方向に予め定められた閾値以上の数で連続した第１連続部を特定する第１特定手段と、
前記第１特定手段で特定された第１連続部が隣接している領域であって、該領域内の画素の数が予め定められた閾値以下である第１領域を、前記取得手段で取得された２値化画像において特定する第１領域特定手段と、
前記取得手段で取得された２値化画像において、前記第１領域特定手段で特定された第１領域の外にある第１画素を第２画素に置換する第１置換手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置およびプログラムに関する。
【背景技術】
【０００２】
文書の画像中の隙間を見つけ、文書の画像を分割する装置として、例えば、特許文献１に開示された装置がある。特許文献１に開示されている装置は、文書の画像において白画素の領域を見つけ、これをグラフ理論に基づいて接続していき画像の領域分割を実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１７８５６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、文字や不定形の図形の画像を有する画像について、文字の領域や不定形の図形がある領域を分割できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
本発明の請求項１に係る画像処理装置は、画素値が第１値の第１画素と、画素値が第２値の第２画素とで表された２値化画像を取得する取得手段と、前記取得手段で取得された２値化画像において、複数の第１画素が第１方向に予め定められた閾値以上の数で連続した第１連続部を特定する第１特定手段と、前記第１特定手段で特定された第１連続部が複数隣接している領域であって、該領域内の画素の数が予め定められた閾値以下である第１領域を、前記取得手段で取得された２値化画像において特定する第１領域特定手段と、前記取得手段で取得された２値化画像において、前記第１領域特定手段で特定された第１領域の外にある第１画素を第２画素に置換する第１置換手段とを有する。
【０００６】
本発明の請求項２に係る画像処理装置は、請求項１に記載の画像処理装置において、前記第１置換手段で得られた２値化画像において、複数の第１画素が第２方向に予め定められた閾値以上の数で連続した第２連続部を特定する第２特定手段と、前記第２特定手段で特定された第２連続部が複数隣接している領域であって、該領域内の画素の数が予め定められた閾値以下である第２領域を、前記第１置換手段で得られた２値化画像において特定する第２領域特定手段と、前記第１置換手段で得られた２値化画像において、前記第２領域特定手段で特定された第２領域の外にある第１画素を第２画素にする第２置換手段とを有することを特徴とする。
【０００７】
本発明の請求項３に係る画像処理装置は、請求項１または請求項２に記載の画像処理装置において、前記第１置換手段は、前記２値化画像において、画素の数が予め定められた閾値以上であって前記第１領域外にある前記第１連続部については、第１画素を第２画素に置換しないことを特徴とする。
【０００８】
本発明の請求項４に係る画像処理装置は、請求項２または請求項３に記載の画像処理装置において、前記第２置換手段は、前記２値化画像において、画素の数が予め定められた閾値以上であって前記第２領域外にある前記第２連続部については、第１画素を第２画素に置換しないことを特徴とする。
【０００９】
本発明の請求項５に係るプログラムは、コンピュータを、取得する取得手段と、前記取得手段で取得された２値化画像において、複数の第１画素が第１方向に予め定められた閾値以上の数で連続した第１連続部を特定する第１特定手段と、前記第１特定手段で特定された第１連続部が隣接している領域であって、該領域内の画素の数が予め定められた閾値以下である第１領域を、前記取得手段で取得された２値化画像において特定する第１領域特定手段と、前記取得手段で取得された２値化画像において、前記第１領域特定手段で特定された第１領域の外にある第１画素を第２画素に置換する第１置換手段として機能させるためのプログラムである。
【発明の効果】
【００１０】
本発明の請求項１に係る画像処理装置によれば、文字や不定形の図形の画像を有する画像について、文字の領域や不定形の図形がある領域を分割することができる。
本発明の請求項２に係る画像処理装置によれば、予め決められた距離の範囲にある文字列と文字列について、文字列と文字列間をつなげた領域として分割することができる。
本発明の請求項３，４に係る画像処理装置によれば、文字の領域や不定形の図形がある領域を、文字の領域や図形の形に近づけて分割できる。
本発明の請求項５に係るプログラムによれば、文字や不定形の図形の画像を有する画像について、文字の領域や不定形の図形がある領域を分割することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るコンピュータ装置１のハードウェア構成を示したブロック図。
【図２】画像処理プログラムにより実現する機能ブロックを示した図。
【図３】画像処理プログラムが実行されることにより行われる処理のフローチャート。
【図４】二値化画像の一例を示した図。
【図５】ランレングステーブルＴＢ１０のフォーマットを例示した図。
【図６】積算値テーブルＴＢ１１のフォーマットを例示した図。
【図７】第１実施形態において得られる二値化画像の一例を示した図。
【図８】第２実施形態に係る画像処理プログラムが実行されることにより行われる処理のフローチャート。
【図９】二値化画像の一例を示した図。
【図１０】第２実施形態において得られる二値化画像の一例を示した図。
【図１１】ランレングステーブルＴＢ２０のフォーマットを例示した図。
【図１２】積算値テーブルＴＢ２１のフォーマットを例示した図。
【図１３】第２実施形態において得られる二値化画像の一例を示した図。
【図１４】表の二値化画像の一例を示した図。
【発明を実施するための形態】
【００１２】
［第１実施形態］
（実施形態の構成）
図１は、本発明の一実施形態に係るコンピュータ装置１のハードウェア構成を示したブロック図である。本実施形態においてコンピュータ装置１は、所謂ＰＣ（Personal  Computer）であり、図１に示したように、各部は、バス１０１に接続され、このバス１０１を介して各部間で情報のやり取りを行う。
【００１３】
表示部１０７は、画像を表示する表示装置として液晶ディスプレイを備えており、ＣＰＵ１０２の制御の下、コンピュータ装置１を操作するためのメニュー画面や各種メッセージ等を表示する。なお、表示装置は液晶ディスプレイに限定されるものではなく、ＣＲＴ（Cathode Ray Tube）やＥＬ（electro luminescence）を用いたディスプレイなど他の表示装置であってもよい。
操作部１０６は、コンピュータ装置１を操作するためのキーボードやマウスを備えている。ユーザがこのキーボードやマウスを操作することにより、コンピュータ装置１に対する各種指示の入力や画像処理装置の各種設定が行われる。
画像取得部１０８は、スキャナが接続されるインターフェースであり、紙面の画像を読み取り、読み取った画像の画像データを生成するスキャナと通信を行い、スキャナから画像データを取得する。
【００１４】
記憶部１０５はハードディスク装置を具備しており、コンピュータ装置にオペレーティングシステムの機能を実現させるプログラムや、画像データが示す画像に画像処理を施す画像処理プログラム、スキャナから取得した画像データなどを記憶する。
ＲＯＭ（Read Only Memory）１０３は、ＩＰＬ（Initial Program Loader）を記憶しており、ＣＰＵ（Central Processing Unit）１０２は、ＲＯＭ１０３に記憶されているＩＰＬを読み出して実行する。ＩＰＬが実行されると、記憶部１０５からオペレーティングシステムの機能を実現させるプログラムが読み出されて実行される。また、オペレーティングシステムの機能を実現させるプログラムが実行されると、ＣＰＵ１０２により画像処理プログラムを実行することが可能となる。そして、ＣＰＵ１０２により画像処理プログラムが実行されると、コンピュータ装置１は、画像データが示す画像に画像処理を施す画像処理装置として機能する。
【００１５】
図２は、画像処理プログラムをＣＰＵ１０２が実行したことにより実現する機能ブロックを示した図である。
二値化部２００は、画像取得部１０８で取得された画像データが表す画像を白黒の画像に二値化するブロックであり、二値化された画像（以下、二値化画像と称する）を得る取得手段の一例である。本実施形態においては、二値化画像は、画素の値を１ビットで表しており、黒の画素を「１」、白の画素を「０」とし、白画素が画像の背景を表している。なお、二値化画像は、黒の画素を「０」、白の画素を「１」で表してもよい。
ランレングス特定部２０１は、二値化部２００で生成された二値化画像において水平方向に連続する白画素の部分（以下、水平白ランと称する）の先頭画素の座標と、この座標から連続する白画素の数とを求めるブロックである。つまり、ＣＰＵ１０２は、複数の同じ画素値の画素が連続した部分を特定する特定手段の一例である。
領域特定部２０２は、ランレングス特定部２０１で求められた先頭画素の座標と、この座標から連続する白画素の数とを用いて、水平白ランが隣接している画像中の背景領域を特定するブロックである。つまり、ＣＰＵ１０２は、ランレングス特定部２０１で特定された部分が隣接している領域を特定する領域特定手段の一例である。
置換部２０３は、領域特定部２０２で特定された背景領域以外の画素を全て黒画素に置換するブロックである。つまり、ＣＰＵ１０２は、領域特定部で特定された領域の外にある白画素を黒画素に置換する置換手段の一例である。
【００１６】
（実施形態の動作）
以下、本実施形態の動作について説明する。まず、ユーザが画像取得部１０８に接続されたスキャナに画像が描かれた紙をセットし、紙面の画像の読み取りを行わせると、紙面の画像を表す画像データがスキャナにおいて生成される。次に、ユーザが、スキャナで生成された画像データの取得を指示する操作を操作部１０６において行うと、画像取得部１０８がスキャナと通信を行い、スキャナで生成された画像データが取得されて記憶部１０５に記憶される。
【００１７】
また、ユーザが、画像処理プログラムの実行を指示する操作を操作部１０６において行うと、画像処理プログラムがＣＰＵ１０２により実行される。次に、記憶部１０５に記憶された画像データを指定し、この指定した画像データに対して画像処理を行うように指示する操作をユーザが操作部１０６において行うと、ＣＰＵ１０２は、画像処理プログラムに従って図３に示した処理を実行する。
【００１８】
具体的には、まず、ＣＰＵ１０２は、ユーザにより指定された画像データの画像を二値化する処理（ステップＳＡ１）を行う。ここで、図４は、二値化処理により得られた画像の一例を示した図である。なお、同図においては、一つの四角の枠は一つの画素を示しており、四角の枠内に斜線がある画素は黒画素を示し、四角の枠内に斜線がない画素は白画素を示している。また、図４において、黒画素で示された画像Ｇ１は図形であり、画像Ｇ２〜Ｇ５は、アルファベットの文字「Ｈ」、画像Ｇ６は水平方向と平行な直線である。なお、本実施形態においては、画像の左上の画素を原点（１，１）とし、水平方向にｘ軸、垂直方向にｙ軸を設けたｘｙ座標系で画素の位置を表す。例えば、１行２列目の画素の場合、この画素の座標は（１，２）と表され、２行１列目の画素の場合、この画素の座標は（２，１）と表される。
【００１９】
ＣＰＵ１０２は、二値化処理が終了すると二値化画像を解析し、二値化画像の水平方向のライン毎に、水平白ランを検索する（ステップＳＡ２）。そして、検索した水平白ランの画素において原点に最も近い先頭画素の座標と、この水平白ランの画素の数とを求める。
例えば、図４の二値化画像の場合、まずＣＰＵ１０２が、１行目のラインの画素を原点から水平方向に見ていくと、１行１列目から白画素が２５個連続している部分が水平白ランとして検索される。そして、先頭画素の座標として（１，１）を特定し、この水平白ランの画素数として「２５」という数をカウントする。
【００２０】
ＣＰＵ１０２は、水平白ランの先頭画素の座標と画素数とを特定すると、特定した先頭画素の座標と水平白ランの画素数とを対応付けてＲＡＭ１０４に設けられるランレングステーブルＴＢ１０に格納する（ステップＳＡ３）。ここで、図５は、ランレングステーブルＴＢ１０のフォーマットを例示した図である。ランレングステーブルＴＢ１０は、座標の列、画素数の列およびラベル番号の列を有している。上述したように、座標（１，１）と画素数「２５」を得た場合、図５のランレングステーブルＴＢ１０の１行目に示したように、（１，１）という座標と画素数「２５」がランレングステーブルＴＢ１０に格納される。
また、図４の画像の２行目のラインの場合、２行１列目から白画素が２５個連続している部分が水平白ランとして検索され、先頭画素の座標として（２，１）、この水平白ランの画素数として「２５」という数がカウントされる。そして、図５のランレングステーブルＴＢ１０の２行目に示したように、（２，１）という座標と画素数「２５」がランレングステーブルＴＢ１０に格納される。
【００２１】
なお、図４の画像の６行目のラインにおいては、６行１列目から白画素が６個、６行９列目から白画素が６個連続している。また、６行１６列目から白画素が２個、６行１９列目から白画素が２個、６行２２列目から白画素が２個、６行２５列目に白画素が１個ある。ＣＰＵ１０２は、水平白ランの画素数が予め定められた第１閾値以下である場合、画素数と水平白ランの先頭画素の座標をランレングステーブルＴＢ１０に格納しない。
第１閾値は、設計により定めたり、ユーザが操作部１０６を操作して設定したりすることが可能であるが、本実施形態において第１閾値が「３」である場合、ここでは、（６，１）という座標と画素数「６」および（６，９）という座標と画素数「６」のみがランレングステーブルＴＢ１０に格納される。
【００２２】
ＣＰＵ１０２は、２値化画像の水平方向の全ラインについて、水平白ランの検索を終了すると（ステップＳＡ４；ＹＥＳ）、ランレングステーブルＴＢ１０に格納された水平白ランの先頭画素の座標と水平白ランの画素数とを用いて、画像中の背景領域を特定する。
具体的には、まず、ＣＰＵ１０２は、背景領域を一意に識別するためのラベル番号を生成し、このラベル番号をランレングステーブルＴＢ１０の１行目のラベル番号の列に格納する。また、ＣＰＵ１０２は、このラベル番号を、図６に示したフォーマットでＲＡＭ１０４に設けられる積算値テーブルＴＢ１１のラベル番号の列に格納した後、ランレングステーブルＴＢ１０の１行目に格納されている画素数を読み出し、読み出した数を、積算値テーブルＴＢ１１のラベル番号が「１」の行に格納する。
なお、ランレングステーブルＴＢ１０にある先頭画素の座標と画素数とで二値化画像中の水平白ランが特定できるため、先頭画素の座標と画素数の組に対応付けてラベル番号を格納するということは、水平白ランにラベル番号を対応付けたということができる。
【００２３】
次にＣＰＵ１０２は、ランレングステーブルＴＢ１０の２行目に格納されている座標（２，１）と画素数「２５」を読み出す。ここで、ＣＰＵ１０２は、読み出した座標（２，１）を先頭画素とする水平白ランが、この座標のラインより一つ原点側にある水平ライン中の水平白ランであって、ラベル番号が付けられた水平白ランと接しているか否か判定する。
ここで図４に示した二値化画像を見ると、ラベル番号が「１」で１行１列目を先頭画素とする水平白ランと、２行１列目を先頭画素とする水平白ランは接している。この場合、ＣＰＵ１０２は、読み出した画素数を、積算値テーブルＴＢ１１においてラベル番号「１」に対応付けて格納されている積算値に加算し、積算値は「５０」となる。また、ＣＰＵ１０２は、接していた水平白ランに対応づけられているラベル番号「１」を、ランレングステーブルＴＢ１０の座標（２，１）の行に格納する。
【００２４】
次に、ＣＰＵ１０２は、ランレングステーブルＴＢ１０において、まだラベル番号が対応付けられていない座標（３，１）と画素数「２５」を読み出す。ＣＰＵ１０２は、読み出した座標（３，１）を先頭画素とする水平白ランが、この座標のラインより一つ原点側にある水平ライン中の水平白ランであって、ラベル番号が付けられた水平白ランと接しているか否か判定する。
ここで、座標（３，１）を先頭画素とする水平白ランが、一つ前のライン（２行目のライン）においてラベル番号が付けられた水平白ラン（先頭画素の座標（２，１）、画素数「２５」の水平白ラン）と接しているため、ＣＰＵ１０２は、読み出した画素数を、積算値テーブルＴＢ１１においてラベル番号「１」に対応付けて格納されている積算値に加算し、積算値は「７５」となる。また、ＣＰＵ１０２は、接していた水平白ランに対応づけられているラベル番号「１」を、ランレングステーブルＴＢ１０の座標（３，１）の行に格納する。
【００２５】
このようにＣＰＵ１０２は、ランレングステーブルＴＢ１０の１行目から水平白ランの先頭画素の座標と画素数とを順次読み出し、読み出した座標を先頭画素とする水平白ランと、読み出した座標の一つ前のラインにおいてラベル番号が付けられた水平白ランとが接しているか否か判定していき、画素数の積算と、ランレングステーブルＴＢ１０へのラベル番号の格納を行う（ステップＳＡ５）。
【００２６】
なお、ＣＰＵ１０２は、ランレングステーブルＴＢ１０の座標（１３，１）の行の場合、この座標の一つ前のラインは黒画素のラインであり、座標（１３，１）を先頭画素とする水平白ランは、ラベル番号「１」の水平白ランに接していない。このように、読み出した座標を先頭画素とする白ランが、この座標の一つ前のラインにある白ランに接していない場合、ＣＰＵ１０２は、新たなラベル番号を生成し、生成したラベル番号「２」をランレングステーブルＴＢ１０の座標（１３，１）の行に格納する。また、ランレングステーブルＴＢ１０から座標（１３，１）の行に格納されている画素数を読み出し、読み出した数を白画素の数の積算値として積算値テーブルＴＢ１１のラベル番号「２」に対応付けて格納する。
【００２７】
以下、ＣＰＵ１０２は、座標（１４，１）が格納されている行以降においても、ランレングステーブルＴＢ１０から水平白ランの先頭画素の座標と画素数とを順次読み出し、読み出した座標を先頭画素とする水平白ランと、読み出した座標の一つ前のラインにおいてラベル番号が付けられた水平白ランとが接しているか否か判定していき、画素数の積算と、ラベル番号のランレングステーブルＴＢ１０への格納を行う。
【００２８】
ＣＰＵ１０２は、ランレングステーブルＴＢ１０の全ての行にラベル番号を格納すると、積算値テーブルＴＢ１１のラベル番号毎に、ラベル番号に対応づけられている積算値が予め定められた第２閾値以下であるか判断し、第２閾値以下の積算値のラベル番号をランレングステーブルＴＢ１０から削除する（ステップＳＡ６）。なお、第２閾値は、設計により定めたり、ユーザが操作部１０６を操作して設定したりすることが可能であるが、本実施形態において第２閾値が「４」であるものとする。
例えば、ラベル番号「１」の場合、最終的に対応づけられた積算値は「２０２」となるため、ラベル番号「１」の付されている水平白ランを背景領域であると判断する。また、ラベル番号「２」の場合、最終的に対応づけられた積算値は「１４５」となるため、ラベル番号「２」の付されている水平白ランを背景領域であると判断する。なお、ここで、積算値が第２閾値以下である場合、第２閾値以下の積算値に対応づけられているラベル番号を、ランレングステーブルＴＢ１０から削除する。
【００２９】
次に、ＣＰＵ１０２は、ランレングステーブルＴＢ１０を参照し、ラベル番号が対応づけられている座標と画素数の組で特定される水平白ラン（即ち、背景部分）の部分を白画素とし、他の画素は黒画素に置換する処理を行う（ステップＳＡ７）。
例えば、図４の二値化画像の場合、ラベル番号「１」が対応づけられている座標（１，１）と画素数「２５」の組で特定される水平白ラン、即ち、１行目の全ての画素は、白画素とされる。一方、座標（６，１６）、座標（６，１７）、座標（６，１９）、座標（６，２０）、座標（６，２２）、座標（６，２３）、座標（６，２５）の画素は、図４の二値化画像においては白画素であるが、ランレングステーブルＴＢ１０においては座標が格納されていないため、この座標の白画素は黒画素に置換される。
【００３０】
また、例えば、ラベル番号「２」が対応づけられている座標（１３，１）と画素数「２５」の組で特定される水平白ラン、即ち、１３行目の全ての画素は、白画素とされる。一方、座標（１３，１６）、座標（１３，１７）、座標（１３，１９）、座標（１３，２０）、座標（１３，２２）、座標（１３，２３）、座標（１３，２５）の画素は、図４の二値化画像においては白画素であるが、ランレングステーブルＴＢ１０においては座標が格納されていないため、この座標の白画素は黒画素に置換される。
【００３１】
このように、ＣＰＵ１０２が、ラベル番号が付けられた水平白ラン以外の画素を黒画素に置換すると、図４の画像からは、最終的に図７に示した画像が得られる。この画像において、図７に示した黒画素の領域Ｒ１〜Ｒ４を特定すれば、図や文字があった領域を分割することとなり、矩形以外の画像についても、画像の領域を分割することができる。
【００３２】
［第２実施形態］
次に、本発明の第２実施形態に係るコンピュータ装置１について説明する。なお、本実施形態に係るコンピュータ装置１は、ハードウェア構成は第１実施形態と同じであり、ＣＰＵ１０２により実行される画像処理プログラムと、画像処理プログラムを実行したＣＰＵ１０２が行う処理が第１実施形態と異なるため、以下、第１実施形態と同じであるハードウェア構成については説明を省略し、第１実施形態と異なる処理について、動作の一例をもとに説明する。
【００３３】
（実施形態の動作）
まず、本実施形態においては、スキャナから画像取得部１０８によって画像データが取得され、記憶部１０５に画像データが記憶されるまでの動作と、画像処理プログラムを実行するまでの動作は第１実施形態と同じである。また、ＣＰＵ１０２が、本実施形態に係る画像処理プログラムを実行すると、コンピュータ装置１は、画像処理装置として機能し、ＣＰＵ１０２は、画像処理プログラムに従って、図３，８に示した処理を実行する。
【００３４】
具体的には、まず、ＣＰＵ１０２は、第１実施形態で説明した図３に示した処理を行う。この処理のステップＳＡ１で得られた二値化画像が図９に示した画像である場合、図３の処理を終了すると、図１０に示した二値化画像が得られる。
【００３５】
次に、ＣＰＵ１０２は、図８に示した処理を行う。まず、ＣＰＵ１０２は、置換処理により得られた図１０の二値化画像を解析し、二値化画像の垂直方向のライン毎に、垂直方向に連続する白画素の部分（以下、垂直白ランと称する）を検索する（ステップＳＢ１）。そして、検索された垂直白ランの画素において原点に最も近い先頭画素の座標と、この垂直白ランの画素の数とを特定し、特定した座標と垂直白ランの画素の数をＲＡＭ１０４に設けられるランレングステーブルＴＢ２０に格納する（ステップＳＢ２）。この処理により、たとえば図１０に示した二値化画像の場合、図１１に示したランレングステーブルＴＢ２０が得られる。なお、第１実施形態においては、画素の数が第１閾値以下である場合、座標と画素数とをランレングステーブルに格納していないが、ここでも同様にしてもよい。また、座標と画素数とをランレングステーブルに格納しない場合の閾値は、第１閾値と異ならせてもよい。
【００３６】
ＣＰＵ１０２は、２値化画像の垂直方向の全ラインについて、垂直白ランの検索が終了すると（ステップＳＢ３；ＹＥＳ）、ランレングステーブルＴＢ２０に格納された垂直白ランの先頭画素の座標と、垂直白ランの画素数とを用いて、図１０の二値化画像中の背景領域を特定する。
まず、ＣＰＵ１０２は、背景領域を一意に識別するラベル番号を生成し、このラベル番号をランレングステーブルＴＢ２０の１行目のラベル番号の列に格納する。また、ＣＰＵ１０２は、このラベル番号を、図１２に示したフォーマットでＲＡＭ１０４に設けられる積算値テーブルＴＢ２１のラベル番号の列に格納した後、ランレングステーブルＴＢ２０の１行目に格納されている画素数を読み出し、読み出した数を、積算値テーブルＴＢ２１のラベル番号が「１」の行に格納する。
なお、ランレングステーブルＴＢ２０にある先頭画素の座標と画素数とで二値化画像中の垂直白ランが特定できるため、先頭画素の座標と画素数の組に対応付けてラベル番号を格納するということは、垂直白ランにラベル番号を対応付けたということができる。
【００３７】
次にＣＰＵ１０２は、ランレングステーブルＴＢ２０の２行目に格納されている座標（１，２）と画素数「２０」を読み出す。ここで、ＣＰＵ１０２は、読み出した座標（１，２）を先頭画素とする垂直白ランが、この座標のラインより一つ原点側にある垂直ライン中の垂直白ランであって、ラベル番号が付けられた垂直白ランと接しているか否か判定する。
図１０の二値化画像を見ると、１行１列目を先頭画素とする垂直白ランと、１行２列目を先頭画素とする垂直白ランは接している。この場合、ＣＰＵ１０２は、読み出した画素数を、積算値テーブルＴＢ２１においてラベル番号「１」に対応付けて格納されている積算値に加算し、積算値は「４０」となる。また、ＣＰＵ１０２は、接していた垂直白ランに対応付けられているラベル番号「１」を、ランレングステーブルＴＢ２０の座標（１，２）の行に格納する。
【００３８】
以下、ランレングステーブルＴＢ１０にラベル番号を格納した処理と、積算値テーブルＴＢ１１の積算値に白画素の数を加算した処理と同様にして、ランレングステーブルＴＢ２０および積算値テーブルＴＢ２１についても、ランレングステーブルＴＢ２０にラベル番号を格納する処理と、積算値テーブルＴＢ２１の積算値に白画素の数を加算する処理（ステップＳＢ４）が行われる。
そして、ＣＰＵ１０２は、ランレングステーブルＴＢ２０の全ての行にラベル番号を格納すると、積算値テーブルＴＢ２１のラベル番号毎に、ラベル番号に対応づけられている積算値が予め定められた第２閾値以下であるか判断し、第２閾値以下の積算値のラベル番号を、ランレングステーブルＴＢ２０から削除する（ステップＳＢ５）。なお、ここで第２閾値とは異なる閾値以下であるか判断し、この閾値以下の積算値のラベル番号を、ランレングステーブルＴＢ２０から削除するようにしてもよい。
【００３９】
次に、ＣＰＵ１０２は、ランレングステーブルＴＢ２０を参照し、ラベル番号が対応づけられている座標と画素数の組で特定される垂直白ラン（即ち、背景部分）の部分を白画素とし、他の画素は黒画素に置換する処理を行う（ステップＳＢ６）。
例えば、図１０の画像の場合、ラベル番号「１」が対応づけられている座標（１，１）と画素数「２０」の組で特定される垂直白ラン、即ち、１列目の全ての画素は、白画素とされる。一方、例えば、１１行１５列目から１３行１５列目、１９行１５列目から２０行１５列目の画素は、図１０の二値化画像においては白画素であるが、ランレングステーブルＴＢ２０においては座標が格納されていないため、この座標の白画素は黒画素に置換される。
【００４０】
このように、ＣＰＵ１０２が、ラベル番号が付けられた垂直白ラン以外の画素を黒画素に置換すると、図９の画像からは、最終的に図１３に示した画像が得られる。この画像において、黒画素の領域Ｒ１１，Ｒ１２を特定すれば、図や文字があった領域を特定することとなり、矩形以外の画像についても、その画像の領域を分割することができる。
【００４１】
［変形例］
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。なお、上述した実施形態及び以下の変形例は、各々を組み合わせてもよい。
【００４２】
上述した実施形態においては、積算値が第２閾値以下のラベル番号が付けられている白ランについては、ランレングステーブルＴＢ１０やランレングステーブルＴＢ２０においてラベル番号が削除されているが、積算値が第２閾値以下のラベル番号が付けられている白ランのうち、白ランの画素数が予め定められた閾値以上である白ランについては、ラベル番号を削除しないようにしてもよい。なお、この閾値については、設計により定めたり、ユーザが操作部１０６を操作して設定したりすることが可能であるが、水平白ランについては、二値化画像の水平方向の１ラインの全画素数とし、垂直白ランについては、二値化画像の素直方向の１ラインの全画素数としてもよい。
【００４３】
上述した実施形態においては、ＣＰＵ１０２が画像処理プログラムを実行することにより、ＣＰＵ１０２が画像データを処理し、画像データ中の画像の図や文字の領域を特定しているが、画像データの画像に上述した画像処理を施す構成は、この構成に限定されるものではない。例えば、上述した第１実施形態や第２実施形態の処理を行うＤＳＰ（Digital Signal Processor）やプログラマブルロジックデバイスなどのハードウェアをバス１０１に接続し、画像データを、このハードウェアに供給することにより、ハードウェアで第１実施形態や第２実施形態の処理を行うようにしてもよい。
【００４４】
上述した画像処理プログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ（Hard Disk Drive）、ＦＤ（Flexible Disk））など）、光記録媒体（光ディスク（ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリなどのコンピュータ読取り可能な記録媒体に記憶した状態で提供し、コンピュータ装置１にインストールしてもよい。また、通信回線を介してダウンロードしてインストールしてもよい。
【００４５】
上述した実施形態においては、ＰＣが画像処理プログラムを実行しているが、ＰＣ以外のコンピュータ装置が画像処理プログラムを実行してもよく、例えば、複写機能やスキャナの機能を有する画像形成装置が画像処理プログラムを実行し、上述した第１実施形態や第２実施形態の処理を画像形成装置が行うようにしてもよい。
【００４６】
上述した実施形態においては、白画素を画像中の背景領域の画素とし、黒画素で表される画像の領域を特定しているが、黒画素を画像中の背景領域の画素とし、白画素で表される画像の領域を特定するようにしてもよい。
具体的には、まず、二値化画像から水平方向に黒画素が連続する部分（以下、水平黒ランと称する）を検索し、検索した水平黒ランの先頭画素の座標と画素数とをランレングステーブルＴＢ１０に格納する。なお、上述した実施形態においては、画素の数が予め定められた閾値以下である場合、座標と画素数とをランレングステーブルに格納していないが、ここでも同様にしてもよい。
次にＣＰＵ１０２は、画像中の背景領域を特定するため、ランレングステーブルＴＢ１０に格納された水平黒ランの先頭画素の座標と水平黒ランの画素数とを用い、第１実施形態と同様に、ラベル番号を生成する処理、ラベル番号が付けられた水平黒ランの画素の数をラベル番号毎に積算する処理、ランレングステーブルＴＢ１０にラベル番号を格納する処理を行う。そして、ＣＰＵ１０２は、ランレングステーブルＴＢ１０の全ての行にラベル番号を格納すると、積算値テーブルＴＢ１１のラベル番号毎に、ラベル番号に対応づけられている積算値が予め定められた閾値以下であるか判断し、この閾値以下の積算値に対応づけられているラベル番号を、ランレングステーブルＴＢ１０から削除する。
【００４７】
次に、ＣＰＵ１０２は、第１実施形態と同様にランレングステーブルＴＢ１０を参照し、ラベル番号が対応づけられている座標と画素数の組で特定される水平黒ラン（即ち、背景部分）の部分を黒画素とし、他の画素は白画素に置換する処理を行う。これらの処理により、背景を黒画素とし、画像中の画像を白画素で表す画像についても、図や文字があった領域を特定し、矩形以外の画像についても、画像の領域を特定することができる。なお、垂直方向の黒ランについても、第２実施形態で垂直白ランに対して行った処理と同様の処理を行うようにしてもよい。
【００４８】
上述した実施形態においては、積算値テーブルＴＢ１１（積算値テーブルＴＢ２１）においてラベル番号に対応づけられている積算値が第２閾値以下である場合、第２閾値以下の積算値に対応付けられているラベル番号をランレングステーブルＴＢ１０（ランレングステーブルＴＢ２０）から削除している。この場合、例えば、図１４に示したような、線で区切られた表の各矩形領域内の白ランについては、第２閾値の値によっては、ランレングステーブルＴＢ１０（ランレングステーブルＴＢ２０）からラベル番号が削除されず、矩形の領域内が白画素となる場合がある。
そこで、矩形領域を特定する公知の技術により、線で区切られた各矩形領域を特定し、特定した各矩形領域の画素数を矩形領域毎にカウントし、カウントした矩形領域毎の画素数で最も大きい値より大きい値を第２閾値としてもよい。この構成によれば、各矩形領域内の白ランについては、ランレングステーブルＴＢ１０からラベル番号が削除されるため、最終的には各矩形領域内の白画素が黒画素に置換され、表全体を黒画素に置換した画像を得ることができ、表全体の領域を特定することができる。
【００４９】
上述した第２実施形態においては、画像データから二値化画像を生成する処理を行った後、ステップＳＡ２〜ステップＳＡ７の処理を行わずに図８の処理を行うようにしてもよい。
また、上述した実施形態においては、画像データから二値化画像を生成する処理を行った後、ステップＳＡ２〜ステップＳＡ７の処理のみ、または図８の処理のみを行うか、ユーザが操作部１０６を操作してコンピュータ装置１に指示するようにし、ＣＰＵ１０２は、指示された処理のみを行うようにしてもよい。
【符号の説明】
【００５０】
１・・・コンピュータ装置、１０１・・・バス、１０２・・・ＣＰＵ、１０３・・・ＲＯＭ、１０４・・・ＲＡＭ、１０５・・・記憶部、１０６・・・操作部、１０７・・・表示部、１０８・・・画像取得部、２００・・・二値化部、２０１・・・ランレングス特定部、２０２・・・領域特定部
【図１】
2011018997.tif 000003
【図２】
2011018997.tif 000004
【図３】
2011018997.tif 000005
【図４】
2011018997.tif 000006
【図５】
2011018997.tif 000007
【図６】
2011018997.tif 000008
【図７】
2011018997.tif 000009
【図８】
2011018997.tif 000010
【図９】
2011018997.tif 000011
【図１０】
2011018997.tif 000012
【図１１】
2011018997.tif 000013
【図１２】
2011018997.tif 000014
【図１３】
2011018997.tif 000015
【図１４】
2011018997.tif 000016