本発明の実施の形態に係る画像処理装置は、図1に示すように、制御部11と記憶部12と画像入力部13と画像出力部14とを含んで構成されている。制御部11は、記憶部12に格納されているプログラムに従って動作しており、後に説明する各画像処理を遂行する。この画像処理の内容については、後に詳しく述べる。
記憶部12は、制御部11によって実行されるプログラムを保持している。またこの記憶部12は、制御部11の処理の過程で生成される各種データ等を格納するワークメモリとしても動作する。具体的にこの記憶部12は、コンピュータ可読な記録媒体と当該記録媒体に対してデータを書き込み、又は当該記録媒体からデータを読み出す装置(例えばハードディスク装置やメモリ装置)として実装できる。
画像入力部13は、例えばスキャナであり、原稿を光学的に読み取って得られた画像データを制御部11に出力する。ここではこの画像入力部13が出力する画像データにおいて、各画素の値がRGB(赤、緑、青)の色空間で表現されているとする。画像出力部14は、制御部11から入力される指示に従って画像データを出力するもので、例えば画像形成部(プリンタ等)に出力し、又はネットワークを介して外部の装置に送信する等の処理を行うものである。
次に制御部11の処理の内容について説明する。本実施の形態の制御部11は、図2に機能的に示すように、画像入力部13から入力される画像データを処理対象として、この処理対象となった画像データに対して、所定前処理を行う前処理部21と、絵柄部分の候補となる部分(絵柄候補部分)を特定する絵柄候補部分特定処理部22と、文字線画を抽出する文字線画抽出処理部23と、レイアウト処理を遂行するレイアウト処理部24と、同一色領域分離部25と、穴埋処理部26と、圧縮処理部27とを含んで構成されている。
以下、これら各部について具体的に説明する。
[1.前処理部]
この前処理部21では、画像入力部13から入力される画像データ(処理対象画像データ)の各画素の値をRGBからYCbCr(輝度と色差とからなる値)に変換する。具体的には、次の(1)式を用いて変換を行うことができる。なお、ここではRGBの各成分の値は0x00(「0x」は16進数であることを示す)から0xFFまでの値であるとしている。また、この前処理部21では、下地領域の輝度・彩度に基づいて各画素値を階調補正してもよい。尤も、この階調補正の処理は、必ずしも必要なものではない。
[2.絵柄候補領域特定処理部]
絵柄候補部分特定処理部22は、前処理部21が出力するYCbCr色空間で表現された画像データから絵柄の領域と推定される領域を、絵柄候補領域として特定する処理を行う。具体的に、絵柄候補部分特定処理部22の処理方法は、種々の方法があるので、以下そのうちの代表的な2つの方法の例について説明する。
絵柄候補部分特定処理部22は、図3(a)に示すように、二値化処理部31と、連結画素抽出部32と、特徴量算出部33と、属性判定部34と、非絵柄領域処理部35と、背景領域塗潰部36と、絵柄候補領域作成部37とを含んで構成される。
二値化処理部31は、前処理部21が出力するYCbCr色空間で表現された画像データを記憶部12にコピーして格納する。そして、当該コピーされた画像データ(絵柄領域特定画像データ)の各画素の値を参照しながら、当該画素値の輝度成分と、予め定めた二値化しきい値とを比較して、輝度成分が二値化しきい値以上の画素を黒画素(値「1」)、輝度成分が二値化しきい値未満の画素を白画素(値「0」)としていき、当該絵柄領域特定画像データを二値画像データに変換する。
連結画素抽出部32は、二値画像データ中から、黒画素が連結している領域(連結領域)を抽出する。この連結領域の抽出は、ラベリング処理として広く知られた処理を用いることができる。ラベリング処理を用いる場合、各連結領域には互いに異なるラベル識別子を付して、記憶部12に格納しておく。
特徴量算出部33は、連結画素抽出部32によって抽出された連結領域の各々について、その所定のスケール特徴量を演算する。ここでスケール特徴量には、連結領域に関係して定められる矩形の面積や、当該矩形内での黒画素の密度(矩形内の黒画素の数を矩形内の全画素の数で除したもの)などを含む。例えば特徴量算出部33は次のように処理を行う。すなわち特徴量算出部33は、各連結領域ごとの関係領域として、各連結領域に外接する矩形(外接矩形)を画定する。具体的に外接矩形は、連結領域に含まれる画素のうち、そのX座標が最小のもの(絵柄領域特定画像データ中で最も左にあるもの)の当該X座標をXminとし、同じくY座標が最小のもの(絵柄領域特定画像データ中で最も上にあるもの)の当該Y座標をYminとし、以下同様にX座標が最大のものと、Y座標が最大のものとにおける、X座標とY座標とのそれぞれをXmax、Ymaxとして、(Xmin,Ymin)から(Xmax,Ymax)までの線を対角線とする矩形を外接矩形と定める。そして当該外接矩形の面積Aを、(Xmax−Xmin)×(Ymax−Ymin)として演算する。なお、この面積Aは、当該外接矩形に含まれる全画素の数にも等しい。一方、特徴量算出部33は、当該外接矩形内の黒画素の数をカウントし、その数を上記全画素の数(すなわち面積Aの値)で除して密度Dを求める。
こうして特徴量算出部33は、各連結領域について、これら外接矩形の面積A(面積特徴量に相当する)と、黒画素密度D(密度特徴量に相当する)とを、当該連結領域のスケール特徴量として算出する。そして、各連結領域の識別子(例えばラベル識別子)とそのスケール特徴量とを関連づけて、記憶部12にスケール特徴量データベースとして格納しておく。
属性判定部34は、記憶部12に格納されたスケール特徴量データベースを参照しながら、各連結領域が絵柄候補領域であるか否かを判定する。具体的な例を挙げると、この属性判定部34は、文字であれば一定以上のサイズがあり、その内部の黒画素密度は比較的小さいはずであるとの前提に基づく処理を行う。つまり、一般的なドキュメントで利用されるフォントサイズの最小値(例えば6ポイント)に相当する面積(いわば最小面積)未満の領域(小領域)は、文字を含まない、絵柄の領域と判定できるので、こうした小領域を除去することで文字部分を特定できる。
また、文字は基本的に線からなるので、複雑な文字であっても領域内の画素のうち一定割合以上が黒画素となることはない。そこで、最小面積より大きい面積を有する矩形であっても、その内部で黒画素の数の占める割合(つまり黒画素密度)が比較的大きい場合に、絵柄であると判定できる。
さらに、本実施の形態では、例えば一般的なドキュメントで利用されるフォントサイズの最大値(例えば24ポイント)に相当する面積(いわば最大面積)以上の場合、文字は含まれないと基本的に判断できる。しかしながら、こうした領域は絵柄だけでなく線図(グラフなど)である場合もある。そこで、ここでも黒画素密度を利用して、最大面積より大きい面積を有する矩形のうち、黒画素密度が比較的大きい場合に限り、絵柄であると判定する。なぜならば、グラフなどの線図は、線を用いて構成されるので黒画素の密度は比較的低くなると推定されるからである。
つまり、本実施の形態では、各連結領域ごとに、その面積特徴量が予め定めた複数の等級のいずれに属するかを判断し、各等級について予め定められた密度しきい値のうち、当該面積特徴量が属する等級に係る密度しきい値と密度特徴量とを比較して、絵柄であるか否かを表す情報(本発明にいう分類情報)を生成する。
具体的に本実施の形態の属性判定部34は、上記最小面積を表す第1の面積しきい値α1と、最大面積を表す第2の面積しきい値α2(ただし、α1<α2)並びに、第1、第2の密度しきい値(ρ1,ρ2)を予め定めておき、これらのしきい値を用いて、次のように判定する。
すなわち属性判定部34は、図4に示すように、スケール特徴量データベースに含まれる連結領域のうち、この処理で未だ選択されていない連結領域の一つを注目領域として選択する(S1)。そしてこの注目領域に関連づけられたスケール特徴量を読み出して、当該スケール特徴量に含まれる面積Aが、第1の面積しきい値α1未満となっているか否か(A<α1か否か)を調べる(S2)。ここで、A<α1であれば、注目領域を非絵柄領域として判定し、注目領域の識別子(例えばラベル識別子)と、その判定結果(非絵柄領域である旨を表す情報)とを関連づけて記憶部12に格納し(S3)、スケール特徴量データベース内にこの処理で未だ選択されていない連結領域があるか否かを調べて(S4)、未選択の連結領域があれば(Yesならば)、処理S1に戻って処理を続ける。また、処理S4において、未選択の連結領域がなければ(Noならば)、つまりすべての連結領域について判定を終了したならば、処理を終了する。
また、処理S2において、A<α1でなければ、続いて注目領域の面積Aが第2の面積しきい値α2を越えているか否か(A>α2であるか否か)を調べ(S5)、A>α2であれば、注目領域のスケール特徴量の一つである黒画素密度Dが、第1の密度しきい値ρ1未満であるか否か(D<ρ1か否か)を調べ(S6)、D<ρ1であれば、注目領域が絵柄領域である判定して、注目領域の識別子(例えばラベル識別子)と、その判定結果(絵柄領域である旨を表す情報)とを関連づけて記憶部12に格納し(S7)、処理S4に移行する(Y)。さらに処理S6において、D<ρ1でなければ、処理S3に移行(X)して(つまり非絵柄領域と判定して)処理を続ける。
また、処理S5において、A>α2でなければ、注目領域のスケール特徴量の一つである黒画素密度Dが、第2の密度しきい値ρ2未満であるか否か(D<ρ2か否か)を調べ(S8)、D<ρ2であれば、処理S3に移行(X)して(つまり非絵柄領域と判定して)処理を続け、D<ρ2でなければ、処理S7に移行(Z)して(つまり絵柄領域と判定して)処理を続ける。なお、第1,第2の密度しきい値ρ1,ρ2は、それぞれ実験によって線画等を抽出するのに適した値と、文字等を抽出するのに適した値とに定める。
また、面積特徴量又は面積しきい値の少なくとも一方を、処理対象となっている画像データの解像度に基づいて補正してもよい。例えば面積しきい値α1,α2が解像度r0で設定された値である場合において、処理対象となった画像データの解像度がrであったとき、第1の面積しきい値α1を(r/r0)×α1に補正し、第2の面積しきい値α2を(r/r0)×α2に補正する。
非絵柄領域処理部35は、属性判定部34によって生成されて記憶部12に格納されている、各連結領域ごとの判定結果を参照して、絵柄領域特定画像データのうち、非絵柄領域と判定された連結領域に含まれる黒画素を白画素に変換して、非絵柄領域と背景とが白画素となっている絵柄領域特定画像データを生成する。
背景領域塗潰部36は、非絵柄領域と背景とが白画素となっている絵柄領域特定画像データに対して、絵柄部分の境界と連結している白画素を、所定の値(白、黒以外の任意の色)で塗りつぶす。ここでは、広く知られているような、閉じた領域(閉曲線で囲まれた内部又は外部)を塗つぶす処理を用いる。絵柄候補領域作成部37は、背景領域塗潰部36によって所定の値で塗潰されなかった画素の色を黒に設定する。この絵柄候補領域作成部37によって黒画素に設定された部分を絵柄候補領域として扱うことになる。
この、小領域除去の方法による絵柄候補部分特定処理部22の動作について説明する。以下、図5(a)に示す画像データを処理対象とする場合を例として説明する。なお、図示の都合上、図5(a)においては、全体を線図で示しているが、図5(a)には、写真部分Pと、テキスト部分Tと、線図部分Gと、地図などの図版部分Mとが含まれているものとする。また、地図M内には、地図を構成する線分と一部重なり合う文字等が記述されている場合がある(X)。例えば道路名を示す文字などは、他の道路と重なり合って示されていることも多い。
絵柄候補部分特定処理部22がこれを二値化処理して(図5(b))、連結画素を抽出し、各連結画素についての特徴量に基づき小領域除去の処理を行う。すると絵柄領域特定画像データは、図5(c)に示すように、テキスト部分(T)が除かれた状態となる。なお図5においては線図部分Gの黒画素密度が比較的高いので、当該線図部分Gは除去されずに残存した状態となっている。また、地図部分M内において線分と重なり合っている文字は、当該重なり合う線分と一体として連結画素として抽出されてしまう。このためこの連結画素を囲む矩形の面積が大きくなり、小領域として除去されず、残存することとなる(図5(c)のX)。
絵柄候補部分特定処理部22は、背景となっている白画素部分Bを所定の色で塗潰し(図5(d))、さらにこの所定の色で塗潰された部分以外の部分を黒画素とする。ここで背景となっている部分を塗潰す方法としては、画像データの四隅(左上、右上、左下、右下の四隅)から線分によって仕切られない領域を塗潰す、一般的なペイント処理を利用する方法を採ることができる。そして絵柄候補部分特定処理部22は、上記所定の色部分を白画素に戻す。すると、図5(e)に示すように、絵柄候補となる部分が黒画素となり、それ以外の部分が白画素となっているような絵柄領域特定画像データが得られることとなる。
また、絵柄候補部分特定処理部22は、非絵柄領域処理部35によって絵柄領域特定画像データのうち、非絵柄領域と判定された連結領域に含まれる黒画素を白画素に変換した後の絵柄領域特定画像データに対して、膨張収縮処理を行ってもよい。すなわち、図3(b)に示すように、絵柄候補部分特定処理部22による処理は機能的に、二値化処理部31と、連結画素抽出部32と、特徴量算出部33と、属性判定部34と、非絵柄領域処理部35と、膨張収縮部38と、背景領域塗潰部36と、絵柄候補領域作成部37とを含んで構成されてもよい。
ここで膨張収縮部38は、非絵柄領域処理部35によって絵柄領域特定画像データのうち、非絵柄領域と判定された連結領域に含まれる黒画素を白画素に変換した後の絵柄領域特定画像データに含まれる画素を順次注目画素として選択する。
そして膨張収縮部38は、注目画素の近傍(上下左右の画素からなる4近傍または、周辺8画素の8近傍)に黒画素が一つでもあれば、当該注目画素を黒画素とする処理(膨張処理)を行って、黒画素部分を膨張させて、次の注目画素を選択する。この選択順序は、上から下へとラインを走査し、ライン内は左から右へと走査する順序(いわゆるラスタスキャン順)とすればよい。
膨張収縮部38は、すべての画素に対する膨張処理を完了すると、再び、各画素を順次注目画素として選択しながら収縮処理を開始する。収縮処理では、注目画素の近傍(4近傍または8近傍)に白画素が一つでもあれば、注目画素を白画素とする。そして、全画素について収縮処理が完了すると、膨張収縮部38の処理を終了する。
この場合、背景領域塗潰部36は、膨張収縮部38によって処理された後の絵柄領域特定画像データに対して、絵柄部分の境界と連結している背景部分の白画素を、所定の値(白、黒以外の任意の色)で塗りつぶすことになる。
このように膨張収縮処理を行うことによって、網点の領域が背景領域と区別されて絵柄領域として認識され易くなる。
本実施の形態では、この絵柄領域候補を特定する処理において文字部分を絵柄と誤判定しても、後に行われるレイアウト処理によって文字部分がさらに抽出されるので、絵柄候補領域の抽出精度が比較的低くても構わない。
なお、ここまでの説明では、背景領域塗潰部36は、背景部分を所定の色で塗り潰すこととしているが、これに代えて次のようにしてもよい。すなわち、連結領域の抽出にラベリング処理を用いている場合に、当該抽出の際に得られた最大のラベルの値より大きい値(例えば最大のラベル値に1を加えた値)のラベル(背景特定ラベル)を背景部分の画素のラベルに置換えて設定していくこととしてもよい。この場合、絵柄候補領域作成部37は、当該背景特定ラベルが付されていない画素を黒画素に設定することで、図5(e)に示した絵柄領域特定画像データを生成してもよい。
制御部11は、特定された絵柄候補領域の各々を規定する座標情報(以下、絵柄候補領域画定情報と呼ぶ)を記憶部12に格納する。
[3.文字線画抽出処理部]
文字線画抽出処理部23は、前処理部21が出力するYCbCr色空間で表現された画像データから文字線画部分を抽出する処理を行う。この処理は、例えば特許文献3に開示されている通りの処理を用いることができる。
そして文字線画抽出部処理部23は、個々の文字や、線画部分についてそれらを取囲む矩形(文字線画外接矩形)の座標情報を記憶部12に格納する。
[4.レイアウト処理部]
レイアウト処理部24は、絵柄候補部分特定処理部22が生成した絵柄候補領域画定情報と、文字線画抽出処理部23が生成した文字線画外接矩形の座標情報とを記憶部12から読み出す。
レイアウト処理部24は、この絵柄候補領域画定情報によって画定される絵柄候補領域と、文字線画外接矩形の座標情報で画定される文字線画の領域とのそれぞれに対して互いに異なる判定条件を用いてレイアウト解析を行う。
具体的に本実施の形態においては、記憶部12から読出した絵柄候補領域画定情報によって画定される絵柄候補領域においてレイアウト解析処理を行い、当該絵柄候補領域の中からさらに文字部分の抽出を試みる。そして、抽出された文字部分を除く部分を絵柄領域として画定し、後段の処理に供する。
ここでレイアウト解析処理の処理内容について説明する。レイアウト処理部24は図6に機能的に示すように、二値化処理部41と、連結画素抽出部42と、基本矩形画定部43と、第1セパレータ検出部44と、行矩形画定部45と、第2セパレータ検出部46と、文字領域画定部47と、ノイズ判定部48と、文字部分特定部49とを含んで構成される。
二値化処理部41は、前処理部21が出力するYCbCr色空間で表現された画像データ(元の画像データ)のうち、絵柄候補領域画定情報で画定される領域内の部分的な画像データ(絵柄候補部分データ)を処理対象として、この処理対象となった絵柄候補部分データを二値化して、二値化絵柄候補部分データを生成する。
連結画素抽出部42は、二値化絵柄候補部分データに対してラベリング処理を行い、所定の条件(例えば黒画素である等の条件)を満足する画素値の画素が連続する部分からなる複数の画素群(連結画素群)を特定する。
基本矩形画定部43は、連結画素抽出部42が特定した連結画素群に関する矩形(例えば連結画素群に外接する矩形)を基本矩形として画定し、各連結画素群についての基本矩形の座標情報(当該矩形を画定するための座標情報)を生成する。そして、各基本矩形ごとに固有の識別子を発行し、当該識別子と基本矩形の座標情報とを関連づけて基本矩形データベースとして記憶部12に格納する。
第1セパレータ検出部44は、処理対象となっている絵柄候補部分データの左上端の画素を初期位置として、各画素を左から右へと1ライン走査し、一つ下のラインについて同様に(すなわちラスタスキャン順に)走査していき、上記ラベリング処理における所定の条件を満足しない画素値の画素(例えば白画素)が、予め定めた水平方向閾値より多く連続している場合に、当該連続画素部分を(水平方向の)第1セパレータとして検出し、当該第1セパレータを特定する情報(連続画素部分の左端画素の座標と右端画素の座標など、ここで座標は、元の画像データ上の座標であってもよいし、絵柄候補部分データ上のローカルな座標であってもよい)を生成して記憶部12に格納する。
また、この第1セパレータ検出部44は、処理対象となっている絵柄候補部分データの左上端の画素を初期位置として、各画素の画素を上から下へと1ライン走査し、一つ右のラインについて同様に走査していき、上記ラベリング処理における所定の条件を満足しない画素値の画素(例えば白画素)が、予め定めた垂直方向閾値より多く連続している場合に、当該連続画素部分を(垂直方向の)第1セパレータとして検出し、当該第1セパレータを特定する情報(連続画素部分の上端画素の座標と下端画素の座標など、ここで座標は、元の画像データ上の座標であってもよいし、絵柄候補部分データ上のローカルな座標であってもよい)を生成して記憶部12に格納する。
これらの処理において、水平方向閾値や垂直方向閾値は、ユーザが任意に定め得る。水平方向閾値は多段組のレイアウトにおいて各段を分かつための閾値であり、垂直方向閾値は2行以上の文字列を含む文書から、各行を分かつための閾値である。またユーザの設定によるだけでなく、水平方向閾値は基本矩形の幅の統計値(平均)などに基づく所定関数値として、また垂直方向閾値は基本矩形の高さの統計値(平均)などに基づく所定関数値としてそれぞれ定めてもよい。
具体的に第1セパレータは、図7(a)に示すような状態で検出されることになる。なお、図7(a)では各第1セパレータが相互に隣接して検出された結果として、一つの第1セパレータ領域のように示されている。
行矩形画定部45は、記憶部12に格納されている基本矩形の一つを注目基本矩形として選択する。そして、記憶部12に格納されている基本矩形であって、いままでに注目基本矩形として選択されていない基本矩形を処理対象基本矩形として順次選択しながら、次の処理を行う。
すなわち、注目基本矩形の中心座標(座標情報が対角位置にある各頂点の座標を表している場合、その中点座標)から、処理対象基本矩形の中心座標へのベクトルを算出する。さらに行矩形画定部45は、ベクトルの大きさ(各成分の二乗和の平方根)から注目基本矩形と処理対象基本矩形との距離を算出する。そして、この算出した距離が予め定めた距離閾値以下となっている場合は、上記算出したベクトルが、検出された第1セパレータのいずれかと交差するか否かを調べる。この処理は2つの線分が交差するか否かを調べる処理として広く知られたものを用いることができる。ここで、上記算出したベクトルが、検出された第1セパレータのいずれとも交差しない場合、注目基本矩形の識別子に、当該処理対象基本矩形の識別子を関連づけて基本矩形関係データベースとして記憶部12に格納する。
行矩形画定部45は記憶部12に格納されている基本矩形について順次注目基本矩形として選択しながら上記処理を行う。そしてこの処理の結果として得られた基本矩形関係データベースを参照しながら連鎖的に互いに関連する一連の基本矩形群(複数あってもよい)を特定し、特定された基本矩形群に含まれる基本矩形に外接する矩形を行矩形として画定する(例えば図7(b))。
例えば基本矩形関係データベース内において、識別子が「1」の基本矩形と識別子が「2」の基本矩形とが関連づけられ、また識別子が「2」の基本矩形と識別子が「3」の基本矩形とが関連づけられている場合、行矩形画定部45は、これらの結果を統合して識別子「1」と「2」と「3」との各基本矩形を一連の基本矩形群として特定する。そして基本矩形群に含まれる基本矩形のうち、その座標情報のx(水平方向)の値の最大値と最小値とを抽出し、同じようにy(垂直方向)の値の最大値と最小値とを抽出する。そして、抽出されたxの最小値とyの最小値とを組とした第一座標と、xの最大値とyの最大値とを組とした第二座標とを、それぞれ左上座標,右下座標とする行矩形を画定する。つまり、行矩形は、この2つの座標値を含む座標情報によって画定される。
行矩形画定部45は、こうして画定した各行矩形についてそれぞれ固有の識別子を発行し、各識別子とその行矩形の座標情報と当該行矩形に含まれる基本矩形群を特定する情報(各基本矩形の識別子のリストなど)とを関連づけて行矩形データベースとして記憶部12に格納する。
第2セパレータ検出部46は、処理対象となっている絵柄候補部分データの左上端の画素を初期位置として、各画素を左から右へと1ライン走査し、一つ下のラインについて同様に(すなわちラスタスキャン順に)走査していき、連結画素抽出部42でのラベリング処理における所定の条件を満足する画素値の画素(例えば黒画素)が、予め定めた水平方向閾値より多く連続している場合に、当該連続画素部分を(水平方向の)第2セパレータとして検出し、当該第2セパレータを特定する情報(連続画素部分の左端画素の座標と右端画素の座標など、ここで座標は、元の画像データ上の座標であってもよいし、絵柄候補部分データ上のローカルな座標であってもよい)を生成して記憶部12に格納する。
また、この第2セパレータ検出部46は、処理対象となっている絵柄候補部分データの左上端の画素を初期位置として、各画素の画素を上から下へと1ライン走査し、一つ右のラインについて同様に走査していき、連結画素抽出部42でのラベリング処理における所定の条件を満足する画素値の画素(例えば黒画素)が、予め定めた垂直方向閾値より多く連続している場合に、当該連続画素部分を(垂直方向の)第2セパレータとして検出し、当該第2セパレータを特定する情報(連続画素部分の上端画素の座標と下端画素の座標など、ここで座標は、元の画像データ上の座標であってもよいし、絵柄候補部分データ上のローカルな座標であってもよい)を生成して記憶部12に格納する。
これらの処理において、水平方向閾値や垂直方向閾値は、ユーザが任意に定め得る。水平方向閾値は多段組のレイアウトにおいて各段を分かつための閾値であり、垂直方向閾値は2行以上の文字列を含む文書から、各行を分かつための閾値である。またユーザの設定によるだけでなく、水平方向閾値は基本矩形の幅の統計値(平均)などに基づく所定関数値として、また垂直方向閾値は基本矩形の高さの統計値(平均)などに基づく所定関数値としてそれぞれ定めてもよい。
文字領域画定部47は、行矩形画定部45が画定した行矩形の一つを注目行矩形として選択する。そして文字領域画定部47は、記憶部12に格納されている行矩形であって、いままでに注目行矩形として選択されていない行矩形を処理対象行矩形として順次選択しながら、次の処理を行う。
すなわち、注目行矩形の各頂点の座標と処理対象行矩形の対応する頂点の座標とを結ぶ線分、及び注目行矩形と処理対象行矩形の各辺とによって画定される多角形領域を生成し、この多角形領域と第2セパレータ(の領域)とが交差(領域同士が少なくとも一部で重なり合う)するか否かを調べる。この処理は2つの領域が交差するか否かを調べる処理として広く知られたものを用いることができる。
ここで多角形領域と第2セパレータとが交差していない場合、注目行矩形の識別子と処理対象行矩形の識別子とを関連づけて行矩形関係データベースとして記憶部12に格納する。
文字領域画定部47は記憶部12に格納されている行矩形について順次注目行矩形として選択しながら上記処理を行う。そしてこの処理の結果として得られた行矩形関係データベースを参照しながら連鎖的に互いに関連する一連の行矩形群(複数あってもよい)を特定し、特定された行矩形群に含まれる行矩形に外接する矩形を文字領域として画定する。
例えば行矩形関係データベース内において、識別子が「1」の行矩形と識別子が「2」の行矩形とが関連づけられ、また識別子が「2」の行矩形と識別子が「3」の行矩形とが関連づけられている場合、行矩形画定部45は、これらの結果を統合して識別子「1」と「2」と「3」との各行矩形を一連の行矩形群として特定する。そして行矩形群に含まれる行矩形のうち、その座標情報のx(水平方向)の値の最大値と最小値とを抽出し、同じようにy(垂直方向)の値の最大値と最小値とを抽出する。そして、抽出されたxの最小値とyの最小値とを組とした第一座標と、xの最大値とyの最大値とを組とした第二座標とを、それぞれ左上座標,右下座標とする文字領域の矩形を画定する。つまり、文字領域は、この2つの座標値を含む座標情報によって画定される。
文字領域画定部47は、こうして画定した文字領域についてそれぞれ固有の識別子を発行し、各識別子とその文字領域の座標情報と当該文字領域に含まれる行矩形群を特定する情報(各行矩形の識別子のリストなど)とを関連づけて文字領域データベースとして記憶部12に格納する。
ノイズ判定部48は、文字領域画定部47によって画定された文字領域のそれぞれについて文字が含まれているか否かを確認する、ノイズ判定処理を行う。ここでノイズ判定処理は、行矩形の数、又は各行矩形の性状を表す情報に基づいて、各行矩形に文字が含まれているか否かを判断する第1ノイズ判定処理と、行矩形に関係する基本矩形に関する情報に基づいて、当該行矩形に文字が含まれているか否かを判断する第2ノイズ処理とを含む。
具体的にノイズ判定部48の処理は、図8に示すような処理として行われる。まずノイズ判定部48は記憶部12に格納された文字領域のうち、未だ注目文字領域として選択されていないものを注目文字領域として選択する(S11)。そして注目文字領域に含まれる行矩形の数を調べ、これが2以上か(すなわち、当該文字領域が複数行からなるか)否かを判断する(S12)。ここで、行矩形の数が2以上であれば(Yesならば)、注目文字領域に含まれる各行矩形の幅と高さ、並びにそれらの平均や標準偏差など、ばらつきを検定するための統計量を演算する(S13)。そして、これらの統計量に基づいて各行矩形の幅や高さのばらつきが所定のしきい値より大きいか否かを比較する(S14)。この比較は例えば標準偏差が、予め定めたしきい値を超えるか否かの比較とすることができる。そしてこの処理S14によって、ばらつきが大きいと判断される場合(Yesの場合)、注目文字領域には文字は含まれないと判断して、記憶部12の文字領域データベースから、注目文字領域を削除して(S15)、処理S18に移行する。これら処理S12からS15の処理が、第1ノイズ判定処理に相当する。すなわちここでは行矩形の性状を表す情報として各行矩形の幅や高さ、並びにそれらの統計量が用いられている。
一方、処理S14において、ばらつきが小さいと判断される場合(Noの場合)には、注目文字領域に含まれる各行矩形に対して行内判定処理(第2ノイズ判定処理)を行う(S16)。この処理S16の具体的内容については後述する。そしてこの処理S16においてノイズ(文字が含まれていない)と判定された行の数と注目文字領域に含まれる行矩形の数との比に基づいて、ノイズと判定された行の数が、注目文字領域に含まれる行矩形の数に比して所定比率以上となっているか否かを判断し(S17)、所定比率以上であるときに、注目文字領域には文字は含まれないと判断して、処理S15に移行する。
また、処理S17において、所定比率未満である場合は、未だ注目文字領域となっていない文字領域が記憶部12の文字領域データベースにあるか否かを調べ(S18)、未選択の文字領域があれば、処理S11に戻って処理を続ける。さらに処理S18において、未選択の文字領域がないならば(すべての文字領域について処理を行ったならば)、ノイズ判定の処理を終了する。
さらに処理S12において行矩形の数が1つであれば(Noならば)、処理S16に移行して処理を続ける。この場合、当該単一の行矩形について文字が含まれているか否かを判断し、文字が含まれていれば(この場合は処理S17の比率は「0」となる)、注目文字領域には文字が含まれると判断され、当該単一の行矩形内に文字が含まれていないならば(この場合は処理S17の比率は「1」となる)、注目文字領域には文字が含まれないと判断される。
ここで、処理S16における具体的処理(第2ノイズ判定処理)の内容について説明する。この処理ではノイズ判定部48は、図9に示すように、処理の対象となった各行矩形の一つを注目行矩形として選択し(S21)、記憶部12に格納されている行矩形データベースを参照して、当該注目行矩形に含まれる基本矩形の数をカウントする(S22)。そしてカウントの結果、基本矩形の数が「1」である場合と、「2」である場合と、「3」以上である場合とに分岐して(S23)、基本矩形の数が「1」である場合は、注目行矩形に含まれる基本矩形の識別子のリストを取得し、このリストに含まれる基本矩形の座標情報を記憶部12の基本矩形データベースから読出して、このリストに含まれる基本矩形の幅及び高さとその積(つまり面積)を演算する。そしてこの面積が予め定められた面積しきい値以下であるか否かを判断し(S25)、面積しきい値以下である場合は、注目行矩形には文字が含まれないと判断して、当該結果を記憶部12に格納する(S26)。そして未だ注目行矩形として選択されていない行矩形があるか否かを調べ(S27)、未選択の行矩形があれば、当該未選択の行矩形の一つを注目行矩形として選択するべく処理S21に戻って処理を続ける。一方、処理S27において未選択の行矩形がなければ、処理を終了して図8の処理に戻る。
さらに処理S22におけるカウント値が「2」である場合、各基本矩形の面積を演算し、また、これらの基本矩形間の距離を演算する。基本矩形間の距離は、例えば基本矩形の中心同士の距離として演算できる。そして、距離が予め定めた距離しきい値より大きいか、または2つの基本矩形の面積の比が予め定めた面積比しきい値より大きいかを判断し(S31)、距離が予め定めた距離しきい値より大きいか、または2つの基本矩形の面積の比が予め定めた面積比しきい値より大きい場合は、処理S26に移行して(X)処理を続ける。
さらに、処理S22におけるカウント値が「3」以上である場合には、カウント値(基本矩形の数)が所定最大数を超えているか否かを判断し(S32)、この所定最大数を超える場合は、注目行矩形には文字が含まれないと判断して処理S26に移行する(X)。これは、一行内に例えば100字を超える文字を含めることは通常あり得ないことなどに配慮したものであり、固定値として定めておいてもよいし、注目行矩形の幅に基づいて調整してもよい。また処理S32において基本矩形の数が所定最大数を超えていない場合は、さらに各基本矩形の面積を演算して、演算された面積の最大値が、所定最大面積値を超えているか否かを判断する(S34)。ここで所定最大面積値を超えていると判断される場合は、注目行矩形には文字が含まれないと判断して処理S26に移行する(X)。この最大面積値も、固定値として定めてもよいし、注目行矩形の幅や高さの少なくとも一方(例えばそれらのうち小さい方)に基づいて調整してもよい。
さらに処理S34において所定最大面積値を超えていないと判断される場合、さらに2つの基本矩形の組み合せ(任意に取り出された少なくとも一つの組み合せ)について、各組み合せに係る2つの基本矩形の面積比が予め定めた面積比しきい値より大きいかを判断し(S35)、2つの基本矩形の面積の比が予め定めた面積比しきい値より大きい場合は、処理S26に移行して処理を続ける(X)。
この処理S35において2つの基本矩形の面積の比が予め定めた面積比しきい値より大きくない場合は、注目行矩形内に文字が含まれると判断して、その判断結果を記憶部12に格納し、処理S27に移行する。
なお、処理S25において、面積が面積しきい値を超える場合、並びに、処理S31において、距離が予め定めた距離しきい値以下であり、かつ2つの基本矩形の面積の比が予め定めた面積比しきい値以下である場合には、処理S32(または処理S34)以下に移行して処理を続けることとする。
また、処理S35においては各組み合せについて処理を行っているが、処理負荷を軽減するためには、例えば各基本矩形の面積の平均値(平均面積)や、最小値(最小面積)・最大値(最大面積)を演算し、平均面積と最小面積、平均面積と最大面積との比、あるいは最小面積と最大面積との比と、上記面積比しきい値との比較を行ってもよい。
このように、ノイズ判定部48は、各行矩形について、そこに含まれる基本矩形の性状(面積、面積比、距離など)に基づき、各行矩形に真に文字が含まれているか否かを再確認する。
なお、ノイズ判定部48の第1ノイズ判定処理は、ここで述べた例に限られない。例えばここでは行矩形の性状として各行矩形の幅や高さを用いていたが、これらとともに、またはこれらに代えて、行矩形の座標情報(の平均値や標準偏差などの統計量)を用いてもよい。これによると、文字領域内に含まれる行矩形の位置がばらついている場合などに、当該文字領域には文字が含まれていない(ノイズである)と判断して、記憶部12の文字領域データベースから、注目文字領域を削除することとなる。
文字部分特定部49は、ノイズ判定部48の処理を経た文字領域データベースを記憶部12から読出して、当該文字領域データベースに含まれる文字領域(文字領域の座標情報そのもの)、または当該文字領域内の黒画素部分(文字領域の座標情報と、黒画素部分からなるビットマップ情報)を文字部分として特定し、当該文字部分を特定する情報(文字部分特定情報)を記憶部12に格納する。制御部11は、この時点で記憶部12に格納されている、基本矩形関係データベースや行矩形関係データベースを削除してもよい。
このように、本実施の形態におけるレイアウト処理部24は、文字から行、行から領域へと段階的に文字領域を画定し、当該画定した文字領域内の行の状態に基づいて文字列が含まれているかを判断し、文字列が含まれていないと判断される場合には、さらに行内(文字単位)の状態に基づいて文字が含まれているかを判断することとしている。尤も、本実施の形態におけるレイアウト処理はこれに限られるものではなく、その他広く知られたレイアウト処理を用いても構わない。
本実施形態において特徴的なことの一つは、いわゆるT/I分離処理においてレイアウト解析を用いて文字部分を抽出することとしていることである。これによって絵柄候補領域に含まれる文字部分もレイアウト解析処理によって抽出されることとなり、文字部分の抽出精度を向上させることができる。
一方、レイアウト処理部24は、文字線画として画定された部分(文字線画外接矩形)内についても、レイアウト解析処理を行う。そしてレイアウト処理部24は、当該レイアウト解析処理の結果として得られたレイアウト枠(少なくとも各文字に外接する矩形(基本矩形)を含む)を定め、これらレイアウト枠の情報(座標情報など)を記憶部12に格納する。
なお、文字線画外接矩形内においても、上記基本矩形を水平または垂直方向に関係づけて得られる行矩形を画定し、この行矩形の座標情報などを記憶部12に併せて格納してもよい。
制御部11のレイアウト処理部24は、記憶部12に格納された文字部分特定情報と、文字線画外接矩形(またはそれに対するレイアウト処理結果としてのレイアウト枠)とを参照し、処理対象となった画像データ全体について、画像データ内で文字を含む矩形領域の座標情報を生成する。具体的にレイアウト処理部24は、文字部分特定情報の座標情報で画定される矩形と、文字線画外接矩形情報(またはそれに対するレイアウト処理結果としてのレイアウト枠)で画定される矩形とを結合して、文字線画領域を生成する。すなわち、本実施の形態では絵柄候補領域の画定と、文字線画領域の画定とを別々に行っているため、絵柄候補領域内にも文字線画領域として特定された領域が存在し得る。このためここでこれらの領域を結合して、重複領域を一つの文字線画領域とする。
そしてレイアウト処理部24は、結合後の各文字線画部分について固有の領域識別子(以下、ラベルデータと呼ぶ)を生成し、このラベルデータと、対応する文字線画領域を画定するための座標情報(頂点座標の情報等)とを関連づけて記憶部12に文字線画領域データベースとして格納する。
[5.同一色領域分離部]
同一色領域分離部25は、記憶部12の文字線画領域データベースに格納されている文字線画領域の各々について、同一の色の文字線画部分のみからなる領域に分割する処理を行う。同一色領域分離部25は、レイアウト処理の過程で記憶部12に格納された基本矩形(絵柄候補領域と文字線画領域との双方から画定された矩形)の座標情報を読み出す。そして、処理対象となっている画像データ(元画像データ)のうち、この座標情報で画定される各基本矩形内に含まれる画素値から代表値(代表色)の候補を決定する。
本実施の形態における同一色領域分離部25は、図10(a)に示すように、代表色決定部51と、同一色領域情報生成部52と、包含画像作成部53とを含んで構成されている。なお、以下の説明で基本矩形内の画素は、元画像データ上で基本矩形内に含まれるすべての画素であってもよいし、基本矩形内で、文字または線画を構成する画素として判断される画素であってもよい。
代表色決定部51は、記憶部12に格納された基本矩形の座標情報を参照し、それらを順次注目基本矩形として選択しながら、当該注目基本矩形内の画素値に基づいて少なくとも一つの代表画素値を決定する。ここで、代表画素値の決定方法は、元画像データのうち注目基本矩形内の画素値のヒストグラム(発生頻度)を生成し、このヒストグラムにおいて最も高い頻度で出現する一つの画素値、又は所定しきい値(例えば注目基本矩形内の画素数の1/3など)を超える頻度で出現する少なくとも一つの画素値を代表画素値とする方法などがある。代表色決定部51は、注目基本矩形を特定する情報(注目基本矩形に固有に発行された識別子)に関連づけて決定した代表画素値を代表画素値データベースとして記憶部12に格納する。
同一色領域情報生成部52は、代表画素値データベースに格納されている代表画素値を、互いに同一と判断される色ごとにグループ化する。具体的に同一色領域情報生成部52は、代表画素値データベースに格納されている代表画素値のうち、未だグループ化されていない代表画素値を注目代表画素値とし、この注目代表画素値とは異なる代表画素値であって、未だグループ化されていない代表画素値を順次、比較対照画素値として選択する。そして注目代表画素値と同一の色と判断できる比較対照画素値があった場合には、当該少なくとも一つの比較対照画素値と注目代表画素値とを一つのグループとして決定する。そして同一色領域情報生成部52は、それらグループとなった代表画素値に関連づけられた基本矩形の識別子を代表画素値データベースから取り出して、基本矩形の識別子のリストを生成し、注目代表画素値と比較対照画素値とに基づいて決定される一つのグループ代表画素値を決定する。同一色領域情報生成部52はそして、固有のグループ識別子を発行し、このグループ識別子と、グループ代表画素値と、上記生成した基本矩形の識別子のリストとを関連づけて同一色領域情報データベースとして、記憶部12に格納する。なおグループ代表画素値の決定方法は、例えば注目代表画素値と、それに同一と判断された比較対照画素値との統計演算結果(例えば平均)の画素値などとすることができる。
一方、注目代表画素値と同一の色と判断できる比較対照画素値がなかった場合には、注目代表画素値のみからなるグループを生成する。つまり同一色領域情報生成部52は、注目代表画素値に関連づけられた基本矩形の識別子を代表画素値データベースから取り出し、注目代表画素値をそのままグループ代表画素値として決定する。そして同一色領域情報生成部52は固有のグループ識別子を発行し、このグループ識別子と、グループ代表画素値と、上記生成した基本矩形の識別子とを関連づけて、同一色領域情報データベースとして記憶部12に格納する。
こうして同一色領域情報生成部52は、グループ化された代表画素値(グループ代表画素値)ごとに、当該代表画素値(グループ代表画素値)と当該代表画素値に対応した基本領域を画定する情報(ここでは基本領域の識別子)とを関連づけた情報を含む同一色領域情報を生成し、これを記憶部12に同一色領域情報データベースとして格納することになる。
包含画像作成部53は、代表画素値データベースを参照しながら、当該代表画素値データベースに含まれる基本領域の識別子を取り出す。また基本矩形データベースを参照して、上記取り出した各基本領域の識別子に関連づけられている座標情報(各基本領域を画定する情報)を取得する。そして包含画像作成部53は、これら基本領域を包含する領域を生成する。具体的に包含画像作成部53は、取得した座標情報が示すX,Yの座標値のうち、最も小さいX座標値Xminと、Y座標値Ymin、並びに、最も大きいX座標値Xmaxと、Y座標値Ymaxとを検索する。そして、(Xmin,Ymin)と、(Xmax,Ymax)を対角線とする矩形(包含される各基本矩形に外接する矩形)を画定する情報を生成する。
包含画像作成部53は、包含している各基本領域内の画素を元画像データから抽出し、これを、例えば元画像データの四隅の画素値から決定される背景画素値に基づいて生成されるしきい値を用いて二値化し、当該二値化された画像データを包含画像データとして生成する。
この包含画像データは、当該包含画像データに包含されている基本領域内の各画素の値を二値化して得たビットマップ情報となっており、従って、包含画像データには少なくともいずれかの代表画素値(又はグループ代表画素値)に設定されるべき画素の位置を示す情報が含まれることになる。なお、包含画像作成部53は、この二値化して得たビットマップ情報など、上記画素の位置を示す情報を所定の方法(例えばMMRやJBIG2等)で圧縮処理してもよい。
なお、ここでは基本矩形、すなわち文字のみを対象としているが、文字線画外接矩形のうちレイアウト処理部24にて基本矩形として画定されていない矩形部分(つまり線画部分)についても、その代表画素値を定め、基本矩形とともに同一色と判断される矩形ごとにグループ化し、基本矩形と線画部分とを包含し、これらに含まれる画素を二値化して包含画像データを生成することとしてもよい。
制御部11は、これらの処理によって生成した包含画像データと、同一色領域情報データベースと、包含画像データの元の画像データ上での位置を表す座標情報とを、その構造に含むデータを、文字線画プレーンデータとして出力する。このように生成された文字線画プレーンデータは、元の画像データを再現する際には、まず圧縮されたデータを伸長して包含画像データのビットマップを再現し、同一色領域情報データベースに含まれているグループごとに、当該グループ内の基本矩形に相当する上記再現したビットマップ上の黒画素(オンとなっている画素)の画素値を特定し、当該特定した画素の値を当該グループのグループ代表画素値に設定する。
また、制御部11の同一色領域分離部25は、図10(b)に示すように、代表色決定部51と、同一色領域情報生成部52と、包含画像作成部53と、色別包含画像作成部54と、比較部55とを含み、代表色決定部51と、同一色領域情報生成部52と、包含画像作成部53とが、上述の動作を行うとともに、色別包含画像作成部54が、グループごとの包含画像データを生成し、比較部55が、これらグループごとの包含画像データ(色別包含領域)を含んだ文字線画プレーンデータ(第1画像データ)と、上記包含画像データと同一色領域情報データベースとを含む文字線画プレーンデータ(第2画像データ)とを比較し、第1画像データと第2画像データとのうちいずれかサイズの小さい方を選択して、選択したデータを文字線画プレーンデータとして出力することとしてもよい。
また、同一色領域情報生成部52において、2つの代表画素値が同一と判断できるか否かを決定する方法は、2つの代表画素値の成分ごとの差の二乗和(代表画素値間の所定色空間上での距離に関する量)が予め定められたしきい値より小さい場合に同一と判断することとすればよい。
次に、図11を参照しながら、本実施の形態の同一色領域分離部25の動作を説明する。ここでは具体的に図11(a)に示すような画像を例として説明する。図11(a)に示す例では、第1行目の文字列「昨日は雨でした」のうち、「昨日」の文字が赤文字で、「は雨でした」の文字が黒文字で表され、次の行の文字列「今日は曇です」の全体が黒文字で表されている。また、この2行の文字列とは離れた位置に「お天気の話でした」との文字列があり、ここで「話」の文字のみが赤文字となっている例を示している。なお、図11(a)では図示の都合上、赤色文字部分を破線で囲んで示すこととしている。この囲み破線は現実に表されるものではない。
この場合、レイアウト処理部24の処理等によって個々の文字の画素塊に外接する矩形(基本矩形)が画定され、代表色決定部51が、各基本矩形ごとに代表色を決定する。なお、この代表色決定部51によって決定される代表色は、個々の文字、例えば上記「昨日」の「昨」と「日」との2つの文字が元々同じ色(画素値)に設定されていたとしても、同一の画素値になるとは限らず、距離は比較的近いが互いに異なる代表画素値が決定されてもよい。つまり、この代表色決定部51によって、「昨」と「日」、並びに「話」の3つの文字に外接する基本矩形について赤色に近い代表画素値が決定され、他の文字に外接する各基本矩形については、黒色に近い代表画素値が決定される。
同一色領域情報生成部52は、同一と判断される代表画素値に関連づけられる基本矩形をグループとして定める。これにより「昨」と「日」、並びに「話」の3つの文字に外接する基本矩形を画定する情報に一つのグループ代表画素値(これもまた、赤色に近い値として定められる)が関連づけてグループ化され、他の文字に外接する基本矩形を画定する情報に一つのグループ代表画素値(これもまた、黒色に近い値として定められる)が関連づけてグループ化される。
包含画像作成部53は、(グループに関わらず)対象となっている基本矩形のすべてを包含する矩形を生成し、各基本矩形内の画素値を二値化した画像データを包含画像データ(第2画像データとなる)として生成する(図11(b))。
そして基本矩形を画定する情報とグループ代表画素値との組を少なくとも一つ含んでなる同一色領域情報データベースと、包含画像データとを関連づけて、文字線画プレーンデータとして出力する。
一方、色別包含画像作成部54はグループごとに包含画像データ(色別包含画像データ)を生成する(図11(c))。ここで色別包含画像データ内の画素値は二値化しなくてもよい。また、二値化する場合は、色別包含画像データに対応するグループのグループ代表画素値を関連づけて文字線画プレーンデータに含める。そして比較部55が、この色別包含画像作成部54が生成する文字線画プレーンデータ(第1画像データ)と、第2画像データのうち、データのサイズの小さい画像データを選択的に出力し、この出力結果が文字線画プレーンデータとして記憶部12に格納される。
なお、ここでは同一色領域情報データベースに含まれる基本矩形を画定する座標情報は、元の画像データ上の位置を表すものであってもよいし、包含画像データ内での位置を表すもの(例えば包含画像データの右下座標からの相対位置を表す座標情報)に変換されてもよい。
また同一色領域情報データベースには、必ずしもすべての基本矩形を画定する情報が含まれなくてもよい。例えば各グループのうち、含まれる基本矩形の数が最大となっているグループ(最大グループと呼ぶ)のグループ代表画素値を図11(b)に示した包含画像データに関連づけ、当該最大グループの情報を同一色領域情報データベースから除去してもよい。
この場合、元の画像データを生成する側ではまず、包含画像データのビットマップを再現して、その内部の黒画素(オンとなっている画素)の画素値を、包含画像データに関連づけられたグループ代表画素値(最大グループのグループ代表画素値)に設定し、次いで、同一色領域情報データベース内の各グループごとに、当該ビットマップ上で各グループに含まれる基本矩形に相当する領域内でオンとなっている画素について、各グループのグループ代表画素値に設定し直すことになる。
また、ここでは最大グループのグループ代表画素値とすることとしたが、予め定めた色(例えば黒色)に最も近いグループ代表画素値を図11(b)に示した包含画像データに関連づけ、当該グループ代表画素値に関するグループの情報を同一色領域情報データベースから除去してもよい。
さらに、基本矩形内の画素値がばらついている場合に配慮して、代表色決定部51は、平滑化処理を行ってから代表画素値を決定してもよい。ここで平滑化処理としては、各基本矩形内の各画素を順次注目画素として特定し、注目画素の値とそれに隣接する画素の値との平均値を注目画素の値とする処理などがある。
さらにこの平滑化処理の際に、基本矩形内で文字を構成する画素(例えば二値化処理により黒画素となる部分)のみを注目画素として選択してもよい。また平滑化の処理において、平均値を演算する際は当該文字を構成する画素の値のみを参照して平均値を演算することとしてもよい。これにより、文字以外の部分の画素値を参照することにより、文字の代表色が背景色に影響されることが防止される。
ここで平滑化処理してから決定した代表値について補正を行ってもよい。すなわち、本実施の形態の同一色領域分離部25は、決定した代表値の候補についてその輝度を補正して、補正後の値を代表値として決定する。ここで輝度の補正は、例えば図12に示すようなトーンカーブ(補正関数)を用いて補正することができる。この図12に示すトーンカーブは、入力値(補正前の代表値候補の輝度)が最小値MINから第1しきい値TH1までに対する出力値(補正後の値、つまり代表値として決定される値の輝度)が最小値MINであり、第2しきい値TH2(ただしTH2>TH1)から、最大値MAXまでに対する出力値が最大値MAXであるように設定されている。また、このトーンカーブは、入力値が最大値MAXと最小値MINとの間の中央の値MID(例えば最大値が「255」であり最小値が「0」であるときにはMIDは「128」となる)であるときに、これに対する出力値が略MIDとなるように設定されてもよい。
つまり同一色領域分離部25は、代表値の候補(本実施の形態ではYCbCrで表されることとしている)の輝度成分(Y)について、図12のトーンカーブによる補正を行って、代表値の輝度(Y′)を決定し、このY′と、代表値の候補の色差成分Cb,Crとによって特定される値を代表値として決定する。
なお、代表値候補がRGBなど、輝度成分を含まない色空間で表現されている場合は、L*a*b*や、YCbCrなど、輝度成分を含む色空間の値に変換してから上記処理を行うこととすればよい。
さらに、ここでは輝度のみを補正したが、色差成分についても補正を行ってもよい。具体的に同一色領域分離部25は、代表値候補の各色差成分が所定の条件を満足しているときに、当該代表色候補値の輝度成分値に関する階調数を低減する補正を行い、当該補正後の値を代表値として決定してもよい。
具体的には、図13に示すように、L*a*bの色空間で表現された代表値候補の色差成分(a*、b*)が、それぞれ対応する色差成分の値域の中心値からの所定範囲内(図13のTHa,THbで画定される円の内部)にあるとの条件を満足している場合に、例えば256階調で表現された輝度成分Lを4階調または8階調など所定階調に低減する。この場合、色差成分の値を上記中心値に設定してもよい。ここで、各成分ごとの所定範囲THa,THbは、同じ値であってもよいし、異なる値であってもよい。
この処理により、特に文字色がグレー(黒を含む)である場合に、その文字色の本来の色を再現した代表値が設定される。例えば文字色が黒であるときに色差成分と輝度成分とは本来「0」であるが、スキャナの特性や、元の画像データのエンコード形式(例えばJPEGなど)の特性によっては、色差成分が「0」でなくなってしまったり、輝度成分が「0」でなくなってしまう場合がある。そこでここで示した色差成分に関する処理を行うことで、代表値を本来の黒色とすることができるようになる。
このように本実施の形態によれば、処理対象となった画像データ内に画定される注目画像領域としての基本矩形や行矩形内の画素値に基づいて当該注目画像領域の代表色候補を決定し、その輝度を補正して、代表色を決定することとしている。
なお、ここでは平滑化処理を行った後で、補正処理を行って代表値を決定しているが、この処理順序を逆にして各画素について上記補正処理を行った後で、各画素値の平滑化処理を行ってヒストグラムを演算し、代表値を決定してもよい。なお、ここでは文字の場合を説明したが、線画についても同様の処理が行われることとなる。
こうした平滑化と補正の処理によって、本実施の形態においては、文字や線画を構成する画素値にばらつきがあっても、当該ばらつきの影響を軽減して、元の画像データの色と違和感のない代表色を決定することができる。
[6.穴埋処理部]
穴埋処理部26は、元の画像データのうち、絵柄候補領域に相当する領域を抽出し、この領域内からレイアウト処理部24の処理で検出された文字の画素(文字を構成する画素)を除去して、絵柄部分画像データを生成する。このとき例えば下地部分を絵柄部分画像データに含めてもよい。
そして、この絵柄部分画像データの各画素をラスタスキャン順に走査し、走査により選択される注目画素が除去された画素でなければ、当該注目画素の画素値をそのままとするとともに、当該注目画素の画素値を直前画素値として記憶部12のワークメモリに記憶する。なお、既に他の画素値が直前画素値として記憶されている場合は、その記憶内容に上書きする。
また、走査により選択される注目画素が除去された画素である場合、当該注目画素の画素値を、記憶している直前画素値に設定する。これにより除去された部分の画素値が、ラスタスキャン順に直前画素値と同一になり、多くの圧縮処理において圧縮効率を向上させることができるようになる。
そしてこの処理を行った後の絵柄部分画像データを絵柄プレーンデータとして記憶部12に格納する。
[7.圧縮処理部]
圧縮処理部27は、記憶部12に格納されている絵柄プレーンデータを、JPEG圧縮し、圧縮絵柄プレーンデータを生成する。また、この圧縮処理部27は、記憶部12に格納されている文字線画プレーンデータと、この圧縮絵柄プレーンデータとを連結して一連のデータを生成する。
具体的にこの一連のデータとしては、PDF(Portable Document
Format)データとすることができる。すなわち、圧縮絵柄プレーンデータを伸長して生成したビットマップ(絵柄プレーンデータのビットマップ)を生成させる指示と、当該絵柄プレーンデータのビットマップ上に文字線画プレーンデータに含まれる各文字や線画を描画させる指示とを含むPDFデータとする。
ここで文字線画プレーンデータに含まれる各文字や線画を描画させる指示は、文字線画圧縮データと、これに関連する代表色の情報と基本矩形等の座標情報との組を一つずつ読み出し、それぞれの組について、文字線画圧縮データを伸長して二値化画像を生成し、この二値化画像の黒画素の色を代表色に設定し、絵柄プレーンデータのビットマップ上において、上記基本矩形等の座標情報として設定された位置に透過合成する指示である。ここで透過合成とは、二値化画像のうち黒画素(代表色に設定された画素)以外の画素については上書きせず、代表色に設定された画素のみを上書きすることをいう。
圧縮処理部27は、この生成したPDFデータを記憶部12に格納し、または画像出力部14にこのPDFデータを出力して、外部の装置に送出させる。
[動作]
本実施の形態の画像処理装置は、上述の構成を有しているので、次のように動作する。ここでは図14(a)に示すような文字部分(T1,T2)と、写真部分(P)と、線画部分としての地図部分(M)とを含むドキュメントが画像入力部13から入力され、このドキュメントの画像データを処理対象とする場合を例として説明する。この図14(a)の例においては写真部分(P)内に文字部分の一部(T2)が重ね合わせられている。また地図部分(M)には、道路線図と文字とが入組んでいる。なお、ここでは便宜的に白黒で示しているが、実際には地図部分の道路線図と文字とは互いに異なる色で表され、写真はカラーで構わない。
前処理部21は、この画像データの画素値を所定色空間(YCbCr)の値に変換する。絵柄候補部分特定処理部22は、この画像データ(元の画像データ)を二値化処理し、その小領域を除去して文字部分(T1)や線図(M)を除去した画像データを生成する(図14(b))。このとき、文字や道路線図のほとんどが除去されるが(部分的に残存しても構わない)、写真部分に重ね合わせられた文字は、そのまま絵柄候補部分として特定された状態となる。
文字線画抽出処理部23は、元の画像データを二値化し、小領域部分を特定するなどの方法で文字線画部分を抽出する。この際において、元の画像データを複数の領域に分割し、分割して得られた各領域ごとに二値化のしきい値を適応的に定める方法(特許文献3に開示の方法など)によって二値化を行うことで、地図等着色された部分からも文字の抽出を可能としている(図14(c))。
レイアウト処理部24は、絵柄候補部分内でレイアウト解析処理を行い、絵柄候補部分内に残存する文字部分(T2)を抽出する。同一色領域分離部25は、文字線画抽出処理部23やレイアウト処理部24で抽出された文字部分や線図部分について、個々の文字や線画部分ごとに代表色を定め、同一色と判断される代表色に関係する文字や線画部分をグループ化する。そして文字線画抽出処理部23やレイアウト処理部24で抽出された文字部分や線図部分を包含する画像データを生成し、この画像データを二値化(又はグレイスケールに変換するなど、画像データの画素値情報のサイズを低減できればよい)し、さらに圧縮処理して包含画像データとし、図15に示すように、グループごとのグループ代表色と、グループに含まれる基本矩形(個々の文字に外接する矩形)を画定する座標情報と、包含画像データと、当該包含画像データの元の画像データ上の位置を特定する座標情報と、を含む文字線画プレーンデータを生成する。
穴埋処理部26は、絵柄候補部分から、それに内在していた文字部分(T2)を除去した画像データを生成する(図14(d))。なお、本来は文字部分T2の文字形状通りに白抜きとなるのであるが、図14(d)では図面を見やすくするため当該文字形状を含む矩形部分を白抜きにして図示している。また、図14(d)、(e)は絵柄画像部分のみを図示している。そして穴埋処理部26が当該除去された画素の値を、スキャンライン順で最近傍の画素値(除去されていない画素値)に設定して(図14(e))、絵柄プレーンデータを生成する。
圧縮処理部27は、絵柄プレーンデータについてJPEG圧縮を行い、文字線画プレーンデータと組み合せてPDFデータを生成し、これを画像出力部14に出力する。画像出力部14は、このPDFデータを外部の装置に出力する。
ここで圧縮処理部27は、絵柄プレーンデータについてJPEG圧縮の前に画像のサイズを縮小する処理(縮小処理)を行って圧縮率をより向上させることとしてもよい。
11 制御部、12 記憶部、13 画像入力部、14 画像出力部、21 前処理部、22 絵柄候補部分特定処理部、23 文字線画抽出処理部、24 レイアウト処理部、25 同一色領域分離部、26 穴埋処理部、27 圧縮処理部、31,41 二値化処理部、32,42 連結画素抽出部、33 特徴量算出部、34 属性判定部、35 非絵柄領域処理部、36 背景領域塗潰部、37 絵柄候補領域作成部、38 膨張収縮部、43 基本矩形画定部、44 第1セパレータ検出部、45 行矩形画定部、46 第2セパレータ検出部、47 文字領域画定部、48 ノイズ判定部、49 文字部分特定部、51 代表色決定部、52 同一色領域情報生成部、53 包含画像作成部、54 色別包含画像作成部、55 比較部。