(57)【特許請求の範囲】
【請求項１】
画像が入力された際に、該画像内の画素の画素値が有効であるか無効であるかを示す有効無効情報を入力する入力手段と、
前記入力手段により対象の画素の画素値が無効であると入力された場合は、該画素と所定の距離内にあって、画素値が有効である複数の画素の画素値を用いて、前記対象の画素の画素値を算出する画素値算出手段
を具備し、
前記画素値算出手段は、フィルタリング処理によって前記対象の画素の画素値を算出し、該フィルタリング処理に用いるフィルタの係数を該対象の画素の近くであれば、前記画素値が有効である画素の画素値による影響が大きくなるようにする
ことを特徴とする画像処理装置。
【請求項２】
前記入力手段により対象の画素の画素値が有効であると入力された場合は、該対象の画素の画素値を出力する画素値出力手段
をさらに具備することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画素値算出手段により画素値が算出された後に、前記有効無効情報を有効に変更し、元の画像の対象の画素の画素値を前記画素値算出手段により算出された画素値に置き換える画素値置換手段
をさらに具備することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記画素値算出手段は、
所定のフィルタ、前記対象とする画素の位置の情報及び前記対象とする画像の画素を用いて、前記対象の画素の画素値を算出する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項５】
コンピュータを、
画像が入力された際に、該画像内の画素の画素値が有効であるか無効であるかを示す有効無効情報を入力する入力手段と、
前記入力手段により対象の画素の画素値が無効であると入力された場合は、該画素と所定の距離内にあって、画素値が有効である複数の画素の画素値を用いて、前記対象の画素の画素値を算出する画素値算出手段
として機能させ、
前記画素値算出手段は、フィルタリング処理によって前記対象の画素の画素値を算出し、該フィルタリング処理に用いるフィルタの係数を該対象の画素の近くであれば、前記画素値が有効である画素の画素値による影響が大きくなるようにする
ことを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び画像処理プログラムに関する。
【背景技術】
【０００２】
ＩＴＵ−Ｔ勧告  Ｔ．４４に示されるようなミクストラスタコンテント（ＭＲＣ、Ｍｉｘｅｄ  Ｒａｓｔｅｒ  Ｃｏｎｔｅｎｔ）方式の画像圧縮方式がある。
これは、文字や線画などを含んだ画像をＪＰＥＧ等の変換符号化で圧縮すると、文字や線画の歪が大きくなるという問題を解消する方式である。
ＭＲＣでは、入力画像から、文字や線画を抽出する。また、抽出した文字や線画の色データを抽出する。さらに、入力画像から前記の文字や線画を除去する。文字や線画は２値データとして、ＭＨ、ＭＭＲ、ＪＢＩＧ等の２値データ圧縮方式で符号化される。色データは、ＪＰＥＧ等の多値画像圧縮方式で符号化される。さらに、入力画像から前記の文字や線画を除去した後のバックグラウンド画像は、ＪＰＥＧ等の多値画像圧縮方式で符号化される。
【０００３】
このようなマルチプレーンの圧縮を行うことにより、高い圧縮率の場合であっても、文字や線画の画像品質を高く保つことが可能となる。図６は、ＩＴＵ−Ｔ勧告Ｔ．４４から引用した図である。Ｆｏｒｅｇｒｏｕｎｄプレーン６１が色データである。Ｍａｓｋプレーン６２が文字や線画の情報、Ｂａｃｋｇｒｏｕｎｄプレーン６３が入力画像６０から前記の文字や線画を除去した後のバックグラウンド画像である。
あるいは、前記のようなＭＲＣフォーマットではなくて、文字や線画を圧縮する場合に、文字や線画の色ごとに違う２値データとすることも可能である。
例えば、入力画像から黒の文字や線画を抜き出して２値データを作成する。また、入力画像から赤の文字や線画を抜き出して２値データを作成する。さらに、入力画像から、前記黒や赤の文字や線画を除去した多値画像データを作成する。黒の文字や線画を抜き出して作成した２値データは２値データ圧縮方式で圧縮される。また、この画像の色は黒であるという情報を別途付与する。同様に、赤の文字や線画を抜き出して作成した２値データは２値データ圧縮方式で圧縮される。また、この画像の色は赤であるという情報を別途付与する。さらに、入力画像から前記の文字や線画を除去した後のバックグラウンド画像は、ＪＰＥＧ等の多値画像圧縮方式で符号化される。
【０００４】
図７の例に示されるように、赤色で描画された文字（「ＡＢＣ」、赤文字７１）と、黒色で描画された文字（「ＤＥＦ」、黒文字７２）と、非文字線画部（家が描かれたの画像部分、家画像７３）からなる入力画像７０が存在する場合、赤色文字のＡＢＣのみを抽出した２値画像７５と、黒色文字のＤＥＦのみを抽出した２値画像７６と、残りの部分である多値画像７７とに分割し、それぞれの画像を独立に符号化する。また、ＡＢＣを抽出した２値画像７５の色が赤であり、ＤＥＦを抽出した２値画像７６の色が黒であるという情報を別途付与する。
以上のようにバックグラウンド画像を作成する場合、単純に文字や線画を除去しただけでは、高周波成分が発生し、ＪＰＥＧ等の変換符号化に適さない画像となってしまうため、抜き出した文字や線画を穴埋めすることによって、圧縮効率を上げることが可能となる。
【０００５】
図６、７に関し、更に詳細に説明する。
図６の例では、入力画像が３枚のプレーンに分割されている。Ｍａｓｋプレーン６２は、２値画像であって、Ｆｏｒｅｇｒｏｕｎｄプレーン６１とＢａｃｋｇｒｏｕｎｄプレーン６３のどちらの画素を選択すれば良いかを示す情報である。例えば、ここで、Ｍａｓｋプレーン６２のビット値が１の場合に、Ｆｏｒｅｇｒｏｕｎｄプレーン６１の色を選択し、０の場合に、Ｂａｃｋｇｒｏｕｎｄプレーン６３の色を選択するとする。この場合、Ｂａｃｋｇｒｏｕｎｄプレーン６３の画像にとっては、Ｍａｓｋプレーン６２のビット値が１の画素は、最終的に選択されないのであるから、無効画素であると言える。また、Ｂａｃｋｇｒｏｕｎｄプレーン６３の画像にとって、Ｍａｓｋプレーン６２のビット値が０の画素は、最終的な生成画像の画素値として選択される有効画素であると言える。さらに、上記の場合、Ｆｏｒｅｇｒｏｕｎｄプレーン６１の画像にとっては、Ｍａｓｋプレーン６２のビット値が０の画素は、最終的に選択されないのであるから、無効画素であると言える。また、Ｆｏｒｅｇｒｏｕｎｄプレーン６１の画像にとって、Ｍａｓｋプレーン６２のビット値が１の画素は、最終的な生成画像の画素値として選択される有効画素であると言える。
そこで、上記無効画素を「穴画素」として、この穴を任意の画素値で埋めることができる。
【０００６】
図７の例では、入力画像は３つのプレーンに分割されている。２値画像７５が第１プレーン、２値画像７６が第２プレーン、バックグラウンドの多値(グレイ、または、カラー)画像７７が第３プレーンである。ここで、例えば、第１プレーン及び第２プレーンでビット値が１の場合に、第１プレーン及び第２プレーンの画素が選択されるとする。また、第１プレーン及び第２プレーンで、ビット値が０の場合に、第３プレーンの画素が選択されるとする。(ここでは、選択という説明を行っているが、まず、第３プレーンの画像を描画して、その上に第１プレーン及び第２プレーンの画素を上書き描画する場合も含まれる)。
上記の場合、第１プレーン及び第２プレーン(すなわち、バックグラウンドプレーン以外)の画素が全て０の場合が、バックグラウンド画像にとっての有効画素である。それ以外、すなわち、第１プレーン及び第２プレーン(すなわち、バックグラウンドプレーン以外)の画素が一つでも１の画素が無効画素である。この無効画素は、前記図６の例と同様に、「穴画素」として、任意の画素値で埋めることができる。
そこで、穴埋め画素値を適切に選択することによって、圧縮率や画質を高めることができる。
そのため、従来から様々な穴埋め方式が提案されている。
【０００７】
これらに関連する技術として、例えば、特許文献１から特許文献９では、文字線画部の周囲画素の平均値で穴埋めする方法が述べられている。
また、例えば、特許文献１０、特許文献１１では、バックグラウンド画像に平滑化フィルタをかけて穴埋めする方法が述べられている。
また、例えば、特許文献１２、特許文献１３、特許文献１４では、最も近い非文字線画部の画素値で穴埋めする方法が述べられている。
あるいは、例えば、特許文献１５では、平均値や最も近い非文字線画部の画素値で穴埋めした後で平滑化フィルタをかける手法が述べられている。
【特許文献１】特許第２６１１０１２号公報
【特許文献２】特許第３０８３３３６号公報
【特許文献３】特開２００２−７７６３３号公報
【特許文献４】特開２００２−３６９０１１号公報
【特許文献５】特開２００３−１８４１２号公報
【特許文献６】特開２００３−１８４１３号公報
【特許文献７】特開２００３−２１９１８７号公報
【特許文献８】特開２００３−２４４４４７号公報
【特許文献９】特開２００４−２６０３２７号公報
【特許文献１０】特許第２９１００００号公報
【特許文献１１】特許第２７２０９２６号公報
【特許文献１２】特開平１１−３２２０６号公報
【特許文献１３】特開２００５−２０２２７号公報
【特許文献１４】特開２００６−１９９５７号公報
【特許文献１５】特許第３２３１８００号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、入力画像から文字や線画を抜き出して２値画像のプレーンと多値画像のプレーンに分離した場合に、文字や線画を抜き出した部分の穴画素を埋める画素値を適切に選択することによって、圧縮後に復元した場合の復元画像の画質が低減することを抑制するようにした画像処理装置及び画像処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
請求項１の発明は、画像が入力された際に、該画像内の画素の画素値が有効であるか無効であるかを示す有効無効情報を入力する入力手段と、前記入力手段により対象の画素の画素値が無効であると入力された場合は、該画素と所定の距離内にあって、画素値が有効である複数の画素の画素値を用いて、前記対象の画素の画素値を算出する画素値算出手段を具備し、前記画素値算出手段は、フィルタリング処理によって前記対象の画素の画素値を算出し、該フィルタリング処理に用いるフィルタの係数を該対象の画素の近くであれば、前記画素値が有効である画素の画素値による影響が大きくなるようにすることを特徴とする画像処理装置である。
【００１０】
請求項２の発明は、前記入力手段により対象の画素の画素値が有効であると入力された場合は、該対象の画素の画素値を出力する画素値出力手段をさらに具備することを特徴とする請求項１に記載の画像処理装置である。
【００１１】
請求項３の発明は、前記画素値算出手段により画素値が算出された後に、前記有効無効情報を有効に変更し、元の画像の対象の画素の画素値を前記画素値算出手段により算出された画素値に置き換える画素値置換手段をさらに具備することを特徴とする請求項１に記載の画像処理装置である。
【００１２】
請求項４の発明は、前記画素値算出手段は、所定のフィルタ、前記対象とする画素の位置の情報及び前記対象とする画像の画素を用いて、前記対象の画素の画素値を算出することを特徴とする請求項１に記載の画像処理装置である。
【００１３】
請求項５の発明は、コンピュータを、画像が入力された際に、該画像内の画素の画素値が有効であるか無効であるかを示す有効無効情報を入力する入力手段と、前記入力手段により対象の画素の画素値が無効であると入力された場合は、該画素と所定の距離内にあって、画素値が有効である複数の画素の画素値を用いて、前記対象の画素の画素値を算出する画素値算出手段として機能させ、前記画素値算出手段は、フィルタリング処理によって前記対象の画素の画素値を算出し、該フィルタリング処理に用いるフィルタの係数を該対象の画素の近くであれば、前記画素値が有効である画素の画素値による影響が大きくなるようにすることを特徴とする画像処理プログラムである。
【発明の効果】
【００１４】
請求項１の画像処理装置によれば、入力画像を符号化して、後に復元する場合に、その復元画像の画質が低減することを抑制できる。
【００１５】
請求項２の画像処理装置によれば、さらに、多値画像部分には影響を及ぼすことがないようにすることができる。
【００１６】
請求項３の画像処理装置によれば、ラスタスキャン順に対象画像の処理を行うことができる。
【００１７】
請求項４の画像処理装置によれば、所定の計算処理で対象画像の全ての画素に対する処理を行うことができる。
【００１８】
請求項５の画像処理プログラムによれば、入力画像を符号化して、後に復元する場合に、その復元画像の画質が低減することを抑制できる。
【発明を実施するための最良の形態】
【００１９】
まず、本実施の形態を説明する前に、その前提を説明する。この前提の説明は、本実施の形態の理解を容易にすることを目的とするものである。
１つの画像を文字線画等からなる２値画像と背景画像である多値画像（カラー画像を含む）とに分離して扱えるようにするためのファイルを対象とし、特に、多値画像から２値画像として取り扱うべき画像を削除したものを対象とする。その２値画像として取り扱うべき画像を削除した部分を、ここでは「穴」ともいう。また、その穴の位置にある画素を他の画素値で置き換えることを「穴埋め」ともいう。２値画像として取り扱うべき画像としては、例えば、文字線画がある。以後、２値画像として取り扱うべき画像（領域）を「文字線画部」ともいう。
【００２０】
文字線画部の周囲画素値が大きく変化する場合であって、かつ、穴の形状と埋め込むべき文字線画部の形状が一致しない場合に画質の劣化が生じやすい。このことについて、図８から図１４を用いて説明する。なお、対象は画像であるので２次元であるが、ここでは、わかりやすくするため、１次元におけるものの説明を行う。
図８に示す例は、横軸が１次元の画素位置、縦軸が画素値を表している。図８において、画素位置Ａから画素位置Ｂまでが文字線画部８２として抽出されているとする。文字線画部８２の周囲は背景部８１、８３である。
まず、図９の例に示すように、文字線画部８２として抽出された領域が抜き出される（削除される）。抜き出された部分（文字線画部８２）の画素値は任意であるが、ここでは０としている。
【００２１】
この状態において、画素位置Ａから画素位置Ｂまで（文字線画部８２）を穴埋めする。
まず、文字線画部８２の周囲（背景部８１、８３）にある画素の平均値で穴埋めする方法を説明する。ブロックの平均値で穴埋めする方法も同様である。
これらの方法の場合、穴埋め後の様子は図１０に示す例のようになる。つまり、背景部８１と背景部８３の画素値の平均値で文字線画部８２が穴埋めされる。
【００２２】
ここで、非文字線画部の形状と穴の形状が完全に一致していない場合に画質劣化が発生しやすい。
一般に非文字線画部の形状と穴の形状が完全に一致する保証はない。例えば、バックグラウンド画像の解像度は小さくして（すなわち縮小して）からＪＰＥＧ等で圧縮するのが一般的である。一旦縮小等の画像処理を行ってしまうと、非文字線画部の形状と穴の形状が完全には一致しないこととなる。
しかも、バックグラウンド画像を圧縮するＪＰＥＧ等の方式は非可逆符号化であることが一般的なため、穴の形状は変化せざるを得ない。
あるいは、文字線画部の画像をＪＢＩＧ２等で非可逆符号化する場合がある。この場合にも穴の形状と一致しなくなる。さらには、文字線画部の画像をベジエ曲線等で近似する場合がある。この場合にも穴の形状と一致しなくなる。
【００２３】
前述のように、文字線画部の画像形状と穴の形状が一致しない場合、穴の画素値が復号画像上で見えてしまう場合がある。
このような場合、画素位置Ａや画素位置Ｂの近辺の穴位置の画素値が見えてしまう。例えば、文字線画部の幅が元の画像より細くなってしまう場合について説明する。例えば、図１１に示すように穴埋め画像１１０１（一点鎖線で示した部分）の形状が、文字線画部８２よりも細くなってしまう場合を想定する。この場合、復号画像において、図１１に示す境界部１１０２、１１０３の画素値が見えてしまう。この画素値が画像劣化となる。
【００２４】
次に平滑化フィルタをかける場合について説明する。図９に示した画像に対して、単純な平滑化フィルタをかけると、穴埋めに用いた任意の適当な画素値（図９の画像では、０）が、フィルタリング後の画素値に対して悪影響を及ぼしてしまう。例えば、任意の適当な画素値を０とすると、フィルタリング後の画素値が０に近い値となってしまい、画素位置Ａの左（背景部８１）や画素位置Ｂの右（背景部８３）の画素値とかけ離れた画素値となってしまう。
【００２５】
そこで、例えば、平均値で穴埋めしてから平滑化フィルタリングを行う方法もある。つまり、図１２に示す例のように、背景部８１と穴埋め部１２０１にある画素の画素値を用いて、平均値を求め、その平均値で境界部１１０２にある画素の画素値を置換する。同様に、背景部８３と穴埋め部１２０１にある画素の画素値を用いて、平均値を求め、その平均値で境界部１１０３にある画素の画素値を置換する。
この場合、比較的ギャップは小さくなるが、それでも、図１２の例に示すように境界部１１０２、１１０３の部分の画素値が画質劣化となる。
【００２６】
理想的には、文字線画部８２の左側（境界部１１０２の領域）は、画素位置Ａの左の画像領域（背景部８１）が連続するようになっているほうがよい。また、文字線画部８２の右側（境界部１１０３の領域）は、画素位置Ｂの右の画像領域（背景部８３）が連続するようになっているほうがよいので、図１３の例に示すような境界部１１０２、１１０３の領域を点線で示された画素値にすることが望ましい。
したがって、最も近い非文字線画部の画素値で穴埋めする手法は、前述のような画質劣化が起こらないことになる。すなわち図１３の例に示すように境界部１１０２、１１０３の領域を点線の位置に示すような穴埋め画素値に設定することが可能である。
【００２７】
しかしながら、最も近い非文字線画部の画素値で穴埋めする手法では、偶然にも急激に変化した画素の画素値に値を引きずられてしまうということが発生する。具体的には、図１４に例示するように、画素位置Ｂの右側（背景部８３）の画素値が偶々極端な画素値となってしまっているとき、境界部１１０３の領域の穴埋め画素値がこの極端な画素値に引きずられてしまう。
【００２８】
本実施の形態は、この穴埋めに関する処理を行うものである。
次に、本実施の形態の概要を説明する。
前述の前提からわかるように、穴埋め処理は以下の条件を満たしていることが望ましい。つまり、
（１）穴領域の外側（非穴領域）の画素値を用いて、穴領域の画素値を作成する。
（２）できるだけ、距離的に近い非穴領域の画素値を用いて、穴領域の画素値を作成する。
（３）しかしながら、複数の非穴領域の画素値を用いて穴領域の画素値を作成したほうが安定性が高い。
（４）しかも、穴領域の任意の画素値の影響をのぞくため、穴領域の画素値は用いないことが望ましい。
（５）また、フィルタリング処理で対応でき、そのフィルタリングは２次元的に行うことが望ましい。
【００２９】
本実施の形態は、前述の条件をできるだけ満たすように構成されたものである。
つまり、例えば、以下のような構成とする。
（１）複数の画素値を用いて穴領域の画素値を作成する以下のフィルタリング処理を行う。フィルタを用いることによって、穴埋めすべき画素と所定距離内にある画素を用いることができるようになる。
（２）対象画素の近くであれば、より影響度の高いフィルタ係数を用いる。
（３）穴領域の影響度は０とする。
【００３０】
このようなフィルタリングを以下のように実現する。
対象画像の画素位置（Ｉ，Ｊ）の画素値をＰ（Ｉ，Ｊ）とする。
次に示すような穴／非穴情報Ｔ（Ｉ，Ｊ）を利用する。
・画素位置（Ｉ，Ｊ）が非穴画素（非文字線画部、有効）であるとき、Ｔ（Ｉ，Ｊ）＝１とする。
・画素位置（Ｉ，Ｊ）が穴画素（文字線画部、無効）であるとき、Ｔ（Ｉ，Ｊ）＝０とする。
すなわち、２値画像として取り扱うべき画素の位置を示す情報としての具体例が、Ｔ（Ｉ，Ｊ）となる。そして、ここでは、２値画像として取り扱うべき画素とは、穴の領域内にある画素のことである。
サイズが（２Ｎ＋１）×（２Ｎ＋１）のフィルタカーネルＨ（ｍ，ｎ）（ただし、−Ｎ≦ｍ≦Ｎ、−Ｎ≦ｎ≦Ｎ）を予め用意する（記憶装置に記憶させておく）。
【００３１】
そして、非穴画素（非文字線画部）は、元の画像の画素値をそのままとする。穴画素（文字線画部）は、数１を分子とし、数２を分母とした数３の式で計算する。
【数１】
0004992758.tif 000002
【数２】
0004992758.tif 000003
【数３】
0004992758.tif 000004
すなわち、画素位置（Ｉ，Ｊ）のフィルタ出力、すなわち、穴埋め画像Ｑ（Ｉ，Ｊ）を数４の式で算出する。
【数４】
0004992758.tif 000005
【００３２】
このように、計算することによって、非穴の画素のみをフィルタリング処理に利用することになる。
さらに、フィルタカーネルＨ（ｍ，ｎ）を後述するようにすれば、対象画素の近くであれば、より影響度の高いフィルタ係数を利用することが可能となる。
【００３３】
以下、図面に基づき本発明を実現するにあたっての好適な各種の実施の形態の例を説明する。
図１は、第１の実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア（コンピュータ・プログラム）、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはコンピュータ・プログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、コンピュータ・プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がコンピュータ・プログラムの場合は、記憶装置に記憶させる、又は記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク（一対一対応の通信接続を含む）等の通信手段で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「装置」と「システム」とは、互いに同義の用語として用いる。
【００３４】
第１の実施の形態は、図１に示すように、穴／非穴判定処理モジュール１１、分子算出処理モジュール１２、分母算出処理モジュール１３、除算処理モジュール１４、画素値出力モジュール１５を有している。
【００３５】
穴／非穴判定処理モジュール１１は、分子算出処理モジュール１２、分母算出処理モジュール１３、画素値出力モジュール１５と接続されており、穴／非穴情報Ｔ（Ｉ，Ｊ）を用いて、対象の画素であるＰ（Ｉ，Ｊ）が穴であるか否かを判断する。穴であると判断した場合は、分子算出処理モジュール１２、分母算出処理モジュール１３、除算処理モジュール１４によるフィルタリング処理を行うようにする。穴ではないと判断した場合は、Ｐ（Ｉ，Ｊ）の画素値自体を穴埋め画像の画素Ｑ（Ｉ，Ｊ）の画素値として画素値出力モジュール１５へ渡す。
【００３６】
分子算出処理モジュール１２は、穴／非穴判定処理モジュール１１、除算処理モジュール１４と接続されており、数１の計算を行い、その結果を除算処理モジュール１４へ渡す。
分母算出処理モジュール１３は、穴／非穴判定処理モジュール１１、除算処理モジュール１４と接続されており、数２の計算を行い、その結果を除算処理モジュール１４へ渡す。
除算処理モジュール１４は、分子算出処理モジュール１２、分母算出処理モジュール１３、画素値出力モジュール１５と接続されており、分子算出処理モジュール１２、分母算出処理モジュール１３から計算結果を受け取り、数３の計算を行う。その結果を画素値出力モジュール１５へ渡す。
画素値出力モジュール１５は、穴／非穴判定処理モジュール１１、除算処理モジュール１４と接続されており、穴／非穴判定処理モジュール１１からＰ（Ｉ，Ｊ）の画素値を受け取り、又は除算処理モジュール１４から計算結果を受け取り、穴埋め画像の画素Ｑ（Ｉ，Ｊ）の画素値として出力する。
【００３７】
図２は、第１の実施の形態による処理例を示すフローチャートである。
ステップＳ２０２では、穴／非穴判定処理モジュール１１が対象とする画像Ｐ（Ｉ，Ｊ）を受け付ける。
ステップＳ２０４では、穴／非穴判定処理モジュール１１が穴／非穴情報Ｔ（Ｉ，Ｊ）を受け付ける。
ステップＳ２０６では、穴／非穴判定処理モジュール１１が対象とする画素は穴であるか否かを判断する。かかる判断において穴であると判断した場合（Ｙ）はステップＳ２０８へ進み、それ以外の場合（Ｎ）はステップＳ２１０へ進む。
ステップＳ２０８では、分子算出処理モジュール１２、分母算出処理モジュール１３、除算処理モジュール１４がフィルタリング処理を行う。
ステップＳ２１０では、画素値出力モジュール１５がステップＳ２０８で処理された画素値又はステップＳ２０６で対象となった画素の画素値を穴埋め画素の画素値として出力する。
【００３８】
より詳細に説明する。
穴／非穴判定処理モジュール１１は、穴／非穴情報Ｔ（Ｉ，Ｊ）と、穴埋め前の入力画像Ｐ（Ｉ，Ｊ）を受け付ける。
穴／非穴判定処理モジュール１１において、
・Ｔ（Ｉ，Ｊ）＝１の場合は、Ｐ（Ｉ，Ｊ）の画素値を穴埋め画像Ｑ（Ｉ，Ｊ）の画素値として出力する（数４のＴ（Ｉ，Ｊ）＝１のときの式参照）。
・Ｔ（Ｉ，Ｊ）＝０の場合は、穴埋め画素値Ｑ（Ｉ，Ｊ）の画素値を計算する。
そして、ｍ及びｎを−Ｎ≦ｍ≦Ｎ、−Ｎ≦ｎ≦Ｎの範囲で変化させて、
・分子算出処理モジュール１２では、Ｔ（Ｉ＋ｍ，Ｊ＋ｎ）＝１の場合のみ、フィルタ係数Ｈ（ｍ，ｎ）と、Ｐ（Ｉ＋ｍ，Ｊ＋ｎ）を乗算してさらに積算する（数１を参照）。
・分母算出処理モジュール１３では、Ｔ（Ｉ＋ｍ，Ｊ＋ｎ）＝１の場合のみ、フィルタ係数Ｈ（ｍ，ｎ）を積算する（数２を参照）。
そして、除算処理モジュール１４では、分子算出処理モジュール１２の算出結果を、分母算出処理モジュール１３の算出結果で割って、穴埋め画像Ｑ（Ｉ，Ｊ）を得る（数３を参照）。
最終的に、画素値出力モジュール１５は、穴／非穴判定処理モジュール１１からの穴埋め画像Ｑ（Ｉ，Ｊ）又は除算処理モジュール１４からの穴埋め画像Ｑ（Ｉ，Ｊ）を出力する（数４を参照）。
なお、全てのＴ（Ｉ＋ｍ，Ｊ＋ｎ）が０のときは、例えば、Ｑ（Ｉ，Ｊ）＝０とする。
また、最終的に、全てのＴ（Ｉ＋ｍ，Ｊ＋ｎ）が０のときの画素値を、背景技術に挙げたような別の手法で算出しなおしてもよい。
又は、本実施の形態による処理を１回適用すると、フィルタカーネルのサイズが５×５であれば、穴が２画素分埋まることとなる。全ての画素をラスタスキャンした後に、穴が埋まった画素位置に対してＴ（Ｉ，Ｊ）＝１とする。そして、このラスタスキャンを何度も繰り返せば、最終的に、全てのＴ（Ｉ＋ｍ，Ｊ＋ｎ）が０である画素をなくすことができる。
【００３９】
分子算出処理モジュール１２、分母算出処理モジュール１３が用いるフィルタカーネルの例として、例えば、図３（Ａ）から（Ｆ）に例示したフィルタを挙げることができる。
なお、フィルタ係数は整数であっても小数であってもよい。ただし、整数を用いると演算が簡易であり処理速度が向上する。さらに、２の冪乗であれば、乗算がさらに簡易となり処理速度向上の要請に対応できる。
【００４０】
図４は、第２の実施の形態の構成例についての概念的なモジュール構成図を示している。
第２の実施の形態では、ラスタスキャン順に穴埋め処理を行うようにしたものである。つまり、穴埋め画素値を逐次的にＰ（Ｉ，Ｊ）に入れて、さらに、穴埋め後の穴／非穴情報Ｔ（Ｉ、Ｊ）を１に変更する。このようにすると、既にラスタスキャンされた画素位置（Ｉ，Ｊ）では、全てのＴ（Ｉ，Ｊ）が１、すなわち非穴画素となるため、全てのＴ（Ｉ＋ｍ，Ｊ＋ｎ）が０ということはなくなり、１回のラスタスキャンで穴埋め処理が完了する。つまり、繰り返してラスタスキャンを行う必要がなくなる。
【００４１】
なお、第１の実施の形態と同種の部位には同一符号を付し重複した説明を省略する。
第２の実施の形態は、図４に示すように、穴／非穴判定処理モジュール４１、分子算出処理モジュール１２、分母算出処理モジュール１３、除算処理モジュール１４、画像生成処理モジュール４５、Ｉ／Ｊカウンタモジュール４６を有している。
【００４２】
穴／非穴判定処理モジュール４１は、分子算出処理モジュール１２、分母算出処理モジュール１３、画像生成処理モジュール４５、Ｉ／Ｊカウンタモジュール４６と接続されており、図１の穴／非穴判定処理モジュール１１と同様に、穴／非穴情報Ｔ（Ｉ，Ｊ）を用いて、対象の画素であるＰ（Ｉ，Ｊ）が穴であるか否かを判断する。穴であると判断した場合は、分子算出処理モジュール１２、分母算出処理モジュール１３、除算処理モジュール１４によるフィルタリング処理を行うようにする。穴ではないと判断した場合は、Ｐ（Ｉ，Ｊ）の画素値自体を穴埋め画像の画素Ｑ（Ｉ，Ｊ）の画素値として画像生成処理モジュール４５へ渡す。なお、対象の画素の位置情報（Ｉ，Ｊ）は、Ｉ／Ｊカウンタモジュール４６によって定められたものである。
【００４３】
画像生成処理モジュール４５は、穴／非穴判定処理モジュール４１、除算処理モジュール１４、Ｉ／Ｊカウンタモジュール４６と接続されており、図１の画素値出力モジュール１５と同様に、穴／非穴判定処理モジュール４１からＰ（Ｉ，Ｊ）の画素値を受け取り、又は除算処理モジュール１４から計算結果を受け取り、穴埋め画像の画素Ｑ（Ｉ，Ｊ）の画素値として出力する。そして、そのＱ（Ｉ，Ｊ）をＰ（Ｉ，Ｊ）に代入する。つまり、元の画像の対象の画素の画素値をＱ（Ｉ，Ｊ）の画素値に置換して、元の画像が穴埋め画像になる。さらに、Ｔ（Ｉ，Ｊ）に１を代入する。つまり、穴埋め処理が終了した画素の位置を２値画像として取り扱うべき画素ではないとする情報（“１”）に変更する。そして、Ｉ／Ｊカウンタモジュール４６に対して次の画素の穴埋め処理を行うように指示する。
【００４４】
Ｉ／Ｊカウンタモジュール４６は、穴／非穴判定処理モジュール４１、画像生成処理モジュール４５と接続されており、画像生成処理モジュール４５からの指示に基づいて、穴／非穴判定処理モジュール４１に対して次の穴埋め処理の対象である画素の位置情報（Ｉ，Ｊ）を渡す。なお、初期状態は、Ｉ＝０、Ｊ＝０である。次の位置情報を、Ｉ＝ｎｅｘｔｉ（Ｉ）、Ｊ＝ｎｅｘｔｊ（Ｊ）で算出する。なお、ｎｅｘｔｉ（Ｉ）、ｎｅｘｔｊ（Ｊ）は、ラスタスキャンでＩ，Ｊの次の値を出力する関数である。
【００４５】
図５は、第２の実施の形態による処理例を示すフローチャートである。
ステップＳ５０２では、穴／非穴判定処理モジュール４１が対象とする画像Ｐ（Ｉ，Ｊ）を受け付ける。
ステップＳ５０４では、穴／非穴判定処理モジュール４１が穴／非穴情報Ｔ（Ｉ，Ｊ）を受け付ける。
ステップＳ５０６では、Ｉ／Ｊカウンタモジュール４６がカウンタを初期化（Ｉ＝０、Ｊ＝０）する。
ステップＳ５０８では、穴／非穴判定処理モジュール４１が対象とする画素は穴であるか否かを判断する。かかる判断において穴であると判断した場合（Ｙ）はステップＳ５１０へ進み、それ以外の場合（Ｎ）はステップＳ５１２へ進む。
ステップＳ５１０では、分子算出処理モジュール１２、分母算出処理モジュール１３、除算処理モジュール１４がフィルタリング処理を行う。
ステップＳ５１２では、画像生成処理モジュール４５が元の画像の対象画素の画素値を穴／非穴判定処理モジュール４１から受け取った画素値又は除算処理モジュール１４から受け取った画素値に置き換える。
ステップＳ５１４では、画像生成処理モジュール４５が対象となっている画素の位置にある穴／非穴情報を非穴に変更する。
ステップＳ５１６では、Ｉ／Ｊカウンタモジュール４６がカウンタ（Ｉ，Ｊ）を更新し、次の画素の位置情報を指定する。
ステップＳ５１８では、穴／非穴判定処理モジュール１１が画像全体の処理が終了したか否かを判断する。かかる判断において終了ではないと判断した場合（Ｎ）はステップＳ５０８へ戻り、それ以外の場合（Ｙ）はステップＳ５２０へ進み終了する。
【００４６】
なお、全てのＴ（Ｉ＋ｍ，Ｊ＋ｎ）が０のときにのみ、既に算出されたＱ（Ｉ，Ｊ）の穴埋め画素値を用いて穴埋め処理を行うようにしてもよい。つまり、フィルタ内に非穴部分があれば、その非穴部分の画素値を用いるようにし、フィルタ内が全て穴である場合にのみ、既に穴埋めされた画素の画素値を用いて穴埋め処理を行うようにしているものである。
前述の実施の形態では、説明の必要上（２Ｎ＋１）×（２Ｎ＋１）の形状としているが、フィルタの形状は矩形である必要はない。
また、フィルタの形状は中心が出力画素位置である必要はない。
なお、上記の第１、および、第２の実施の形態において、数式１、２、３、４、では、Ｔ（Ｉ＋ｍ、Ｊ＋ｎ）が０の時にも乗算を行っているが、Ｔ（Ｉ＋ｍ、Ｊ＋ｎ）が０の時には、実質的に乗算を行わないことになる。したがって、Ｔ（Ｉ＋ｍ、Ｊ＋ｎ）が０の場合には、乗算を行わないとする処理としても、もちろんよい。
また、対象の画素であるＰ（Ｉ，Ｊ）に対応するＴ（Ｉ＋０、Ｊ＋０）は常に０であるため、対象の画素の処理は実質的に常に行っていないことになる。したがって、対象の画素の処理を常に行わないとすることも、もちろん可能である。
【００４７】
図１５を参照して、第１及び第２の実施の形態のハードウェア構成例について説明する。図１５に示す構成は、例えばパーソナルコンピュータ（ＰＣ）などによって構成されるものであり、スキャナ等のデータ読み取り部１５１７と、プリンタなどのデータ出力部１５１８を備えたハードウェア構成例を示している。
【００４８】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１５０１は、前述の実施の形態において説明した各種のモジュール、すなわち、穴／非穴判定処理モジュール１１、分子算出処理モジュール１２、分母算出処理モジュール１３、除算処理モジュール１４、画像生成処理モジュール４５、Ｉ／Ｊカウンタモジュール４６等の各モジュールの実行シーケンスを記述したコンピュータ・プログラムにしたがった処理を実行する制御部である。
【００４９】
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５０２は、ＣＰＵ１５０１が使用するプログラムや演算パラメータ等を格納する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１５０３は、ＣＰＵ１５０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を格納する。これらはＣＰＵバスなどから構成されるホストバス１５０４により相互に接続されている。
【００５０】
ホストバス１５０４は、ブリッジ１５０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バスなどの外部バス１５０６に接続されている。
【００５１】
キーボード１５０８、マウス等のポインティングデバイス１５０９は、操作者により操作される入力デバイスである。ディスプレイ１５１０は、液晶表示装置又はＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）などから成り、各種情報をテキストやイメージ情報として表示する。
【００５２】
ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１５１１は、ハードディスクを内蔵し、ハードディスクを駆動し、ＣＰＵ１５０１によって実行するプログラムや情報を記録又は再生させる。ハードディスクには、受け付けられた画像、穴／非穴情報などが格納される。さらに、その他の各種のデータ処理プログラム等、各種コンピュータ・プログラムが格納される。
【００５３】
ドライブ１５１２は、装着されている磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体１５１３に記録されているデータ又はプログラムを読み出して、そのデータ又はプログラムを、インタフェース１５０７、外部バス１５０６、ブリッジ１５０５、及びホストバス１５０４を介して接続されているＲＡＭ１５０３に供給する。リムーバブル記録媒体１５１３も、ハードディスクと同様のデータ記録領域として利用可能である。
【００５４】
接続ポート１５１４は、外部接続機器１５１５を接続するポートであり、ＵＳＢ、ＩＥＥＥ１３９４等の接続部を持つ。接続ポート１５１４は、インタフェース１５０７、及び外部バス１５０６、ブリッジ１５０５、ホストバス１５０４等を介してＣＰＵ１５０１等に接続されている。通信部１５１６は、ネットワークに接続され、外部とのデータ通信処理を実行する。データ読み取り部１５１７は、例えばスキャナであり、ドキュメントの読み取り処理を実行する。データ出力部１５１８は、例えばプリンタであり、ドキュメントデータの出力処理を実行する。
【００５５】
なお、図１５に示すハードウェア構成は、１つの構成例を示すものであり、前述の実施の形態は、図１５に示す構成に限らず、前述の実施の形態において説明したモジュールを実行可能な構成であればよい。例えば、一部のモジュールを専用のハードウェア（例えば特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ：ＡＳＩＣ）等）で構成してもよく、一部のモジュールは外部のシステム内にあり通信回線で接続しているような形態でもよく、さらに図１５に示すシステムが複数互いに通信回線によって接続されていて互いに協調動作するようにしてもよい。また、複写機、ファックス、スキャナ、プリンタ、複合機（スキャナ、プリンタ、複写機、ファックス等のいずれか２つ以上の機能を有している画像処理装置）などに組み込まれていてもよい。
【００５６】
なお、説明したプログラムについては、記録媒体に格納して提供してもよく、また、そのプログラムを通信手段によって提供してもよい。その場合、例えば、前記説明したプログラムについて、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明として捉えてもよい。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させてもよい。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組み合わせ等の伝送媒体を用いて伝送させてもよく、また、搬送波に乗せて搬送させてもよい。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。また、複数の記録媒体に分割して
記録されていてもよい。また、圧縮や暗号化など、復元可能であればどのような態様で記録されていてもよい。
【図面の簡単な説明】
【００５７】
【図１】第１の実施の形態の構成例についての概念的なモジュール構成図である。
【図２】第１の実施の形態による処理例を示すフローチャートである。
【図３】フィルタカーネルの例を示す説明図である。
【図４】第２の実施の形態の構成例についての概念的なモジュール構成図である。
【図５】第２の実施の形態による処理例を示すフローチャートである。
【図６】従来例を示す説明図である。
【図７】従来例を示す説明図である。
【図８】文字線画部と背景画像部の画素値の関係を示す説明図である。
【図９】文字線画部と背景画像部の画素値の関係を示す説明図である。
【図１０】文字線画部と背景画像部の画素値の関係を示す説明図である。
【図１１】文字線画部と背景画像部の画素値の関係を示す説明図である。
【図１２】文字線画部と背景画像部の画素値の関係を示す説明図である。
【図１３】文字線画部と背景画像部の画素値の関係を示す説明図である。
【図１４】文字線画部と背景画像部の画素値の関係を示す説明図である。
【図１５】第１及び第２の実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【符号の説明】
【００５８】
１１…穴／非穴判定処理モジュール
１２…分子算出処理モジュール
１３…分母算出処理モジュール
１４…除算処理モジュール
１５…画素値出力モジュール
４１…穴／非穴判定処理モジュール
４５…画像生成処理モジュール
４６…Ｉ／Ｊカウンタモジュール
【図１】
0004992758.tif 000006
【図２】
0004992758.tif 000007
【図３】
0004992758.tif 000008
【図４】
0004992758.tif 000009
【図５】
0004992758.tif 000010
【図６】
0004992758.tif 000011
【図７】
0004992758.tif 000012
【図８】
0004992758.tif 000013
【図９】
0004992758.tif 000014
【図１０】
0004992758.tif 000015
【図１１】
0004992758.tif 000016
【図１２】
0004992758.tif 000017
【図１３】
0004992758.tif 000018
【図１４】
0004992758.tif 000019
【図１５】
0004992758.tif 000020