(57)【特許請求の範囲】
【請求項１】
入力画像における閾値よりも濃い領域を決定する決定手段と、
前記決定された濃い領域において、当該濃い領域の端から一定距離以上離れた内側にエッジ画素が閾値以上あるか判定する判定手段と、
エッジ画素が閾値以上あると判定された場合に、前記決定された濃い領域を文字領域ではないと判定する手段とを有することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、
前記入力画像に対して前記閾値を用いて２値化を行う手段であり、
当該２値化結果における黒画素により前記濃い領域は構成されることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記入力画像からエッジ画素を抽出する抽出手段をさらに有することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記２値化結果に対して細らせ処理を行う細らせ処理手段と、
前記判定手段は、
前記細らせ処理の結果と、前記抽出されたエッジ画素の論理積を取ることで、
前記決定された濃い領域において、当該濃い領域の端から一定距離以上離れた内側にエッジ画素が閾値以上あるか判定することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
画像データにおける、第１の閾値よりも濃い色を持つ領域を決定する手段と、
前記決定された領域の内部におけるエッジ画素の数が第２の閾値よりも多いか判定する手段と、
前記エッジ画素の数が前記第２の閾値より多いと判定された場合と、少ないと判定された場合とで、異なる画像処理を前記決定された領域に対して行う画像処理手段を有することを有することを特徴とする画像処理装置。
【請求項６】
前記画像処理手段は、前記エッジ画素の数が前記第２の閾値より多いと判定された場合には、前記領域の色を単色化せず、前記エッジ画素の数が前記第２の閾値より少ないと判定された場合には、単色化することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
コンピュータを、請求項１乃至６のいずれか１項に記載の各手段として機能させるためのプログラム。
【請求項８】
画像データにおける、第１の閾値よりも濃い色を持つ領域を決定する工程と、
前記決定された領域の内部におけるエッジ画素の数が第２の閾値よりも多いか判定する工程と、
前記エッジ画素の数が前記第２の閾値より多いと判定された場合と、少ないと判定された場合とで、異なる画像処理を前記決定された領域に対して行う画像処理工程を有することを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像内の文字を判定する画像処理装置、画像処理方法に関する。
【背景技術】
【０００２】
近年、カラープリンタやカラースキャナ等の普及により、カラー化された文書が増え、この文書をスキャンにより取り込んで電子ファイルとして保存したり、インターネット等を介して第三者等に送付したりする機会が増えてきている。しかし、フルカラーデータのままでは記憶装置や回線への負荷が大きいため、圧縮処理を行ってデータ量を小さくする必要がある。
【０００３】
従来、カラー画像を圧縮する方法として、例えば、誤差拡散等で擬似階調を持った２値画像にして圧縮する方法、ＪＰＥＧ形式で圧縮する方法、８ビットのパレットカラーに変換を行ってＺＩＰ圧縮やＬＺＷ圧縮をする方法等があった。
【０００４】
また、特許文献１では、入力画像に含まれる文字領域を検出し、当該検出した文字の部分を２値画像にしてＭＭＲ圧縮（２値非可逆圧縮）して、各文字の文字色情報とともにファイルに保存する。更に、入力画像上の文字部分を周囲の色で塗りつぶしたものを背景画像として解像度を落としてＪＰＥＧ圧縮（非可逆圧縮）して該ファイルに保存する。この圧縮方法により圧縮されたファイルは、文字領域については高い品位が得られるとともに、圧縮率も高くすることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−０７７６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１では、入力画像を２値化して得られた２値画像において、黒画素の集まりのサイズ（幅や高さ）、及びサイズが同程度である黒画素の集まりが近傍にあるかなどに基づいて、各黒画素の集まりが文字らしいか判定し、文字領域の検出を行っている。
【０００７】
一方で、単純２値化で文字と背景を分離するのが困難な入力画像に対して、特許文献１のように２値画像にもとづいて領域判定を行う方法を適用した場合、文字を構成する画素の識別が難しくなる。例えば、白の背景の上の黒文字（文字と背景の濃度差が大きい文字画像）に対して単純２値化を行う場合は、背景画素と文字画素の分離が容易である。一方、濃い濃度の背景の上の黒文字（文字と背景の濃度差が小さい文字画像画像）に対して２値化を行う場合は、背景画素と文字画素の分離が難しい。特に、濃い濃度の背景を有する文字は、２値化の際に背景の濃度よりも小さい値の閾値で２値化が行われると、２値の文字画像が黒くつぶれてしまう。このとき、濃い濃度の背景領域のサイズが文字と同程度のサイズであった場合、背景と文字が黒く潰れて２値化された状態の２値画像が、文字画素の部分として誤判定されてしまう場合もありうる。例えば、文字列の一部を濃いマーカーペンでマーキングした文書をスキャンし、そのスキャン画像を２値化した場合、マーカーペンでマーキングした箇所全体が黒くなってしまう場合がある。そして、そのマーカーペンでマーキングした箇所のサイズが文字サイズに近ければ、マーカーペンでマーキングした箇所の画素全体が２値化で黒く潰れた状態で１つの文字として扱われることになる。換言すれば、２値化の際に黒く潰れた状態の領域の全ての黒画素を、文字の画素として扱ってしまう場合がある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の画像処理装置は、画像データにおける、第１の閾値よりも濃い色を持つ領域を決定する手段と、
前記決定された領域の内部におけるエッジ画素の数が第２の閾値よりも多いか判定する手段と、前記エッジ画素の数が前記第２の閾値より多いと判定された場合と、少ないと判定された場合とで、異なる画像処理を前記決定された領域に対して行う画像処理手段を有することを有することを特徴とする。
【発明の効果】
【０００９】
本発明の一実施形態によれば、２値化処理で黒潰れした領域を文字であるか判定できる。
【図面の簡単な説明】
【００１０】
【図１】画像処理システムを示すブロック図
【図２】実施例１におけるＭＦＰのハードウェア構成
【図３】実施例１における領域判定部２のブロック図
【図４】実施例１における領域判定を説明するための図
【図５】画像圧縮処理部のブロック図
【図６】画像伸長処理部のブロック図
【図７】入力画像のサンプルと出力画像のサンプル
【図８】実施例１における領域判定のフローチャート
【図９】実施例１における入力画像の例
【図１０】実施例２における入力画像の例
【図１１】本実施例４におけるエッジ検出部のブロック図
【図１２】エッジ抽出のサンプル図
【図１３】本実施例４におけるエッジ抽出のフローチャート
【図１４】本実施例５におけるエッジ検出部のブロック図１
【図１５】本実施例５におけるエッジ検出部のブロック図２
【図１６】実施例１におけるサンプル図
【発明を実施するための形態】
【００１１】
（実施例１）
図１は、実施例１におけるシステム構成を示す概略図である。図１では、複合機（ＭＦＰ）１０１とコンピュータ（以下、ＰＣ）１０２が、ネットワーク１０３を介して接続されている。
【００１２】
点線１０４と１０５は処理の流れを示しており、１０４は、ユーザがＭＦＰ１０１のスキャナを用いて紙文書を読み込ませる処理を示す。その際、ユーザは、後述するＭＦＰ１０１のユーザーインターフェース（図２の２０３）を用いて、スキャン画像を送信する宛先（例えば、ＰＣ１０２）と、スキャンや送信に関わる各種設定を行うことができる。その各種設定として、ユーザは、解像度、圧縮率、データ書式（例えば、ＪＰＥＧ、ＴＩＦＦ、ＰＤＦ、ＰＤＦ高圧縮、ＰＤＦ高圧縮（ＯＣＲ結果付き））などを指定できる。本実施例では、データ書式としてＰＤＦ高圧縮（ＯＣＲ結果付き）が指定された場合についての説明を行う。ＰＤＦ高圧縮の技術詳細については後述する。１０５は、指定された各種設定に基づいて、ＭＦＰ１０１のソフトウェアあるいはハードウェア機能を利用してデータを生成し、指定された宛先に送信する処理を示す。ここで、ＰＣ１０２へ送信された画像は、ＰＤＦなどのファイルフォーマットで送信されることになるので、ＰＣ１０２の有する汎用的なビューアで閲覧可能である。
【００１３】
図２は、ＭＦＰ１０１の詳細構成を示す図である。ＭＦＰ１０１は、画像入力デバイスであるスキャナ部２０１と、画像出力デバイスであるプリンタ部２０２、ＭＦＰ全体の制御を行う制御ユニット２０４、ユーザーインタフェースである操作部２０３等を有する。制御ユニット２０４は、スキャナ部２０１、プリンタ部２０２、操作部２０３と接続し、一方では、ＬＡＮ２０９と接続することで、画像情報やデバイス情報の入出力を行うコントローラである。ＣＰＵ２０５はシステム全体を制御するプロセッサである。ＲＡＭ２０６はＣＰＵ２０５が動作するためのシステムワークメモリであり、画像データを一時記憶するための画像メモリでもある。ＲＯＭ２１０はブートＲＯＭであり、システムのブートプログラム等のプログラムが格納されている。記憶部２１１は、ハードディスクドライブ等の不揮発性記憶媒体であり、システム制御ソフトウェアや画像データを格納する。操作部Ｉ／Ｆ２０７は操作部（ＵＩ）２０３とのインターフェース部で、操作部２０３に表示するための画像データを操作部２０３に対して出力する。また、操作部Ｉ／Ｆ２０７は、操作部２０３を介して本画像処理装置のユーザが指示した情報を、ＣＰＵ２０５に伝える役割をする。ネットワークＩ／Ｆ２０８は本画像処理装置をＬＡＮ２０９に接続し、データの入出力を行う（例えば、ＰＤＦ形式の圧縮データを別の装置に送信したり、別の装置からＰＤＦ形式の圧縮データを受信したりする）。以上のデバイスがシステムバス２１６上に配置される。また、イメージバスインターフェース２１２は、システムバス２１６と画像データを高速で転送する画像バス２１７とを接続し、データ構造を変換するバスブリッジである。画像バス２１７は、例えば、ＰＣＩバスやＩＥＥＥ１３９４で構成される。画像バス２１７上には以下のデバイスが配置される。ラスターイメージプロセッサ（ＲＩＰ）２１３は、ＰＤＬ（ページ記述言語）コードを解析し、指定された解像度のビットマップイメージに展開する、いわゆるレンダリング処理を実現する。デバイスＩ／Ｆ部２１４は、信号線２１８を介して画像入力デバイスであるスキャナ部２０１を接続し、信号線２１９を介して画像出力デバイスであるプリンタ部２０２を接続しており、画像データの同期系／非同期系の変換を行う。データ処理部２１５では、ＰＤＦ高圧縮やＯＣＲなどの処理を行うことで、ＰＤＦ形式の圧縮データ（５１５）を生成する。生成された圧縮データ（５１５）は、ネットワークＩ／Ｆ２０８及びＬＡＮ２０９を介して、指定された宛先（例えば、クライアントＰＣ１０２）に送信される。また、このデータ処理部２１５は、ネットワークＩ／Ｆ２０８及びＬＡＮ２０９を介して受信した圧縮データの伸長を行うこともできる。伸長画像は、デバイスＩ／Ｆ２１４を介してプリンタ部２０２に送られ、印刷されることになる。
【００１４】
＜データ処理部２１５の説明＞
次に、図２のデータ処理部２１５により実現される画像圧縮処理部の構成と画像伸長処理部の構成について、図５及び図６のブロック図を用いて説明する。データ処理部２１５は、プロセッサがコンピュータプログラムを実行することにより、図５または図６の各処理部として機能するように構成してもよいし、その一部または全部をＡＳＩＣや電子回路等のハードウェアで構成するようにしてもよい。
【００１５】
ＰＤＦ高圧縮処理は、特許文献１で述べられているように、属性毎の領域判定を行い、各領域の属性に応じて、ＭＭＲによる２値可逆圧縮とＪＰＥＧによる多値非可逆圧縮とを適応的に変えて圧縮する。すなわち、文字領域に対してはＭＭＲ圧縮し、文字領域を周りの色で塗りつぶした画像をＪＰＥＧ圧縮することにより、圧縮率を高くできるとともに、文字領域については高い品位が得られるようにする。このＰＤＦ高圧縮の処理は、カラーまたはモノクロの多値画像に対して有効な圧縮技術である。詳細は後述するが、本実施例では、２値化すると潰れてしまう領域が文字領域であるか否かを判定することができる。そうすることにより、本当の文字領域だけをＭＭＲ圧縮すべき対象であると判定できるようになる。
【００１６】
図５は、データ処理部２１５により実現される画像圧縮処理部の構成を示すブロック図であり、入力画像を圧縮して高圧縮ＰＤＦ（ＯＣＲ結果付き）を生成するための各処理部を示す。
【００１７】
２値化部５０２は、多値画像である入力画像５０１から２値画像を生成する。２値画像では、入力画像において閾値より濃い画素が例えば黒画素、閾値以下の画素が例えば白画素となる（もちろん、２値化結果は、黒、白で表されず、他の色で表されても良いし、色は無く、１、０や０、１で表されてもよい）。また、２値化部５０２では、閾値より濃い画素と、閾値以下の画素を区別することを目的としているが、同じ目的を達成できるのであれば、２値化以外の方法でも良い（例えば、３値化、４値化でも良い）。ただし、以下は、２値化部５０２で２値化がされたものとして説明を行う。なお、入力画像が７０１のような画像である場合、２値画像は７０２のようになる。なお、入力画像がカラーの多値画像である場合には、２値化は、その多値画像の輝度（例えば、ＹＵＶのうちのＹ）に対してのみ行われることになる。
【００１８】
領域判定部５０３は、２値化部５０２で生成された２値画像から、文字領域と写真領域を検出する。これにより、例えば、７０４と７０６が文字領域として、７０５が写真領域として検出される。この処理は、公知の領域識別手法（例えば、特開平０６−０６８３０１号公報）によってなされる。概要を説明すると例えば以下の通りとなる。
【００１９】
（１）２値画像７０２に対して８連結で繋がる黒画素の輪郭を追跡することにより、８方向の何れかの方向で連続して存在する黒画素の塊（黒画素塊）を抽出する。８連結とは、左上、左、左下、下、右下、右、右上、上の８つの方向の何れかで同じ色（今回のケースでは黒）の画素が連続しているという意味である。一方、４連結とは、左、下、右、上の４つの方向の何れかで同じ色の画素が連続しているという意味である。
【００２０】
（２）抽出された黒画素塊の中に、一定の大きさを越える黒画素塊（例えば、黒画素塊によって囲まれる領域の面積が一定の面積を超えるような黒画素塊。）があれば、その領域内に白画素塊があるかを特定する。即ち、その領域内の４連結で繋がる白画素の輪郭を追跡することにより、白画素塊を抽出する。更に、抽出した白画素塊が一定の大きさを越える場合には、再度同様の黒画素の輪郭を追跡することにより黒画素塊の抽出を行う。これらの処理は、画素塊が一定の大きさ以下になるまで繰り返し行う。
【００２１】
（３）得られた黒画素塊を、大きさや形状、黒画素密度のうちの少なくとも１つを用いて、文字か写真かに分類する。例えば、縦横比が１に近く（即ち、１プラスマイナスαに収まる。αは固定の閾値で例えば０．１。）、かつ、大きさが定められた範囲（例えば、黒画素塊によって囲まれる画素の数が１００画素以下）の黒画素塊を、文字を構成する黒画素塊と判定する。そして、残りの黒画素塊を写真を構成する画素塊と判定する。
【００２２】
（４）文字を構成する黒画素塊同士の距離が所定の距離（例えば、３画素。）内である場合に、その黒画素塊同士を同じグループに分類する。その上で、同じグループに分類された黒画素塊の何れをも包含する外接矩形領域を文字領域（７０４、７０６）と判定する。なお、文字を構成する他の黒画素塊が所定の距離内に無い、文字を構成する黒画素塊は、それ単独で一つのグループを構成することになる。従って、その単独の黒画素塊の外接矩形領域が文字領域と判定されることになる。なお、写真を構成する黒画素塊に対して（４）で説明した処理と同様の処理がなされるものとする。
【００２３】
（５）各領域の位置と、その領域の属性判定情報（文字か写真か）とを判定結果として出力する。
【００２４】
上記の（１）から（５）の処理により、７０４と７０６が文字領域、７０５が写真領域であるという判定結果が出力されることになる。以上で領域判定部５０３の説明を終える。
【００２５】
文字切出し部５０４は、領域判定部５０３で生成された文字領域の夫々に対して、文字切り矩形の切り出し処理を行う。切り出された結果は、７１０、７１１、７１２、７１３のようになる。この切り出し処理は以下の処理から構成される。
【００２６】
（１）文字領域の一つを選択する（例えば、７０８を選択する）。
【００２７】
（２）文字領域によって特定される一の２値画像に対して横方向から射影を取る。具体的には、横方向に伸びるラインに黒画素がいくつあるかを数え、その数えた結果が射影となる。取られた射影を７１５に表す。この射影７１５において、閾値より多くの黒画素があった縦方向に連続するラインを一つのグループにする。この結果、三つのグループが生じることになる。三つのグループは、ＡＢＣＤの存在するライン群から構成されるグループ、ＥＦＧの存在するライン群から構成されるグループ、及び、Ｈの存在するライン群から構成されるグループである。
【００２８】
（３）各グループに対して、縦方向から射影を取る。７１６は、ＡＢＣＤの存在するライン群に対して取った射影を表す。
【００２９】
（４）各グループの射影において、閾値より多くの黒画素があった横方向に連続するラインを一つのグループにする。例えば、射影７１６では、四つのグループに生じることになる。四つのグループは、Ａの存在するライン群から構成されるグループ、Ｂの存在するライン群から構成されるグループ、Ｃの存在するライン群から構成されるグループ、Ｄの存在するライン群から構成されるグループからなる。
【００３０】
（５）（４）で得られた各ライン群のグループの外接矩形を文字切出し矩形として切り出す。その結果、例えば、各文字の外接矩形が文字切出し矩形として切り出されることになる。切り出された結果は、７１１、７１２、７１３、７１０に示す通りである。
【００３１】
（６）以上（１）−（５）の処理を、選択されていない文字領域が無くなるまで繰り返す。
【００３２】
ここで、図７を用いて、処理対象となる画像と、２値化・領域判定・文字切出しの処理結果の画像の例を示す。画像７０１は入力画像５０１の例であり、７０１１は白の背景上に記載された文字画像、７０１２は薄い濃度の背景上に記載された文字画像、７０１３は濃い濃度の背景上に記載された文字画像の例を示している。すなわち、文字７０１１と７０１２は、文字と背景の濃度差が大きい文字画像であり、文字画像７０１３は文字と背景の濃度差が小さい文字画像である。
【００３３】
７０２は、２値化部５０２において画像７０１を２値化した結果の２値画像の例であり、文字７０１３は、背景の濃度よりも小さい値の閾値で２値化が行われて、黒く潰れてしまっている状態を示している。
【００３４】
本実施例では、２値化すると潰れてしまう文字画像（例えば、閾値より濃い背景上のさらに濃い文字など、背景と文字の濃度差が小さくて２値化しても背景と文字を分離するのが困難な画像）を、「背景から分離困難な文字画像」と呼ぶこととする。また、２値化した場合に潰れない文字画像（例えば、白または閾値より薄い背景上の黒文字など、背景と文字の濃度差が大きて２値化したときに背景と文字を分離するのが容易な画像）を、「背景から分離容易な文字画像」と呼ぶこととする。すなわち、「背景から分離容易な文字画像」は、２値化すると文字画像部分が黒画素となり文字以外の背景部分は白画素になる文字領域の画像である。
【００３５】
７０３は、領域判定部５０３で２値画像７０２に対して領域判定を行った結果を示す。領域判定の結果、７０４と７０６は文字領域と判定され、７０５は写真領域として判定されたものとする。文字領域７０７と７０８は、２値画像７０３から、領域判定部５０３により文字領域と判定された部分画像を抽出したものである。７０９は、文字切り出し部５０４により切り出された文字切り矩形の概略図を示す。７１０は文字領域７０４内から切り出された文字切り矩形である。また、７１１、７１２、７１３は、文字領域７０６内から切り出された文字切り矩形である。
【００３６】
領域判定部２（５０５）は、文字切り出し部５０４により切り出された文字切り矩形内の文字画像について、２値化すると潰れてしまう文字（背景から分離困難な文字画像）であるか否かを判定する。領域判定部２の判定方法の詳細については後述する。領域判定部２（５０５）で「背景から分離困難な文字画像」であると判断された文字領域の情報に基づいて、領域判定部５０３で生成された文字領域情報と、文字切り出し部５０４で生成された文字切り矩形情報とを修正する。すなわち、領域判定部５０３で生成された文字領域情報と、文字切り出し部５０４で生成された文字切り矩形情報とから、領域判定部２（５０５）で「背景から分離困難な文字画像」であると判断された文字領域の情報を除去する。そうすることにより、「背景から分離困難な文字画像」であると判断された文字領域は、文字ではないと判定されることにより、後述のＭＭＲ圧縮がかからず、文字画像が見えなくなってしまうという問題を解決できることになる。
【００３７】
ＭＭＲ圧縮部５０６は、２値化部５０２で生成された２値画像から、領域判定部２（５０５）で修正した後の文字領域情報に基づいて文字領域の２値画像を抽出する（即ち、「背景から分離容易な文字画像」と判断された文字切り矩形領域に含まれる２値画像のみを抽出する）。そして、当該抽出した文字領域の２値画像に対してＭＭＲ圧縮を行い、圧縮コード１（５１１）を生成する。
【００３８】
縮小部５０７は、入力画像５０１を縮小処理（低解像度化処理）し、縮小多値画像（不図示）を生成する。
【００３９】
代表色抽出部５０８は、領域判定部２（５０５）で修正した後の文字領域情報と文字切り矩形情報とに基づいて、２値画像における各文字を構成する画素（黒画素）の位置を特定する。そして、当該特定した文字の画素の位置に基づいて、縮小多値画像における対応する位置の色を参照して、文字切り矩形領域単位で文字の代表色を算出し、各文字の文字色情報５１３を得る。例えば、代表色は、文字切り矩形領域における２値画像で黒となった画素群の多値画像における色の平均や重み付け平均である。あるいは、そうした画素群の中で最も頻度の多い色である。このように代表色の取り方は様々考えられるが、文字切り矩形領域における２値画像で黒となった画素群のうちの少なくとも一画素の、多値画像における色が、代表職の算出には用いられることになる。
【００４０】
文字領域穴埋め部５０９は、領域判定部２（５０５）で修正した後の文字領域情報と文字切り矩形情報とに基づいて、２値画像における各文字を構成する画素（黒画素）の位置を特定する。そして、当該特定した画素の位置に基づいて縮小多値画像における対応する位置の画素を、その周辺色で塗り潰す処理を行う。周辺色は文字の周囲の画素の画素値の平均値を用い、文字の画素の画素値を当該求めた周辺色で置き換えればよい。文字領域穴埋め部による穴埋め処理の詳細については、特許文献１に記載されている。
【００４１】
ＪＰＥＧ圧縮部５１０は、文字領域穴埋め部５０９で穴埋め処理した後の画像をＪＰＥＧ圧縮して、圧縮コード２（５１４）を生成する。
【００４２】
ＯＣＲ部（５１６）は、領域判定部（５０３）で文字領域と判定された領域に対してステップ９０４において生成された文字切り矩形情報を参照しながら、公知の文字認識処理を行う。文字コード５１７は、その文字認識処理により得られた文字コードである。
【００４３】
ここで、ＭＭＲ圧縮部（５０６）で、ＭＭＲ圧縮する際には、領域判定部２（５０５）で文字として判定された領域、すなわち「背景から分離容易な文字画像」と判断された領域を対象としてＭＭＲ圧縮したのに対し、ＯＣＲ部（５１６）でＯＣＲする際には、領域判定部（５０３）で文字領域として判定された領域を対象としてＯＣＲする。
【００４４】
このうち「背景から分離容易な文字画像」は、領域判定部（５０３）で文字領域と判定した領域のうちの一部の領域となっていることから、「背景から分離容易な文字画像」の方が狭い。即ち、ＯＣＲ対象領域は広く、ＭＭＲ圧縮領域は狭い。
【００４５】
なぜＯＣＲされる領域の方が広くなっているのか。それは、ＯＣＲ対象領域の中にたとえ本当は文字でないものが存在していたとしても、余計な文字コードが得られるだけであり、それほど大きな問題とはならないためである（余計だと思うのであればそうした文字コードを消せば良い）。これに対し、ＭＭＲ圧縮時に、本当は文字でない領域をＭＭＲ圧縮してしまうと、その領域の画質劣化が起きてしまう。そのため、ＯＣＲでは広めの領域を対象として、ＭＭＲ圧縮では狭めの領域を対象とした処理を行っているのである。
【００４６】
このようにして、各構成要素から得られた圧縮コード１（５１１）と、修正後の文字領域情報（５１２）と、文字色情報（５１３）と、圧縮コード２（５１４）と、文字コード（５１７）を含む圧縮データ（５１５）のファイルがＰＤＦ形式で生成される。生成されたＰＤＦ形式のファイルは、上述の通り、ユーザにより指定された宛先へと送信されることになる。
【００４７】
図６は、別の装置から送られてきたＰＤＦ形式の圧縮データを伸長する画像伸長処理部の構成を示すブロック図である。図６の処理は、圧縮データを伸長して印刷する場合などに実行される。ここでは、別の装置から送られてきた圧縮データが５１５と同じファイルであった場合を例に説明する。
【００４８】
ＭＭＲ伸長部６０１は、圧縮データ（５１５）のファイルに含まれている圧縮コード１（５１１）に対してＭＭＲ伸長処理を行い、２値画像を再現する。ＪＰＥＧ伸長部６０３は圧縮コード２（５１４）に対してＪＰＥＧ伸長処理を行い、縮小多値画像を再現する。拡大部６０４は、ＪＰＥＧ伸長部（６０３）で伸長された縮小多値画像に対して、拡大処理を行うことで、圧縮前の入力画像５０１のサイズと同じサイズの多値画像を生成する。
【００４９】
合成部６０２は、文字領域情報（５１２）を参照しながら、ＭＭＲ伸長部で伸長された２値画像の黒画素に文字色情報の色（以下、文字色と称する。５１３）を割り当る。更に、当該文字色が割り当てられた２値画像を、拡大部６０４で生成された多値画像の上に合成することにより、伸長画像６０５を生成する。合成する際、２値画像における白画素に対しては透明色が割り当てられており、背景の多値画像を透過する。このように、画像伸長処理部は、画像圧縮処理部により生成された圧縮データを伸長し、伸長画像６０５を生成する。この伸長画像６０５は、デバイスＩ／Ｆ２１４を介してプリンタ部２０２に送られ、印刷されることになる。なお、この画像伸長処理部は、文字コード５１７は無視する。これは、伸長画像を印刷する上で文字コードは不要だからである。文字コードを必要とするのは、伸長画像６０５をディスプレイに表示するクライアントＰＣ１０２のような装置であって、ＭＦＰ１０１ではない。従って、ＭＦＰ１０１は、文字コード５１７は無視する。なお、正確に言うと、文字コードを必要としているのは、ＰＣ１０２というより、ＰＣ１０２を利用するユーザである。文字列の切り貼り、編集をしたい場合に、文字コードは活用されることになる。
【００５０】
次に、上述した領域判定部２（５０５）が実行する処理の詳細について説明する。領域判定部２（５０５）は、２値化部５０２で生成された２値画像と、縮小部５０７で生成された縮小多値画像と、文字切出し部５０４で生成された文字切り矩形情報とに基づいて、文字切り矩形内の文字画像は２値化によって潰れるかどうかの判定を行う。なお、記憶部２１１において、入力画像５０１が保持されている場合は、縮小多値画像の代わりに、入力画像５０１を用いてもよい。
【００５１】
領域判定部２（５０５）の詳細構成について図３を用いて説明する。説明を行う上で、図４の文字画像の例を適宜参照する。ここで、図４の４０１は、白の背景上に記載された文字（背景と文字の濃度差が大きい画像）の例を示しており、２値化部５０２で画像４０１を２値化すると、４０２に示すような２値画像となる。また、４０６は、濃い濃度の背景上に記載された文字（背景と文字の濃度差が小さい画像）の例を示しており、背景４０７の濃度よりも小さい値の閾値で画像４０６を２値化すると、４０８に示すような黒く潰れた画像となる。尚、薄い濃度の背景上に記載された文字は、背景の濃度と文字の濃度の間の閾値で２値化が行われることによって、画像４０２と同様になるため説明を省略する。４０３〜４０５、及び４０９〜４１１については、後述する。
【００５２】
領域判定部２（５０５）は、細線化部３０１、エッジ検出部３０２、論理演算部３０３、エッジカウント部３０４、エッジ数比較部３０５から構成される。
【００５３】
領域判定部２（５０５）は、閾値よりも濃い領域（即ち、４０２、４０８で黒くなっている領域）の内部のエッジ画素を抽出する（１）。そして、抽出されたエッジ画素の数が閾値より少ない場合に「背景から分離容易な文字画像」であると判定する（２）。また、閾値以上である場合に、「背景から分離困難な文字画像」であると判定する（２）。
【００５４】
例えば、４０２の黒くなっている領域の内部には、エッジ画素が無い。一方、４０８で黒くなっている領域の内部には、エッジ画素（４１０で表されるＨのエッジ画素）がある。ここでいうエッジ画素とは、もちろん二値画像から抽出されたエッジ画素ではなく、多値画像（入力画像）から抽出されたエッジ画素という意味である。
【００５５】
下記構成は、以上の処理（１）（２）を実現するための一構成であり、この構成に限られるわけではない。他に考えられる構成については後述する。
【００５６】
細線化部３０１は、２値画像に対して文字切り矩形情報を参照しながら、文字切り矩形単位で細らせ処理を実行する。細らせ処理は、２値画像内の黒画素塊の外側の２画素を削る（すなわち、黒画素塊の輪郭にある黒画素を白画素に置換する）ことによって、黒画素塊を細らせるための処理である。例えば、対象とする一つの文字切り矩形に含まれる２値画像内の各画素を順に注目画素として、５×５のウインドウを利用して走査を行う。そして、５×５のウインドウ中で１画素でも白画素が存在すれば、注目画素（５×５の中心）を白画素に置き換えることで、細らせ処理を行う。ここで、２値画像４０２に対して細らせ処理を行うと、４０３のような細線化画像になる。また、２値画像４０８に対して細線化を行うと、４０９のような細線化画像になる。
【００５７】
エッジ検出部３０２は、入力された縮小多値画像に対して、文字切り矩形情報を参照しながら、文字切り矩形単位でエッジ検出を行う。エッジであると判定された画素を黒画素として、エッジでないと判定された画素を白画素として表現した画像を、エッジ検出画像とする。エッジ検出は、公知の手法を用いればよいため、詳細については省略するが、以下の処理が考えられる。例えば、縮小多値画像の輝度成分に対して微分フィルタ処理を実行して各画素のエッジ強度を求め、該エッジ強度が所定閾値以上の画素を黒画素とし、エッジ強度が所定閾値より小さい画素を白画素とすることでエッジ検出画像を生成する。ただし、実施例４で説明するエッジ検出方法を利用するとより高精度なエッジ検出が実現できる。入力画像４０１を縮小することによって得られる不図示の縮小多値画像に対してエッジ検出を行うと、４０４のようなエッジ検出画像が得られる。また、入力画像４０６を縮小することによって得られる不図示の縮小多値画像に対してエッジ検出を行うと、４１０のようなエッジ検出画像が得られる。ここで、入力画像４０１や４０６を縮小することによって得られる不図示の縮小多値画像が、入力画像の１／２の解像度である場合は、４０４や４１０も、入力画像の１／２の解像度となるが、説明の簡略化のため、同じ大きさで図示している。なお、記憶部２１１において、入力画像４０１や４０６が保持されている場合は、縮小多値画像の代わりに、入力画像４０１や４０６を用いてエッジ検出を行ってもよい。
【００５８】
論理演算部３０３は、細線化部３０１によって生成された細線化画像と、エッジ検出部３０２によって生成されたエッジ検出画像との論理積（ＡＮＤ）をとって、論理積（ＡＮＤ）画像を生成する処理を行う。具体的には、細線化部３０１によって生成された細線化画像に黒画素があり、且つエッジ検出部３０２によって生成されたエッジ検出画像の同じ位置に黒画素がある場合のみ、論理積を取ると黒画素になる。なお、エッジ検出部３０２によって生成されたエッジ検出画像が、細線化画像の１／２の解像度である場合は、エッジ検出画像を０次補間によって、細線化画像の解像度に合わせてから論理積をとる。または、細線化画像を間引くことによって、エッジ検出画像の解像度に合わせてから論理積をとる。細線化画像４０３とエッジ検出画像４０４との論理積をとると、細線化画像４０３の黒画素とエッジ検出画像４０４の黒画素は、同じ位置にないため、論理積画像４０５内の黒画素は基本的に無くなる（ただし、ノイズ等の影響により少し残る場合はある）。一方、細線化画像４０９とエッジ検出画像４１０との論理積を取ると、論理積画像４１１のように、文字の輪郭部分に黒画素が残る。このように、「背景から分離容易な文字画像」に対する論理積画像内の黒画素の数は少なく、「背景から分離困難な文字画像」に対する論理積画像内の黒画素数は多いという特徴がある。
【００５９】
なお、４１２は、細線化画像４０３とエッジ検出画像４０４とを重ね合わせた場合を示す図である。４１３は細線化画像４０３の黒画素に相当し、４１４はエッジ検出画像４０４の黒画素に相当しており、細線化画像４１３の黒画素とエッジ検出画像４１４の黒画素は、同じ位置にないので、論理積を取ると黒画素は生成されないことになる。
【００６０】
エッジカウント部３０４は、論理演算部３０３によって論理積（ＡＮＤ）をとった結果（論理積画像）における黒画素の数を、エッジ数としてカウントする処理を行う。
【００６１】
エッジ数比較部３０５は、エッジカウント部３０４によってカウントされたエッジ数と所定の閾値とを比較し、「背景から分離容易な文字画像」であるか「背景から分離困難な文字画像」であるかを判定する。すなわち、エッジ数が所定閾値より少なければ、「背景から分離容易な文字画像（２値化したときに潰れない文字画像）」であると判定し、エッジ数が所定閾値以上であれば、「背景から分離困難な文字画像（２値化したときに潰れる文字画像）」であると判定する。
【００６２】
なお、黒画素塊の画素の幅が、細らせ処理の細らせ幅よりも小さい場合には、細らせ処理により、２値画像内の黒画素塊がすべてなくなってしまう場合がある。例えば、２値画像の黒画素塊が３画素幅で構成される細線文字で、細らせ処理の細らせ幅が４画素の場合、２値画像を細らせると黒画素塊がなくなってしまう。このように黒画素塊がなくなってしまう場合には、処理スピード向上の観点で、エッジ検出部３０２と論理演算部３０３とエッジカウント部３０４とエッジ数比較部３０５の処理を省くことが好ましい。これは、エッジ検出部３０２でエッジ画素を検出したとしても、細線化画像との間で論理積を取り、その結果得られるエッジ数をカウントすると、カウント結果が０になることが明らかだからである。カウント結果が０になると、エッジ数が所定閾値より少ないということになるので、「背景から分離容易な文字画像（２値化したときに潰れない文字画像）」であると判定できる。従って、対象とする文字切り矩形における黒画素が細らせ処理により全てなくなってしまう場合には、エッジ検出部３０２−エッジ数比較部３０５の処理を行わずして、その文字切り矩形を「背景から分離容易な文字画像（２値化したときに潰れない文字画像）」であると判定することになる。このように３０２−３０５の処理を省いた場合には、次の文字切り矩形領域を対象として、その領域に対して細線化部３０１−エッジ数比較部３０５の処理に移る。なお、上述の処理を省く理由は、以下のようにも説明できる。即ち、細線化したくらいで黒画素がなくなるようであれば元の二値画像の黒画素群はかなり細いといえ、細い黒画素群は一般に文字や線である。よって、上述の処理を省いて、対象とする文字切り矩形領域は、「背景から分離容易な文字画像（２値化したときに潰れない文字画像）」であると判定するのが処理スピードの面で好ましいというようにも説明できる。
【００６３】
あるいは、２値画像内の黒画素がすべてなくなる場合には、削る画素数を減らす事も可能である。例えば、５×５のウインドウ中で１画素でも白画素が存在すれば、注目画素（５×５の中心）を白画素に置き換えると黒画素塊がすべて白画素となってしまう場合にはウインドウサイズを小さくし、３×３のウインドウで処理する事も可能である。なお、細線化と細らせ処理は同義である。
【００６４】
なお、上述の説明では、エッジカウント部３０４によってカウントされたエッジ数と所定の閾値とを比較すると記載したが、エッジ数を、細線化画像の黒画素数で割った値を、所定の閾値と比べるのも好ましい。そうすることにより、文字切り矩形領域のサイズによらず適切な判断ができることになる。また、文字切り矩形領域を構成する全ての画素数や、その矩形領域を二値化した後の黒画素の数でエッジ数を割ることも考えられる。ただし、一番精度が高いのは、上述の通り、細線化画像の黒画素数でエッジ数を割ることである。そのようにすると、二値画像の内側（濃い領域の内側）にどれだけの割合でエッジが存在するかがわかるからである。この割合が高ければ高いほど、二値画像の内側にエッジが高い割合で存在すると言え、よって、この二値画像が文字でない可能性が高いと言えることになる。
【００６５】
次に、図８のフローチャートを用いて、データ処理部２１５が実行する各処理の説明を行う。説明を行う上で、図２、３、５を適宜参照する。なお、領域判定部２（５０５）は、図８の９０５〜９１１の処理を実行する。
【００６６】
ステップ９０１にて、２値化部５０２は、入力画像５０１に対して２値化処理を実行する。
【００６７】
ステップ９０２にて、領域判定部５０３は、２値画像に対して領域判定処理を実行し、２値画像内に含まれる各領域を識別し、当該識別された領域が文字領域か非文字領域かの判定を行う。
【００６８】
ステップ９０３にて、領域判定部で判定された領域の１つを順に注目領域とし、その注目領域が領域判定部で文字領域と判定された領域である場合は、ステップ９０４へ進み、非文字領域と判定された領域である場合は、ステップ９１３へ進む。
【００６９】
ステップ９０４にて、文字切出し部５０４は、当該注目領域内の画像に対して文字切り出しを行うことによって、文字切り矩形情報を生成する。
【００７０】
ステップ９１６にて、ＯＣＲ部５１６は、領域判定部（５０３）で文字領域と判定された領域に対して、ステップ９０４において生成された文字切り矩形情報を参照しながら、公知の文字認識処理を行う。
【００７１】
ステップ９０５にて、細線化部３０１は、ステップ９０２において２値化された２値画像に対して、ステップ９０４において生成された文字切り矩形情報を参照しながら、文字切り矩形内の２値画像ごとに細線化処理を実行する。
【００７２】
ステップ９０６にて、エッジ検出部３０２は、入力画像を縮小した縮小多値画像（または入力画像５０１）と、ステップ９０４において生成された文字切り矩形情報とを用いて、文字切り矩形内の縮小多値画像（または文字切り矩形内の入力画像。）ごとにエッジ検出処理を実行する。
【００７３】
ステップ９０７にて、論理演算部３０３は、ステップ９０５において細線化部３０１によって生成された細線化画像と、ステップ９０６において生成されたエッジ画像の論理積（ＡＮＤ）をとる。
【００７４】
ステップ９０８にて、エッジカウント部３０４は、ステップ９０７において、論理演算部３０３によって論理積（ＡＮＤ）をとった結果の論理積画像の黒画素をカウントし、エッジ数を求める。ここで、求めたエッジ数は、更に、文字切り矩形領域の面積（文字切り矩形領域内の画素総数）で割ることにより、単位面積あたりのエッジ数を求めるように正規化を行っても構わない。このようにしておけば、文字切り矩形領域の大きさに依存せずにステップ９０９で閾値と比較できるという利点がある。
【００７５】
次に、ステップ９０９にて、エッジ数比較部３０５は、ステップ９０８でカウントされたエッジ数と閾値ｔｈとの比較を行う。ここで、エッジ数が閾値ｔｈよりも大きい場合は、ステップ９１０にて、対象とする文字切り矩形領域を「背景から分離困難な文字画像」であると判断する。また、エッジ数が閾値ｔｈ以下の場合は、ステップ９１１にて対象とする文字切り矩形領域を「背景から分離容易な文字画像」と判断する。
【００７６】
ステップ９１２にて、文字切出し部５０４は、当該着目している文字領域内の全ての文字切り矩形について処理が終了しているかどうか判断し、終了していると判断するとステップ９１３へ進む。一方、未処理の文字切り矩形があると判断した場合は、ステップ９１４にて次の文字切り矩形を処理対象として設定して、ステップ９０５に戻る。
【００７７】
ステップ９１３にて、全ての領域についての判定が終了したと判断すると本処理を終了し、未処理の領域があると判断した場合は、ステップ９１５にて未処理の次の領域を注目領域として設定して、ステップ９０３に戻る。
【００７８】
以上のように、領域判定部２（５０５）において、文字切り矩形領域ごとに、細線化画像とエッジ検出画像との論理積を取った結果の黒画素の数（残ったエッジ数）にもとづいて、各文字切り矩形領域が「背景から分離容易な文字画像。」であるか「背景から分離困難な文字画像」であるかを、高精度に判定できるようになる。
【００７９】
「背景から分離困難な文字画像」（例えば図７の７１３）に対しては、文字領域情報から除去するので、ＭＭＲ圧縮部５０６の処理対象にならない。すなわち、「背景から分離困難な文字画像」は、２値化されずに、背景画像とともにＪＰＥＧ圧縮部５１０で圧縮処理されることになる。
【００８０】
以上のように、２値化すると潰れる文字画像であるか否かを判定することができるので、ＰＤＦ高圧縮に適用した場合は、文字画像が潰れるのを防ぐことができる。
【００８１】
尚、本実施例では、「背景から分離困難な文字画像（２値化すると潰れてしまう文字画像。）」として、図４の４０６と４０８で示したように、１文字の「Ｈ」の場合を例にあげたが、これに限るものではなく、例えば、図９の入力画像１００１に示すように２文字以上であっても構わない。なお、この入力画像１００１を２値化すると２値画像１００２となる。また、２値化で潰れた文字画像は矩形である必要はなく、例えば、図９の１００３に示すように文字画像の一部が潰れる画像であっても構わない。なお、この入力画像１００３を２値化すると、２値画像１００４となる。
【００８２】
続いて、領域判定部２（５０５）の別の構成について説明する。
【００８３】
別の構成では、（Ａ）まず領域判定部２に入力された画像を閾値より濃い領域と、閾値以下の領域に切り分ける（二値化でも三値化でも他の方法でもよい）。その結果、４０２、４０８のような領域が手に入る。
【００８４】
そして、（Ｂ）その入力された画像における、閾値より濃いと判定された領域（４０１のＨ領域や、４０６の全体領域）からエッジ画素を抽出する（抽出方法は上述の通りである）。このエッジを抽出する際には、閾値より濃いと判定された領域の端の部分（例えば、端から一画素内に入った画素や二画素内に入った画素）は非対象とする。即ち、このＢの構成では、閾値より濃いと判定された領域の端の部分から一定距離以上離れた（中に入った）エッジ画素のみを抽出するのである。または、そうした端の部分（一定距離以上離れていない画素）も対象としてエッジ画素を抽出し、そうした端の部分を除去する構成としても良い。そうすることにより、４０５や４１１の結果と同じ結果が得られる。なお、この例では、一定距離は、３画素となっているが、他の値であっても良い。
【００８５】
（Ｃ）後は、得られた結果である所のエッジ画素の数をカウントし、そのエッジ画素の数が閾値ｔｈより大きいか、閾値ｔｈ以下であるか判定する。
【００８６】
そうすることにより、上述の方法と同様の結果（「背景から分離困難な文字画像」であるか、「背景から分離容易な文字画像」であるかの判断結果）が得られることになる。  なお、（Ｂ）の処理の代わりに、領域判定部２に入力された画像全体からエッジ画素を抽出しても良い。その場合、入力された画像全体から抽出されたエッジ画素のうち、閾値より濃いと判定された領域の端の部分、及び、閾値以下の領域を除く。そうすることにより、上述の（Ｂ）の構成と同じ結果が得られることになる。
【００８７】
なお、本実施例では文字切出し部５０４で切り出された文字切り出し９０４結果の文字単位での処理を説明した。この処理は、文字単位ではなく、その文字単位を更に分割して行う事も可能である。例えば、文字切出し部５０４に対し、領域を４等分に区切り、それぞれの領域での処理を行う事も可能である。例えば、図１６の１３００〜１３０４は、文字切りされた４０６を均等に４分割行った例である。１３００〜１３０４それぞれにおいて処理を行う。更に、均等に区切るのではなく、文字切り出しされた領域の中心部のみ（例えば、文字切り領域の中心部６０％のみを使用）で判定を行う事もできる。例えば、図１６の１３０５は、文字切りされた４０６の中心部６０％を抜き出したものであり、この１３０５に対して処理を行う。また、文字切り出しされた領域での判定と、この領域分割および・又は中心部での判定を合わせて、「背景から分離容易な文字画像」であるか「背景から分離困難な文字画像」であるかの判定を行う事も可能である。  （実施例２）
実施例１では、領域判定部２（５０５）において「背景から分離困難な文字画像」と判定された領域はＭＭＲ圧縮処理を行わないようにした。実施例２では、領域判定部２（５０５）で「背景から分離困難な文字画像」と判定された領域に対して、２値化部５０２と異なるアルゴリズムの高精度な２値化処理を再度実行して、背景から文字画像部分の画素を分離するようにしてもよい。この場合、高精度な再２値化処理を行った結果の文字領域を用いてＭＭＲ圧縮処理を行えば、文字領域の画質の向上を図れる。例えば、図７の７１３の領域は「背景から分離困難な文字画像」と判定されるので、その領域７１３に対応する入力画像７０１における領域７０１３のみを、他の領域と異なる閾値で２値化を行う。その結果、図７の７１４に示すような２値画像を生成することができ、この文字領域をＭＭＲ圧縮することができる。なお、高精度の再２値化処理の一例は、固定の閾値で２値化処理を行うのではなく、対象となる領域の濃度あるいは輝度の平均値を閾値として２値化処理する方法である。
【００８８】
（実施例３）
実施例１では、図４の４０１に示すように比較的文字品位の良い入力画像を例として挙げた。しかしながら、図１０の１１０１に示すように文字品位が悪くノイズ等が多い画像（例えば、スキャン原稿や圧縮画像）に対してエッジ検出処理を行うと、図１１の１１０２に示すように文字の内部で多くのエッジが出現する場合がある。文字内部におけるエッジの出現は、特に大きな文字になるほど、顕著になりやすい。
【００８９】
ここで、エッジ検出画像１１０２と細線化画像１１０３から得られる論理積（ＡＮＤ）画像１１０４では、文字内部のエッジが残りやすい。文字内部のエッジが多く残ると、本来、「背景から分離容易な文字画像」であるにも関わらず、「背景から分離困難な文字画像」と判定されてしまう。
【００９０】
実施例３では、文字切り領域のサイズが大きい場合、細線化部３０１での細らせ処理の削減量を大きくすることにより、文字内部に残ってしまうエッジを低減することができる。この処理を、図１０の１１０５〜１１１２を用いて説明する。
【００９１】
１１０５は、文字品位が悪くノイズ等が多い入力画像の小文字を示す。１１０６は、小文字の画像１１０５に対してエッジ検出処理を実行した結果のエッジ検出画像を示す。１１０７は、小文字の画像１１０５に対して細らせ処理を実行した結果の細線化画像を示している。細らせ処理では、５×５のウインドウを利用して、５×５の中で１画素でも白画素が存在すれば、注目画素（５×５の中心）を白画素に置き換える処理を行っている。
【００９２】
１１０８は、エッジ検出画像１１０６と細線化画像１１０７との論理積をとった結果の論理積（ＡＮＤ）画像を示している。ここで、文字品位が悪くノイズ等が多い入力画像の小文字であったとしても、大文字の論理積（ＡＮＤ）画像１１０４と比較すると、エッジ数が少ない。
【００９３】
また、１１０９は、文字品位が悪くノイズ等が多い入力画像の大文字（１１０１と同様の文字画像）を示す。１１１０は、大文字の画像１１０９に対してエッジ検出処理を実行した結果のエッジ検出画像を示す。１１１１は、大文字の画像１１０９に対して細らせ処理を実行した結果の細線化画像を示している。大文字の画像に対する細らせ処理では、９×９のウインドウを利用して、９×９の中で１画素でも白画素が存在すれば、注目画素（９×９の中心）を白画素に置き換える処理を行う。すなわち、文字画像の大きさ（文字切り領域の大きさ）にもとづいて、ウインドウの大きさを変更することで細らせ処理の削減量を大きくしている。なお、上述したウインドウの大きさは一例であり、５×５や９×９に限るものではない。
【００９４】
１１１２は、エッジ検出画像１１１０と細線化画像１１１１との論理積をとった結果の論理積（ＡＮＤ）画像を示している。論理積（ＡＮＤ）画像１１１２は、前述の論理積（ＡＮＤ）画像１１０４と比較して、エッジ数が少なくなる。したがって、ノイズが多い大文字であっても、文字画像のサイズが大きければ細らせ処理の削減量を大きくすることで、「背景から分離容易な文字画像」と判定することができる。
【００９５】
以上のように、実施例３によれば、文字切り領域の大きさにもとづいて細線化部による細らせ処理の削減量を制御することで、入力画像がスキャン原稿のような場合であっても、ノイズ等の影響を低減することができ、高精度な判定を行うことができる。
【００９６】
（実施例４）
次に、図１１を用いて図５の領域判定部２（５０５）内のエッジ検出部（３０２）が行う処理の詳細について説明を行う。エッジ検出部（３０２）は、分散値検出部１００１、エッジ判定閾値算出部１００２、エッジ抽出部１００３から構成される。エッジ検出部（３０２）の処理をより詳細に説明するため、図１２も合わせて説明を行う。図１２の１１０１、１１０２、１１０３はそれぞれ図４内に示した４０１及び、４０６と同じく入力画像に対し文字切り矩形情報を参照しながら、文字切り矩形単位で切り出された入力画像を示している。１１０１、１１０２、１１０３はそれぞれ、スキャナ部２０１で取得された際の信号値が異なっている画像例である。より具体化するために、Ｌ＊ａ＊ｂ＊表色系での信号値をしめしており、Ｌ＊が明度、ａ＊およびｂ＊で色度を示している。なお、本例ではＬ＊ａ＊ｂ＊表色系で示しているが、限定するものでなく例えば、ＲＧＢ表色系など別の色空間の信号値でも同様の処理が可能である。１１０１の１１０４で示す領域の信号値は｛Ｌ＊，  ａ＊，  ｂ＊｝＝｛１１２８，  −５０，  ＋３０｝である。１１０５で示す領域の信号値は｛Ｌ＊，  ａ＊，  ｂ＊｝＝｛１２８，  ＋５０，  −６０｝である。１１０４と１１０５の領域間で大きな信号値差がある例を示している。一方、１１０２の１１０６で示す領域の信号値は｛Ｌ＊，  ａ＊，  ｂ＊｝＝｛１２８，  −５０，  ＋３０｝である。１１０７で示す領域の信号値は｛Ｌ＊，  ａ＊，  ｂ＊｝＝｛１２８，  −６０，  ＋３０｝である。１１０６と１１０７の領域間で小さな信号値差しかない例を示している。更に、１１０３の１１０８で示す領域の信号値は｛Ｌ＊，  ａ＊，  ｂ＊｝＝｛１２８，  −５０，  ＋３０｝である。１１０９で示す領域の信号値は｛Ｌ＊，  ａ＊，  ｂ＊｝＝｛１２８，  −５２，  ＋３０｝である。１１０８と１１０９の領域間ではほぼ信号値差がない例を示している。例えば、エッジ検出部（３０２）を本構成ではなく、単純に隣り合う画素との信号値比較を元に行うエッジ検出や、フィルタ処理によって行うエッジ検出を行った場合には以下の問題がある。即ち、闘値によっては１１０１では１１０４と１１０５との境界で輪郭エッジが取得できるが、１１０２の１１０６と１１０７との境界で輪郭エッジが取得できない。また、１１０２の１１０６と１１０７との境界で輪郭エッジを取得できる閾値にした場合には１１０３の１１０８と１１０９との境界の輪郭エッジが取得されてしまう。その結果、スキャナの読み取りバラつきやＪｐｅｇノイズなどの小さなノイズもエッジとして検出されてしまう。
【００９７】
以上の課題を解決する構成が図１１であり、分散値検出部１００１は、文字切り矩形単位で切り出された入力画像の信号値での分散値を演算する演算部である。算出方法は、例えば以下の式で算出する。
【００９８】
【数１】
0005875637.tif 000002
【００９９】
ここで、切り出された入力画像の画素数をｎ、各画素の信号値（本実施例では、Ｌ＊、ａ＊、ｂ＊のそれぞれの値）をＸｉ（ｉ＝１，２，…  ，ｎ）、領域内の画素数の信号値の平均をＸａｖｅで示す。尚、本実施例ではＬ＊、ａ＊、ｂ＊のそれぞれの値での分散値を示すが、限定するものではなく、例えば、ａ＊、ｂ＊信号値での共分散値であってもよい。図１２に示した１１０１、１１０２、１１０３の例では、１１０１は信号値差が大きくいことから分散値も大きくなり、１１０２と１１０３は信号値差が小さいことから分散値も比較的小さくなる。
【０１００】
これ以降の説明で用いる用語の定義として、「エッジが取得されやすい閾値」とは隣り合う画素間の信号値差を比較し、差がある場合にエッジと判定する処理では信号値差が小さくてもエッジと判定するものである。逆に、「エッジが取得されにくい閾値」は、信号値差が大きくなければエッジと判定されず、信号値差が少ない場合にはエッジと判定されないものをいう。
【０１０１】
エッジ判定閾値算出部１００２は、分散値検出部１００１によって算出された分散値を元にエッジ抽出を行うための閾値の算出を行う。例えば、１１０１に示すように分散値が大きい画像に対してはエッジが取得されにくい閾値を割り当てる。一方で、１１０２と１１０３に対しては、エッジが取得されやすい閾値を割り当てる。
【０１０２】
エッジ抽出部１００３は、エッジ判定閾値算出部１００２により決定した閾値を元に、エッジ抽出処理を行う処理部である。処理の方法は、汎用的な処理でよく、たとえば近接する画素の信号値差の比較を行い、その差が特定の閾値を越えるか否かで判定するものや、一次微分を算出するフィルタによりエッジ量を求め、特定の閾値を越えるか否かで判定する方法などが挙げられる。
【０１０３】
エッジ判定閾値算出部１００２によって算出した条件で切り分ける場合、１１０１はエッジが取得されにくい閾値を割り当ててエッジ抽出を行う。ここでは例えば、分散値を元に決定した閾値が５となった場合の例を示す。その閾値で判定した場合、１１０４と１１０５の領域間の信号値差は大きいため、正確に１１０４と１１０５の領域間にあるエッジを抽出できる。この結果を１１１０に示す。一方、１１０２の場合には、１１０６と１１０７の信号値差は小さいものの、エッジが取得されやすい閾値を割り当てる事で、１１０６と１１０７の領域間にあるエッジを抽出できる。この結果を１１１１に示す。１１０３の場合にはエッジが取得されやすい閾値を割り当てているが、１１０８と１１０９の間の信号値差が、１１０６と１１０７の信号値差に比べ非常に小さい。そのため、エッジが取得されやすい閾値であったとしても、１１０８と１１０９の領域間にあるエッジを抽出する事はない。この結果を１１１２に示す。
【０１０４】
次に、図１３のフローチャートを用いて、図１１のエッジ検出部（３０２）の説明を行う。説明を行う上で、図１１を適宜参照する。
【０１０５】
まず、ステップ１２０１にて、分散値算出部（１００１）は、入力画像（５０１）に対して信号の分散値を算出する。この際、その画像が持つチャンネル数が３の場合には３つとも求めてもよいし、１チャンネル化して１つでも良い。
【０１０６】
次に、ステップ１２０２にて、エッジ閾値算出部（１００２）は、ステップ１２０１で算出した画像の信号の分散値が所定の値を越えているか否かを判定する。もし、所定の閾値以上の場合には、１２０３において「エッジが取得されやすい閾値」を取得する。逆に、所定の閾値未満の場合には、１２０４において「エッジが取得されにくい値」を取得する。
【０１０７】
最後に、ステップ１２０５にて、エッジ抽出部（１００３）は、１２０３又は１２０４で決定した閾値を元にエッジ抽出処理を行う。
【０１０８】
以上のように、本実施例では、エッジ抽出を行う場合に、文字切り矩形単位で切り出された入力画像毎に、画像の分散値を元に閾値を適応的に切り替える構成としている。そうすることにより、より高精度に「背景から分離困難な文字画像」と「背景から分離容易な文字画像」を精度よく切り分ける事ができるようになる。
【０１０９】
（実施例５）
実施例４では、エッジの抽出を行う際の閾値算出において、信号値の分散値を元に閾値を切り替える手法を説明した。入力画像が３チャンネル等を持つカラー画像の場合には、チャンネル数に応じた数だけの分散値を算出ができ、精度よく閾値の決定に用いる事ができる。しかしながら、入力画像がグレースケールの場合には、チャンネル数が１つのため、閾値算出に用いる事ができる分散値が１つになってしまい、高精度に閾値を算出する事が難しい。
【０１１０】
そこで、本実施例では図１４に示すようにエッジ検出部（３０２）の構成を、分散値検出部１００１、エッジ判定閾値算出部１００２、エッジ抽出部１００３に加え、黒画素密度算出部１００４から構成される。また、入力画像に加え、２値化画像として使用する。
【０１１１】
黒画素密度算出部１００４は、入力される２値化画像を元に、文字切り矩形の面積に対する黒画素数の比率を算出する演算部である。入力されてくる２値化画像内で、黒画素数をカウントし、そのカウント数を文字切り矩形の面積で除算を行う。
【０１１２】
次に、エッジ閾値算出部１００２において、黒画素密度算出部１００４で算出した黒画素密度を元に、最適な閾値を算出する。ここでも実施例１の分散値に応じてエッジの閾値を切り替えたのと同様に黒画素密度に応じてエッジの閾値を算出する。具体的には、黒画素密度が高い場合には「エッジが取得されやすい閾値」とし、黒画素密度が低い場合には「エッジが取得されにくい閾値」に設定する。このように設定する事で、「濃い濃度の背景を有する文字」の場合には黒画素密度が高く、「エッジが取得されやすい閾値」によりエッジ抽出が行え、正確にエッジの算出を行う事が可能となる。
【０１１３】
尚、分散値を元に算出した閾値と、黒画素密度を元に算出した閾値のいずれか一つを使う事も可能であるが、両方とも使用して閾値算出に用いることも可能である。その際には、エッジをより多く取得する観点で「エッジが取得されやすい閾値」の方を使用する事が望ましいが、「エッジが取得されにくい閾値」を選ぶことも可能である。また、それぞれの閾値の重みを切り替える事で、例えば分散値を元に算出した閾値を優先させることなども可能である。
【０１１４】
また、図１５に示す通りエッジ検出部（３０２）の構成を、分散値検出部１００１、エッジ判定閾値算出部１００２、エッジ抽出部１００３、黒画素密度算出部１００４に加え、閉ループ数算出部１００５から構成しても良い。
【０１１５】
閉ループ数算出部１００５は、入力される２値化画像に対し白の部分の連続した画素により閉ループができている数を算出するラベリングの処理を行う演算部である。
【０１１６】
次に、エッジ閾値算出部１００２において、閉ループ数算出部１００５で算出した閉ループ数を元に、最適な閾値を算出する。ここでも実施例１同様に、閉ループ数の多少によりエッジ抽出に用いる閾値を算出する。具体的には、閉ループ数が多い場合には「エッジが取得されにくい閾値」を使用し、逆に閉ループ数が少ない場合には「エッジが取得されやすい閾値」を使用する。
【０１１７】
以上の処理により、グレースケールのようなチャンネル数が少なく信号値の分散を元にエッジの閾値を算出できない画像に対しても、最適なエッジ閾値の算出を行う事が可能となる。
【０１１８】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
0005875637.tif 000003
【図２】
0005875637.tif 000004
【図３】
0005875637.tif 000005
【図４】
0005875637.tif 000006
【図５】
0005875637.tif 000007
【図６】
0005875637.tif 000008
【図７】
0005875637.tif 000009
【図８】
0005875637.tif 000010
【図９】
0005875637.tif 000011
【図１０】
0005875637.tif 000012
【図１１】
0005875637.tif 000013
【図１２】
0005875637.tif 000014
【図１３】
0005875637.tif 000015
【図１４】
0005875637.tif 000016
【図１５】
0005875637.tif 000017
【図１６】
0005875637.tif 000018