以下に添付図面を参照しながら、本発明に係る画像処理装置、画像処理方法およびプログラムの具体的な実施形態について詳しく説明する。以下で示す実施形態は、例えばフルカラーで表現される多値画像の高圧縮PDFファイルを生成する画像処理装置への適用例である。ただし、本発明はこの例に限らず、多値画像を文字画像と背景画像とに分離する処理を行う様々な画像処理装置に対して有効に適用可能である。
[第1実施形態]
<画像処理装置の構成>
図1は、本実施形態の画像処理装置1のハードウェア構成例を示すブロック図である。画像処理装置1は、ハードウェアとして、例えばPC(パーソナルコンピュータ)などのコンピュータシステムを用いることができる。すなわち、画像処理装置1は、例えば図1に示すように、CPU101などのプロセッサと、RAM102、ROM103、HDD104などの記憶装置と、LANなどのネットワークに接続する通信インタフェースであるネットワークI/F105とを備え、これらがバス110を介して接続された構成とされる。
本実施形態の画像処理装置1は、例えば、ネットワークに接続されたスキャナやホストコンピュータから処理対象の多値画像をネットワークI/F105を介して取得する。そして、画像処理装置1は、この多値画像を処理することで高圧縮PDFファイルを生成し、生成した高圧縮PDFファイルをHDD104に蓄積したり、ネットワークI/F105を介してネットワークに接続されたホストコンピュータに送信したりする。多値画像から高圧縮PDFファイルを生成する機能は、例えば、CPU101が、RAM102をワークエリアとして利用し、ROM103やHDD104などに格納された所定のプログラムを実行することにより実現される。
なお、本実施形態の画像処理装置1は、例えばコピー機や複合機など、スキャナを備える画像形成装置の一機能として実現することもできる。この場合、図1に示すようなコンピュータシステムを画像形成装置が備える。そして、例えば、画像形成装置内部のCPU101が、RAM102をワークエリアとして利用し、ROM103やHDD104などに格納された所定のプログラムを実行することにより、スキャナエンジンによる原稿の読み取り、あるいはネットワークを介して取得した多値画像から高圧縮PDFファイルを生成する機能が実現される。
図2は、本実施形態の画像処理装置1の機能的な構成例を示すブロック図である。画像処理装置1は、多値画像から高圧縮PDFファイルを生成するための機能的な構成要素として、例えば図2に示すように、第1の検出部11と、エッジ強調部12と、第2の検出部13と、分離部14と、ファイル生成部15とを備える。本実施形態の画像処理装置1では、処理対象として取得された多値画像Im1が第1の検出部11、エッジ強調部12および分離部14に入力され、この多値画像Im1に対応する高圧縮PDFファイルFImがファイル生成部15から出力される。
第1の検出部11は、入力した多値画像Im1に対して文字のエッジを検出する処理を行い、その結果(以下、「文字エッジ検出結果」と呼ぶ)を出力する。この第1の検出部11が行う処理は、例えば特許文献1に記載された方法と同様に、多値画像Im1に対する局所的な分析により、多値画像Im1に含まれる文字のエッジ(線画)を検出する処理である。この処理は、小文字やコントラストの低い文字を効率よく検出できる反面、太文字の内部領域を検出できない、色地上文字や白色文字の検出において誤検出が生じやすいといった特性がある。したがって、処理対象の多値画像Im1に太文字、色地上文字、白色文字などが含まれている場合、第1の検出部11が出力する文字エッジ検出結果には、太文字の内部領域の検出漏れ、色地上文字や白色文字のエッジ周辺における誤検出などが生じ得る。
ここで文字エッジ検出結果とは、例えば、第1の検出部11により文字のエッジとして検出された画素群の多値画像Im1における座標位置を表す座標データである。この文字エッジ検出結果は、エッジ強調部12と分離部14とに入力される。なお、第1の検出部11による処理の詳細は後述する。
エッジ強調部12は、第1の検出部11から入力した文字エッジ検出結果を用いて、処理対象の多値画像Im1に含まれる文字のエッジを強調する処理を行い、文字のエッジが強調された多値画像(以下、「エッジ強調画像」と呼ぶ)Im2を出力する。このエッジ強調画像Im2は、第2の検出部13に入力される。
第2の検出部13は、エッジ強調部12から入力したエッジ強調画像Im2に対して文字領域を検出する処理を行い、その結果(以下、「文字領域検出結果」と呼ぶ)を出力する。この第2の検出部13による処理は、例えば特許文献2に記載された方法と同様に、大局的な分析によりエッジ強調画像Im2から文字行を抽出し、文字行に含まれる文字領域を検出する処理である。この処理は、太文字、色地上文字、白色文字などを精度よく検出できる反面、コントラストの低い灰文字などを正しく検出するのが難しいといった特性がある。したがって、処理対象の多値画像Im1に灰文字などが含まれている場合、第2の検出部13が出力する文字領域検出結果には、灰文字の検出漏れなどが生じ得る。
ここで文字領域検出結果とは、例えば、第2の検出部13により文字領域として検出された画素群の多値画像Im1における座標位置を表す座標データである。この文字領域検出結果は、分離部14に入力される。なお、第2の検出部13による処理の詳細は後述する。
分離部14は、第1の検出部11から入力した文字エッジ検出結果と、第2の検出部13から入力した文字領域検出結果とを用いて、多値画像Im1を文字画像Im3と背景画像Im4とに分離する。具体的には分離部14は、例えば、文字領域検出結果と多値画像Im1とを用いて、多値画像Im1における色地上文字の領域および白色文字の領域を検出し、文字エッジ検出結果に色地上文字のエッジあるいは白色文字のエッジとして検出している部分があればそれを除去する。そして、分離部14は、色地上文字のエッジや白色文字のエッジを除去した文字エッジ検出結果と文字領域検出結果とのOR演算により両者を統合(マージ)し、統合した検出結果が示す多値画像Im1における画像領域を抜き出したものを文字画像Im3とする。また、分離部14は、多値画像Im1と文字画像Im3との差分を背景画像Im4とする。これら文字画像Im3および背景画像Im4は、ファイル生成部15に入力される。
なお、本実施形態では、多値画像Im1に色地上文字の領域と白色文字の領域の双方が含まれている場合に、分離部14がこれら色地上文字の領域と白色文字の領域双方の領域を検出し、文字エッジ検出結果から色地上文字のエッジと白色文字のエッジの双方を除去するものとするが、これに限らない。分離部14は、多値画像Im1に含まれる色地上文字の領域のみを検出し、文字エッジ検出結果から色地上文字のエッジのみを除去するような構成であってもよいし、多値画像Im1に含まれる白色文字の領域のみを検出し、文字エッジ検出結果から白色文字のエッジのみを除去するような構成であってもよい。
ファイル生成部15は、分離部14から入力した文字画像Im3と背景画像Im4とを互いに異なる方式で圧縮した後に統合し、多値画像Im1に対応する高圧縮PDFファイルFImを生成する。具体的にはファイル生成部15は、例えば、文字画像Im3に対しては、色数を限定する減色処理を行った上でMMRなどの符号化方式による圧縮を行う。一方、背景画像Im4に対しては、ダウンサンプリングによるデータ量削減を行った上でJPEGなどの符号化方式による圧縮を行う。そして、圧縮された文字画像Im3と圧縮された背景画像Im4とを、例えばPDF形式で1つの画像ファイル上で統合することで、多値画像Im1に対応する高圧縮PDFファイルFImを生成する。
なお、文字画像Im3や背景画像Im4を圧縮する方式は上記の例に限定されるものではなく、文字画像Im3や背景画像Im4のそれぞれに対して適した方式で圧縮が行われればよい。また、圧縮された文字画像Im3と圧縮された背景画像Im4とを統合する画像ファイルの形式もPDF形式に限定されるものではなく、例えばJPM形式など、背景と前景とを重ね合わせて1つの画像とする様々な形式を利用することができる。
ファイル生成部15により生成された高圧縮PDFファイルFImは、上述したように、例えば、HDD104に蓄積される、あるいは、ネットワークI/F105を介してネットワークに接続されたホストコンピュータなどに送信される。
<画像処理装置の動作>
次に、以上のように構成される本実施形態の画像処理装置1の動作の概要を説明する。図3は、本実施形態の画像処理装置1による動作の流れを説明するフローチャートである。
本実施形態の画像処理装置1の動作が開始されると、まず、ステップS1において、処理対象となる多値画像Im1が取得される。この多値画像Im1は、第1の検出部11、エッジ強調部12および分離部14に入力される。
次に、ステップS2において、ステップS1で取得した多値画像Im1に対して、第1の検出部11による処理が行われる。そして、第1の検出部11が出力する文字エッジ検出結果が、エッジ強調部12と分離部14とに入力される。
次に、ステップS3において、エッジ強調部12により、ステップS2の文字エッジ検出結果を用いて、ステップS1で取得した多値画像Im1に含まれる文字のエッジを強調する処理が行われ、エッジ強調画像Im2が生成される。このエッジ強調画像Im2は、第2の検出部13に入力される。
次に、ステップS4において、ステップS3で生成されたエッジ強調画像Im2に対して、第2の検出部13による処理が行われる。そして、第2の検出部13が出力する文字領域検出結果が、分離部14に入力される。
次に、ステップS5において、分離部14により、ステップS2の文字エッジ検出結果とステップS4の文字領域検出結果とを用いて、ステップS1で取得した多値画像Im1を文字画像Im3と背景画像Im4とに分離する処理が行われる。これら文字画像Im3および背景画像Im4は、ファイル生成部15に入力される。
次に、ステップS6において、ファイル生成部15により、ステップS5で生成された文字画像Im3と背景画像Im4に対し、それぞれに適した画像処理および圧縮が行われた後、1つの画像ファイルへの統合が行われ、ステップS1で取得した多値画像Im1に対応する高圧縮PDFファイルFImが生成される。
そして最後に、ステップS7において、ステップS6で生成された高圧縮PDFファイルFImがファイル生成部15から出力され、例えばHDD104に蓄積される、あるいは、ネットワークI/F105を介してネットワークに接続されたホストコンピュータなどに送信される。
<第1の検出部による処理の具体例>
次に、第1の検出部11による処理の具体例について、図4を参照して説明する。図4は、第1の検出部11による処理の一例を説明するフローチャートである。
第1の検出部11による処理は、上述したように、局所的な分析により多値画像Im1に含まれる文字のエッジを検出する処理であり、例えば特許文献1に記載の技術を利用して、多値画像Im1に含まれる線画を文字のエッジとして検出することで実現できる。
第1の検出部11は、まず、処理対象の多値画像Im1に対して、フィルタリングによるMTF補正を行う(ステップS101)。MTF補正は、次の3値化の精度を高めるために実施される前処理である。このMTF補正用のフィルタには、例えば特許文献1に記載のものを用いることができる。
次に、第1の検出部11は、MTF補正された多値画像Im1に対し3値化を実施して(ステップS102)、多値画像Im1を黒画素、白画素、灰色画素に分ける。
次に、第1の検出部11は、例えば特許文献1に記載されているように、黒連結画素や白連結画素のパターンマッチングにより多値画像Im1から黒線画や白線画を抽出することで、多値画像Im1に含まれる文字のエッジを検出する(ステップS103)。このとき、ステップS102の3値化における閾値を適切に設定することで、多値画像Im1に灰文字が含まれている場合でも、その灰文字のエッジを適切に検出することができる。
そして、第1の検出部11は、ステップS103の処理結果を文字エッジ検出結果として出力し(ステップS104)、一連の処理を終了する。
<第2の検出部による処理の具体例>
次に、第2の検出部13による処理の具体例について、図5を参照して説明する。図5は、第2の検出部13による処理の一例を説明するフローチャートである。
第2の検出部13による処理は、上述したように、大局的な分析により画像から文字領域を検出する処理であり、例えば特許文献2に記載の技術を利用して、エッジ強調画像Im2から文字行を抽出し、文字行から文字領域を検出することで実現できる。ここで、本実施形態の画像処理装置1では、処理対象となる多値画像Im1に対して第2の検出部13による処理を行うのではなく、第1の検出部11の処理結果である文字エッジ検出結果を用いてエッジ強調部12により生成されたエッジ強調画像Im2に対して、第2の検出部13による処理を行う。したがって、多値画像Im1からそのまま文字領域を検出する場合と比較して、文字領域の検出精度が高い。
第2の検出部13は、まず、エッジ強調部12により生成されたエッジ強調画像Im2に対して2値化を実施する(ステップS201)。ここでの2値化は背景よりも低輝度(例えば黒)の文字行を抽出するための処理であり、低輝度の文字行を背景と区別できる適切な閾値が設定される。また、背景との分離精度を高めるために動的閾値2値化を用いてもよい。
次に、第2の検出部13は、例えば特許文献2に記載されているように、ステップS201で得られた2値化画像から、水平方向に並ぶ黒画素のランと垂直方向に並ぶ黒画素のランを連結して連結成分を取得する(ステップS202)。
次に、第2の検出部13は、ステップS202で取得した連結成分のうち、サイズが小さい文字(以下、「小文字」と呼ぶ)と推定される連結成分を除去する(ステップS203)。この処理は、次の文字行の抽出における計算量を削減するための処理である。すなわち、文字行の抽出は、取得した連結成分を種々の条件に従って文字行として統合していく処理となるが、小文字と推定される連結成分が多数含まれている場合、連結成分の統合において組み合わせのパターンが膨大となり、計算量が著しく増加する。一方、多値画像Im1に含まれる低輝度(例えば黒)の小文字は、第1の検出部11により検出されて文字エッジ検出結果として出力される可能性が高く、第2の検出部13による検出対象から除外しても検出漏れが生じないと想定される。そこで、本実施形態では、低輝度の小文字と推定される連結成分を除去した上で次の文字行の抽出を行うことで、計算量の削減を図るようにしている。なお、低輝度の小文字かどうかの判断は、例えば、ステップS202で2値化画像から取得される連結成分の外接矩形の大きさが所定値以下であり、かつ、その連結成分の近傍に外接矩形が所定値を超える連結成分が存在しないといった基準に従って行えばよい。
次に、第2の検出部13は、ステップS202で取得され、ステップS203で除去されなかった連結成分を、例えば特許文献2に記載の方法により統合して、背景よりも低輝度の文字行を抽出する(ステップS204)。
次に、第2の検出部13は、エッジ強調部12により生成されたエッジ強調画像Im2に対して、再度、2値化を実施する(ステップS205)。ここでの2値化は背景よりも高輝度(例えば白)の文字行を抽出するための処理であり、高輝度の文字行を背景と区別できる適切な閾値が設定される。また、背景との分離精度を高めるために動的閾値2値化を用いてもよい。
次に、第2の検出部13は、例えば特許文献2に記載されているように、ステップS205で得られた2値化画像から、水平方向に並ぶ白画素のランと垂直方向に並ぶ白画素のランを連結して連結成分を取得する(ステップS206)。
次に、第2の検出部13は、ステップS206で取得された連結成分を、例えば特許文献2に記載の方法により統合して、背景よりも高輝度の文字行を抽出する(ステップS207)。
次に、第2の検出部13は、ステップS204で抽出した文字行とステップS207で抽出した文字行とで、エッジ強調画像Im2における位置が重なる文字行があるかどうかを判断する(ステップS208)。そして、重なる文字行があれば(ステップS208:Yes)、それらの文字行の外接矩形のサイズを比較して、外接矩形のサイズが小さい方の文字行を削除する(ステップS209)。
次に、第2の検出部13は、以上の処理によりエッジ強調画像Im2から抽出された文字行に含まれる文字を文字領域として検出する(ステップS210)。そして、第2の検出部13は、ステップS210の処理結果を文字領域検出結果として出力し(ステップS211)、一連の処理を終了する。
図6は、第2の検出部13による処理によって得られる文字領域検出結果の具体例を説明する図である。この図6では、エッジ強調画像Im2から黒文字の文字領域「あいうえお」が検出される例を示している。
図5のステップS201の処理により、図6の601のような2値化画像が得られたとする。この2値化画像に対して図5のステップS202の処理を行うと、図6の602で示す連結成分が取得される。そして、図5のステップS203の処理により、小文字の連結成分が除去されて、図6の603のような連結成分が残る。この連結成分を対象として図5のステップS204の処理を行うことで、図6の604のように、文字行が抽出される。そして、図5のステップS210の処理によって、図6の605のように、文字行に含まれる「あいうえお」の文字領域が検出され、文字領域検出結果として出力される。
<分離部による処理の具体例>
次に、分離部14による処理の具体例について、図7を参照して説明する。図7は、分離部14による処理の一例を説明するフローチャートである。
分離部14による処理は、上述したように、第1の検出部11による文字エッジ検出結果と、第2の検出部13による文字領域検出結果とを用いて、多値画像Im1を文字画像Im3と背景画像Im4とに分離する処理である。ここで、本実施形態の画像処理装置1では、分離部14が、まず、多値画像Im1における色地上文字の領域および白色文字の領域を検出して、文字エッジ検出結果に色地上文字のエッジあるいは白色文字のエッジとして検出している部分があればそれを除去する。これにより、第1の検出部11の処理では誤検出が生じやすい色地上文字や白色文字のエッジを除去して、文字エッジ検出結果の信頼性を高めることができる。そして、信頼性が向上した文字エッジ検出結果と文字領域検出結果とを統合し、統合した検出結果を用いて多値画像Im1を文字画像Im3と背景画像Im4とに分離することで、画像の分離精度を高めることができる。
分離部14は、まず、第2の検出部13から入力した文字領域検出結果と多値画像Im1とを用いて、多値画像Im1に色地上文字が含まれているかどうかを判定する(ステップS301)。
図8は、色地上文字を判定する方法の一例を説明する図である。この図8では、黄色地上に黒文字「あいうえお」が存在する例を示し、図8の801は、第2の検出部13により抽出された「あいうえお」を含む文字行の外接矩形の多値画像Im1における位置を表し、図8の802は、第2の検出部13により検出された文字領域「あいうえお」を表している。
分離部14は、図8の801で示す多値画像Im1上の外接矩形から図8の802で示す文字領域「あいうえお」を除去することにより、図8の803で示すように、文字領域「あいうえお」の下地領域を抽出することができる。そして、この下地領域の色が有彩色かどうかを判定することで、多値画像Im1に色地上文字が含まれているかどうかを判定することができる。図8の例では、下地領域の色が黄色であるため、多値画像Im1に色地上文字が含まれていると判定されることになる。
図9は、色地上文字を判定する方法の他の例を説明する図であり、矩形に近い文字が色地上文字かどうかを判定する方法を示している。この図9では、黄色地上に黒文字の長音符「ー」が存在する例を示し、図9の901は、第2の検出部13により抽出された「ー」を含む文字行の外接矩形の多値画像Im1における位置を表し、図9の902は、第2の検出部13により検出された文字領域「ー」を表している。
この図9の例のように、第2の検出部13により検出された文字領域が矩形に近い場合、図8に示した方法で文字領域の下地領域を適切に抽出することができない。そこで、分離部14は、第2の検出部13により検出された文字領域が矩形に近い場合は、図9の903に示すように、文字領域に近い周辺領域を判定の対象とし、この周辺領域の色が有彩色かどうかを判定することで、多値画像Im1に色地上文字が含まれているかどうかを判定する。図9の例では、周辺領域の色が黄色であるため、多値画像Im1に色地上文字が含まれていると判定されることになる。
分離部14は、ステップS301で多値画像Im1に色地上文字が含まれていると判定した場合(ステップS301:Yes)、第1の検出部11による文字エッジ検出結果を多値画像Im1と照合して、文字エッジ検出結果に色地上文字のエッジを検出している部分が含まれていればその色地上文字のエッジを除去する(ステップS302)。一方、多値画像Im1に色地上文字が含まれていなければ(ステップS301:No)、ステップS303に進む。
次に、分離部14は、第2の検出部13から入力した文字領域検出結果と多値画像Im1とを用いて、多値画像Im1に白色文字が含まれているかどうかを判定する(ステップS303)。
図10は、白色文字を判定する方法の一例を説明する図である。この図10では、黒色地上に白色文字の「あいうえお」が存在する例を示し、図10の1001は、第2の検出部13により検出された文字領域「あいうえお」の多値画像Im1における位置を表している。
分離部14は、図10の1001で示す多値画像Im1上の文字領域「あいうえお」から、図10の1002に示すように、文字の内部領域を抽出する。そして、抽出した文字の内部領域の色が白色かどうかを判定することで、多値画像Im1に白色文字が含まれているかどうかを判定することができる。ここで、文字の内部領域を判定の対象とするのは、文字のエッジを文字色の判定の対象に含めると、文字のエッジに下地の色が混在している場合に文字色を正しく判定できないためである。図10の例では、文字の内部領域の色が白色であるため、多値画像Im1に白色文字が含まれていると判定されることになる。
図11は、白色文字を判定する方法の他の例を説明する図であり、判定対象となる文字が細い文字の場合の判定方法を示している。この図11では、黒色地上に細い白色文字の「あいうえお」が存在する例を示し、図11の1101は、第2の検出部13により抽出された「あいうえお」を含む文字行の外接矩形の多値画像Im1における位置を表し、図11の1102は、第2の検出部13により検出された文字領域「あいうえお」を表している。
この図11の例のように、第2の検出部13により検出された文字領域が細い文字である場合、図10に示した例のように文字の内部領域を適切に抽出することができない。そこで、分離部14は、第2の検出部13により検出された文字領域が細い文字の場合は、図11の1101で示す多値画像Im1上の外接矩形から図11の1102で示す文字領域「あいうえお」を除去することにより、図11の1103で示すように、文字領域「あいうえお」の下地領域を抽出する。そして、この下地領域の色と文字領域の色とを用いて、文字領域の色が下地領域の色と同系色でかつ下地領域よりも高輝度であるかどうかを判定することで、多値画像Im1に白色文字が含まれているかどうかを判定する。ここで、文字領域の色が下地領域の色と同系色であることを条件の一つとしているのは、文字のエッジに下地の色が混在していても文字色が白色かどうかを判定できるようにするためである。図11の例では、文字領域の色(白色)が下地領域の色(黒色)と同系色でかつ下地領域よりも高輝度であるため、多値画像Im1に白色文字が含まれていると判定されることになる。
分離部14は、ステップS303で多値画像Im1に白色文字が含まれていると判定した場合(ステップS303:Yes)、第1の検出部11による文字エッジ検出結果を多値画像Im1と照合して、文字エッジ検出結果に白色文字のエッジを検出している部分が含まれていればその白色文字のエッジを除去する(ステップS304)。一方、多値画像Im1に白色文字が含まれていなければ(ステップS303:No)、ステップS305に進む。
次に、分離部14は、第1の検出部11による文字エッジ検出結果から色地上文字のエッジや白色文字のエッジを除去した文字エッジ検出結果と、第2の検出部13による文字領域検出結果とのOR演算により両者を統合する。そして、分離部14は、統合した検出結果が示す画像領域を多値画像Im1から抽出することで、文字画像Im3を生成する(ステップS305)。また、分離部14は、ステップS305で生成した文字画像Im3と多値画像Im1との差分を、背景画像Im4として生成する(ステップS306)。
そして、分離部14は、ステップS305およびステップS306で生成した文字画像Im3および背景画像Im4を出力し(ステップS307)、一連の処理を終了する。
<実施形態の効果>
以上、具体的な例を挙げながら詳細に説明したように、本実施形態の画像処理装置1は、局所的な分析により文字のエッジを検出する第1の検出部11と、大局的な分析により文字領域を検出する第2の検出部13とを備え、これら第1の検出部11による文字エッジ検出結果と第2の検出部13による文字領域検出結果とを複合的に用いて、最終的に処理対象の多値画像Im1に含まれる文字領域を検出するようにしている。したがって、本実施形態の画像処理装置1によれば、処理対象の多値画像Im1が様々な種類の文字を含む場合であっても、この多値画像Im1から文字を高精度に検出することができる。
特に、本実施形態の画像処理装置1では、エッジ強調部12が、第1の検出部11による文字エッジ検出結果を用いて多値画像Im1に含まれる文字のエッジを強調することで、エッジ強調画像Im2を生成する。そして、第2の検出部13は、このエッジ強調部12により生成されたエッジ強調画像Im2から文字領域を検出するようにしている。したがって、第2の検出部13による文字領域の検出精度を高めることができる。
また、本実施形態の画像処理装置1では、分離部14が、第1の検出部11による文字エッジ検出結果と第2の検出部13による文字領域検出結果とを統合し、統合した検出結果を用いて、処理対象の多値画像Im1を文字画像Im3と背景画像Im4とに分離するようにしている。したがって、多値画像Im1を文字画像Im3と背景画像Im4とに精度よく分離することができる。
また、本実施形態の画像処理装置1では、分離部14が、第1の検出部11による文字エッジ検出結果から色地上文字や白色文字のエッジを除去した上で第2の検出部13による文字領域検出結果と統合するようにしている。したがって、第1の検出部11による文字エッジ検出結果に色地上文字や白色文字のエッジ周辺での誤検出が含まれている場合であっても、この誤検出の影響によって文字画像Im3の精度が低下する不都合を有効に抑制することができる。
また、本実施形態の画像処理装置1では、第2の検出部13が、エッジ強調画像Im2から取得した連結成分のうち、小文字と推定される連結成分を除去した上で文字行への統合を行うようにしている。したがって、文字行の抽出にかかる計算量を削減して、第2の検出部13の処理負荷を軽減することができる。
図12は、本実施形態の画像処理装置1による効果の一例を説明する図であり、処理対象の多値画像Im1から生成される文字画像Im3と背景画像Im4の具体例を示している。図12の1201は、第1の検出部11の処理により得られる文字エッジ検出結果の具体例を示し、図12の1202は、第2の検出部13の処理により得られる文字領域検出結果の具体例を示している。
図12の例で示すように、処理対象の多値画像Im1に太文字が含まれている場合、第1の検出部11は太文字の内部領域を適切に検出できないため、文字エッジ検出結果1201は、太文字の内部領域に抜けが生じている。また、処理対象の多値画像Im1に色地上文字や白色文字が含まれている場合(図12では色地上文字かつ白色文字が多値画像Im1に含まれている例を示している)、第1の検出部11は色地上文字や白色文字の検出において誤検出が生じやすいため、文字エッジ検出結果1201には、白色文字(色地上文字)のエッジ近傍に誤検出が含まれている。また、処理対象の多値画像Im1に灰文字が含まれている場合、第2の検出部13は低コントラストの文字を適切に検出できないため、文字領域検出結果1202には、灰文字の文字領域が含まれていない。
しかし、本実施形態の画像処理装置1では、第1の検出部11による文字エッジ検出結果1201から色地上文字や白色文字のエッジ部分を除去した上で第2の検出部13による文字領域検出結果1202と統合し、統合した検出結果が示す画像領域を多値画像Im1から抽出することで、文字画像Im3を生成する。そして、この文字画像Im3と多値画像Im1との差分を背景画像Im4として生成する。このため、図12の例で示すように、処理対象の多値画像Im1に太文字、色地上文字、白色文字、灰文字などの様々な種類の文字が含まれている場合であっても、この多値画像Im1から文字を高精度に検出して、多値画像Im1を文字画像Im3と背景画像Im4とに精度よく分離することができる。
<第1変形例>
なお、以上説明した第1実施形態においては、第2の検出部13が文字行の抽出を行う際に、小文字と推定される連結成分を除去した上で残った連結成分を文字行として統合するようにしている。しかし、このような小文字と推定される連結成分を除去することなく、取得されたすべての連結成分を対象として、文字行への統合を行うように構成してもよい。この場合、小文字と推定される連結成分を除去する場合と比べて第2の検出部13による処理負荷は増大するが、多値画像Im1に含まれる小文字をより精度よく検出することが可能になる。
<第2変形例>
また、上述した第1実施形態においては、分離部14が、第1の検出部11による文字エッジ検出結果から色地上文字や白色文字のエッジ部分を除去した上で第2の検出部13による文字領域検出結果1202と統合するようにしている。しかし、このような色地上文字や白色文字のエッジ部分の除去を行わずに、文字エッジ検出結果と文字領域検出結果との統合を行うように構成してもよい。この場合、統合した検出結果に第1の検出部11による誤検出の影響が残る可能性があるが、分離部14での処理負荷を軽減して処理時間の短縮を図ることができる。
<第3変形例>
また、上述した第1実施形態においては、第1の検出部11による文字エッジ検出結果を、エッジ強調部12によるエッジ強調画像Im2の生成と、分離部14による文字画像Im3の生成との双方に用いるようにしている。しかし、第1の検出部11による文字エッジ検出結果をエッジ強調画像Im2の生成のみに用い、文字画像Im3の生成には用いないように構成してもよい。
図13は、本変形例の画像処理装置1’の機能的な構成例を示すブロック図である。図13に示すように、本変形例の画像処理装置1’では、第1の検出部11による文字エッジ検出結果がエッジ強調部12にのみ入力され、分離部14には入力されない。したがって、分離部14は、第1の検出部11による文字エッジ検出結果と第2の検出部13による文字領域検出結果との統合は行わず、第2の検出部13による文字領域検出結果が示す画像領域を多値画像Im1から抽出することで、文字画像Im3を生成する。
本変形例のように、分離部14が第2の検出部13による文字領域検出結果のみを用いて文字画像Im3を生成する構成であっても、第2の検出部13による文字領域の検出は、第1の検出部11による文字エッジ検出結果を用いてエッジ強調部12が生成するエッジ強調画像Im2を対象として行われるため、文字領域を精度よく検出することができ、多値画像Im1を文字画像Im3と背景画像Im4とに精度よく分離することができる。
<第4変形例>
また、上述した第1実施形態においては、第1の検出部11による文字エッジ検出結果を、エッジ強調部12によるエッジ強調画像Im2の生成と、分離部14による文字画像Im3の生成との双方に用いるようにしている。しかし、第1の検出部11による文字エッジ検出結果を文字画像Im3の生成のみに用い、エッジ強調画像Im2の生成は行わないように構成してもよい。
図14は、本変形例の画像処理装置1’’の機能的な構成例を示すブロック図である。図14に示すように、本変形例の画像処理装置1’’では、エッジ強調部12が設けられておらず、第1の検出部11による文字エッジ検出結果が分離部14のみに入力される。したがって、第2の検出部13は、上述した実施形態のようにエッジ強調画像Im2を対象として文字領域を検出する処理を行うのではなく、多値画像Im1を対象として文字領域を検出する処理を行う。
本変形例のように、第2の検出部13が多値画像Im1を対象として文字領域を検出する処理を行う構成であっても、分離部14において第1の検出部11による文字エッジ検出結果と第2の検出部13による文字領域検出結果とが統合され、統合された検出結果を用いて多値画像Im1に含まれる文字領域が最終的に特定されるので、多値画像Im1を文字画像Im3と背景画像Im4とに精度よく分離することができる。
<補足説明>
上述した第1実施形態および変形例において説明した画像処理装置1の機能的な構成要素(第1の検出部11、エッジ強調部12、第2の検出部13、分離部14およびファイル生成部15)は、上述したように、例えば図1に示したハードウェアとソフトウェア(プログラム)との協働により実現することができる。この場合、上記プログラムは、画像処理装置1にインストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVDなどのコンピュータで読み取り可能な記録媒体に記録して提供される。また、上記プログラムを、インターネットなどのネットワークに接続されたコンピュータ上に格納し、ネットワーク経由で画像処理装置1にダウンロードさせることにより提供するように構成してもよい。さらに、上記プログラムを、インターネットなどのネットワーク経由で提供または配布するように構成してもよい。また、上記プログラムを、例えば画像処理装置1内のROM103やHDD104などに予め組み込んで提供するようにしてもよい。
また、上述した第1実施形態および変形例において説明した画像処理装置1の機能的な構成要素は、その一部または全部を、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などの専用のハードウェアを用いて実現することもできる。
また、上述した第1実施形態および変形例では、画像処理装置1を単体の装置として実現する例を想定したが、画像処理装置1の機能的な構成要素を物理的に分離した複数の装置に分散して設け、これら複数の装置の連携により、画像処理装置1としての動作が実現されるように構成してもよい。
[第2実施形態]
次に、第2実施形態について説明する。本実施形態は、大局的な分析により文字領域を検出する第2の検出部13による処理を実行するか否かを、ユーザにより選択された動作モードに応じて切り替え可能とした例である。本実施形態では、上述の画像処理装置としての機能を、複合機(MFP:Multifunction Peripheral/Printer)において実現した例を挙げる。この複合機では、局所的な分析により文字のエッジを検出する第1の検出部11がASICなどのハードウェア実装により実現され、大局的な分析により文字領域を検出する第2の検出部13がソフトウェア実装により実現されているものとする。
上述した第1実施形態では、第1の検出部11による処理と第2の検出部13による処理とを組み合わせることで、処理対象の多値画像Im1から文字を高精度に検出し、多値画像Im1を文字画像Im3と背景画像Im4とに分離する際の分離性能を高めている。この方法は、文字画質を重視するユーザからは高い満足度が得られる反面、処理に要する時間が比較的長くなるため、生産性を重視するユーザにとっては不満の残るものとなる懸念がある。特に、大局的な分析により文字領域を検出する第2の検出部13はハードウェア実装が難しく、ソフトウェア実装により実現されるのが一般的である。このため、第2の検出部13の処理には比較的長い時間を要することとなり、生産性を重視するユーザが不満を抱く要因となる。
そこで、本実施形態では、例えば「標準モード」と「文字優先モード」(あるいは「絵柄優先モード」と「文字優先モード」)といったように、ユーザが選択可能な動作モードを用意する。そして、ユーザにより選択された動作モードに応じて、第2の検出部13による処理を実行するか否か、つまり、第2の検出部13をアクティブにするかノンアクティブにするかを切り替えるようにしている。上記の例では、ユーザにより「標準モード」が選択された場合は第2の検出部13がノンアクティブとされ、ユーザにより「文字優先モード」が選択された場合は第2の検出部13がアクティブとされる。
なお、第1の検出部11はハードウェア実装されるため高速処理が可能である。このため、ユーザにより選択された動作モードに関わらず、第1の検出部11による処理は常に実行されるものとする。上記の例では、ユーザにより「標準モード」が選択された場合は第1の検出部11がアクティブ、第2の検出部13がノンアクティブとされ、ユーザにより「文字優先モード」が選択された場合は第1の検出部11と第2の検出部13の双方がアクティブとされる。
図15は、本実施形態の複合機200のハードウェア構成例を示すブロック図である。本実施形態の複合機200は、例えば図15に示すように、コントローラ210と、オペレーションパネル220と、FCU(Facsimile Control Unit)230と、USB(Universal Serial Bus)デバイス240と、MLB(Media Link Board)250と、スキャナエンジン260と、プロッタエンジン270とを備える。
オペレーションパネル220は、複合機200を使用するユーザが各種の設定入力を行ったり、ユーザに提示する各種情報を表示したりするユーザインタフェースである。上述のユーザによる動作モードの選択は、例えば、このオペレーションパネル220を用いて行われる。
FCU230は、複合機200のファクシミリ機能を制御する制御ユニットである。USBデバイス240は、USBにより複合機200に接続される機器である。MLB250は、画像データのフォーマット変換を行う変換ボードである。スキャナエンジン260は原稿の読み取りを行うエンジンであり、プロッタエンジン270は印刷を行うエンジンである。本実施形態では、スキャナエンジン260による原稿の読み取りによって、処理対象の多値画像Im1が取得されるものとする。
コントローラ210は、複合機200の動作を制御する制御装置である。コントローラ210は、図15に示すように、CPU211と、システムメモリ212と、HDD(Hard Disk Drive)213と、PHY214と、ASIC215とを含む。オペレーションパネル220は、コントローラ210のASIC215に接続されている。また、FCU230、USBデバイス240、MLB250、スキャナエンジン260およびプロッタエンジン270は、データ転送バス280を介してコントローラ210のASIC215に接続されている。
本実施形態の複合機200では、上述の画像処理装置としての機能が、主にコントローラ210によって実現される。すなわち、図2に示した第1実施形態の画像処理装置1の機能的な構成要素のうち、第1の検出部11およびエッジ強調部12は、例えば、コントローラ210のASIC215により実現される。また、第2の検出部13、分離部14およびファイル生成部15は、例えば、コントローラ210のCPU211がシステムメモリ212を利用して所定のプログラム(ソフトウェア)を実行することにより実現される。
図16は、本実施形態の複合機200の機能的な構成例を示すブロック図である。本実施形態の複合機200は、例えば図16に示すように、第1の処理部310と、第2の処理部320と、切り替え部330とを備える。
第1の処理部310は、コントローラ210のASIC215により実現される機能モジュールであり、第1の検出部11およびエッジ強調部12を含む。第1の検出部11およびエッジ強調部12は、上述した第1実施形態と同様である。すなわち、第1の検出部11は、処理対象の多値画像Im1(本実施形態ではスキャナエンジン260の読み取り画像)に対して、例えば図4に示した処理を実行することにより、多値画像Im1に含まれる文字のエッジを検出する。また、エッジ強調部12は、第1の検出部11による文字エッジ検出結果を用いて多値画像Im1に含まれる文字のエッジを強調する処理を行って、エッジ強調画像Im2を生成する。
第2の処理部320は、コントローラ210のCPU211がシステムメモリ212を利用して所定のプログラム(ソフトウェア)を実行することにより実現される機能モジュールであり、第2の検出部13、分離部14およびファイル生成部15を含む。第2の検出部13、分離部14およびファイル生成部15は、上述した第2実施形態と同様である。すなわち、第2の検出部13は、エッジ強調画像Im2に対して例えば図5に示した処理を実行することにより、処理対象の多値画像Im1に含まれる文字領域を検出する。また、分離部14は、第1の検出部11による文字エッジ検出結果と、第2の検出部13による文字領域検出結果とを用いて、例えば図7に示した処理を実行することにより、多値画像Im1を文字画像Im3と背景画像Im4とに分離する。また、ファイル生成部15は、分離部14により多値画像Im1から分離された文字画像Im3と背景画像Im4とを互いに異なる方式で圧縮した後に統合し、多値画像Im1に対応する高圧縮PDFファイルFImを生成する。
ただし、本実施形態では、第2の検出部13による処理を実行するか否か、つまり、第2の検出部13をアクティブにするかノンアクティブにするかが、切り替え部330によって切り替えられる。そして、分離部14は、第2の検出部13がアクティブの場合は第1実施形態と同様の処理を行うが、第2の検出部13がノンアクティブの場合は、第1の検出部11による文字エッジ検出結果のみに基づいて、多値画像Im1を文字画像Im3と背景画像Im4とに分離する。
第1の処理部310から第2の処理部320へのデータの受け渡しは、HDD213(記憶部)を介して行われる。すなわち、第1の処理部310から第2の処理部320へ受け渡すデータ(処理対象の多値画像Im1、エッジ強調部12により生成されたエッジ強調画像Im2および第1の検出部11による文字エッジ検出結果)は、HDD213に一旦格納される。そして、第2の処理部320の第2の検出部13および分離部14は、必要なデータをHDD213から随時読み出して上述の処理を行う。この際、HDD213の容量を有効利用するために、HDD213に格納するデータに対して任意の圧縮処理を行い、HDD213から圧縮データを読み出して復号処理を行う構成とする。
以上のように、HDD213を介して第1の処理部310から第2の処理部320へのデータの受け渡しを行うことにより、HDD213を、第1の処理部310の処理速度と第2の処理部320の処理速度との速度差を吸収するバッファとして機能させることができる。すなわち、ASIC215を用いたハードウェア実装により実現される第1の処理部310の処理速度と比較して、ソフトウェア実装により実現される第2の処理部320の処理速度は長くなる。このため、第1の処理部310の処理速度と第2の処理部320の処理速度との速度差を吸収するバッファがないと、例えば、多数ページからなる原稿をスキャナエンジン260で読み取って高圧縮PDFファイルFImを生成するジョブの実行時などに、先行するページに対する第2の処理部320の処理が終わるまで後続するページに対する第1の処理部310の処理を実行できない。その結果、スキャナエンジン260による原稿の読み取りに時間がかかり、複合機200の設置場所にユーザを長時間待機させることになる。これに対して、第1の処理部310の処理速度と第2の処理部320の処理速度との速度差をHDD213により吸収する構成とすることにより、スキャナエンジン260による原稿の読み取りを短時間で行って、ユーザを複合機200の設置場所から早期に解放することができる。
切り替え部330は、ユーザにより選択された動作モードに応じて、第2の検出部13による処理を実行するか否か、つまり、第2の検出部13をアクティブにするかノンアクティブにするかを切り替える。ユーザによる動作モードの選択は、例えばオペレーションパネル220に表示される操作画面を通じて行われる。
図17は、ユーザによる動作モードの選択を受け付ける操作画面の一例を示す図である。この図17に示す操作画面170は、スキャナジョブの実行時にオペレーションパネル220に表示される画面であり、動作モード選択領域171に、ユーザがタッチ操作可能な「標準モード」ボタン172と「文字優先モード」ボタン173とが設けられている。この操作画面170上でユーザが「標準モード」ボタン172をタッチすると、動作モードとして「標準モード」を指定するモード選択信号がオペレーションパネル220から切り替え部330に伝達される。一方、操作画面170上でユーザが「文字優先モード」ボタン173をタッチすると、動作モードとして「文字優先モード」を指定するモード選択信号がオペレーションパネル220から切り替え部330に送られる。
切り替え部330は、オペレーションパネル220から伝達されたモード選択信号に基づいて、ユーザにより選択された動作モードを判断する。そして、切り替え部330は、例えば、動作モードと文字検出動作との対応関係を定めた関係テーブルを参照して、第2の検出部13による処理を実行するか否かを決定する。
図18は、動作モードと文字検出動作との対応関係を定めた関係テーブルの一例を示す図である。この図18に示す関係テーブルT1は、動作モードとして「標準モード」が選択された場合は第1の検出部11をアクティブ、第2の検出部13をノンアクティブとし、動作モードとして「文字優先モード」が選択された場合は、第1の検出部11と第2の検出部13の双方をアクティブとすることを示している。
切り替え部330は、第2の検出部13による処理を実行すると決定した場合は、第2の処理部320に対して第2の検出部13をアクティブにする制御信号を送り、第2の検出部13による処理を実行しないと決定した場合は、第2の処理部320に対して第2の検出部13をノンアクティブにする制御信号を送る。これにより、ユーザにより選択された動作モードに応じて、第2の検出部13のアクティブ/ノンアクティブが切り替えられる。
以上説明したように、本実施形態では、ユーザにより選択された動作モードに応じて、比較的処理時間のかかる第2の検出部13による処理を実行するか否かを切り替えるようにしている。したがって、本実施形態によれば、高圧縮PDFファイルFImを生成する際に両立が困難な処理速度(あるいは生産性)と文字の分離性能(あるいは文字部の高画質化)のどちらを優先するかを、ユーザの希望に沿って選択することができ、ユーザの不満を緩和することができる。
<第1変形例>
なお、上述した第2実施形態においては、動作モードとして「標準モード」が選択された場合に、第1の検出部11をアクティブ、第2の検出部13をノンアクティブとしているが、動作モードとして「標準モード」が選択された場合に、第1の検出部11と第2の検出部13の双方をノンアクティブとしてもよい。この場合は、多値画像Im1から文字が検出されないため分離部14による処理も実行されず、多値画像Im1に含まれる文字と背景とで圧縮方式は共通となる。
本変形例を実施するためには、例えばオペレーションパネル220を用いたユーザの所定操作などに応じて、例えば図18に示したような関係テーブルT1のうち、「標準モード」に対応する第1の検出部11の状態をアクティブからノンアクティブに変更すればよい。なお、このような関係テーブルT1の変更は、一般ユーザが行えるようにしてもよいし、例えば管理者などの特定のユーザのみが行えるようにしてもよい。
本変形例では、「標準モード」が選択された場合に、文字の画質が低下する懸念はあるものの、絵柄において文字ではない部分が文字と誤って検出されることがなくなる。このため、絵柄の画質を重視するユーザにとっては「標準モード」を選択することで、好ましい結果が得られることになる。
<第2変形例>
また、上述した第2実施形態においては、動作モードに関わらず、HDD213に格納するデータの圧縮処理およびHDD213から読み出したデータの復号処理を行うようにしているが、動作モードとして「標準モード」が選択された場合はこのような圧縮/復号処理を行わない構成としてもよい。
動作モードとして「標準モード」を選択するユーザは、文字の分離性能(あるいは文字部の高画質化)よりも、処理速度(あるいは生産性)や絵柄の画質を重視するユーザであることが想定される。HDD213に格納するデータの圧縮処理およびHDD213から読み出したデータの復号処理は、上述したように、HDD213の容量を有効利用する上で有用な処理ではあるが、処理速度(あるいは生産性)を重視するユーザにとっては、このような圧縮/復号処理による処理時間の増大が、不満の要因となる懸念がある。また、圧縮/復号処理の方式によっては絵柄の画質劣化を伴う場合もあり、絵柄の画質を重視するユーザに不満を抱かせる懸念がある。
本変形例では、動作モードとして「標準モード」が選択された場合は、HDD213に格納するデータの圧縮処理およびHDD213から読み出したデータの復号処理を行わない構成とすることで、「標準モード」を選択するユーザの上述した不満を緩和することができる。また、動作モードとして「標準モード」が選択された場合は、HDD213に格納するデータの圧縮処理およびHDD213から読み出したデータの復号処理を行わないことに加え、あるいは、圧縮/復号処理を行わないことに代えて、HDD213に対するデータの格納や読み出しをページ単位で行うことも有効である。
<第3変形例>
また、上述した第2実施形態においては、ユーザにより選択された動作モードに応じて第2の検出部13による処理を実行するか否かを切り替えるようにしているが、動作モードに加えて処理速度をユーザが選択できるようにして、ユーザにより選択された動作モードと処理速度との組み合わせに応じて、第2の検出部13による処理を実行するか否かを切り替える構成としてもよい。
図19は、動作モードの選択に加えて処理速度の選択を受け付ける操作画面の一例を示す図である。この図19に示す操作画面190は、図17に示した操作画面170に対して、動作モードごとに処理速度を選択できるチェックボックス191,192が追加された構成である。
この図19に示す操作画面190において、「標準モード」に対応するチェックボックス191はデフォルト設定では「中速」が選択された状態となっている。このデフォルト設定の状態でユーザが「標準モード」ボタン172をタッチして「標準モード」を選択すると、上述したように、第1の検出部11がアクティブで第2の検出部13がノンアクティブとなる。これに対し、ユーザが「標準モード」に対応するチェックボックス191で「低速」を選択し、「標準モード」ボタン172をタッチして「標準モード」を選択すると、例えば、第1の検出部11と第2の検出部13の双方がアクティブとなる。また、ユーザが「標準モード」に対応するチェックボックス191で「高速」を選択し、「標準モード」ボタン172をタッチして「標準モード」を選択すると、例えば、第1の検出部11と第2の検出部13の双方がノンアクティブとなる。
また、図19に示す操作画面190において、「文字優先モード」に対応するチェックボックス192はデフォルト設定では「低速」が選択された状態となっている。このデフォルト設定の状態でユーザが「文字優先モード」ボタン173をタッチして「文字優先モード」を選択すると、上述したように、第1の検出部11と第2の検出部13の双方がアクティブとなる。これに対し、ユーザが「文字優先モード」に対応するチェックボックス192で「中速」を選択し、「文字優先モード」ボタン173をタッチして「文字優先モード」を選択すると、例えば、第1の検出部11がアクティブで第2の検出部13がノンアクティブとなる。また、ユーザが「文字優先モード」に対応するチェックボックス192で「高速」を選択し、「文字優先モード」ボタン173をタッチして「文字優先モード」を選択すると、例えば、第1の検出部11と第2の検出部13の双方がノンアクティブとなる。
以上は、単純に、ユーザが選択する処理速度が「高速」であれば第1の検出部11と第2の検出部13の双方をノンアクティブとし、ユーザが選択する処理速度が「中速」であれば第1の検出部11をアクティブ、第2の検出部13をノンアクティブとし、ユーザが選択する処理速度が「低速」であれば第1の検出部11と第2の検出部13の双方をアクティブとする例である。しかし、動作モードと処理速度との組み合わせに対する文字検出動作の対応関係を定めた関係テーブルに従って、第1の検出部11と第2の検出部13のアクティブ/ノンアクティブを切り替えるようにしてもよい。
図20は、動作モードと処理速度との組み合わせに対する文字検出動作の対応関係を定めた関係テーブルの一例を示す図である。この図20に示す関係テーブルT2は、動作モードとして「標準モード」が選択され、処理速度として「低速」が選択された場合、処理速度として「中速」が選択された場合と同様に、第1の検出部11をアクティブ、第2の検出部13をノンアクティブとすることを示している。この例では、絵柄の画質を重視するユーザが「標準モード」を選択することを想定し、動作モードとして「標準モード」が選択され、処理速度として「低速」が選択された場合は、例えば絵柄の解像度を制御して絵柄先鋭度を高くする処理を行う。このため、第2の検出部13をノンアクティブとすることで文字の検出に要する時間は短縮されるが、トータルの処理時間は長くなる。
また、図20に示す関係テーブルT2は、動作モードとして「文字優先モード」が選択され、処理速度として「高速」が選択された場合、処理速度として「中速」が選択された場合と同様に、第1の検出部11をアクティブ、第2の検出部13をノンアクティブとすることを示している。この例では、「文字優先モード」を選択するユーザは、高速といえども文字の画質をある程度は確保したいと望むことを想定し、動作モードとして「文字優先モード」が選択され、処理速度として「高速」が選択された場合は、第1の検出部11をアクティブにしてある程度の文字の画質を確保しつつ、例えば絵柄の解像度を低くすることにより処理速度の高速化を図り、トータルの処理時間を短くする。
本変形例では、ユーザにより選択された動作モードと処理速度との組み合わせに応じて、第2の検出部13による処理を実行するか否かを切り替える構成としているので、ユーザの意向をより忠実に反映させた処理が可能となる。
<その他の変形例>
上述した第1実施形態の第1変形例乃至第4変形例は、第2実施形態においても適用可能である。
[第3実施形態]
次に、第3実施形態について説明する。本実施形態は、第2実施形態と同様に、上述の画像処理装置としての機能を複合機において実現した例であり、スキャナエンジン260の読み取り画像を処理対象の多値画像Im1とする。ただし、本実施形態では、スキャナエンジン260の読み取り画像を元に高圧縮PDFファイルFImを生成する用途(以下、この用途で画像処理を行う場合を「ファイル生成時」と呼ぶ)だけでなく、スキャナエンジン260の読み取り画像を元にプロッタエンジン270(図15参照)がカラー画像を記録媒体に記録する用途(以下、この用途で画像処理を行う場合を「コピー再生時」と呼ぶ)も想定する。そして、本実施形態では、ファイル生成時とコピー再生時とで、第1の検出部11による処理を切り替えるようにしている。ファイル生成時かコピー再生時かの判断は、例えば、ユーザがオペレーションパネル220を用いてジョブの設定を行うことで出力されるジョブ設定信号に基づいて判断できる。
第1の検出部11は、上述したように、処理対象の多値画像Im1を3値化することによって得られる黒画素や白画素の連続性、パターンを利用して、文字を構成するエッジを検出する。したがって、第1の検出部11によるエッジの検出精度は、多値画像Im1を3値化する際に用いる閾値によって制御できる。ここで、ファイル生成時には、上述したように、多値画像Im1に含まれる灰文字などの低コントラスト文字のエッジも適切に検出できるようにするために、3値化の閾値として、エッジの検出精度が高くなる閾値を設定することが望まれる。一方、コピー再生時には、ファイル生成時と同じ閾値を用いて多値画像Im1を3値化すると、画質の観点から絵柄として扱う方が望ましい部分も文字のエッジとして検出される問題がある。例えば、コピー再生時には黒文字の領域を黒(K)単色で再生するが、新聞の文字のように比較的濃度の高い背景の中の文字を黒単色で再生すると、文字周辺の背景とのギャップが大きくなり、画質劣化の要因となる。また、絵柄の中には局所的にコントラストが非常に高いエッジ部分は少ないものの、低コントラストのエッジ部分は多く存在する。このため、コピー再生時にファイル生成時と同じ閾値を用いて多値画像Im1を3値化すると、画質劣化の要因となる。
そこで、本実施形態では、第1の検出部11による処理の切り替えの一例として、多値画像Im1を3値化する際に用いる閾値をファイル生成時とコピー再生時とで切り替えることにより、ファイル生成時には第1の検出部11によるエッジ検出精度をコピー生成時よりも高くし、コピー再生時には第1の検出部11によるエッジ検出精度をファイル生成時よりも低くするようにしている。つまり、ファイル生成時にはエッジを検出し易くなるように3値化の閾値を設定し、コピー再生時にはファイル生成時と比較してエッジを検出しにくくなるように3値化の閾値を設定する。これにより、3値化の閾値を固定とした場合にはトレードオフの関係となるファイル生成時の効率的な圧縮と、コピー再生時の高画質化とを両立させることができる。
また、本実施形態では、コピー再生時での処理を考慮して、第1の検出部11の構成が上述の第1実施形態や第2実施形態とは若干異なる。すなわち、本実施形態における第1の検出部11は、上述の第1実施形態や第2実施形態と同様の方法によるエッジ検出に加えて、注目画素が白背景画素であるかの判定と、注目画素が網点を構成する画素であるかの判定とを行い、これらの判定結果を総合的に判断することにより、処理対象の多値画像Im1から文字のエッジを検出する。また、本実施形態では、第1の検出部11による処理と併せて、注目画素が有彩ブロックの画素か無彩ブロックの画素かの判定(色判定)も行う。そして、コピー再生時には、これら第1の検出部11の判定結果と色判定の結果とに基づいて、処理対象の多値画像Im1をプロッタエンジン270が処理できる画像信号に変換する処理が行われる。
以下、本実施形態の複合機の構成例について説明する。なお、以下では、上述の第1実施形態や第2実施形態と共通もしくは対応する構成要素には同一の符号を付し、重複した説明を適宜省略する。また、本実施形態の複合機のハードウェア構成は、上述の第2実施形態の複合機200と同様の構成(図15参照)をそのまま採用できるため、説明を省略する。
図21は、本実施形態の複合機200Aの機能的な構成例を示すブロック図である。本実施形態の複合機200Aでは、図21に示すように、第1の処理部310が、第1の検出部11とエッジ強調部12に加えて、ガンマ補正部311と、色判定部312と、データインタフェース部313と、色処理/UCR部314と、プリンタ補正部315とを備える。
ガンマ補正部311は、処理対象の多値画像Im1(スキャナエンジン260の読み取り画像)に対し、色ごとの階調バランスを整えるために各色信号に一次変換処理(ガンマ補正)を施す。本実施形態では、処理対象の多値画像Im1がRGB各色8ビットで表現されるRGB画像信号であり、ガンマ補正部311による変換後の信号は濃度リニア(白が信号値0)のRGB画像信号であるものとする。ガンマ補正部311によってガンマ補正が施された多値画像Im1は、第1の検出部11、エッジ強調部12、色判定部312およびデータインタフェース部313に送られる。
図22は、本実施形態における第1の検出部11の構成例を示すブロック図である。本実施形態における第1の検出部11は、図22に示すように、エッジ検出回路401と、白背景検出回路402と、網点検出回路403と、総合判定回路404とを備える。
エッジ検出回路401は、上述の第1実施形態や第2実施形態における第1の検出部11と同様の方法により、ガンマ補正後の多値画像Im1から文字のエッジを検出する。すなわち、エッジ検出回路401は、ガンマ補正後の多値画像Im1(濃度リニア)を2つの閾値(th_wとth_b:th_w<th_b)で3値化することにより、黒画素、白画素、灰色画素に分ける。そして、黒連結画素や白連結画素のパターンマッチングにより多値画像Im1から黒線画や白線画を抽出することで、多値画像Im1に含まれる文字のエッジを検出する。
このとき、エッジ検出回路401は、オペレーションパネル220から入力されるジョブ設定信号Yに基づき、ファイル生成時かコピー再生時かを判断する。そして、エッジ検出回路401は、ファイル生成時とコピー再生時とで、ガンマ補正後の多値画像Im1を3値化する際に用いる閾値th_w,th_bを切り替える。例えば、コピー再生時に用いる高濃度側の閾値th_bをth_b0、ファイル生成時に用いる高濃度側の閾値th_bをth_b1としたときに、th_b1<th_b0となるように、高濃度側の閾値th_bを切り替える。これにより、ファイル生成時には低コントラストのエッジを文字のエッジとして検出し易くなり、コピー再生時には低コントラストのエッジを文字のエッジとして検出しにくくなる。また、コピー再生時に用いる低濃度側の閾値th_wをth_w0、ファイル生成時に用いる低濃度側の閾値th_wをth_w1としたときに、th_w1>th_w0となるように、低濃度側の閾値th_wを切り替える。これにより、ファイル生成時には濃度が比較的高い背景の中のエッジを文字のエッジとして検出し易くなり、コピー再生時には濃度が比較的高い背景の中のエッジを文字のエッジとして検出しにくくなる。なお、3値化の閾値th_w,th_bの切り替えは、高濃度側の閾値th_bと低濃度側の閾値th_wのいずれか一方のみで行うようにしてもよいし、双方で行うようにしてもよい。
エッジ検出回路401は、以上の処理により多値画像Im1に含まれる文字のエッジを検出し、その結果を総合判定回路404に出力する。エッジ検出回路401の出力は1画素1ビットであり、検出された文字のエッジをアクティブとする。
白背景検出回路402は、ガンマ補正後の多値画像Im1に対して、白背景か非白背景かの判定を行い、その結果を総合判定回路404に出力する。白背景検出回路402は、例えば、ガンマ補正後の多値画像Im1を所定の閾値で2値化して白画素と黒画素に切り分けた後、注目画素の左右あるいは上下両方向に白画素が存在する場合に、白背景と判定する。このとき、左右上下の参照領域のサイズを制御することにより、所望の線幅以下の文字のエッジは白背景として判定し、所望の線幅を超える文字のエッジは非白背景として判定することができる。白背景検出回路402の出力は、白背景をアクティブとする。
網点検出回路403は、ガンマ補正後の多値画像Im1の各画素に対して、網点判定(画像中の山/谷ピーク画素の繰り返しパターンにより判定)し、その結果を総合判定回路404に出力する。
より詳細には、網点検出回路403は、ガンマ補正後の多値画像Im1の各画素に対して、予め定めたM×M画素からなるマトリックス、例えば、図23(a)〜(c)に示す如き3×3画素サイズのマトリックス(M=3)、4×4画素サイズのマトリックス(M=4)あるいは5×5画素サイズのマトリックス(M=5)を順次適用し、当該マトリックスの中心画素m0(図23(a)〜(c)参照)が濃度変化の山または谷を示す極点であるか否かを周囲の画素m1〜miとの濃度関係から検出する。加えて、網点検出回路403は、N×N画素(但し、N>M)からなるブロックB、例えば図24に示すような9×9画素サイズ(N=9)からなるブロックBを単位として画像を分割する。
そして、網点検出回路403は、ブロックごとに山を示す極点画素数と谷を示す極点画素数とをそれぞれ計数し、計数値の大きい側の極点画素数を当該ブロックの極点画素数として決定する。その後、網点検出回路403は、図25に示す注目ブロックB0の極点画素数P0と、これを囲む上下左右斜めの各周囲ブロックB1〜B8の各極点画素数Pとの関係から当該注目ブロックB0の中心画素n0(図24参照)、あるいは当該注目ブロックB0内の全ての画素n0〜n80が網点領域に属するか否かを判定する。網点検出回路403の出力は、網点領域をアクティブとする。
総合判定回路404は、エッジ検出回路401の判定結果と、白背景検出回路402の判定結果と、網点検出回路403の判定結果とを総合的に判断して、注目画素が文字であるか否かを示す判定結果(文字/非文字[絵柄])X1を出力する。すなわち、総合判定回路404は、注目画素がエッジ検出回路401でアクティブ、白背景検出回路402でアクティブ、網点検出回路403でノンアクティブの場合に、注目画素を文字とする判定結果X1を出力する。ファイル生成時には、この総合判定回路404が出力する判定結果X1が、上述した第1実施形態および第2実施形態における文字エッジ検出結果に相当する。総合判定回路404が出力する判定結果X1は、エッジ強調部12およびデータインタフェース部313に送られる。なお、ファイル生成時は、総合判定回路404が出力する判定結果X1に代えて、エッジ検出結果401の出力を文字エッジ検出結果として利用する構成としてもよい。
エッジ強調部12は、第1の検出部11の総合判定回路404の判定結果X1を用い、多値画像Im1に含まれる文字のエッジを強調する処理を行って、エッジ強調画像Im2を生成する。エッジ強調部12により生成されたエッジ強調画像Im2は、データインタフェース部313に送られる。
色判定部312は、ガンマ補正後の多値画像Im1について、注目の画素ブロック(4×4画素)が有彩色ブロックであるか、あるいは無彩色ブロックであるかを判定する。図26は、色判定部312の構成例を示すブロック図である。色判定部312は、例えば図26に示すように、最大値算出部411と、第1の比較部412と、有彩画素カウンタ413と、第2の比較部414とを備える。
最大値算出部411は、ガンマ補正後の多値画像Im1の画素ごとに、RGBの差の絶対値の最大値d[i,j](=ΔRGB)を算出する。
第1の比較部412は、最大値算出部411が算出した最大値d[i,j]を所定の画素判定閾値th_pixと比較する。そして、最大値d[i,j]が画素判定閾値th_pixを超える画素を有彩画素、最大値d[i,j]が画素判定閾値th_pix以下の画素を無彩画素と判定する。
有彩画素カウンタ413は、ガンマ補正後の多値画像Im1に含まれる所定画素数(例えば4ライン×4画素)の画素ブロックごとに、当該画素ブロックに含まれる有彩画素の数C1をカウントする。
第2の比較部414は、有彩画素カウンタ413がカウントした画素ブロック内の有彩画素の数C1を所定のブロック判定閾値th_blcと比較する。そして、有彩画素の数C1がブロック判定閾値th_blcを超える画素ブロックを有彩ブロック、有彩画素の数C1がブロック判定閾値th_blc以下の画素ブロックを無彩ブロックと判定し、判定結果(有彩色/無彩色)X2を出力する。第2の比較部414が出力する判定結果X2は、データインタフェース部313に送られる。
データインタフェース部313は、ファイル生成時に、ガンマ補正後の多値画像Im1、第1の検出部11の判定結果X1(文字エッジ検出結果に相当)、エッジ強調部12により生成されたエッジ強調画像Im2、および色判定部312の判定結果X2をHDD213に一時保存する際のHDD管理インタフェースである。ファイル生成時には、上述の第2実施形態と同様に、第2の処理部320の第2の検出部13および分離部14が、必要なデータをHDD213から随時読み出して上述の処理を行う。そして、ファイル生成部15が、分離部14により多値画像Im1から分離された文字画像Im3と背景画像Im4とを互いに異なる方式で圧縮した後に統合し、多値画像Im1に対応する高圧縮PDFファイルFImを生成する。
一方、コピー再生時には、ガンマ補正後の多値画像Im1、第1の検出部11の判定結果X1および色判定部312の判定結果X2が、データインタフェース部313を介して、色処理/UCR部314に送られる。
色処理/UCR部314は、画素あるいは画素ブロックごとの判定結果X1,X2に基づいて色処理やUCR処理を選択し、ガンマ補正後の多値画像Im1(RGB画像信号)をプロッタエンジン270が処理できる画像信号に変換する。
図27は、色処理/UCR部314の構成例を示すブロック図である。色処理/UCR部314は、例えば図27に示すように、第1の色処理部421と、UCR部422と、第2の色処理部423と、セレクタ424とを備える。データインタフェース部313から画素ごとに出力されるガンマ補正後の多値画像Im1(RGB画像信号)は、第1の色処理部421と第2の色処理部423とに並列に入力される。
第1の色処理部421は、非黒文字用の色再現処理を行う。第1の色処理部421は、処理対象の多値画像Im1に忠実な色再現を実現するために、例えば下記式(1)に示すような3×3のマトリクス演算によりRGB→CMYの変換を行う。この際、色再現の精度向上のために、例えばRGB空間を分割してそれぞれの領域ごとにマトリクス演算を行うようにしてもよい。
UCR部422は、第1の色処理部421の色再現処理により得られたCMYから、下記式(2)〜(5)に従って、墨信号生成および墨信号への置き換えを行う。UCR部422の処理により得られたc,m,y,Bk画像信号はセレクタ424に入力される。なお、下記式(2)のαは0〜1.0の値をとる調整パラメータである。
Bk=α×min(C,M,Y) ・・・(2)
c=C−Bk ・・・(3)
m=M−Bk ・・・(4)
y=Y−Bk ・・・(5)
一方、第2の色処理部423は、黒文字用の色再現処理を行う。第2の色処理部423の色再現処理は、例えばRGB画像信号から輝度相当の信号(Bk0画像信号)を算出する処理である。第2の色処理部423の処理により得られたBk0画像信号(C=M=Y=0)は、セレクタ424に入力される。
セレクタ424は、データインタフェース部313から出力される判定結果X1,X2に基づいて、非黒文字用のc,m,y,Bk画像信号、あるいは黒文字用のBk0画像信号を選択して、プリンタ補正部315に出力する。すなわち、セレクタ424は、注目画素が判定結果X1により文字であり、かつ、判定結果X2により無彩色であれば、Bk0画像信号を選択してプリンタ補正部315に出力する。一方、注目画素が判定結果X1により火文字である、または判定結果X2により有彩色であれば、c,m,y,Bk画像信号を選択してプリンタ補正部315に出力する。
プリンタ補正部315は、色処理/UCR部314から出力される画像信号に対してプロッタエンジン270の固有の特性に応じたガンマ補正処理やディザ処理を施して、プロッタエンジン270に出力する。転写印字ユニットであるプロッタエンジン270は、プリンタ補正部315から出力される画像信号に基づいて、トナーやインクなどの記録材を記録媒体に付着させる。これにより、処理対象の多値画像Im1(スキャナエンジン260の読み取り画像)に応じたカラー画像が記録媒体に記録される。
以上説明したように、本実施形態では、ファイル生成時とコピー再生時とで第1の検出部11による処理を切り替えるようにしている。より具体的には、ファイル生成時とコピー再生時とで、エッジ検出回路401で実施する3値化の閾値を切り替えるようにしている。したがって、本実施形態によれば、3値化の閾値を固定とした場合にはトレードオフの関係となるファイル生成時の効率的な圧縮と、コピー再生時の高画質化とを両立させることができる。
<第1変形例>
なお、以上説明した第3実施形態においては、ファイル生成時に、第2の処理部320の分離部14が第1の検出部11の判定結果X1(文字エッジ検出結果に相当)と、第2の検出部13による文字領域検出結果とを用いて、多値画像Im1を文字画像Im3と背景画像Im4とに分離するものとしている。しかし、分離部14による処理に、第1の検出部11の判定結果X1をそのまま用いるのではなく、この判定結果X1を補正した上で用いるように構成してもよい。
図28は、本変形例の複合機200A’の機能的な構成例を示すブロック図である。図28に示すように、本変形例の複合機200A’では、第2の処理部320に文字領域補正部321が追加されている。それ以外は上述の第3実施形態の構成(図21参照)と同様である。
第1の検出部11の判定結果X1を補正したい理由としては、例えば以下の点が挙げられる。すなわち、第1の検出部11の判定結果X1は文字のエッジを検出した結果であるが、ファイル生成時の効率的な圧縮を考えると、文字のエッジだけでなく文字の内部の領域も文字として扱うことが望ましい。一方、文字の背景は文字近傍の背景とその周囲とで、それぞれに利用する圧縮方式によってはテクスチャ差が目立ってしまう。したがって、文字の背景は非文字(絵柄)に再判定するように、第1の検出部11の判定結果X1を補正することが望ましい。なお、文字の内部の領域は第2の検出部13での大局的な分析により文字として検出できる構成としているが、第1の検出部11の判定結果X1を補正することにより、第2の検出部13の検出漏れを補う効果もある。
図29は、文字領域補正部321の構成例を示すブロック図である。文字領域補正部321は、例えば図29に示すように、輝度信号算出回路431と、2値化回路432と、ラインバッファ433と、マスク補正回路434とを備える。
輝度信号算出回路431は、ガンマ補正後の多値画像Im1(RGB画像信号)の画素ごとに、下記式(6)に従って、輝度信号相当の信号Lを算出する。なお、下記式(6)のa,b,cは、予め実験により求めた係数である。
L=a×R+b×G+c×B ・・・(6)
2値化回路432は、輝度信号算出回路431により算出された信号Lに対し、所定の閾値th_Lにて2値化(L≧th_L→黒画素、L<th_L→白画素)処理を行う。ラインバッファ433は、2値化回路432の処理結果を保持して、マスク補正回路434での処理に必要な情報をマスク補正回路434に入力する。
マスク補正回路434は、注目画素が黒画素であって、かつ、注目画素を中心とした7×7のマスクの中に、第1の検出部11の判定結果X1がアクティブとなっている画素が1つでも存在すれば、注目画素に対する判定結果X1をアクティブとし、そうでなければノンアクティブに判定し直す。図30は、マスク補正回路434が用いるマスクの一例を示す図である。この図30に示すマスクの中心の画素(図中のハッチングを付した画素)が、注目画素である。
以上のような文字領域補正部321の処理により、第1の検出部11の判定結果X1は、文字の内部をアクティブとし、文字の背景をノンアクティブとするように補正される。そして、分離部14が多値画像Im1を文字画像Im3と背景画像Im4とに分離する処理を行う際に、この文字領域補正部321により補正された判定結果X1を用いることで、分離部14による分離性能をさらに向上させることができる。
<第2変形例>
また、上述した第3実施形態では、ファイル生成時とコピー再生時とで第1の検出部11の処理を切り替える一例として、第1の検出部11のエッジ検出回路401における3値化の閾値を切り替える例を説明した。しかし、この3値化の閾値の切り替えだけでなく、他の方法により第1の検出部11の処理を切り替える構成としてもよい。例えば、ファイル生成時とコピー再生時とで、第1の検出部11に入力する多値画像Im1の信号を切り替えるようにしてもよい。
具体的には、例えばコピー再生時には、第1の検出部11による処理の効率化のため、ガンマ補正後の多値画像Im1であるRGB画像信号のG信号を第1の検出部11に入力する。これに対し、ファイル生成時には、ガンマ補正後の多値画像Im1であるRGB画像信号から上記式(6)に従って輝度信号相当の信号Lを算出し、この信号Lを第1の検出部11に入力する。第1の検出部11による処理をG信号に基づいて行う場合は処理を効率化できる反面、緑色部分に対するレスポンスが低いため、緑文字のエッジを検出しにくくなる。これに対し、輝度信号相当の信号Lに基づいて第1の検出部11による処理を行うようにすれば、緑文字のエッジを検出し易くなる。
また、緑文字のエッジだけでなく、黄色文字のエッジも積極的に検出したい場合には、ファイル生成時に輝度信号相当の信号Lに代えて、RGBの最大値max(R,G,B)を第1の検出部11に入力する構成としてもよい。
<第3変形例>
また、上述の第3実施形態では、第1の検出部11の白背景検出回路402や網点検出回路403を文字エッジの検出のみに用いる構成としている。しかし、白背景検出回路402の出力や網点検出回路403の出力を分離部14での処理、つまり多値画像Im1を文字画像Im3と背景画像Im4とに分離する際に利用する構成としてもよい。また、白背景検出回路402の出力や網点検出回路403の出力に基づいて、ファイル生成部15が画像を圧縮する際の圧縮方式を切り替える構成としてもよい。このような構成を実現するには、白背景検出回路402の出力や網点検出回路403の出力を、第1の検出部11の判定結果X1とは独立してデータインタフェース部313に送り、HDD213に一時保存すればよい。
<その他の変形例>
上述した第1実施形態乃至第3実施形態とそれらの変形例は、適宜、組み合わせて実施することができる。例えば、第1実施形態または第2実施形態の構成において、第3実施形態のようにファイル生成時かコピー再生時かによって第1の検出部11による処理(例えば3値化の閾値)を切り替えるようにしてもよい。
以上、本発明の具体的な実施形態および変形例について説明したが、上述した実施形態は本発明の一適用例を示したものである。本発明は、上述した実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で様々な変形や変更を加えて具体化することができる。