以下に添付図面を参照しながら、本発明に係る画像処理装置、画像処理方法およびプログラムの具体的な実施形態について詳しく説明する。以下で示す実施形態は、高圧縮PDFファイル(「圧縮画像ファイル」の一態様)を生成する画像処理装置への適用例である。ただし、本発明はこの例に限らず、線画色を適切に算出することが求められる様々な画像処理装置に対して有効に適用可能である。
<高圧縮PDF>
まず、本実施形態の具体的な説明に先立ち、高圧縮PDFの概要を説明する。高圧縮PDFは、文字などの線画を含む画像から高圧縮PDFファイルを生成する画像圧縮技術である。ここで線画とは、文字および文字と同様に扱うことが望ましい線で表現されるオブジェクトを指す。線で表現されるオブジェクトであっても、絵柄として扱うことが望ましいオブジェクトは、線画ではなく絵柄に含まれるものとする。絵柄は、線画以外のオブジェクト、つまり、写真などの網点で表現されるオブジェクトや、文字と同様に扱うことが望ましくない図形などのオブジェクトである。
図1は、高圧縮PDFの処理手順を説明する模式図である。高圧縮PDFファイルを生成するには、まず、処理対象となる画像(以下、「入力画像」と呼ぶ)Im0から、線画のみからなる2値画像である第1の画像レイヤIm1と、線画色を表現する多値画像である第2の画像レイヤIm2と、線画以外の絵柄および背景を表現する多値画像である第3の画像レイヤIm3とを生成する。そして、第1の画像レイヤIm1および第2の画像レイヤIm2に対しては、線画の圧縮に適した圧縮処理を施し、第3の画像レイヤIm3に対しては、絵柄や背景の圧縮に適した圧縮処理を施す。その後、圧縮処理が施された第1の画像レイヤIm1と、圧縮処理が施された第2の画像レイヤIm2と、圧縮処理が施された第3の画像レイヤIm3とを、例えばPDF形式の1つの画像ファイル上で統合することにより、入力画像Im0に対応する高圧縮PDFファイルFImを生成する。
第1の画像レイヤIm1に対して施される圧縮処理は、例えば、2値画像に対するMMRなどの符号化方式による圧縮処理である。第2の画像レイヤIm2に対して施される圧縮処理は、例えば、第3の画像レイヤIm3に対する圧縮処理よりも解像度を落とした、多値画像に対するJPEGなどの符号化方式による圧縮処理である。第1の画像レイヤIm1に対する圧縮処理と第2の画像レイヤIm2に対する圧縮処理は、線画の圧縮に適した圧縮処理である点で共通するため、以下ではこれらの処理を総称して「第1の圧縮処理」と呼ぶ。一方、第3の画像レイヤIm3に対して施される圧縮処理は、例えば、第2の画像レイヤIm2に対する圧縮処理よりも解像度を高めた、多値画像に対するJPEGなどの符号化方式による圧縮処理である。第3の画像レイヤIm3に対する圧縮処理は、絵柄や背景の圧縮に適した圧縮処理であるため、以下では、線画の圧縮に適した第1の圧縮処理と区別して、「第2の圧縮処理」と呼ぶ。なお、上述の符号化方式は一例であり、上述の例とは異なる符号化方式による圧縮処理を行ってもよい。
高圧縮PDFでは、以上のように、処理対象の入力画像Im0を線画の領域とそれ以外の絵柄や背景の領域とに分離し、線画の領域に対しては第1の圧縮処理を施すとともに、線画以外の絵柄や背景の領域に対しては第2の圧縮処理を施すことで、圧縮の効率を高めている。ここで、圧縮の効率とは、画像を再現したときの画質(再現性)を損なわずに、どれだけ圧縮率を高めることができたかどうかを表し、再現性を維持しながら高い圧縮率が得られれば、効率のよい圧縮が行われたことになる。
上述の高圧縮PDFは様々な変形が可能である。例えば、上述の第1の画像レイヤIm1を、黒の線画のみからなる画像レイヤと、有彩色または白の線画のみからなる画像レイヤとに分けてもよい。また、線画色を表現する第2の画像レイヤIm2を持たずに、線画色を、線画の座標に対応させた別の情報として持たせる構成であってもよい。
<実施形態の概要>
高圧縮PDFにおいて、線画色を表現する第2の画像レイヤIm2を高い圧縮率で圧縮するには、線画色の種類をできるだけ限定することが有効となる。例えば、代表的な線画である文字の文字色を文字行単位で統一すれば、文字単位で文字色を持たせる場合と比較して、第2の画像レイヤIm2の圧縮率を高めることができる。また、文字行単位で文字色を統一することにより、文字行内における文字色のばらつきを抑えて文字行としての見栄えをよくする効果も得られる。
このような観点から、特許文献1に記載の技術では、文字行を構成する各文字の文字色を平均化して当該文字行の代表色とし、当該文字行を構成する各文字を当該文字行の代表色で再現するようにしている。しかし、この方法では、1つの文字行に他の文字とは文字色が異なる文字が混在している場合に、文字行全体が本来の色と異なる色で再現され、文字色の再現性が損なわれる懸念があり、改善が求められる。
そこで、本実施形態では、入力画像Im0から検出された線画を予め定めた任意の基準に従ってグループ化し、グループを構成する線画のうち、所定の条件に当てはまる線画を除外した残りの線画の線画色に基づいてグループの代表色を算出し、グループを構成する線画の線画色をグループの代表色に変更する。ここで、所定の条件とは、例えば、線画が持つ線画色の数を表す色数が2以上であるといった条件や、線画色が予め定めた特定色であるといった条件などである。線画色の代表色への変更は、所定の条件に当てはまるとして除外した線画を含め、グループを構成するすべての線画を対象として行ってもよいし、除外されずに残った線画を対象として行うようにしてもよい。色数が2以上の線画や線画色が特定色の線画は、例えば、書き込みのあるオフィス文書や添削を受けた解答用紙のように黒文字に赤文字または青文字が重なっている部分、あるいはグレーの「印」の文字上に印鑑が押印されている部分など、色自体に意味のある部分が線画として検出されていることも想定されるため、このような線画を線画色の変更の対象としないことで、意味のある色を再現することが可能となる。
本実施形態では、以上のように、グループを構成する線画のうち、所定の条件に当てはまる線画を除外した残りの線画の線画色に基づいてグループの代表色を算出し、グループを構成する線画の線画色をグループの代表色に変更するようにしているため、線画色の再現性を損なうことなく第2の画像レイヤIm2の圧縮率を高めることができ、高圧縮PDFにおける圧縮の効率を向上させることができる。
<画像処理装置の構成>
次に、本実施形態の画像処理装置について具体的に説明する。図2は、本実施形態の画像処理装置1のハードウェア構成例を示すブロック図である。画像処理装置1は、ハードウェアとして、例えばPC(パーソナルコンピュータ)などのコンピュータシステムを用いることができる。すなわち、画像処理装置1は、例えば図2に示すように、CPU101などのプロセッサと、RAM102、ROM103、HDD104などの記憶装置と、LANなどのネットワークに接続する通信インタフェースであるネットワークI/F105とを備え、これらがバス110を介して接続された構成とされる。
本実施形態の画像処理装置1は、例えば、ネットワークに接続されたスキャナやホストコンピュータから処理対象の画像(入力画像Im0)をネットワークI/F105を介して取得する。そして、画像処理装置1は、この入力画像Im0を処理することで高圧縮PDFファイルFImを生成し、生成した高圧縮PDFファイルFImをHDD104に蓄積したり、ネットワークI/F105を介してネットワークに接続されたホストコンピュータに送信したりする。入力画像Im0から高圧縮PDFファイルFImを生成する機能は、例えば、CPU101が、RAM102をワークエリアとして利用し、ROM103やHDD104などに格納された所定のプログラムを実行することにより実現される。
なお、本実施形態の画像処理装置1は、例えばコピー機や複合機など、スキャナを備える画像形成装置の一機能として実現することもできる。この場合、図2に示すようなコンピュータシステムを画像形成装置が備える。そして、例えば、画像形成装置内部のCPU101が、RAM102をワークエリアとして利用し、ROM103やHDD104などに格納された所定のプログラムを実行することにより、スキャナあるいはネットワーク越しに取得した入力画像Im0から高圧縮PDFファイルFImを生成する機能が実現される。なお、入力画像Im0から高圧縮PDFファイルFImを生成するまでの一連の処理のうち、特にハードウェア実装に適する部分については、その機能を例えばASIC(Application Specific Integrated Circuit)などの専用のハードウェアを用いて実現する構成であってもよい。
図3は、本実施形態の画像処理装置1の機能的な構成例を示すブロック図である。画像処理装置1は、入力画像Im0から高圧縮PDFファイルFImを生成するための機能的な構成要素として、例えば図3に示すように、線画検出部10(「線画検出手段」の一態様)と、線画色処理部20(「線画色算出手段」の一態様)と、色統一処理部30と、ファイル生成部40(「ファイル生成手段」の一態様)とを備える。本実施形態の画像処理装置1では、処理対象として取得された入力画像Im0が線画検出部10、線画色処理部20およびファイル生成部40に入力され、この入力画像Im0に対応する高圧縮PDFファイルFImがファイル生成部40から出力される。
線画検出部10は、処理対象の入力画像Im0から線画を検出する機能モジュールである。図4は、線画検出部10の具体例を示すブロック図である。線画検出部10は、例えば図4に示すように、第1の検出部11(「第1の検出手段」の一態様)と、エッジ強調部12と、第2の検出部13(「第2の検出手段」の一態様)と、第3の検出部14(「第3の検出手段」の一態様)とをサブモジュールとして含む。
第1の検出部11は、処理対象の入力画像Im0に対して線画のエッジを検出する処理を行い、その結果(以下、「エッジ検出結果」と呼ぶ)を出力する。この第1の検出部11が行う処理は、例えば特許第3088010号公報に記載された方法と同様に、入力画像Im0の3値化により得られる黒画素や白画素の連続性、パターンを利用して、文字などの線画と網点とを分離することで、線画を構成するエッジを検出する処理である。ここでエッジ検出結果とは、例えば、第1の検出部11により線画のエッジとして検出された画素群の入力画像Im0における座標位置を表す座標データである。このエッジ検出結果は、エッジ強調部12および第3の検出部14に入力される。
エッジ強調部12は、第1の検出部11から受け取ったエッジ検出結果を用いて、処理対象の入力画像Im0に含まれる線画のエッジを強調する処理を行い、線画のエッジが強調されたエッジ強調画像を生成する。このエッジ強調部12によるエッジ強調の処理は、第1の検出部11のエッジ検出結果を用いて行われるため、入力画像Im0に含まれる絵柄のエッジを強調してしまう可能性が少ない。このため、エッジ強調の度合いを大きくすることができ、線画のエッジが明確に強調されたエッジ強調画像を生成することができる。エッジ強調部12により生成されたエッジ強調画像は、第2の検出部13に入力される。
第2の検出部13は、エッジ強調部12から受け取ったエッジ強調画像に対して線画の領域を検出する処理を行い、その結果(以下、「領域検出結果」と呼ぶ)を出力する。この第2の検出部13による処理は、例えば特許文献1に記載された方法と同様に、エッジ強調画像を2値化して得られる2値化画像から黒画素や白画素の連結成分を抽出し、連結成分の外接矩形の大きさや位置関係などに基づいて連結成分をグループ化して、グループに含まれる線画の領域を検出する処理である。特許文献1に記載の方法は、代表的な線画である文字が文字行を構成することが多い点に着目し、文字行を構成する連結成分をグループ化して文字行に含まれる文字の領域を検出している。ここで領域検出結果とは、例えば、第2の検出部13により検出された領域に含まれる画素群の入力画像Im0における座標位置を表す座標データである。この領域検出結果は、第3の検出部14に入力される。
第3の検出部14は、第1の検出部11から受け取ったエッジ検出結果と、第2の検出部13から受け取った領域検出結果とを用いて、入力画像Im0から線画を検出する処理を行い、その結果(以下、「線画検出結果」と呼ぶ)を出力する。具体的には、第3の検出部14は、第1の検出部11によるエッジ検出結果と、第2の検出部13による領域検出結果とのOR演算により、第1の検出部11により検出されたエッジで囲まれた領域と第2の検出部13により検出された領域との双方を、入力画像Im0からそれぞれ線画として検出する。ここで線画検出結果とは、例えば、第3の検出部14により検出された線画を構成する画素群の入力画像Im0における座標位置を表す座標データである。この線画検出結果は、線画色処理部20に入力される。
線画色処理部20は、背景色の影響を除去した線画色を算出する機能モジュールである。図5は、線画色処理部20の具体例を示すブロック図である。線画色処理部20は、例えば図5に示すように、線画色算出部21と、背景色算出部22と、線幅算出部23と、線画色補正部24とをサブモジュールとして含む。
線画色算出部21は、線画検出部10の第3の検出部14から受け取った線画検出結果を用いて、処理対象の入力画像Im0に含まれるすべての線画の位置を特定する。そして、線画色算出部21は、入力画像Im0から抽出した各線画のそれぞれについて、色数および線画色を算出する。また、背景色算出部22は、入力画像Im0から抽出された各線画の背景色を算出する。
ここで、本実施形態における色の算出方法の具体例について説明する。画像における色の算出は様々な方法で実現できるが、本実施形態では、一例として、入力画像Im0のRGBデータから変換されるHSVデータを用いるものとする。HSVは、色相(H)、彩度(S)および明度(V)により色を表現する色空間である。ここでは、入力画像Im0のRGBデータがRGB各色8ビット(値域:0〜255)で表現されるものとする。また、HSVデータのSおよびVの値域は、RGBデータと同じく0〜255であるものとする。HSVデータのHは色相を表すため、2πの範囲の値(値域:0〜359)をとる。
RGBデータのR,G,Bの最大値をMAX、最小値をMINとすると、下記式(1)〜(5)を用いてRGBデータをHSVデータに変換することができる。
MAX=Rのとき:H=60×((G−B)÷(MAX−MIN)) ・・・(1)
MAX=Gのとき:H=60×((B−R)÷(MAX−MIN))+120 ・・・(2)
MAX=Bのとき:H=60×((R−G)÷(MAX−MIN))+240 ・・・(3)
ただし、H<0の場合は360を加算する。また、R=G=Bの場合はHの値を不定とする。
S=((MAX−MIN)÷MAX)×255 ・・・(4)
ただし、R=G=Bの場合はS=0とする。
V=MAX ・・・(5)
本実施形態では、例えば、有彩色については、色相(H)の値に応じた赤、黄、緑、シアン、青、マゼンタの6種類の分類と、明度(V)の値に応じた11種類(等間隔)の分類とを組み合わせた66種類に色を分類するものとする。また、無彩色については、明度(V)の値に応じた11種類(黒、白とその間を等間隔)に色を分類するものとする。なお、この分類はあくまで一例であり、色の分類数などは任意に設定することができる。また、有彩色は明度(V)の値を用いずに色相(H)の値のみで分類してもよい。有彩色か無彩色かは、例えば彩度(S)の値を用いて判定できる。例えば、S≦5であれば無彩色、S>5であれば有彩色と判定する。また、既存のACS(Auto Color Selection)と呼ばれる技術を用いて入力画像Im0がカラー画像かモノクロ画像かを判定し、入力画像Im0がモノクロ画像の場合はすべての色を無彩色と判定するようにしてもよい。
線画色算出部21は、例えば、以下のように線画の色数を算出することができる。まず、線画を構成する各画素(例えば2×2画素といった所定単位の画素ブロックでもよい)のRGBデータをHSVデータに変換し、HSVデータの平均値を算出する。そして、この平均値との差分(例えばHSV色空間におけるユークリッド距離)が所定値以上の画素(以下、「離散画素」と呼ぶ)が線画内に存在するか否かを確認し、離散画素が存在する場合は、線画全体の画素数に対する離散画素の画素数の割合をさらに算出する。そして、線画内に離散画素が存在しない場合、あるいは、線画全体の画素数に対する離散画素の画素数の割合が所定値未満の場合は、線画の色数を1とする。一方、線画内に離散画素があり、かつ、線画全体の画素数に対する離散画素の画素数の割合が所定値以上である場合は、線画の色数を2以上であると推定する。そして、線画の色数が2以上と推定した場合は、例えば、離散画素のHSV色空間における分布を表すヒストグラムを算出し、このヒストグラムに現れるピークの数に基づいて線画の色数を算出する。
また、線画色算出部21は、例えば、以下のように線画色を算出することができる。すなわち、線画の色数が1であれば、その線画を構成する各画素のHSVデータの平均値を、その線画の線画色として算出する。また、線画の色数が2以上であれば、各色のそれぞれについてHSVデータの平均値を線画色として算出する。なお、平均値の代わりにヒストグラムのピークの色や最も明度が高い色を線画色とするといった方法でもよい。こうして算出された線画色は、有彩色であれば上述の66種類のいずれか、無彩色であれば上述の11種類のいずれかに分類することができる。例えば、線画色が有彩色の場合の色相(H)の値について、0≦H<30または330≦H<360であれば赤、30≦H<90であれば黄、90≦H<150であれば緑、150≦H<210であればシアン、210≦H<270であれば青、270≦H<330であればマゼンタといったように、線画色を分類できる。
背景色算出部22は、例えば、以下のように線画の背景色を算出することができる。すなわち、線画に隣接(1画素程度の隙間があってもよい)する所定の大きさおよび形状の領域を選択し、この領域内の各画素のRGBデータをHSVデータに変換して、その平均値を線画の背景色とする。この背景色についても、線画色と同様に、有彩色であれば上述の66種類のいずれか、無彩色であれば上述の11種類のいずれかに分類することができる。また、入力画像Im0が原稿をスキャナで読み取った画像であり、画像処理装置1が原稿の地肌色(原稿の本来の色)を検出する機能を持つ場合、検出された原稿の地肌色を線画候補の背景色としてもよい。
背景色が有彩色もしくは灰色の場合、この背景色の映り込みによって線画色算出部21により算出された色数が増えている場合がある。そこで、線画色算出部21は、色数が2以上の線画に対して、背景色算出部22により算出された背景色を用いて、色数を再計算する。例えば、線画色算出部21は、線画を構成する画素のうち、背景色算出部22により算出された背景色から所定のユークリッド距離内にある色を持つ画素を除いた上で、上述した方法により線画の色数を再計算する。また、線画色算出部21は、算出した線画色と背景色算出部22により算出された背景色との平均値から中間色を予測して、その中間色に近い色を持つ画素を除いた上で、上述した方法により線画の色数を再計算してもよい。線画色と背景色との中間色は、平均値以外にも、別の表色系に変換して求めた両者の中点などを使って予測してもよい。また、線画色算出部21は、最初に算出した色数から1を減算するといった単純な方法により、色数の再計算を行ってもよい。このように、線画色算出部21は、背景色の影響を除去した線画の色数を算出する。
なお、以上説明した例は、線画の色数や線画色、背景色などを算出する方法の一例であり、他の方法により線画の色数や線画色、背景色などを算出してもよい。例えば、入力画像Im0のRGBデータをテーブル変換などによりマンセル表色系にマッピングし、マンセル表色系での色相と明度を用いて線画の色数や線画色、背景色などを算出してもよい。
線幅算出部23は、入力画像Im0から検出された各線画の線幅を算出する。線画の線幅は、例えば、線画のエッジ間の距離(画素数)などから算出できる。また、線画の外接矩形の総画素数に対する線画の領域内の画素数の割合などから、線画の線幅(太文字かどうか)を算出してもよい。
線画色補正部24は、線画色算出部21により算出された各線画の線画色を、背景色算出部22により算出された背景色に応じて補正する。例えば、線画色補正部24は、線幅算出部23により算出された線画の線幅が所定値以上(例えば太文字の場合)であれば、線画を構成する画素のうち、背景色から所定のユークリッド距離内にある色を持つ画素を除いた残りの画素の色の平均値を線画色とするように、線画色算出部21により算出された線画色を補正する。一方、線幅算出部23により算出された線画の線幅が所定値未満(例えば細文字の場合)であれば、線画色算出部21により算出された線画色を背景色から視覚特性的に遠ざける色に補正する。なお、線幅算出部23により算出された線画の線幅が所定値以上の場合は、線画のエッジ近傍のみを補正の対象としてもよい。
また、線画色補正部24は、線画の線幅に関わらず、線画を構成する画素のうち、背景色から所定のユークリッド距離内にある色を持つ画素を除いた残りの画素の色の平均値を線画色とするように補正する方法と、線画色を背景色から視覚特性的に遠ざける色に補正する方法とのいずれか一方を実施する構成であってもよい。この場合、線幅算出部23は不要となる。
また、線画色補正部24は、例えば線画色算出部21により算出された線画色と背景色算出部22により算出された背景色とが同相の成分を含む場合に、線画色が黒に近い色であれば黒に補正し、白に近い色であれば白に補正するといった方法で線画色を補正してもよい。
また、線画色補正部24は、線画色算出部21により算出された色数が2以上の線画については、それぞれの線画色に対して個別に背景色に応じた補正を行う。例えば、線画色補正部24は、色数が2以上の線画に対して線画色に応じたクラスタリングを行い、クラスタリングの結果ごとに、上述のいずれかの方法によって線画色の補正を行う。
線画色補正部24は、以上のように、入力画像Im0から検出された各線画の線画色を背景色に応じて補正した結果を、線画データ(1)として出力する。この線画データ(1)には、入力画像Im0から検出された各線画のそれぞれについて、線画を構成する画素群の入力画像Im0における座標位置を表す座標データと、線画色と色数とが含まれる。この線画データ(1)は、色統一処理部30およびファイル生成部40に入力される。
色統一処理部30は、所定のグループ単位で線画色を統一する処理を行う機能モジュールである。図6は、色統一処理部30の具体例を示すブロック図である。色統一処理部30は、例えば図6に示すように、統一対象決定部31と、代表色算出部32(「代表色算出手段」の一態様)と、線画色変更部33(「変更手段」の一態様)とをサブモジュールとして含む。
統一対象決定部31は、線画色を統一する対象となる線画のグループを決定する。線画色を統一する対象となる線画のグループの例としては、代表的な線画である文字により構成される文字行が挙げられる。つまり、入力画像Im0に含まれる1つの文字行を1つのグループとする。ただし、線画色を統一するグループはこれに限らず、予め定めた任意の基準に従ってグループを決定すればよい。例えば、1つの文字行を1つのグループとするのではなく、文字が横方向に並ぶ横文字行のすべてを1つのグループとしてもよいし、文字が縦方向に並ぶ縦文字行のすべてを1つのグループとしてもよい。また、入力画像Im0に含まれる文字行全体を1つのグループとしてもよい。さらに、文字行を構成する文字に限らず、入力画像Im0における位置が近い所定数の線画の集合を1つのグループとしてもよいし、入力画像Im0において密集している線画の集合を1つのグループとしてもよい。
統一対象決定部31は、線画データ(1)に含まれる各線画の座標データを用いて、入力画像Im0における線画のグループを決定することができる。また、統一対象決定部31は、線画検出部10の第2の検出部13によるグループ化の結果を用いて、入力画像Im0における線画のグループを決定してもよい。
代表色算出部32は、線画色処理部20の線画色補正部24から受け取った線画データ(1)を用いて、統一対象決定部31が決定したグループのそれぞれについて代表色を決定する。このとき、代表色算出部32は、グループを構成する線画のうち、所定の条件に当てはまる線画を除外した残りの線画の線画色に基づいて、グループの代表色を算出する。ここで、所定の条件とは、例えば、線画色が予め定めた特定色であるといった条件や、線画の色数が2以上であるという条件である。
すなわち、代表色算出部32は、グループを構成する線画のうち、線画色が予め定めた特定色(例えば赤色や青色など)の線画と、色数が2以上の線画を除外する。ここで、線画色が特定色であるか否かは、例えば、上述した方法で算出された線画色の色相(H)の値が特定色の色相(H)の値から±30(度)の範囲にある場合に特定色とするといった方法で判定することができる。なお、この判定方法は一例であり、別の方法で線画色が特定色であるか否かを判定してもよい。線画の色数は、線画色処理部20の線画色補正部24から受け取った線画データ(1)から特定できる。
次に、代表色算出部32は、グループを構成する線画のうち、除外されずに残った線画の線画色の平均値を算出する。そして、代表色算出部32は、算出した平均値に対して色差が基準値を超える線画色の線画をさらに除外し、残った線画の線画色の平均値をさらに算出して、これをグループの代表色とする。なお、線画色の平均値を算出する際に、代表色算出部32は、画素数が大きい線画の線画色ほど重みが大きくなるような重み付けを行って、線画色の平均値を算出することが望ましい。また、線画色の平均値が無彩色で明度が低い場合はグループの代表色を黒、線画色の平均値が無彩色で明度が低い場合はグループの代表色を白としてもよい。
線画色変更部33は、グループを構成する線画の線画色を、代表色算出部32により算出された代表色に変更する。このとき、線画色変更部33は、線画色の平均値を算出する前に上述の条件に当てはまるとして除外された線画を含め、グループを構成するすべての線画の線画色をグループの代表色に変更してもよいし、グループを構成する線画のうち、上述の条件に当てはまるとして除外された線画を除いた残りの線画の線画色をグループの代表色に変更してもよい。また、線画色を単純に平均値に変更すると線画が見にくくなる可能性があるので、グループの代表色の濃度を背景色に応じて調整した上で、線画色をグループの代表色に変更するといった対策を行ってもよい。
また、上述の条件に当てはまるとして除外された線画の線画色をグループの代表色に変更しない場合、例えば、除外された線画同士で線画色の平均値を算出し、平均値との色差が所定値以上となる線画色を持つ線画を除外して平均値を算出するといった処理を繰り返して除外された線画の線画色を変更することにより、除外された線画同士で線画色の統一を図るようにしてもよい。
線画色変更部33は、以上のように、グループを構成する線画の線画色をグループごとに変更した結果を、線画データ(2)として出力する。この線画データ(2)には、入力画像Im0から検出された線画のうち、グループを構成する線画の変更後の線画色が含まれている。この線画データ(2)は、ファイル生成部40に入力される。
ファイル生成部40は、線画色処理部20の線画色補正部24から受け取った線画データ(1)と、色統一処理部30の線画色変更部33から受け取った線画データ(2)とを用いて、処理対象の入力画像Im0から、線画のみからなる2値画像である第1の画像レイヤIm1と、線画色を表現する多値画像である第2の画像レイヤIm2と、線画以外の絵柄および背景を表現する多値画像である第3の画像レイヤIm3とを生成する。このとき、特に線画色を表現する第2の画像レイヤIm2は、グループを構成する線画については線画データ(2)に含まれる線画色を用い、それ以外の線画については線画データ(1)に含まれる線画色を用いて生成される。
そして、ファイル生成部40は、第1の画像レイヤIm1および第2の画像レイヤIm2に対しては、線画の圧縮に適した第1の圧縮処理を施すとともに、第3の画像レイヤIm3に対しては、絵柄や背景の圧縮に適した第2の圧縮処理を施す。そして、ファイル生成部40は、圧縮した第1の画像レイヤIm1、第2の画像レイヤIm2および第3の画像レイヤIm3をPDF形式の1つの画像ファイル上で統合し、入力画像Im0に対応する高圧縮PDFファイルFImを生成する。
なお、圧縮の方式は特に限定されるものではなく、第1の画像レイヤIm1と第2の画像レイヤIm2に対しては線画の圧縮に適した方式、第3の画像レイヤIm3に対しては絵柄や背景の圧縮に適した方式で圧縮処理が行われればよい。また、第1の画像レイヤIm1、第2の画像レイヤIm2および第3の画像レイヤIm3を統合する画像ファイルの形式はPDF形式に限定されるものではなく、例えばJPM形式など、複数の画像レイヤを重ね合わせて1つの画像とする様々な形式を利用することができる。ファイル生成部40により生成された高圧縮PDFファイルFImは、上述したように、例えば、HDD104に蓄積される、あるいは、ネットワークI/F105を介してネットワークに接続されたホストコンピュータなどに送信される。
<画像処理装置の動作>
次に、以上のように構成される本実施形態の画像処理装置1の動作の概要を説明する。図7は、本実施形態の画像処理装置1による動作の流れを説明するフローチャートである。
本実施形態の画像処理装置1の動作が開始されると、まず、ステップS1において、処理対象となる入力画像Im0が取得される。この入力画像Im0は、線画検出部10、線画色処理部20およびファイル生成部40に入力される。
次に、ステップS2において、ステップS1で取得した入力画像Im0に対して、線画検出部10の第1の検出部11による処理が行われる。そして、第1の検出部11が出力するエッジ検出結果が、エッジ強調部12と第3の検出部14とに入力される。
次に、ステップS3において、エッジ強調部12により、ステップS2のエッジ検出結果を用いて、ステップS1で取得した入力画像Im0に含まれる線画のエッジを強調する処理が行われ、エッジ強調画像が生成される。このエッジ強調画像は、第2の検出部13に入力される。
次に、ステップS4において、ステップS3で生成されたエッジ強調画像に対して、第2の検出部13による処理が行われる。そして、第2の検出部13が出力する領域検出結果が、第3の検出部14に入力される。
次に、ステップS5において、第3の検出部14により、ステップS2のエッジ検出結果とステップS4の領域検出結果とを用いて、ステップS1で取得した入力画像Im0から線画が検出される。そして、第3の検出部14が出力する線画検出結果が、線画色処理部20に入力される。
次に、ステップS6において、ステップS5の線画検出結果を用いて、ステップS1で取得した入力画像Im0に含まれる各線画に対して、線画色処理部20による処理が行われる。そして、線画色処理部20が出力する線画データ(1)が、色統一処理部30とファイル生成部40とに入力される。
次に、ステップS7において、ステップS6の線画データ(1)を用いて、色統一処理部30による処理が行われる。そして、色統一処理部30が出力する線画データ(2)が、ファイル生成部40に入力される。
次に、ステップS8において、ファイル生成部40により、ステップS6の線画データ(1)とステップS7の線画データ(2)とを用いて、ステップS1で取得した入力画像Im0から第1の画像レイヤIm1、第2の画像レイヤIm2および第3の画像レイヤIm3が生成される。そして、各画像レイヤに対して個別の圧縮処理を施した後に1つの画像ファイルへ統合する処理が行われ、入力画像Im0に対応する高圧縮PDFファイルFImが生成される。
そして最後に、ステップS9において、ステップS8で生成された高圧縮PDFファイルFImがファイル生成部40から出力され、例えばHDD104に蓄積される、あるいは、ネットワークI/F105を介してネットワークに接続されたホストコンピュータなどに送信される。
<第1の検出部による処理の具体例>
次に、第1の検出部11による処理の具体例について、図8を参照して説明する。第1の検出部11による処理は、上述したように、入力画像Im0の3値化により得られる黒画素や白画素の連続性、パターンを利用して、文字などの線画と網点とを分離することで、線画を構成するエッジを検出する処理である。図8は、第1の検出部11による処理の一例を説明するフローチャートである。
第1の検出部11は、まず、処理対象の入力画像Im0に対して、フィルタリングによるMTF補正を行う(ステップS101)。MTF補正は、次の3値化の精度を高めるために実施される前処理である。このMTF補正用のフィルタには、例えば特許第3088010号公報に記載のものを用いることができる。
次に、第1の検出部11は、MTF補正された入力画像Im0に対し3値化を実施して(ステップS102)、入力画像Im0を黒画素、白画素、灰色画素に分ける。
次に、第1の検出部11は、例えば特許第3088010号公報に記載されているように、黒連結画素や白連結画素のパターンマッチングにより入力画像Im0から黒線画や白線画を抽出することで、入力画像Im0に含まれる線画のエッジを検出する(ステップS103)。
そして、第1の検出部11は、ステップS103の処理結果をエッジ検出結果として出力し(ステップS104)、一連の処理を終了する。
<第2の検出部による処理の具体例>
次に、第2の検出部13による処理の具体例について、図9を参照して説明する。第2の検出部13による処理は、上述したように、エッジ強調部12により生成されたエッジ強調画像を2値化して得られる2値化画像から黒画素や白画素の連結成分を抽出し、連結成分の外接矩形の大きさや位置関係などに基づいて連結成分をグループ化して、グループに含まれる線画の領域を検出する処理である。図9は、第2の検出部13による処理の一例を説明するフローチャートである。
第2の検出部13は、まず、エッジ強調部12により生成されたエッジ強調画像に対して2値化を実施する(ステップS201)。ここでの2値化は背景よりも低輝度のオブジェクトを抽出するための処理であり、低輝度のオブジェクトを背景と区別できる適切な閾値が設定される。また、背景との分離精度を高めるために動的閾値2値化を用いてもよい。
次に、第2の検出部13は、例えば特許文献1に記載されているように、ステップS201で得られた2値化画像から、水平方向に並ぶ黒画素のランと垂直方向に並ぶ黒画素のランを連結して連結成分を取得する(ステップS202)。
次に、第2の検出部13は、ステップS202で取得した連結成分のうち、サイズが小さい連結成分を除去する(ステップS203)。この処理は、次のグループ化における計算量を削減するための処理である。
次に、第2の検出部13は、ステップS202で取得され、ステップS203で除去されなかった連結成分を、連結成分の外接矩形の大きさや位置関係などに基づいて結合し、グループ化する(ステップS204)。ここでのグループ化は、代表的な線画である文字を行単位でグループ化するなど、予め定めた規則に従う。したがって、グループ化されない連結成分も存在する。
次に、第2の検出部13は、エッジ強調部12により生成されたエッジ強調画像に対して、再度、2値化を実施する(ステップS205)。ここでの2値化は背景よりも高輝度のオブジェクトを抽出するための処理であり、高輝度のオブジェクトを背景と区別できる適切な閾値が設定される。また、背景との分離精度を高めるために動的閾値2値化を用いてもよい。
次に、第2の検出部13は、例えば特許文献1に記載されているように、ステップS205で得られた2値化画像から、水平方向に並ぶ白画素のランと垂直方向に並ぶ白画素のランを連結して連結成分を取得する(ステップS206)。
次に、第2の検出部13は、ステップS206で取得された連結成分を、連結成分の外接矩形の大きさや位置関係などに基づいて結合し、グループ化する(ステップS207)。ここでのグループ化も、ステップS204と同様、代表的な線画である文字を行単位でグループ化するなど、予め定めた規則に従う。したがって、グループ化されない連結成分も存在する。
次に、第2の検出部13は、ステップS204で結合した連結成分のグループと、ステップS207で結合した連結成分のグループとで、エッジ強調画像における位置が重なるグループがあるかどうかを判断する(ステップS208)。そして、重なるグループがあれば(ステップS208:Yes)、それらのグループの外接矩形のサイズを比較して、外接矩形のサイズが小さい方のグループを削除する(ステップS209)。
次に、第2の検出部13は、以上の処理によりエッジ強調画像から抽出されたグループに含まれる連結成分の領域を、入力画像Im0に含まれる線画の領域として検出する(ステップS210)。そして、第2の検出部13は、ステップS210の処理結果を領域検出結果として出力し(ステップS211)、一連の処理を終了する。
<線画色処理部による処理の具体例>
次に、線画色処理部20による処理の具体例について、図10を参照して説明する。図10は、線画色処理部20による処理の一例を説明するフローチャートである。
線画検出部10から線画色処理部20に対して線画検出結果が入力されると、まず、線画色算出部21が、線画検出部10から受け取った線画検出結果に基づいて、処理対象の入力画像Im0に含まれる線画のうちの1つを取り出す(ステップS301)。
次に、線画色算出部21は、ステップS301で取り出した線画を構成する各画素のRGBデータをHSVデータに変換し、例えば上述した方法により、この線画の線画色と色数を算出する(ステップS302)。
次に、背景色算出部22が、ステップS301で取り出された線画に隣接(1画素程度の隙間があってもよい)する所定の大きさおよび形状の領域を選択し、この領域内の各画素のRGBデータをHSVデータに変換して、例えば上述した方法により背景色を算出する(ステップS303)。
次に、線画色算出部21が、ステップS302で算出した線画の色数が1かどうかを確認し(ステップS304)、線画の色数が2以上の場合は(ステップS304:No)、ステップS303で算出された背景色に基づいて、例えば上述した方法により、ステップS301で取り出された線画の色数を再計算する(ステップS305)。
一方、ステップS302で算出された線画の色数が1の場合(ステップS304:Yes)、あるいは、ステップS305で再計算された線画の色数が1の場合は(ステップS306:Yes)、線画色補正部24が、例えば上述した方法により、ステップS302で算出された線画色を、ステップS303で算出された背景色に応じて補正する(ステップS307)。
一方、ステップS305で再計算された線画の色数が2以上の場合には(ステップS306:No)、線画色補正部24は、それぞれの線画色に応じて線画を構成する各画素のクラスタリングを行う(ステップS308)。そして、線画色補正部24は、ステップS308のクラスタリングの結果ごとに、線画色を背景色に応じて補正する(ステップS309)。
次に、線画色補正部24は、未処理の線画があるか否かを判定する(ステップS310)。そして、未処理の線画があれば(ステップS310:Yes)、ステップS301に戻って以降の処理が繰り返される。一方、すべての線画に対して処理が終了すると(ステップS310:No)、線画色補正部24は、入力画像Im0に含まれる各線画の座標データ、線画色および色数を含む線画データ(1)を出力し(ステップS311)、一連の処理を終了する。
本実施形態の画像処理装置1では、以上のように、線画色処理部20による処理によって、入力画像Im0に含まれる各線画の線画色が背景色に応じて補正されるので、線画が背景色の影響を受けている場合であっても、その背景色の影響を排除した適切な線画色を算出することができる。そして、この線画色を用いて第2の画像レイヤIm2を生成することにより、高画質の線画を再現可能な高圧縮PDFファイルFImを生成することができる。
図11は、背景色の影響によって線画のエッジ近傍が変色した様子を示す図である。例えばスキャナによる原稿の読み取りなどによって取得された入力画像Im0に含まれる線画は、図11に示すように、背景色の影響によってエッジ近傍が変色する場合がある。図11の例では、黒色の線画である「黒」という文字のエッジ近傍に背景色の青色が写り込んで変色した様子を示している。
図12は、背景色に応じて線画色を補正する処理の具体例を説明する図であり、(a)は元の原稿に含まれる線画を表し、(b)は背景色の影響によりエッジ近傍が変色した線画を表し、(c)は線画色が補正された線画を表している。この図12の例では、青色を背景色とする黒色の「黒」という太文字を補正対象の線画の例として示している。
図12(a)に示すような黒色の太文字は、背景色である青色の影響によって、図12(b)に示すように、エッジ近傍が青色に近い色に変色する場合がある。この場合、例えば、この太文字を構成する画素のうち、背景色から所定のユークリッド距離内にある色を持つ画素、つまり、背景色である青色に近いエッジ近傍の画素を除いた残りの画素の色の平均値を線画色とするように補正することによって、図12(c)のように、背景色の影響を排除して図12(a)に示す黒色の太文字を再現できる。
図13は、背景色に応じて線画色を補正する処理の具体例を説明する図であり、図12の例と同様に、(a)は元の原稿に含まれる線画を表し、(b)は背景色の影響によりエッジ近傍が変色した線画を表し、(c)は線画色が補正された線画を表している。この図13の例では、青色を背景色とする黒色の水平ラインを補正対象の線画の例として示している。図13に例示する水平ラインのような線で表現されるオブジェクトは文字の範疇からは外れるが、圧縮の際に文字と同様に扱うことが望ましいオブジェクトであるため、本実施形態では、文字と同様に扱われる線画として入力画像Im0から検出される。
図13(a)に示すような黒色の水平ラインは、背景色である青色の影響によって、図13(b)に示すように、エッジ近傍が青色に近い色に変色する場合がある。この場合、例えば、この水平ラインを構成する画素のうち、背景色から所定のユークリッド距離内にある色を持つ画素、つまり、背景色である青色に近いエッジ近傍の画素を除いた残りの画素の色の平均値を線画色とするように補正することで、図13(c)のように、背景色の影響を排除して図13(a)に示す黒色の水平ラインを再現できる。
図14は、背景色に応じて線画色を補正する処理の具体例を説明する図であり、(a)は元の原稿に含まれる線画を表し、(b)は背景色の影響により全体が変色した線画を表し、(c)は線画色が補正された線画を表している。この図14の例では、青色を背景色とする黒色の「黒文字」という細文字の文字列を補正対象の線画の例として示している。
図14(a)に示すような黒色の細文字は、背景色である青色の影響によって、図14(b)に示すように、文字全体が青色に近い色に変色する場合がある。この場合、例えば、青色に近い変色した細文字の色を、背景色である青色から視覚特性的に遠ざける色に補正することで、図14(c)に示すように、背景色の影響を排除して図14(a)に示す黒色の細文字を再現できる。
なお、以上の図12乃至図14の例のように、背景色の影響により変色した線画色が黒色に近いと判断できる場合、つまり、線画色が背景色と同相の成分を含み、かつ、明度が所定値よりも低い場合には、この線画色を単純に黒色に補正するようにしても同様の効果を得ることができる。また、背景色の影響により変色した線画色が白色に近いと判断できる場合、つまり、線画色が背景色と同相の成分を含み、かつ、明度が所定値よりも高い場合には、この線画色を単純に白色に補正するようにしても同様の効果を得ることができる。
図15は、背景色に応じて線画色を補正する処理の具体例を説明する図であり、(a)は元の原稿に含まれる線画を表し、(b)は背景色の影響によりエッジ近傍が変色した線画を表し、(c)は線画色に応じたクラスタリングを行わずに線画色が補正された線画を表し、(d)は線画色に応じたクラスタリングの結果ごとに線画色が補正された線画を表している。この図15の例は、黒色の「印」という文字の上に赤色の印鑑が押印された部分が1つの線画として検出された場合に、この部分の線画色を補正する例であり、線画の背景色は白色であるものとする。この例は、色数が2以上の線画に対して線画色を補正する処理の具体例である。
図15(a)に示すような線画は、背景色である白色の影響によって、図15(b)に示すように、黒色の「印」の文字が灰色、赤色の印鑑の部分が薄い赤色に変色する場合がある。この場合、線画の色数は2であるが、線画色に応じたクラスタリングをせずに線画全体に対して一律に線画色の補正を行うと、図15(c)に示すように、黒色の「印」の文字と赤色の印鑑の部分の双方が共通の濃い赤色で表現されることになり、図15(a)に示す正しい線画を再現できない。これに対して、線画色に応じたクラスタリングを行い、クラスタリングの結果ごとに、それぞれの線画色を背景色である白から視覚的に遠ざける色に補正することによって、図15(d)に示すように、背景色の影響を排除して、図15(a)に示す正しい線画を再現できる。
<色統一処理部による処理の具体例>
次に、色統一処理部30による処理の具体例について、図16を参照して説明する。図16は、色統一処理部30による処理の一例を説明するフローチャートである。
線画色処理部20から色統一処理部30に対して線画データ(1)が入力されると、まず、統一対象決定部31が、この線画データ(1)に含まれる各線画の座標データを用いて、入力画像Im0における線画のグループを決定する(ステップS401)。
次に、代表色算出部32が、ステップS401で決定されたグループのうちの1つを取り出す(ステップS402)。そして、代表色算出部32は、ステップS402で取り出したグループを構成する線画のうち、線画色が予め定めた特定色(例えば赤色や青色など)の線画を除外する(ステップS403)。さらに、代表色算出部32は、ステップS402で取り出したグループを構成する線画のうち、色数が2以上の線画を除外する(ステップS404)。そして、代表色算出部32は、ステップS403およびステップS404で除外されずに残った線画の線画色の平均値を算出する(ステップS405)。
次に、代表色算出部32は、ステップS402で取り出したグループを構成する線画のうち、ステップS405で算出した平均値に対して色差が基準値を超える線画色の線画をさらに除外する(ステップS406)。そして、代表色算出部32は、ステップS406でも除外されずに残った線画の線画色の平均値を、ステップS402で取り出したグループの代表色として算出する(ステップS407)。
次に、線画色変更部33が、ステップS403、ステップS404およびステップS406で除外されずに残った線画の線画色を、ステップS407で算出された代表色に変更する(ステップS408)。そして、線画色変更部33は、未処理のグループがあるか否かを判定する(ステップS409)。そして、未処理のグループがあれば(ステップS409:Yes)、ステップS402に戻って以降の処理が繰り返される。一方、すべてのグループに対して処理が終了すると(ステップS409:No)、線画色変更部33は、入力画像Im0から検出された線画のうち、グループを構成する線画の変更後の線画色を含む線画データ(2)を出力し(ステップS410)、一連の処理を終了する。
本実施形態の画像処理装置1では、以上のように、色統一処理部30による処理によって、色を統一する単位となるグループを構成する線画のうち、所定の条件に当てはまる線画を除外した残りの線画の線画色に基づいてグループの代表色が算出され、グループを構成する線画の線画色がグループの代表色に変更される。したがって、この線画色を用いて第2の画像レイヤIm2を生成することにより、線画の色の再現性を損なうことなく圧縮率を高めることができる。
図17は、線画色を統一する単位となるグループを決定する方法の具体例を説明する図であり、代表的な線画である文字により構成される文字行を1つのグループとする場合の例を示している。入力画像Im0において、縦方向と横方向とに文字が並んでいる場合、これらの文字をグループ化したときに、1つの文字が縦行と横行の両方に所属することがある。この場合には、例えば図17(a)に示すように、縦方向と横方向の文字間隔を比べたり、図17(b)に示すように、縦方向と横方向の行間隔を比べたりすることにより、入力画像Im0に含まれる各文字を適切に文字行としてグループ化することができる。図17(a)および(b)の例では、それぞれの文字が横行を構成する文字としてグループ化される。
図18は、グループの代表色を算出する処理の具体例を説明する図である。この例では、図18(a)に示すように、「あいうえおかきくけこ」という文字列がグループを構成しており、このうち、文字「う」は赤色、文字「け」は青色であり、ほかの文字は黒色であるとする。また、文字「お」には緑色の「裏」という文字が重なっており、さらに、文字「お」と「か」の間に緑色の「※1」という記号および数字が挿入されているものとする。
まず、図18(a)に示す文字列から、特定色である赤色の文字「う」と、特定色である青色の文字「け」が除外される。その結果、残った文字列は、図18(b)のようになる。
次に、図18(b)に示す文字列から、色数が2となる部分、つまり緑色の「裏」という文字が重なった黒色の文字「お」が除外される。その結果、残った文字列は、図18(c)のようになる。
次に、図18(c)に示す文字列の色の平均値が算出され、この平均値に対して色差が基準値を超える緑色の「※1」という記号および数字が、図18(c)に示す文字列から除外される。その結果、残った文字列は、図18(d)のようになる。
最後に、図18(d)に示す文字列の色の平均値が、このグループの代表色として算出される。そして、図18(d)に示す文字列に含まれる各文字の色が、グループの代表色に変更される。なお、グループの代表色による色の変更は、図18(a)に示す文字列の全体を対象として行ってもよい。
<実施形態の効果>
以上、具体的な例を挙げながら詳細に説明したように、本実施形態の画像処理装置1は、処理対象の入力画像Im0から検出した線画をグループ化し、グループを構成する線画のうち、所定の条件に当てはまる線画を除外した残りの線画の線画色に基づいて、グループの代表色を算出している。そして、グループを構成する線画の線画色を代表色に変更して、線画色を表現する第2の画像レイヤIm2を生成している。したがって、線画色の再現性を損なうことなく第2の画像レイヤIm2の圧縮率を高めることができ、高圧縮PDFにおける圧縮の効率を向上させることができる。
また、所定の条件に当てはまる線画として、色数が2以上の線画や、線画色が赤色や青色などの特定色である線画を除外した場合、これらの線画は色自体に意味があることが想定されるので、このような線画を除外した残りの線画を対象として線画色の変更を行うことにより、第2の画像レイヤIm2の圧縮率を高めながら、意味のある色を再現することができる。
<第1変形例>
なお、以上説明した実施形態においては、線画色を統一するグループを予め定めた任意の基準に従って決定するようにしているが、要求される処理速度に応じて、グループを構成する線画の数を切り替える構成としてもよい。具体的には、要求される処理速度が高速であるほど、グループを構成する線画の数を少なくする。例えば、代表的な線画である文字の文字色統一を図る場合、要求される処理速度が高速であれば、文字行全体で文字色の統一を図るのではなく、処理速度に応じた文字数で文字をグループ化して、このグループ単位で文字色を代表色に変更する。これにより、要求される処理速度を実現できる範囲内で線画色の統一による圧縮率の向上を図ることができ、処理速度が低下することによるユーザの不満を解消することができる。
<第2変形例>
また、線画色変更部33による線画色の変更を実施するか否か、つまり、色統一処理部30による線画色の統一を行うか否かを、要求される圧縮率に応じて切り替える構成としてもよい。すなわち、色統一処理部30による線画色の統一を行わなくても、要求される圧縮率が達成できる場合は、色統一処理部30による線画色の統一を行わないようにして、線画単位で算出された線画色を用いて第2の画像レイヤIm2を生成する。これにより、要求される圧縮率を確保しながら線画色の再現性をより高めることができるとともに、処理速度の低下を抑制することができる。
<第3変形例>
また、以上説明した実施形態では、処理対象の入力画像Im0から線画を検出する方法の具体的な一例を説明したが、入力画像Im0から線画を検出する方法はこの例に限らない。例えば、第3の検出部14が、第1の検出部11のエッジ検出結果から色地上の線画のエッジや白色の線画のエッジを除去した後に、第1の検出部11のエッジ検出結果と第2の検出部13の領域検出結果とのOR演算を行って、入力画像Im0から線画を検出する構成としてもよい。また、第1の検出部11のエッジ検出結果は、エッジ強調部12によるエッジ強調画像の生成のみに利用してもよい。また、これとは逆に、第1の検出部11のエッジ検出結果を第3の検出部14による線画の検出のみに利用し、第2の検出部13がエッジ強調画像から線画の領域を検出する代わりに入力画像Im0から線画の領域を検出する構成としてもよい。また、第2の検出部13は、サイズの小さい連結成分を除去する処理を行わずに、抽出したすべての連結成分を対象として連結成分のグループ化を行う構成としてもよい。そのほか、処理対象の入力画像Im0から線画を検出する方法としては、上述の例に限らず、画像から文字などの線画を検出する既存の方法をいずれも利用することができる。
<補足説明>
上述した実施形態および変形例において説明した画像処理装置1の機能的な構成要素(線画検出部10(第1の検出部11、エッジ強調部12、第2の検出部13および第3の検出部14)、線画色処理部20(線画色算出部21、背景色算出部22、線幅算出部23および線画色補正部24)、色統一処理部30(統一対象決定部31、代表色算出部32および線画色変更部33)およびファイル生成部40)は、上述したように、例えば図1に示したハードウェアとソフトウェア(プログラム)との協働により実現することができる。この場合、上記プログラムは、画像処理装置1にインストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVDなどのコンピュータで読み取り可能な記録媒体に記録して提供される。また、上記プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由で画像処理装置1にダウンロードさせることにより提供するように構成してもよい。さらに、上記プログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。また、上記プログラムを、例えば画像処理装置1内のROM103やHDD104などに予め組み込んで提供するようにしてもよい。
また、上述した実施形態および変形例において説明した画像処理装置1の機能的な構成要素は、その一部または全部を、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアを用いて実現することもできる。
また、上述した実施形態および変形例では、画像処理装置1を単体の装置として実現する例を想定したが、画像処理装置1の機能的な構成要素を物理的に分離した複数の装置に分散して設け、これら複数の装置の連携により、画像処理装置1としての動作が実現されるように構成してもよい。
以上、本発明の具体的な実施形態および変形例について説明したが、上述した実施形態は本発明の一適用例を示したものである。本発明は、上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で様々な変形や変更を加えて具体化することができる。