(57)【要約】【課題】複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出し、より文字認識に適した二値画像を生成することを可能にする。【解決手段】多値画像データを取得する画像取得部１１と、当該多値画像のデータに対応する多値画像をブロックに分割する画像分割部１３と、各ブロックについてエッジの有無を検出するエッジ検出部１５と、エッジが検出されたブロックについて、二値化閾値を算出する二値化閾値算出部１６と、エッジの有無の情報、またはエッジの有無の情報および二値化閾値に基づいて、対象とするブロックが、通常ブロックか、反転ブロックか、を判定するブロック判定部１７と、判定結果に基づいてブロックを連結して領域を作成する領域作成部１８とを備える。【選択図】図１
2008299673.tif 000002
【特許請求の範囲】
【請求項１】
多値画像のデータを取得する画像取得手段と、
当該多値画像のデータに対応する多値画像を、複数の画素からなる、マトリクス状のブロックに分割する画像分割手段と、
上記画像分割手段によって得られた各ブロックについて、エッジの有無を検出するエッジ検出手段と、
上記エッジ検出手段によってエッジが検出されたブロックについて、画像の二値化のための閾値である二値化閾値を算出する二値化閾値算出手段と、
上記エッジ検出手段で検出したエッジの有無の情報、または上記エッジの有無の情報および上記二値化閾値算出手段で算出した二値化閾値に基づいて、対象とするブロックが、前景の画素が背景の画素よりも低い明度になっているブロックである通常ブロックか、前景の画素が背景の画素よりも高い明度になっているブロックである反転ブロックか、を判定するブロック判定手段と、
上記ブロック判定手段で得られた判定結果に基づいて、上記ブロックを連結して領域を作成する領域作成手段とを備えることを特徴とする画像処理装置。
【請求項２】
前記領域が、前景の画素が背景の画素よりも低い明度になっている領域である通常領域か、前景の画素が背景の画素よりも高い明度になっている領域である反転領域か、を判定する領域判定手段をさらに備えることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記領域判定手段は、前記領域に含まれる通常ブロックと反転ブロックとの比率に基づいて、前記領域が、前記通常領域か、前記反転領域か、を判定することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記領域作成手段は、前記ブロック判定手段で得られた判定結果に基づいて、前記反転ブロックを連結して前記領域を作成することを特徴とする請求項１、２、または３に記載の画像処理装置。
【請求項５】
前記領域作成手段は、前記連結した反転ブロックの数が所定の数以上であった場合に前記領域を作成することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記領域作成手段は、さらに、前記連結した反転ブロックに挟まれた前記通常ブロックを、上記連結した反転ブロックに加えて前記領域を作成することを特徴とする請求項４または５に記載の画像処理装置。
【請求項７】
前記エッジ検出手段で検出した前記エッジの有無の情報、および前記領域判定手段で判定した通常領域と反転領域とのうちのいずれに前記ブロックが属しているかの情報、または上記エッジの有無の情報、上記通常領域と反転領域とのうちのいずれに上記ブロックが属しているかの情報、および前記二値化閾値算出手段で算出した前記二値化閾値に基づいて、上記ブロックごとに、上記ブロック内の各画素を、黒画素もしくは白画素として二値化を行い、前記多値画像に対応する二値画像を出力する二値画像生成手段をさらに備えることを特徴とする請求項２から６までのいずれか１項に記載の画像処理装置。
【請求項８】
請求項１から７までのいずれか１項に記載の画像処理装置の備える前記各手段としてコンピュータを動作させるための画像処理プログラム。
【請求項９】
請求項８に記載の画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１０】
多値画像のデータを取得する画像取得ステップと、
当該多値画像のデータに対応する多値画像をマトリクス状のブロックに分割する画像分割ステップと、
上記画像分割ステップによって得られた各ブロックについて、エッジの有無を検出するエッジ検出ステップと、
上記エッジ検出ステップによってエッジが検出されたブロックについて、画像の二値化のための閾値である二値化閾値を算出する二値化閾値算出ステップと、
上記エッジ検出ステップで検出したエッジの有無の情報、または上記エッジの有無の情報および上記二値化閾値算出ステップで算出した二値化閾値に基づいて、対象とするブロックが、前景の画素が背景の画素よりも低い明度になっているブロックである通常ブロックか、前景の画素が背景の画素よりも高い明度になっているブロックである反転ブロックか、を判定するブロック判定ステップと、
上記ブロック判定ステップで得られた判定結果に基づいて、上記ブロックを連結して領域を作成する領域作成ステップとを含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特に明度反転文字を認識するための画像処理装置、画像処理プログラムおよび該画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体、ならびに画像処理方法に関するものである。
【背景技術】
【０００２】
従来から、スキャナ等によって入力された文書画像を解析して文字データを抽出し、電子テキスト化する光学文字認識（ＯＣＲ：Optical Character Recognition）を行う画像処理装置が知られている。近年では、携帯情報端末等の普及により、携帯情報端末に備えられている撮像装置によって入力された文書画像から文字データを抽出し、電子テキスト化する光学文字認識の技術も普及してきている。
【０００３】
しかしながら、携帯情報端末等に備えられている撮像装置によって入力された画像を二値化するために、画像全体として前景色と背景色とを分離して二値画像を生成することは難しい。なぜなら、携帯情報端末等に備えられている撮像装置によって入力された画像は、スキャナ等によって入力された画像とは異なり、光源の位置および強さ等の撮像状況によって、紙面上では同じ明度であっても、入力画像においては明度にむらができるためである。また、スキャナ等によって入力された画像であっても、複数の前景色および背景色を持つ画像を二値化する場合に、画像全体として前景色と背景色を分離することは困難である。そこで、この問題を解決するため、画像全体をマトリクス状のブロックに分割し、分割したブロックごとに画素の二値化を行うという方法が知られている。
【０００４】
一方、文字認識を行う紙面においては、白地に黒などのように、文字は地よりも低い明度で書かれることが一般的であるが、文書の一部の文字を強調する目的で、地と文字との明度を逆転させる場合がある。上述したような、地と文字との明度を逆転させた領域である明度反転領域を含む画像において、明度反転領域に該当する文字部分は重要であることが多いにもかかわらず、明度反転領域を認識することは難しい。なぜなら、文字認識を行う画像処理装置は、一般的に、入力多値画像を前景色と背景色とに分離して二値画像を生成し、前景に描かれた部分を文字として文字認識を行うため、二値画像の前景と背景との画素値が逆転している明度反転領域については文字として文字認識されないためである。
【０００５】
この問題を解決するため、例えば、特許文献１では、明度反転領域を判定する画像処理装置が開示されている。すなわち、特許文献１の画像処理装置では、二値化した画像について、黒画素の連結成分の外接矩形を抽出して明度反転領域候補とし、明度反転領域候補内の白画素と黒画素との比率をもとに、明度反転領域を判定する構成が開示されている。
【特許文献１】特開２００２−２７９３４５号公報（平成１４年９月２７日公開）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示の画像処理装置では、明度反転領域として判定できる領域の形状が矩形である場合に限られているという問題点を有している。例えば、特許文献１に開示の画像処理装置は、図１８（ｂ）に示したような四角形の形状を有する明度反転領域に対して、外接矩形の抽出を行って明度反転領域候補とした場合には、明度判定領域であるか否かの判定を適切に行うことができる。しかしながら、特許文献１に開示の画像処理装置は、図１８（ａ）に示したような楕円の形状を有する明度反転領域に対して、外接矩形の抽出を行って明度反転領域候補とした場合、明度反転領域外の画素も明度反転領域候補内に大幅に含んでしまい、白画素の割合が大きくなってしまうため、明度判定領域であるか否かの判定を適切に行うことができないという問題点が生じる。また、仮に明度反転領域であると判定できたとしても、明度反転領域外の画素も明度反転領域として抽出してしまい、文字認識に適した二値画像を生成することが困難になるという問題点が生じる。
【０００７】
新聞、雑誌等の複雑なレイアウトをもつ紙面においては、明度反転領域も楕円、中抜き、菱形等のさまざまな形状を有することが考えられるため、特許文献１に開示の画像処理装置では、上述したような問題点が頻繁に生じるものと思われる。
【０００８】
本発明は、上記従来の問題点に鑑みなされたものであって、その目的は、複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出し、より文字認識に適した二値画像を生成することを可能にする画像処理装置、画像処理プログラムおよび該画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体、ならびに画像処理方法を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の画像処理装置は、上記課題を解決するために、多値画像のデータを取得する画像取得手段と、当該多値画像のデータに対応する多値画像を、複数の画素からなる、マトリクス状のブロックに分割する画像分割手段と、上記画像分割手段によって得られた各ブロックについて、エッジの有無を検出するエッジ検出手段と、上記エッジ検出手段によってエッジが検出されたブロックについて、画像の二値化のための閾値である二値化閾値を算出する二値化閾値算出手段と、上記エッジ検出手段で検出したエッジの有無の情報、または上記エッジの有無の情報および上記二値化閾値算出手段で算出した二値化閾値に基づいて、対象とするブロックが、前景の画素が背景の画素よりも低い明度になっているブロックである通常ブロックか、前景の画素が背景の画素よりも高い明度になっているブロックである反転ブロックか、を判定するブロック判定手段と、上記ブロック判定手段で得られた判定結果に基づいて、上記ブロックを連結して領域を作成する領域作成手段とを備えることを特徴としている。
【００１０】
また、本発明の画像処理方法では、上記課題を解決するために、多値画像のデータを取得する画像取得ステップと、当該多値画像のデータに対応する多値画像をマトリクス状のブロックに分割する画像分割ステップと、上記画像分割ステップによって得られた各ブロックについて、エッジの有無を検出するエッジ検出ステップと、上記エッジ検出ステップによってエッジが検出されたブロックについて、画像の二値化のための閾値である二値化閾値を算出する二値化閾値算出ステップと、上記エッジ検出ステップで検出したエッジの有無の情報、または上記エッジの有無の情報および上記二値化閾値算出ステップで算出した二値化閾値に基づいて、対象とするブロックが、前景の画素が背景の画素よりも低い明度になっているブロックである通常ブロックか、前景の画素が背景の画素よりも高い明度になっているブロックである反転ブロックか、を判定するブロック判定ステップと、上記ブロック判定ステップで得られた判定結果に基づいて、上記ブロックを連結して領域を作成する領域作成ステップとを含むことを特徴としている。
【００１１】
上記の発明によれば、画像分割手段によって多値画像を分割したブロックごとに、ブロック判定手段が、前景の画素が背景の画素よりも低い明度になっているブロックである通常ブロックか、前景の画素が背景の画素よりも高い明度になっているブロックである反転ブロックかを判定し、領域作成手段によって、判定結果に基づいて上記ブロックを連結して領域を作成する構成になっている。よって、判定結果に基づいて反転ブロックからなる領域を作成すれば、矩形以外の形状の明度反転領域を抽出することができる。
【００１２】
さらに、上記の発明によれば、エッジの有無を検出するエッジ検出手段によって検出したエッジの有無の情報、または上記エッジの有無の情報および上記二値化閾値算出手段で算出した二値化閾値に基づいて、ブロック判定手段が、各ブロックについて通常ブロックか反転ブロックかの判定を行う構成になっている。よって、ブロック内に明度反転領域と明度反転領域でない領域とを含んでいた場合であっても、エッジの有無の情報によって、明度反転領域と明度反転領域でない領域とを含んでいるか否かを判定するとともに、二値化閾値を利用して、各ブロックについて通常ブロックか反転ブロックかの判定を行うことができる。従って、複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出することが可能である。また、本発明によって抽出した明度反転領域をもとに二値画像を生成した場合には、複雑な形状をもつ明度反転領域を、より適切に抽出した明度反転領域をもとに二値画像を生成することになるので、より文字認識に適した二値画像を生成することが可能になる。
【００１３】
その結果、複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出し、より文字認識に適した二値画像を生成することを可能にする。
【００１４】
また、本発明の画像処理装置では、前記領域が、前景の画素が背景の画素よりも低い明度になっている領域である通常領域か、前景の画素が背景の画素よりも高い明度になっている領域である反転領域か、を判定する領域判定手段をさらに備えることが好ましい。
【００１５】
これにより、領域判定手段によって、領域作成手段で作成した領域が、前景の画素が背景の画素よりも低い明度になっている領域である通常領域か、前景の画素が背景の画素よりも高い明度になっている領域である反転領域かを判定するので、領域作成手段で作成した領域が、明度反転領域であるか否かを判定することが可能になる。
【００１６】
また、本発明の画像処理装置では、前記領域判定手段は、前記領域に含まれる通常ブロックと反転ブロックとの比率に基づいて、前記領域が、前記通常領域か、前記反転領域か、を判定することが好ましい。
【００１７】
これにより、領域判定手段が、領域に含まれる通常ブロックと反転ブロックとの比率に基づいて、領域が通常領域であるのか、反転領域であるのかを判定するので、通常ブロックが含まれる領域であっても、反転ブロックの比率が高い領域を反転領域、すなわち明度反転領域として判定することが可能になる。よって、領域が明度反転領域であるかどうかをさらに精度良く判定することが可能になる。
【００１８】
また、本発明の画像処理装置では、前記領域作成手段は、前記ブロック判定手段で得られた判定結果に基づいて、前記反転ブロックを連結して前記領域を作成することが好ましい。
【００１９】
これにより、領域作成手段が、ブロック判定手段で得られた判定結果に基づいて、反転ブロックを連結して領域を作成するので、多値画像を分割したブロックを利用して、反転ブロックからなる複雑な形状の領域を作成することができる。すなわち、複雑な形状の明度反転領域を作成して、明度反転領域を抽出することが可能なる。
【００２０】
また、本発明の画像処理装置では、前記領域作成手段は、前記連結した反転ブロックの数が所定の数以上であった場合に前記領域を作成することが好ましい。
【００２１】
これにより、領域作成手段は、連結した反転ブロックの数が所定の数以上であった場合に領域を作成するので、連結した反転ブロックの数が所定の数よりも少ない場合には領域を作成しないことになる。よって、上記所定の数を、明度反転領域として作成しても意味が無い小領域にしかならない数とすれば、明度反転領域として作成しても意味が無い小領域を、作成する領域のうちから除くことが可能になる。
【００２２】
また、本発明の画像処理装置では、前記領域作成手段は、さらに、前記連結した反転ブロックに挟まれた前記通常ブロックを、上記連結した反転ブロックに加えて前記領域を作成することが好ましい。
【００２３】
これにより、領域作成手段が、連結した反転ブロックに挟まれた通常ブロックを、連結した反転ブロックに加えて領域を作成するので、反転ブロックに通常ブロックが挟まれているような箇所を部分的に補間し、明度反転領域を作成して明度反転領域を抽出することが可能になる。よって、明度反転領域をさらに精度良く抽出することが可能になる。
【００２４】
また、本発明の画像処理装置では、前記エッジ検出手段で検出した前記エッジの有無の情報、および前記領域判定手段で判定した通常領域と反転領域とのうちのいずれに前記ブロックが属しているかの情報、または上記エッジの有無の情報、上記通常領域と反転領域とのうちのいずれに上記ブロックが属しているかの情報、および前記二値化閾値算出手段で算出した前記二値化閾値に基づいて、上記ブロックごとに、上記ブロック内の各画素を、黒画素もしくは白画素として二値化を行い、前記多値画像に対応する二値画像を出力する二値画像生成手段をさらに備えることが好ましい。
【００２５】
これにより、エッジの有無の情報、および通常領域と反転領域とのうちのいずれにブロックが属しているかの情報、またはエッジの有無の情報、通常領域と反転領域とのうちのいずれにブロックが属しているかの情報、および二値化閾値に基づいて、ブロックごとに、ブロック内の各画素を、黒画素もしくは白画素として二値化を行うので、ブロック内にエッジが存在するか否か、ブロックが通常領域に属しているか、または反転領域に属しているかに応じて、ブロック内の各画素を黒画素もしくは白画素に二値化することが可能になる。よって、明度反転領域の各画素と通常領域の各画素とを区別して、文字認識に適した二値画像を生成することが可能になる。
【００２６】
なお、前記画像処理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを前記各手段として動作させることにより上記画像処理装置をコンピュータにて実現させる画像処理プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【発明の効果】
【００２７】
本発明によれば、画像分割手段によって多値画像を分割したブロックごとに、通常ブロックか反転ブロックかを判定し、領域作成手段によって、判定結果に基づいて上記ブロックを連結して領域を作成するので、判定結果に基づいて反転ブロックからなる領域を作成すれば、矩形以外の形状の明度反転領域を抽出することができる。
【００２８】
さらに、本発明によれば、ブロック内に明度反転領域と明度反転領域でない領域とを含んでいた場合であっても、エッジの有無の情報によって、明度反転領域と明度反転領域でない領域とを含んでいるか否かを判定するとともに、二値化閾値を利用して、各ブロックについて通常ブロックか反転ブロックかの判定を行うことができる。よって、複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出することが可能である。また、本発明によって抽出した明度反転領域をもとに二値画像を生成した場合には、複雑な形状をもつ明度反転領域を、より適切に抽出した明度反転領域をもとに二値画像を生成することになるので、より文字認識に適した二値画像を生成することが可能になる。
【００２９】
従って、複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出し、より文字認識に適した二値画像を生成することを可能にするという効果を奏する。
【発明を実施するための最良の形態】
【００３０】
〔実施の形態１〕
本発明の一実施形態について図１ないし図５に基づいて説明すれば、以下の通りである。なお、以下の説明に用いる図面は、同一の部材または同一の機能のものについては同一の符号を付してある。従って、それらについての詳細な説明は繰り返さない。
【００３１】
最初に、図１を用いて画像処理装置１の構成の概要について説明を行う。図１は、本実施の形態における画像処理装置１の概略的構成を示す機能ブロック図である。画像処理装置１は、図１に示すように、画像取得部（画像取得手段）１１、画像メモリ１２、画像分割部（画像分割手段）１３、ブロック情報メモリ１４、エッジ検出部（エッジ検出手段）１５、二値化閾値算出部（二値化閾値算出手段）１６、ブロック判定部（ブロック判定手段）１７、および領域作成部（領域作成手段）１８を備えている。
【００３２】
まず、画像取得部１１は、スキャナで読み込んだ画像の多値画像データ、カメラなどの撮像装置で撮影した画像の多値画像データ等を取得するものである。また、画像メモリ１２は、画像取得部１１で取得された画像のデータを多値画像データとして記憶（格納）するものである。なお、ここで言うところの多値画像データとしては、フルカラーの画像のデータであってもよいし、白黒の二値画像を複数の濃度段階で表現する画像のデータであってもよい。
【００３３】
画像分割部１３は、画像メモリ１２に記憶された多値画像データに対応する多値画像をマトリクス状のブロックに分割するものである。また、ブロック情報メモリ１４は、画像分割部１３で分割されたブロックの情報（ブロック情報）などを記憶（格納）するものである。なお、ここで言うところのブロックとは、複数の画素からなるものである。また、ブロック情報メモリ１４に格納する他の情報については後述する。ここで、画像分割部１３では、実際に多値画像をブロックに分割したブロック画像を生成する必要はなく、個々のブロック画像の多値画像上での座標を求め、求めた座標の情報（座標情報）を、ブロック情報メモリ１４に記憶させる構成であればよい。なお、分割する数、各ブロックの大きさは任意に設定可能なものである。しかしながら、ブロックの大きさが小さすぎる場合には、ブロック内の文字（前景）の領域の画素数と背景の領域の画素数との偏りが大きくなりやすくなることにより、二値化の閾値（二値化閾値）の算出が難しくなるといった問題が生じたり、ブロックが文字の線に含まれて、その部分の中抜けが発生する問題などが生じたりする。一方、ブロックの大きさが大きすぎればブロックを連結して複雑な形状をもつ明度反転領域を抽出することが難しくなる問題が生じる。従って、ブロックの大きさは、二値化閾値を算出するために十分な画素数をもつ程度の範囲に設定することが好ましい。また、分割する数、ブロックの大きさは、従来の画素の二値化を行う場合のブロックの分割の基準に従ったものであってもよい。
【００３４】
エッジ検出部１５は、画像メモリ１２に格納されている多値画像データとブロック情報メモリ１４に格納されているブロック情報とに基づいて、分割した各ブロックのそれぞれにエッジがあるか否かを検出するものである。なお、エッジとは、画像中で明るさ、または色が急激に変化する境界を表している。また、エッジの検出方法としては、画像の一次微分を用いるもの、および画像の二次微分を用いるものなどの様々な手法があるが、ここでは、どのような手法を用いても構わない。
【００３５】
二値化閾値算出部１６は、画像メモリ１２に格納されている多値画像データとブロック情報メモリ１４に格納されているブロック情報とに基づいて、分割した各ブロックのそれぞれの二値化閾値を算出するものである。なお、ここで言うところの二値化閾値とは、多値画像を二値化するための閾値である。また、二値化閾値の算出方法としては、２つのクラス間分散が最大になるように閾値を設定する判別分析法などがあるが、ここでは、どのような手法を用いても構わない。また、二値化閾値算出部１６は、ブロックごとに算出した二値化閾値とともに、エッジ検出部１５で検出した、ブロックごとのエッジがあるか否かの情報をブロック判定部１７に送るものである。
【００３６】
ブロック判定部１７は、画像メモリ１２に格納されている多値画像データ、ブロック情報メモリ１４に格納されているブロック情報、エッジ検出部１５で検出した、ブロックごとのエッジがあるか否かの情報（エッジの有無の情報）、および二値化閾値算出部１６で算出した、ブロックごとの二値化閾値に基づいて、分割した各ブロックが通常ブロックであるか反転ブロックであるかを判定し、各ブロックが反転ブロックであるか通常ブロックであるかの情報（ブロック判定情報）をブロック情報メモリ１４に格納するものである。
【００３７】
そして、領域作成部１８は、ブロック情報メモリ１４を参照して各ブロックが反転ブロックであるか通常ブロックであるかの情報を取得し、分割した各ブロックのうち反転ブロックを連結して領域を作成するものである。
【００３８】
次に、図２を用いて、画像処理装置１での処理の流れについて説明を行う。図２は、画像処理装置１での動作フローを示すフローチャートである。
【００３９】
まず、ステップＳ１では、利用者がカメラで撮影したり、スキャナで読み取ったりなどした、文字を含む画像（文書画像）のデータを画像取得部１１が取得し、画像メモリ１２に多値画像データとして記憶して、ステップＳ２に移る。ステップＳ２では、画像分割部１３は、画像メモリ１２に記憶された多値画像データをマトリックス状のブロックに分割して、ステップＳ３に移る。
【００４０】
ステップＳ３では、画像メモリ１２に記憶された多値画像データとブロック情報メモリ１４に記憶されたブロックの座標情報とを参照して、各ブロックの画像データであるブロック画像データを得る。そして、全ブロックについて、前景が背景よりも低い明度で描かれたブロック（前景の画素が背景の画素よりも低い明度になっているブロック）である通常ブロックか、前景が背景よりも高い明度で描かれたブロック（前景の画素が背景の画素よりも高い明度になっているブロック）である反転ブロックかを判定して、各ブロックが通常ブロックと反転ブロックとのうちのどちらであるかの情報（ブロック判定情報）をブロック情報メモリ１４に記憶する。なお、ここで言うところの前景、背景とは、画像処理の分野において一般的に定義されている前景、背景を表しているが、本実施の形態では、具体例として文書画像の文字、図、罫線などの意味のある部分を前景、それ以外の部分を背景として説明を行っている。
【００４１】
続いて、ステップＳ４では、領域作成部１８がブロック情報メモリ１４を参照して、ステップＳ３の判定で得たブロック判定情報に基づいて、反転ブロック同士を連結してラベリング（ラベルの付加）を行う。そして、反転ブロックに付加したラベルの情報（ラベル情報）を、ブロック情報メモリ１４に記憶する。なお、ブロックを連結する処理にはさまざまな手法が考えられるが、ここでは、８方向に連結しているブロックに同じラベルを付加する、８近傍によるラベリング処理を用いる場合を例にあげて説明を行う。
【００４２】
さらに、ステップＳ５では、領域作成部１８が、明度反転領域として抽出しても意味のない小領域を除くために、ブロック情報メモリ１４に記憶された個々のラベルに属するブロック数を得て、個々のラベルに属するブロック数が所定数以下であるラベルについては、ラベルを削除する。そして、最終的にラベルが付加されていないブロックが、通常領域として抽出され、最終的にラベルが付加されているブロックが反転領域として抽出されることになる。なお、ここで言うところの所定数とは任意に設定可能な数であって、ブロックのサイズ、文書画像の認識対象とする文字のサイズなどによって定められるものである。一例としては、ブロックを連結した領域が、認識対象とする文字が含まれる程度の大きさでない場合のブロック数を所定数として定めることが挙げられる。
【００４３】
次に、図３を用いて、ステップＳ３での処理（ブロック判定処理）の流れの詳細について説明を行う。図３は、画像処理装置１での動作フローの一部の詳細を示すフローチャートである。以下では、マトリックス状に分割したｉ行ｊ列（０≦ｉ＜Ｎ，０≦ｊ＜Ｍ；ただしＮは縦方向の分割数、Ｍは横方向の分割数を表す）のブロックをＢ［ｉ］［ｊ］とし、Ｂ［ｉ］［ｊ］の二値化閾値を保持する配列をＴ［ｉ］［ｊ］とする。ただしＴ［ｉ］［ｊ］には、Ｂ［ｉ］［ｊ］にエッジがある場合は０より大きい二値化閾値を格納し、Ｂ［ｉ］［ｊ］にエッジがない場合は０を格納することにより、Ｂ［ｉ］［ｊ］にエッジがあるかないかという情報ももつこととする。
【００４４】
まず、ステップＳ３１では、ｉに０、ｊに０を代入し、ステップＳ３２に移る。ステップＳ３２では、ｉ行ｊ列のＢ［ｉ］［ｊ］のブロックのブロック画像データを取得し、ステップＳ３３に移る。ステップＳ３３では、Ｔ［ｉ］［ｊ］の値を０に初期化し、ステップＳ３４に移る。
【００４５】
ステップＳ３４では、エッジ検出部１５が、Ｂ［ｉ］［ｊ］のブロックのエッジの検出を行う。そして、Ｂ［ｉ］［ｊ］のブロックにエッジが検出された場合（ステップＳ３４でＹｅｓ）には、ステップＳ３５に移る。また、Ｂ［ｉ］［ｊ］のブロックにエッジが検出されなかった場合（ステップＳ３４でＮｏ）には、ステップＳ３６に移る。
【００４６】
ステップＳ３５では、二値化閾値算出部１６が、Ｂ［ｉ］［ｊ］のブロックのブロック画像データの二値化閾値を算出してＴ［ｊ］［ｊ］の値として代入し、ステップＳ４０に移る。また、ステップＳ３６では、Ｂ［ｉ］［ｊ］のｊが０（つまり、Ｂ［ｉ］［ｊ］が左端のブロック）であった場合（ステップＳ３６でＹｅｓ）には、ステップＳ３７に移る。一方、Ｂ［ｉ］［ｊ］のｊが０でなかった場合（ステップＳ３６でＮｏ）には、ステップＳ３８に移る。
【００４７】
ステップＳ３７では所定の閾値を取得し、ステップＳ４０に移る。なお、ここで言うところの所定の閾値とは、ブロック内がほぼ同じような明度の画素で構成されている場合、それらの画素を黒とするのか白とするのかを判定するための二値化閾値であって、明度の最小値と最大値との間で妥当な値を定めて設定されるものである。また、ここで言うところの所定の閾値は、固定値として予め設定されて画像処理装置１の図示しないメモリに保持されているものとする。
【００４８】
ステップＳ３８では、Ｔ［ｉ］［ｊ−１］の値が０でなかった（すなわち、直前に判定したブロックにエッジがある）場合（ステップＳ３８でＹｅｓ）には、ステップＳ３９に移る。また、Ｔ［ｉ］［ｊ−１］の値が０であった（すなわち、直前に判定したブロックにエッジがない）場合（ステップＳ３８でＮｏ）には、ステップＳ４３に移る。ステップＳ３９では、既に算出されているＢ［ｉ］［ｊ-１］の二値化閾値であるＴ［ｉ］［ｊ−１］の値を取得し、ステップＳ４０に移る。
【００４９】
ステップＳ４０では、ブロック判定部１７が、ブロック画像データ内の画素について、明度が閾値（ステップＳ３５、ステップＳ３７、ステップＳ３９のいずれかの経路によって取得した値、つまり、ステップＳ３５のＴ［ｊ］［ｊ］の値、ステップＳ３９のＴ［ｉ］［ｊ−１］の値、またはステップＳ３７の所定の閾値）よりも高い画素の割合が所定の割合以上であるか否かを調べ、所定の割合以上であった場合（ステップＳ４０でＹｅｓ）には、ステップＳ４１に移る。また、所定の割合でなかった場合には、ステップＳ４２に移る。なお、ここで言うところの所定の割合とは、当該閾値よりも明度の高い画素と低い画素との割合により、どちらが背景であるかを決定するための値であって、任意に設定可能な値である。一例としては、どちらが多いか、すなわち、どちらが５０％以上であるかを所定の割合以上として定めることが挙げられる。
【００５０】
ステップＳ４１では、ブロック判定部１７が、Ｂ［ｉ］［ｊ］のブロックを通常ブロックと判定して、ステップＳ４４に移る。また、ステップＳ４２では、ブロック判定部１７が、Ｂ［ｉ］［ｊ］のブロックを反転ブロックとして判定して、ステップＳ４４に移る。さらに、ステップＳ４３では、Ｂ［ｉ］［ｊ−１］が通常ブロックであった場合に、Ｂ［ｉ］［ｊ］を通常ブロック、Ｂ［ｉ］［ｊ−１］が反転ブロックであった場合に、Ｂ［ｉ］［ｊ］を反転ブロックとブロック判定部１７が判定し、ステップＳ４４に移る。
【００５１】
ステップＳ４４では、ｊに１を加算し、ステップＳ４５に移る。ステップＳ４５では、ブロック判定部１７が、ｊがＭよりも小さいか否か（すなわち、ｉ行でまだ処理が行われていないブロックがあるか否か）を判定する。そして、ｊがＭよりも小さかった場合（ステップＳ４４でＹｅｓ）には、ステップＳ３２に戻って、次のブロックの処理を開始する。また、ｊがＭよりも小さくなかった場合（ステップＳ４４でＮｏ）には、ステップＳ４６に移る。
【００５２】
ステップＳ４６では、ｉに１を加算するとともに、ｊに０を代入して、ステップＳ４７に移る。ステップＳ４７では、ブロック判定部１７が、ｉがＮよりも小さいか否か（すなわち、まだ処理の行われていない行があるか否か）を判定する。そして、ｉがＮよりも小さかった場合（ステップＳ４７でＹｅｓ）には、ステップＳ３２に戻って、次の行の処理を開始する。また、ｉがＮよりも小さくなかった場合（ステップＳ４７でＮｏ）には、フローを終了する。
【００５３】
ここで、以上のステップＳ３のブロック判定処理を、図４に示すような、ブロック分割した画像に対して行った場合の具体例を以下で説明する。
【００５４】
ステップＳ３１からステップＳ３２では、Ｂ［０］［０］のブロックのブロック画像データを取得し、ステップＳ３３では、Ｔ［０］［０］の値を０に初期化する。続いて、ステップＳ３４では、Ｂ［０］［０］のブロックにはエッジがないことを検出し、ステップＳ３６に移る。ステップＳ３６では、ｊ＝０であるため、ステップＳ３７に移り、ステップＳ３７では、所定の閾値を取得してステップＳ４０に移る。
【００５５】
ステップＳ４０では、閾値（ステップＳ３７の所定の閾値）とＢ［０］［０］のブロックのブロック画像データ内の画素の明度との比較を行う。Ｂ［０］［０］は、図４から明らかなように、ブロック全体が明度の高い画素で構成されているため、ステップＳ４１に移り、Ｂ［０］［０］のブロックを通常ブロックと判定する。
【００５６】
また、Ｂ［０］［１］のブロックについての処理は、ステップＳ３６までは、Ｂ［０］［０］のブロックと同様にフローが進むが、Ｂ［０］［１］のブロックは左端のブロックではないため、ステップＳ３６からステップＳ３８に移る。続いて、ステップＳ３８では、Ｔ［０］［０］の値が０であるため、ステップＳ４３に移る。そして、ステップＳ４３では、Ｂ［０］［１］のブロックをＢ［０］［０］のブロックと同種類のブロック、すなわち通常ブロックと判定する。
【００５７】
さらに、Ｂ［０］［２］のブロックについての処理は、ステップＳ３４まではＢ［０］［０］およびＢ［０］［１］のブロックと同様にフローが進むが、ステップＳ３４でエッジがあることが検出されて、ステップＳ３５に移る。ステップＳ３５では、Ｂ［０］［２］のブロックのブロック画像データの二値化閾値を算出してＴ［０］［２］の値として代入し、ステップＳ４０に移る。そして、ステップＳ４０では、閾値（ステップＳ３５のＴ［ｊ］［ｊ］の値）とＢ［０］［２］のブロックのブロック画像データ内の画素の明度との比較を行う。Ｂ［０］［２］のブロックは、図４から明らかなように、明度の高い画素の比率が高いため、ステップＳ４１に移り、Ｂ［０］［２］のブロックを通常ブロックと判定する。
【００５８】
Ｂ［０］［３］のブロックについては、Ｂ［０］［２］のブロックと同様の処理によって、通常ブロックと判定する。
【００５９】
Ｂ［０］［４］のブロックについての処理は、ステップＳ４０まではＢ［０］［２］のブロックと同様にフローが進み、ステップＳ４０では、閾値（ステップＳ３５のＴ［ｊ］［ｊ］の値）とＢ［０］［４］のブロックのブロック画像データ内の画素の明度との比較を行う。ここで、Ｂ［０］［４］は、図４から明らかなように、明度の高い画素の比率が低いため、ステップＳ４２に移り、Ｂ［０］［４］のブロックを反転ブロックと判定する。以上の処理をすべてのブロックについて行い、通常ブロックと反転ブロックとを判定した結果を、例として図５に示す。
【００６０】
図５に示すように、全体画像を分割したブロックを利用して複雑な形状の明度反転領域内の反転ブロックをより正確に判定することができるので、以上の構成によれば、全体画像を分割したブロックを利用して複雑な形状の明度反転領域をより正確に抽出することが可能になる。
【００６１】
〔実施の形態２〕
本発明の他の実施の形態について図６ないし図１３に基づいて説明すれば、以下の通りである。なお、本実施の形態において説明すること以外の構成は、前記実施の形態１と同じである。また、説明の便宜上、前記の実施の形態１の図面に示した部材と同一の機能を有する部材については、同一の符号を付し、その説明を省略する。
【００６２】
本実施の形態の画像処理装置１ａは、前記実施の形態１の画像処理装置１の構成に加えて、領域判定部（領域判定手段）１９が加わった点が異なっている。
【００６３】
最初に、図６を用いて画像処理装置１ａの構成の概要について説明を行う。図６は、本実施の形態における画像処理装置１ａの概略的構成を示す機能ブロック図である。画像処理装置１ａは、図６に示すように、領域判定部１９以外は、画像処理装置１と同様の部材を備えている。
【００６４】
画像処理装置１ａにおいて、領域作成部１８は、分割した各反転ブロックを連結するとともに、連結した反転ブロックに挟まれた通常ブロックを当該反転ブロックに連結し、当該反転ブロックに反転ブロックに挟まれた通常ブロックを加えて領域を作成するものである。また、領域判定部１９は、領域に属する通常ブロックと反転ブロックとの比率に基づいて、当該領域が通常領域であるか反転領域であるかを判定するものである。なお、連結した反転ブロックに挟まれた通常ブロックとは、行方向または列方向のいずれかの方向において反転ブロックに挟まれている通常ブロックを表している。
【００６５】
次に、図７を用いて、画像処理装置１ａでの処理の流れについて説明を行う。図７は、画像処理装置１ａでの動作フローを示すフローチャートである。なお、ステップＳ１からステップＳ５までの処理は、前記実施の形態１において説明を行ったものと同様なので、ここでは説明を省略する。
【００６６】
ステップＳ６では、領域作成部１８は、ブロック情報メモリ１４を参照して、ブロック判定情報を取得し、所定ブロック数以内の、同じラベルが付加された反転ブロックで挟まれた、ラベルが付加されていない通常ブロックに、同じラベルを付加する処理を行う。
【００６７】
そして、ステップＳ７では、領域判定部１９が、ブロック情報メモリ１４を参照し、すべてのラベルについて、属するブロックの通常ブロックと反転ブロックとの比率を計算する。その上で、反転ブロックの割合が所定の割合よりも大きいラベルに属するブロックを反転領域と判定し、それ以外のブロックを通常領域と判定する。
【００６８】
次に、図８を用いて、ステップＳ６での処理の流れの詳細について説明を行う。図８は、画像処理装置１ａでの動作フローの一部の詳細を示すフローチャートである。なお、列方向に行う処理については、以下の処理において行方向と列方向とを逆転させることにより、すなわち、ステップＳ６２、ステップＳ６８からＳ７２において、ｉとｊとを入れ替えるとともに、ＮとＭとを入れ替えることによって実施することができる。
【００６９】
また、以下に述べるＬ［ｉ］［ｊ］は、Ｂ［ｉ］［ｊ］に付加されたラベルを表すものである。また、ラベルとしては０以外の値（ラベル情報）を使用し、ラベルがないブロックはＬ［ｉ］［ｊ］を０（ラベル情報）とするものとする。なお、０以外の値としては複数の値があり、値の違うラベルが付加されたブロックごとに別の領域を形成することになる。
【００７０】
まず、ステップＳ６１では、ｉに０、ｊに０を代入し、ステップＳ６２に移る。ステップＳ６２では、開始ブロックを表す変数Ｓｔにｊを代入し、ステップＳ６３に移る。そして、ステップＳ６３では、領域作成部１８がブロック情報メモリ１４からＬ［ｉ］［ｊ］の情報を取得し、ステップＳ６４に移る。なお、ここで言うところの開始ブロックとは、行（または列）方向で同じラベルに挟まれた通常ブロックを見つける本フローの処理において、行（または列）の先頭から走査方向に１ブロックずつずらしていって見つけた通常ブロックを挟んだ同じラベルのブロックの塊の先頭のブロックを表しており、Ｓｔはその開始ブロックの座標を表している。
【００７１】
ステップＳ６４では、領域作成部１８が、Ｌ［ｉ］［ｊ］の値が０でないか否か（すなわち、Ｂ［ｉ］［ｊ］にラベルが付加されているか否か）を調べ、ラベルが付加されていた場合（ステップＳ６４でＹｅｓ）には、ステップＳ６５に移る。また、ラベルが付加されていなかった場合（ステップＳ６４でＮｏ）には、ステップＳ６９に移る。
【００７２】
ステップＳ６５では、領域作成部１８が、Ｌ［ｉ］［Ｓｔ］の値とＬ［ｉ］［ｊ］の値とが同じか（すなわちＢ［ｉ］［Ｓｔ］のブロックとＢ［ｉ］［ｊ］のブロックとに同じラベルが付加されているか）否かを調べる。そして、Ｌ［ｉ］［Ｓｔ］の値とＬ［ｉ］［ｊ］の値とが同じであった場合（ステップＳ６５でＹｅｓ）には、ステップＳ６６に移る。また、Ｌ［ｉ］［Ｓｔ］の値とＬ［ｉ］［ｊ］の値とが同じでなかった場合（ステップＳ６５でＮｏ）には、ステップＳ６８に移る。
【００７３】
ステップＳ６６では、領域作成部１８が、ｊ−Ｓｔが２以上かつ所定数以内であるか否かを調べる。そして、ｊ−Ｓｔの値が２以上かつ所定数以内であった場合（ステップＳ６６でＹｅｓ）には、ステップＳ６７に移る。また、ｊ−Ｓｔの値が２以上かつ所定数以内でなかった場合（ステップＳ６６でＮｏ）には、ステップＳ６８に移る。ステップＳ６７では、Ｌ［ｉ］［Ｓｔ＋１］からＬ［ｉ］［ｊ−１］までの値として、Ｌ［ｉ］［Ｓｔ］の値を代入する。すなわち、ラベルのないブロックであるＢ［ｉ］［Ｓｔ＋１］のブロックからＢ［ｉ］［ｊ−１］のブロックまでにＬ［ｉ］［Ｓｔ］を付加（ラベリング）し、ステップＳ６８に移る。なお、ここで言うところの所定数とは、反転領域の抽出精度を上げるために、ブロックのサイズ、文書画像の認識対象とする文字のサイズなどによって定められるものであって、任意に設定可能な数である。一例として、太目の認識対象文字の中抜けが発生しない程度の数を所定数として定めることが挙げられる。
【００７４】
ステップＳ６８では、開始ブロックを表す変数Ｓｔにｊを代入し、ステップＳ６９に移る。続いて、ステップＳ６９では、ｊに１を加算し、ステップＳ７０に移る。そして、ステップＳ７０では、領域作成部１８が、ｊがＭよりも小さいか否か（すなわち、ｉ行でまだ処理が行われていないブロックがあるか否か）を判定する。そして、ｊがＭよりも小さかった場合（ステップＳ７０でＹｅｓ）には、ステップＳ６３に戻って、次のブロックの処理を開始する。また、ｊがＭよりも小さくなかった場合（ステップＳ７０でＮｏ）には、ステップＳ７１に移る。
【００７５】
ステップＳ７１では、ｉに１を加算するとともに、ｊに０を代入して、ステップＳ７２に移る。ステップＳ７２では、領域作成部１８が、ｉがＮよりも小さいか否か（すなわち、まだ処理の行われていない行があるか否か）を判定する。そして、ｉがＮよりも小さかった場合（ステップＳ７２でＹｅｓ）には、ステップＳ６３に戻って、次の行の処理を開始する。また、ｉがＮよりも小さくなかった場合（ステップＳ７２でＮｏ）には、フローを終了する。
【００７６】
ここで、以上のステップＳ６およびステップＳ７の処理を、図９に示すような、ブロック分割した画像に対して、上述の所定数を４として行った場合の具体例を以下で説明する。なお、図１０は、ステップＳ１からステップＳ３までの処理により、図９に示すような、ブロック分割した画像について、通常ブロックと反転ブロックとを判定した結果を示す図であり、図１１はステップＳ４からステップＳ５の処理により、図１０に示した反転ブロックのラベリングを行った結果得られた、Ｌ［ｉ］［ｊ］の値を示す図である。
【００７７】
Ｂ［０］［０］のブロックについての処理は、ステップＳ６１からステップＳ６３では、Ｓｔに０を代入し、Ｌ［０］［０］の値を取得する。ステップＳ６４では、Ｌ［０］［０］の値が０であるため、ステップＳ６９に移り、Ｂ［０］［０］のブロックについての処理を終了する。以上の処理を、Ｂ［０］［３］のブロックについてまで繰り返し行う。
【００７８】
Ｂ［０］［４］のブロックについての処理は、ステップＳ６４では、Ｌ［０］［４］の値が１であるためステップＳ６５に移る。続いて、ステップＳ６５では、Ｌ［０］［４］の値とＬ［０］［０］の値との比較を行う。ここで、Ｌ［０］［４］の値が１、Ｌ［０］［０］の値が０であるため、ステップＳ６８に移る。そして、ステップＳ６８では、Ｓｔに４を代入してステップＳ６９に移り、Ｂ［０］［４］のブロックについての処理を終了する。
【００７９】
Ｂ［０］［５］のブロックについての処理は、ステップＳ６５では、Ｌ［０］［５］の値とＬ［０］［４］の値との比較を行う。ここで、Ｌ［０］［５］の値とＬ［０］［４］の値とが同じであるため、ステップＳ６６に移る。続いて、ステップＳ６６では、ｊ−Ｓｔの値が１であるため、ステップＳ６８に移る。以上のように、ｉが０の場合は、ブロックラベルを変化させることなく処理が進む。
【００８０】
ｉが１の場合にも同様に処理が進み、Ｂ［１］［６］のブロックについての処理は、ステップＳ６５では、Ｓｔが３でありＬ［１］［６］の値とＬ［１］［３］の値とが等しいため、ステップＳ６６に移る。続いて、ステップＳ６６では、ｊ−Ｓｔの値が３であり、２以上かつ所定数の４以内であるため、ステップＳ６７に移る。そして、ステップＳ６７では、Ｌ［１］［４］からＬ［１］［５］までの値として、Ｌ［１］［３］の値を代入する。この処理により、ラベル１が付加された反転ブロックで挟まれた通常ブロックＢ［１］［４］とＢ［１］［５］とに、ラベル１が付加されることになる。
【００８１】
なお、以上の処理を図１１に示したすべてのブロックについて行った結果を図１２に示す。すなわち、図１２は、図１０に示した反転ブロックで挟まれた通常ブロックに反転ブロックと同じラベルを付加した結果を示す図である。また、ステップＳ７での処理によって、図１２のラベル１が付加されたブロックが反転領域と判定され、最終的に図９に示した画像から抽出された反転領域を図１３に示す。
【００８２】
以上の構成によれば、図１３に示すように、前記実施の形態１で抽出した明度反転領域を部分的に補完し、より精度良く明度反転領域を抽出することが可能になる。
【００８３】
〔実施の形態３〕
本発明の他の実施の形態について図１４ないし図１７に基づいて説明すれば、以下の通りである。なお、本実施の形態において説明すること以外の構成は、前記実施の形態２と同じである。また、説明の便宜上、前記の実施の形態２の図面に示した部材と同一の機能を有する部材については、同一の符号を付し、その説明を省略する。
【００８４】
本実施の形態の画像処理装置１ｂは、前記実施の形態２の画像処理装置１ａの構成に加えて、二値画像生成部（二値画像生成手段）２０が加わった点が異なっている。
【００８５】
最初に、図１４を用いて画像処理装置１ｂの構成の概要について説明を行う。図１４は、本実施の形態における画像処理装置１ｂの概略的構成を示す機能ブロック図である。画像処理装置１ｂは、図１４に示すように、二値画像生成部２０以外は、画像処理装置１ａと同様の部材を備えている。
【００８６】
画像処理装置１ｂにおいて、二値画像生成部２０は、エッジ検出部１５で検出したエッジの有無の情報、およびラベル情報、または上記エッジの有無の情報、上記ラベル情報、および上記二値化閾値に基づいて、ブロックごとに、上記ブロック内の各画素を、黒画素もしくは白画素として二値化を行い、上記多値画像に対応する二値画像を出力するものである。
【００８７】
次に、図１５を用いて、画像処理装置１ｂでの処理の流れについて説明を行う。図１５は、画像処理装置１ｂでの動作フローを示すフローチャートである。なお、ステップＳ１からステップＳ７までの処理は、前記実施の形態２において説明を行ったものと同様なので、ここでは説明を省略する。
【００８８】
ステップＳ８では、二値画像生成部２０は、画像メモリ１２およびブロック情報メモリ１４を参照して、個々のブロックについてのブロック画像データ、ラベル情報、およびブロックごとの二値化閾値の値を取得し、ブロックごとに二値画像を生成する。なお、ブロック画像データは、画像メモリ１２に格納されている多値画像データとブロック情報メモリ１４に格納されているブロック情報とから得ることができる。
【００８９】
次に、図１６を用いて、ステップＳ８での処理（二値画像生成処理）の流れの詳細について説明を行う。図１６は、画像処理装置１ｂでの動作フローの一部の詳細を示すフローチャートである。
【００９０】
まず、ステップＳ８１では、ｉに０、ｊに０を代入し、ステップＳ８２に移る。ステップＳ８２では、二値画像生成部２０が、Ｔ［ｉ］［ｊ］が０でないかどうか、すなわちＢ［ｉ］［ｊ］のブロックがエッジのあるブロックか否かを調べ、エッジがあった場合（ステップＳ８２でＹｅｓ）には、ステップＳ８３に移る。また、エッジがなかった場合（ステップＳ８２でＮｏ）には、ステップＳ８７に移る。
【００９１】
ステップＳ８３では、二値画像生成部２０が、Ｂ［ｉ］［ｊ］のブロックのブロック画像データとＴ［ｉ］［ｊ］の値とを取得し、ステップＳ８４に移る。ステップＳ８４では、二値画像生成部２０が、Ｌ［ｉ］［ｊ］の値が０であるか否か（すなわち、Ｂ［ｉ］［ｊ］のブロックが通常領域であるか反転領域であるか）を調べ、通常領域であった場合（ステップＳ８４でＹｅｓ）には、ステップＳ８５に移る。また、反転領域であった場合（ステップＳ８４でＮｏ）には、ステップＳ８６に移る。
【００９２】
ステップＳ８５では、Ｂ［ｉ］［ｊ］のブロックのブロック画像データ内の画素について、Ｔ［ｉ］［ｊ］の値よりも明度が低い画素を黒画素、それ以外の画素を白画素として二値化し、ステップＳ９０へ処理が進む。ステップＳ８６では、Ｂ［ｉ］［ｊ］のブロックのブロック画像データ内の画素について、Ｔ［ｉ］［ｊ］の値よりも明度が低い画素を白画素、それ以外の画素を黒画素として二値化し、ステップＳ９０に移る。
【００９３】
なお、ステップＳ８５で、Ｔ［ｉ］［ｊ］の値よりも明度が高い画素を白画素、それ以外の画素を黒画素として二値化する構成であってもよいし、ステップＳ８６で、Ｔ［ｉ］［ｊ］の値よりも明度が高い画素を黒画素、それ以外の画素を白画素として二値化する構成であってもよい。
【００９４】
一方、ステップＳ８７では、二値画像生成部２０が、Ｌ［ｉ］［ｊ］の値が０であるか否か（すなわち、Ｂ［ｉ］［ｊ］のブロックが通常領域であるか反転領域であるか）を調べ、通常領域であった場合（ステップＳ８７でＹｅｓ）には、ステップＳ８８に移る。また、反転領域であった場合（ステップＳ８７でＮｏ）には、ステップＳ８９に移る。ステップＳ８８では、Ｂ［ｉ］［ｊ］のブロックのブロック画像データ内の画素をすべて白画素として二値化し、ステップＳ９０に移る。ステップＳ８９では、Ｂ［ｉ］［ｊ］のブロックのブロック画像データ内の画素をすべて黒画素として二値化し、ステップＳ９０に移る。
【００９５】
ステップＳ９０では、ｊに１を加算し、ステップＳ９１に移る。ステップＳ９１では、二値画像生成部２０が、ｊがＭよりも小さいか否か（すなわち、ｉ行でまだ処理が行われていないブロックがあるか否か）を判定する。そして、ｊがＭよりも小さかった場合（ステップＳ９１でＹｅｓ）には、ステップＳ８２に戻って、次のブロックの処理を開始する。また、ｊがＭよりも小さくなかった場合（ステップＳ９１でＮｏ）には、ステップＳ９２に移る。
【００９６】
ステップＳ９２では、ｉに１を加算するとともに、ｊに０を代入して、ステップＳ９３に移る。ステップＳ９３では、二値画像生成部２０が、ｉがＮよりも小さいか否か（すなわち、まだ処理の行われていない行があるか否か）を判定する。そして、ｉがＮよりも小さかった場合（ステップＳ９３でＹｅｓ）には、ステップＳ８２に戻って、次の行の処理を開始する。また、ｉがＮよりも小さくなかった場合（ステップＳ９３でＮｏ）には、フローを終了する。
【００９７】
ここで、図１３に示した、図９の画像から反転領域を抽出した結果を参照して、ステップＳ８の処理（二値画像生成処理）によって生成した二値画像を図１７に示す。
【００９８】
以上の構成によれば、図１７に示すように、明度反転領域を含む画像であっても、画像全体として前景を黒、背景を白とした、より文字認識に適した二値画像を生成することができる。
【００９９】
また、本実施の形態では、二値画像生成部２０が、ブロックごとに前景を黒画素、背景を白画素として二値化を行う構成を示したが、必ずしもこれに限らず、ブロックごとに前景を白画素、背景を黒画素として二値化を行う構成であってもよい。この場合、ステップＳ８１からステップＳ９３までのフローは、白画素と黒画素とを入れ替えて行うようにすればよい。
【０１００】
なお、本実施の形態の画像処理装置１・１ａ・１ｂは、文字を含む画像を解析して文字のデータを抽出し、電子テキスト化する光学文字認識を行うための画像処理装置に適用されるものである。本実施の形態の画像処理装置１・１ａ・１ｂは、複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出し、より文字認識に適した二値画像を生成することを可能にするので、画像処理装置１・１ａ・１ｂを、上記光学文字認識を行うための画像処理装置に適用すれば、複雑な形状をもつ明度反転領域を含む画像からより正確に文字認識を行うことが可能になる。
【０１０１】
上記ブロック判定手段で得られた判定結果に基づいて、上記ブロックを連結して領域を作成する領域作成手段とを備えることを特徴とする画像処理装置。
【０１０２】
最後に、画像処理装置１・１ａ・１ｂの各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０１０３】
すなわち、画像処理装置１・１ａ・１ｂは、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである画像処理装置１・１ａ・１ｂの制御プログラムのプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読取り可能に記録した記録媒体を、画像処理装置１・１ａ・１ｂに供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０１０４】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０１０５】
また、画像処理装置１・１ａ・１ｂを通信ネットワークと接続可能に構成し、上記プログラムコードを、通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【０１０６】
なお、本発明は、上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【産業上の利用可能性】
【０１０７】
以上のように、本発明の画像処理装置、画像処理プログラムおよび該画像処理プログラムを記録したコンピュータ読み取り可能な記録媒体、ならびに画像処理方法は、複雑な形状をもつ明度反転領域であっても、より適切に明度反転領域として抽出し、より文字認識に適した二値画像を生成することを可能にする。従って、本発明は、文字認識の機能を有した画像処理装置に関連する産業分野に好適に用いることができる。
【図面の簡単な説明】
【０１０８】
【図１】本発明における画像処理装置の概略的構成を示す機能ブロック図である。
【図２】上記画像処理装置での動作フローを示すフローチャートである。
【図３】上記画像処理装置での動作フローの一部の詳細を示すフローチャートである。
【図４】ブロック分割した画像の一例を示す図である。
【図５】図４に示した画像の通常ブロックと反転ブロックとを判定した結果を示す図である。
【図６】本発明における画像処理装置の他の実施の形態の概略的構成を示す機能ブロック図である。
【図７】上記画像処理装置での動作フローを示すフローチャートである。
【図８】上記画像処理装置での動作フローの一部の詳細を示すフローチャートである。
【図９】ブロック分割した画像の一例を示す図である。
【図１０】図９に示した画像の通常ブロックと反転ブロックとを判定した結果を示す図である。
【図１１】図１０に示した反転ブロックのラベリングを行った結果を示す図である。
【図１２】図１０に示した反転ブロックで挟まれた通常ブロックに反転ブロックと同じラベルを付加した結果を示す図である。
【図１３】上記画像処理装置によって、図９に示した画像から反転領域を抽出した結果を示す図である。
【図１４】本発明における画像処理装置のさらに他の実施の形態の概略的構成を示す機能ブロック図である。
【図１５】上記画像処理装置での動作フローを示すフローチャートである。
【図１６】上記画像処理装置での動作フローの一部の詳細を示すフローチャートである。
【図１７】図９に示した画像から二値画像を生成した結果を示す図である。
【図１８】（ａ）および（ｂ）は、明度反転領域を含む画像の例である。
【符号の説明】
【０１０９】
１    画像処理装置
１ａ  画像処理装置
１ｂ  画像処理装置
１１    画像取得部（画像取得手段）
１２    画像メモリ
１３    画像分割部（画像分割手段）
１４    ブロック情報メモリ
１５    エッジ検出部（エッジ検出手段）
１６    二値化閾値算出部（二値化閾値算出手段）
１７    ブロック判定部（ブロック判定手段）
１８    領域作成部（領域作成手段）
１９    領域判定部（領域判定手段）
２０    二値画像生成部（二値画像生成手段）
【図１】
2008299673.tif 000003
【図２】
2008299673.tif 000004
【図３】
2008299673.tif 000005
【図４】
2008299673.tif 000006
【図５】
2008299673.tif 000007
【図６】
2008299673.tif 000008
【図７】
2008299673.tif 000009
【図８】
2008299673.tif 000010
【図９】
2008299673.tif 000011
【図１０】
2008299673.tif 000012
【図１１】
2008299673.tif 000013
【図１２】
2008299673.tif 000014
【図１３】
2008299673.tif 000015
【図１４】
2008299673.tif 000016
【図１５】
2008299673.tif 000017
【図１６】
2008299673.tif 000018
【図１７】
2008299673.tif 000019
【図１８】
2008299673.tif 000020