(58)【調査した分野】(Int.Cl.,DB名)
第一の方向に重みを偏在させた第一のフィルタで、網点によって表わされる文字を含む画像に対して第一のフィルタ処理を施すことによって、第一の変換画像を算出する、第一のフィルタ処理手段と、
前記第一の方向とは異なる第二の方向に重みを偏在させた第二のフィルタで前記画像に対して前記第一のフィルタ処理を施すことによって第二の変換画像を算出する第二のフィルタ処理手段と、
前記第一の変換画像および前記第二の変換画像を合成した第一の合成画像を算出する第一の合成手段と、
前記第一の合成画像から第一のエッジを検出する第一のエッジ検出手段と、
第三の方向に重みを偏在させた第三のフィルタで前記画像に対して第二のフィルタ処理を施すことによって、第三の変換画像を算出する、第三のフィルタ処理手段と、
前記第三の方向とは異なる第四の方向に重みを偏在させた第四のフィルタで前記画像に対して前記第二のフィルタ処理を施すことによって第四の変換画像を算出する、第四のフィルタ処理手段と、
前記第三の変換画像および前記第四の変換画像を合成した第二の合成画像を算出する第二の合成手段と、
前記第二の合成画像から第二のエッジを検出する第二のエッジ検出手段と、
前記第一のエッジのいずれかの画素および前記第二のエッジのいずれかの画素のうちの少なくとも1つと同じ位置にある画素からなる画素群を前記文字のエッジとして検出する文字エッジ検出手段と、
を有することを特徴とするエッジ検出装置。
第一の方向に重みを偏在させた第一のフィルタで、網点によって表わされる文字を含む画像に対して第一のフィルタ処理を施すことによって、第一の変換画像を算出する、第一のフィルタ処理手段と、
前記第一の方向とは異なる第二の方向に重みを偏在させた第二のフィルタで前記画像に対して前記第一のフィルタ処理を施すことによって第二の変換画像を算出する第二のフィルタ処理手段と、
前記第一の変換画像および前記第二の変換画像を合成した第一の合成画像を算出する第一の合成手段と、
第三の方向に重みを偏在させた第三のフィルタで前記画像に対して第二のフィルタ処理を施すことによって、第三の変換画像を算出する、第三のフィルタ処理手段と、
前記第三の方向とは異なる第四の方向に重みを偏在させた第四のフィルタで前記画像に対して前記第二のフィルタ処理を施すことによって第四の変換画像を算出する、第四のフィルタ処理手段と、
前記第三の変換画像および前記第四の変換画像を合成した第二の合成画像を算出する第二の合成手段と、
各画素の明度が、前記第一の合成画像および前記第二の合成画像それぞれの、当該画素と同一の位置にある画素の明度の平均である第三の合成画像を算出する、第三の合成手段と、
前記第三の合成画像からエッジを検出するエッジ検出手段と、
を有することを特徴とするエッジ検出装置。
【発明を実施するための形態】
【0020】
〔第一の実施形態〕
図1は、画像形成装置1を含むネットワークシステムの例を示す図である。
図2は、画像形成装置1のハードウェア構成の例を示す図である。
【0021】
図1に示す画像形成装置1は、一般に複合機またはMFP(Multi Function Peripherals)などと呼ばれる装置であって、コピー、ファックス、スキャナ、PCプリント、およびボックスなどの機能を集約した装置である。
【0022】
「PCプリント機能」とは、パーソナルコンピュータまたはスマートフォンなどの端末装置から受信した画像データに基づいて画像を用紙に印刷する機能である。
【0023】
「ボックス機能」とは、ユーザごとに「ボックス」または「パーソナルボックス」などと呼ばれる記憶領域を与えておき、各ユーザが自分の記憶領域によって画像データなどのデータを保存し管理するための機能である。ボックスは、パーソナルコンピュータにおける「フォルダ」または「ディレクトリ」に相当する。
【0024】
画像形成装置1は、いわゆるLAN(Local Area Network)回線、公衆回線、またはインターネットなどの通信回線を介してパーソナルコンピュータまたはファックス端末などの装置と画像データのやり取りを行うことができる。
【0025】
画像形成装置1は、
図2に示すように、CPU(Central Processing Unit)10a、RAM(Random Access Memory)10b、ROM(Read Only Memory)10c、大容量記憶装置10d、スキャンユニット10e、プリントユニット10f、NIC(Network Interface Card)10g、操作パネル10h、およびモデム10iのほか、種々の制御回路などによって構成される。
【0026】
スキャンユニット10eは、用紙に記されている写真、文字、絵、図表などの画像を読み取って画像データを生成する装置である。
【0027】
操作パネル10hは、タッチパネルディスプレイおよびキー群などによって構成される。タッチパネルディスプレイは、ユーザに対するメッセージを与えるための画面、処理の結果を示す画面、またはユーザが画像形成装置1に対して指示を入力するための画面などを表示する。また、タッチパネルディスプレイは、タッチされた(押された)位置を検知し、CPU10aにその位置を通知する。キー群は、テンキーおよびスタートキーのほか、ファックスおよびスキャンなどの各種の機能のモードに対応する画面に切り換えるための選択キーによって構成される。ユーザは、操作パネルを操作することによって、画像形成装置1に対してデータを入力しまたは指示を与えることができる。
【0028】
NIC10gは、TCP/IP(Transmission Control Protocol/Internet Protocol)などのプロトコルに基づいて、パーソナルコンピュータなどの装置との間で通信を行う。
【0029】
モデム10iは、G3またはG4などのプロトコルに基づいて、ファックス端末などの装置との間で通信を行う。
【0030】
プリントユニット10fは、スキャンユニット10eによって読み取られた画像を用紙に印刷する。また、パーソナルコンピュータまたはファックス端末から受信した画像データに基づいて画像を用紙に印刷する。ボックスに保存されている画像データに基づいて画像を用紙に印刷することもできる。
【0031】
ROM10cおよび大容量記憶装置10dには、上述の各機能を実現するためのプログラムがインストールされている。さらに、画像の中から文字を検出するための文字検出プログラム3がインターネットされている。これらのプログラムは、必要に応じてRAM10bにロードされ、CPU10aによって実行される。大容量記憶装置10dとして、ハードディスクまたはフラッシュメモリなどが用いられる。
【0032】
以下、文字検出プログラム3として、第一の文字検出プログラム31が用いられる場合を例に説明する。
【0033】
図3は、第一の実施形態における画像形成装置1の機能的構成の例を示す図である。
図4は、入力画像4の例を示す図である。
図5は、入力画像4の一部分を拡大した例を示す図である。
図6は、第一のフィルタ60Aおよび第二のフィルタ60Bの例を示す図である。
図7は、入力画像4に対する処理の過程の例を示す図である。
【0034】
第一の文字検出プログラム31によると、
図3に示す第一のスムージング処理部101、第二のスムージング処理部102、画像合成処理部103、文字エッジ検出部104、および文字領域検出部105などが実現される。
【0035】
第一のスムージング処理部101ないし文字領域検出部105は、入力された画像データに基づいて処理を実行する。以下、
図4に示すような、文字を表わす文字領域4Aおよび下地を表わす下地領域4Bからなる入力画像4の画像データが入力された場合を例に説明する。文字領域4Aおよび下地領域4Bは、
図5に示すように、網点のパターンが用いられている。
【0036】
入力画像4の画像データは、スキャンユニット10eが用紙をスキャンすることによって取得されたものである。または、パーソナルコンピュータ、スマートフォン、またはファックス端末から受信したものであってもよい。ボックスに記憶されているものであってもよい。
【0037】
第一のスムージング処理部101および第二のスムージング処理部102は、それぞれ独立して、相違するフィルタ(空間フィルタ)を用いて入力画像4に対してスムージング(平滑化)処理を施す。第一のスムージング処理部101は、
図6(A)に示すような、M×N個のセルからなる第一のフィルタ60Aを使用する。ただし、M>N、である。したがって、第一のフィルタ60Aは、水平方向に重みを偏在させたフィルタである。一方、第二のスムージング処理部102は、
図6(B)に示すような、N×M個のセルからなる第二のフィルタ60Bを使用する。第二のフィルタ60Bは、垂直方向に重みを偏在させたフィルタである。
【0038】
さらに具体的には、第一のスムージング処理部101は、入力画像4の各画素を1つずつ注目し、注目した画素(以下、「注目画素」と記載する。)に対して次の処理を行う。注目画素に中心のセルが重なるように、第一のフィルタ60Aを入力画像4の上に重ねる。第一のフィルタ60Aが重なった部分の所定の要素の値(以下、「画素値」と記載する。)の平均値を算出する。つまり、注目画素を中心とするM×N個の一塊の画素群の画素値の平均値を算出する。第一の実施形態では、画素値の平均値として、明度の平均値を算出する。そして、算出した平均値を、注目画素のスムージング後の画素値に決定する。
【0039】
第二のスムージング処理部102も、第一のスムージング処理部101と同様に処理を行う。ただし、第一のフィルタ60Aの代わりに第二のフィルタ60Bを用いる。
【0040】
第一のスムージング処理部101によって、スムージング処理がなされた
図7(A)のような入力画像4(以下、「第一のスムージング画像41」と記載する。)の画像データが、得られる。また、第二のスムージング処理部102によって、
図7(B)のような、スムージング処理がなされた入力画像4(以下、「第二のスムージング画像42」と記載する。)の画像データが、得られる。第一のスムージング画像41および第二のスムージング画像42は、ともに、明度の分布を表わす画素であると、言える。
【0041】
画像合成処理部103は、第一のスムージング画像41および第二のスムージング画像42それぞれの、位置が同じである画素同士を比較し、暗い方の画素を選択することによって、
図7(C)のように第一のスムージング画像41および第二のスムージング画像42を合成する。第一の実施形態では、画素値が明度を表わすので、画素値が小さい方の画素を選択する。以下、合成された画像を「合成画像43」と記載する。
【0042】
すなわち、例えば入力画像4がP×Q個の画素からなる場合は、第一のスムージング画像41および第二のスムージング画像42それぞれの(x,y)座標の画素同士を比較し、暗い方の画素を選択する。そして、この画素を、合成画像43の(x,y)座標の画素として用いる。ただし、0≦x<P、0≦y<Q、である。
【0043】
文字エッジ検出部104は、合成画像43に対してエッジの検出の処理を施す。この処理は、公知のエッジ検出方法を用いて行えばよい。これにより、
図7(D)に示すようなエッジ4Eが検出される。
【0044】
文字領域検出部105は、文字エッジ検出部104によって検出されたエッジ4Eで囲まれた領域の位置を特定し、入力画像4からこの位置の画像を抽出する。抽出した画像は、元の入力画像4の中の文字領域4A(
図4参照)と完全にまたはほぼ一致する。
【0045】
なお、エッジ4Eを文字領域4Aに含めてもよいし含めなくてもよい。後述する各実施形態においても、同様である。
【0046】
図8は、画像形成装置1の全体的な処理の流れの例を説明するフローチャートである。次に、第一の実施形態における全体的な処理の流れを、
図8のフローチャートを参照しながら説明する。
【0047】
画像形成装置1は、第一のフィルタによって入力画像に対してフィルタ処理を施す(
図8の#701)。ステップ#701とは独立して、第二のフィルタによって入力画像に対してフィルタ処理を施す(#702)。第一の実施形態では、フィルタ処理としてスムージング処理(平滑化処理)を施す。
【0048】
ステップ#701および#702のそれぞれの処理によって得られた画像(第一の実施形態では、第一のスムージング画像41および第二のスムージング画像42)を合成する(#703)。そして、合成した画像からエッジを検出し(#704)、エッジで囲まれた領域を文字の領域として検出する(#705)。
【0049】
第一の実施形態によると、入力画像から網点の文字を従来よりも確実に抽出することができる。
【0050】
〔第二の実施形態〕
図9は、第二の実施形態における画像形成装置1の機能的構成の例を示す図である。
図10は、入力画像51の例を示す図である。
図11は、第一のフィルタ61Aおよび第二のフィルタ61Bの例を示す図である。
図12は、入力画像51に対する処理の過程の例を示す図である。
【0051】
第一の実施形態では、スムージング処理を施した2つの画像(第一のスムージング画像41および第二のスムージング画像42)を合成し、文字の位置を特定した。第二の実施形態では、クロージング処理を施した2つの画像を合成し、文字の位置を特定する。
【0052】
以下、第一の実施形態との相違点を中心に、つまり、クロージング処理および合成の処理を中心に、説明する。第一の実施形態と重複する点は、説明を省略する。
【0053】
第二の実施形態における画像形成装置1のハードウェア構成は、第一の実施形態の場合と同様であり、
図2に示した通りである。ただし、第二の実施形態では、文字検出プログラム3として、第一の文字検出プログラム31(
図3参照)の代わりに、第二の文字検出プログラム32が用いられる。第二の文字検出プログラム32によると、
図9に示す第一のクロージング処理部121、第二のクロージング処理部122、画像合成処理部123、文字エッジ検出部124、および文字領域検出部125などが実現される。
【0054】
第一のクロージング処理部121ないし文字領域検出部125は、入力された画像データに基づいて処理を実行する。以下、
図10に示すような、文字を表わす文字領域51Aおよび下地を表わす下地領域51Bからなる入力画像51の画像データが入力された場合を例に説明する。文字領域51Aおよび下地領域51Bは、第一の実施形態の文字領域4Aおよび下地領域4Bと同様、
図5に示したように、網点のパターンが用いられている。また、画像データは、第一の実施形態の場合と同様、種々の方法によって取得することができる。後述する各実施形態においても、同様である。
【0055】
第一のクロージング処理部121および第二のクロージング処理部122は、それぞれ独立して、相違するフィルタを用いて入力画像51に対してクロージング処理を施す。第一のクロージング処理部121は、
図11(A)に示すような、M×N個のセルからなる第一のフィルタ61Aを使用する。一方、第二のクロージング処理部122は、
図11(B)に示すような、N×M個のセルからなる第二のフィルタ61Bを使用する。
【0056】
さらに具体的には、第一のクロージング処理部121は、入力画像51の各画素を1つずつ注目し、次のように処理を行う。
【0057】
第一のクロージング処理部121は、注目画素に中心のセルが重なるように、第一のフィルタ61Aを入力画像51の上に重ねる。第一のフィルタ61Aが重なった部分の画素値(明度)の中から最小値を選出する。つまり、注目画素を中心とするM×N個の一塊の画素群の画素値の中から最小値を選出する。そして、選出した最小値を、注目画素の画素値に決定する。この処理は、一般に、「拡張処理」または「膨張処理」と呼ばれる。「MINフィルタ処理」と呼ばれることもある。この処理により、入力画像51において、全体的に、暗い画素が拡張(膨張)したように見える。
【0058】
なお、入力画像51が二値画像である場合は、第一のクロージング処理部121は、第一のフィルタ61Aが重なった部分の画素値に1つでも黒を表わす値(第二の実施形態では、「0」)が含まれていれば、その時点で「0」を選出すればよい。後述する各実施形態における拡張処理においても、同様である。
【0059】
さらに、第一のクロージング処理部121は、拡張処理が施された入力画像51に対して、次の処理を行う。この入力画像51の各画素を1つずつ注目する。注目画素に中心のセルが重なるように、第一のフィルタ61Aを重ねる。第一のフィルタ61Aが重なった部分の画素値(明度)の中から最大値を選出する。つまり、注目画素を中心とするM×N個の一塊の画素群の画素値の中から最大値を選出する。そして、選出した最大値を、注目画素の画素値に決定する。この処理は、一般に、「縮小処理」または「収縮処理」と呼ばれる。「MAXフィルタ処理」と呼ばれることもある。この処理により、入力画像51において、全体的に、暗い画素が縮小(収縮)したように見える。
【0060】
なお、入力画像51が二値画像である場合は、第二のクロージング処理部122は、第一のフィルタ61Aが重なった部分の画素値に1つでも白を表わす値(第二の実施形態では、「1」)が含まれていれば、その時点で「1」を選出すればよい。後述する各実施形態における収縮処理においても、同様である。
【0061】
第二のクロージング処理部122も、第一のクロージング処理部121と同様に処理を行う。ただし、第一のフィルタ61Aの代わりに第二のフィルタ61Bを用いる。
【0062】
第一のクロージング処理部121によって、クロージング処理がなされた
図12(A)のような入力画像51(以下、「第一のクロージング画像511」と記載する。)の画像データが、得られる。また、第二のクロージング処理部122によって、クロージング処理がなされた
図12(B)のような入力画像51(以下、「第二のクロージング画像512」と記載する。)の画像データが、得られる。第一のクロージング画像511および第二のクロージング画像512は、ともに、明度の分布を表わす画素であると、言える。
【0063】
画像合成処理部123は、第一のクロージング画像511および第二のクロージング画像512それぞれの、位置が同じである画素同士を比較し、明るい方の画素を選択することによって、
図12(C)のように第一のクロージング画像511および第二のクロージング画像512を合成する。第二の実施形態では、画素値は明度を表わすので、画素値が大きい方の画素を選択する。以下、合成された画像を「合成画像513」と記載する。
【0064】
文字エッジ検出部124は、第一の実施形態の文字エッジ検出部104と同様、合成画像513に対してエッジの検出の処理を施す。これにより、
図12(D)に示すようなエッジ51Eが検出される。
【0065】
文字領域検出部125は、第一の実施形態の文字領域検出部105と同様、文字エッジ検出部124によって検出されたエッジ51Eで囲まれた領域の位置を特定し、入力画像51からこの位置の画像を抽出する。抽出した画像は、元の入力画像51の中の文字領域51A(
図10参照)と完全にまたはほぼ一致する。
【0066】
第二の実施形態の全体的な処理の流れは、第一の実施形態と基本的に同様であり、前に
図8で説明した通りである。ただし、ステップ#701および#702において、フィルタ処理として、クロージング処理を行う。また、ステップ#701および#702それぞれの処理によって得られた画像(第二の実施形態では、第一のクロージング画像511および第二のクロージング画像512)の合成の仕方が、第一の実施形態とは異なる。つまり、第一の実施形態では暗い方の画素を選択することによって合成したが、第二の実施形態では明るい方の画素を選択することによって合成する。
【0067】
第二の実施形態によると、スムージング処理を用いた抽出が不調な場合であっても、入力画像から網点の文字を抽出することができる。
【0068】
〔第三の実施形態〕
図13は、第三の実施形態における画像形成装置1の機能的構成の例を示す図である。
図14は、入力画像51に対する処理の過程の例を示す図である。
【0069】
第二の実施形態では、クロージング処理を施した2つの画像を合成し、文字の位置を特定した。第三の実施形態では、オープニング処理を施した2つの画像を合成し、文字の位置を特定する。
【0070】
以下、オープニング処理および合成の処理を中心に、説明する。第二の実施形態と重複する点は、説明を省略する。
【0071】
第三の実施形態における画像形成装置1のハードウェア構成は、第一の実施形態の場合と同様であり、
図2に示した通りである。ただし、第三の実施形態では、文字検出プログラム3として、第三の文字検出プログラム33が用いられる。
【0072】
第三の文字検出プログラム33によると、
図13に示す第一のオープニング処理部131、第二のオープニング処理部132、画像合成処理部133、文字エッジ検出部134、および文字領域検出部135などが実現される。
【0073】
第一のオープニング処理部131ないし文字領域検出部135は、入力された画像データに基づいて処理を実行する。以下、第三の実施形態と同様、入力画像51(
図10参照)の画像データが入力された場合を例に説明する。
【0074】
第一のオープニング処理部131および第二のオープニング処理部132は、それぞれ独立して、相違するフィルタを用いて入力画像51に対してオープニング処理を施す。例えば、第二の実施形態と同様、第一のオープニング処理部131は第一のフィルタ61Aを用い、第二のオープニング処理部132は第二のフィルタ61Bを用いればよい(
図11参照)。
【0075】
すなわち、第一のオープニング処理部131および第二のオープニング処理部132は、それぞれ独立して、入力画像51に対して縮小処理を施し、縮小処理が施された入力画像51に対して拡張処理を行う。縮小処理および拡張処理の方法の例は、第二の実施形態で説明した通りである。
【0076】
第一のオープニング処理部131によって、オープニング処理がなされた
図14(A)のような入力画像51(以下、「第一のオープニング画像515」と記載する。)の画像データが、得られる。また、第二のオープニング処理部132によって、オープニング処理がなされた
図14(B)のよう入力画像51(以下、「第二のオープニング画像516」と記載する。)の画像データが、得られる。第一のオープニング画像515および第二のオープニング画像516は、ともに、明度の分布を表わす画素であると、言える。
【0077】
画像合成処理部133は、第一のオープニング画像515および第二のオープニング画像516それぞれの、位置が同じである画素同士を比較し、暗い方の画素を選択することによって、
図14(C)のように第一のオープニング画像515および第二のオープニング画像516を合成する。第三の実施形態では、画素値は明度を表わすので、画素値が大きい方の画素を選択する。以下、合成された画像を「合成画像517」と記載する。
【0078】
文字エッジ検出部134は、第二の実施形態の文字エッジ検出部124と同様、合成画像517に対してエッジの検出の処理を施す。これにより、
図14(D)に示すようなエッジ51E’が検出される。
【0079】
文字領域検出部135は、第二の実施形態の文字領域検出部125と同様、文字エッジ検出部134によって検出されたエッジ51E’で囲まれた領域の位置を特定し、入力画像51からこの位置の画像を抽出する。抽出した画像は、元の入力画像51の中の文字領域51A(
図10参照)と完全にまたはほぼ一致する。
【0080】
第三の実施形態の全体的な処理の流れは、第一の実施形態と基本的に同様であり、前に
図8で説明した通りである。ただし、ステップ#701および#702において、フィルタ処理として、オープニング処理を行う。
【0081】
第三の実施形態によると、スムージング処理を用いた抽出が不調な場合であっても、入力画像から網点の文字を抽出することができる。
【0082】
〔第四の実施形態〕
図15は、高さまたは幅の狭いフィルタによる不具合を説明するための図である。
図16は、高さまたは幅が広いフィルタによるフィルタ処理の例を説明するための図である。
図17は、クロージング処理の不具合の例を説明するための図である。
図18は、オープニング処理の不具合の例を説明するための図である。
図19は、第四の実施形態における画像形成装置1の機能的構成の例を示す図である。
図20は、入力画像52に対する処理の過程の例を示す図である。
図21は、入力画像53に対する処理の過程の例を示す図である。
【0083】
ところで、文字の特性とフィルタの形状との関係によっては、次のような問題が生じ得る。
【0084】
第一ないし第三の実施形態では、スムージング、クロージング、またはオープニングのいずれかの処理を、異なる2つのフィルタを用いて行うことによって、2つの結果を得た。そして、2つの結果のうちの少なくとも一方が理想的な結果であることを期待した上で、合成画像を生成した。フィルタの短辺は、どれだけ短くても構わない。つまり、Nは、1以上であればよい。
【0085】
しかし、フィルタの短辺が短すぎると(Nの値が小さすぎると)、どちらのフィルタを用いても理想的な結果が得られないことがある。
【0086】
ここで、ともに、N=1、である横長のフィルタおよび縦長のフィルタを、それぞれ、第一のフィルタ61Aおよび第二のフィルタ61Bとして用いて二値画像に対してクロージング処理における拡張処理を行う場合を例に、考える。
【0087】
黒色の画素が十分に密集している領域は、どの画素を注目画素としても、2つのフィルタのうちの少なくとも一方によって黒色の画素が捕捉されることが多い。したがって、このような領域は、拡張処理によってほぼ黒一色になるはずである。
【0088】
細長いフィルタを第一のフィルタ61Aおよび第二のフィルタ61Bとして用いても、
図15(A)および(B)のように、注目画素の位置によっては、黒色の画素を捕捉することができる場合がある。
【0089】
ところが、注目画素が別の位置にある場合は、
図15(C)および(D)のように、どちらのフィルタによっても黒色の画素を1つも捕捉することができないことが、ある。このような位置の注目画素は、上手く黒色に変換されない。したがって、クロージング処理の結果、全体として、入力画像の中の文字が薄くなってしまう。他の処理においても、不具合が生じることがある。
【0090】
一方、
図16(A)および(B)にそれぞれ示すように、十分な長さの短辺のフィルタを第一のフィルタ61Aおよび第二のフィルタ61Bとして用いれば、
図15に示す例においては、好適な結果が得られる。しかし、このようなフィルタを用いても、好適な結果が得られないことがある。それは、入力画像に複雑な文字が含まれているような場合である。
【0091】
例えば、
図17(A)に示す入力画像52に対して、第二の実施形態の第一のクロージング処理部121および第二のクロージング処理部122のそれぞれがクロージング処理を実行すると、
図17(B)および(C)に示すように、隣り合う線(エッジ)同士がくっ付いてしまうことがある。このような不具合は、両者の間隔(間の画素数)が、フィルタの短辺の長さ(Nの値)よりも小さい場合に生じやすい。
【0092】
これらの結果に基づいて合成画像を生成しても、
図17(D)に示すように好適な結果が得られず、エッジを的確に判別することができない。
【0093】
入力画像に複雑な文字が含まれている場合は、第三の実施形態の方法を用いることつまりオープニング処理を行うが、考えられる。
【0094】
しかし、オープニング処理において十分な長さの短辺のフィルタを用いても、好適な結果が得られないことがある。特に、入力画像に線の細い文字が含まれている場合である。
【0095】
例えば、
図18(A)に示す入力画像53に対して、第三の実施形態の第一のオープニング処理部131および第二のオープニング処理部132のそれぞれがオープニング処理を実行すると、
図18(B)および(C)に示すように、文字の一部分が消えてしまう。このような不具合は、線の太さ(線の幅の画素数)が、フィルタの短辺の長さ(Nの値)よりも小さい場合に生じやすい。
【0096】
これらの結果に基づいて合成画像を生成しても、
図18(D)に示すように好適な結果が得られず、エッジを的確に判別することができない。
【0097】
以上の問題点に鑑みると、入力画像に含まれる文字の特定に応じてフィルタによる処理の方法を変える必要がある。しかし、どの方法を用いるのかを決めるのは、難しい。
【0098】
第四の実施形態では、このような課題に鑑み、次の方法によって入力画像から文字を検出する。
【0099】
第四の実施形態における画像形成装置1のハードウェア構成は、第一の実施形態の場合と同様であり、
図2に示した通りである。ただし、第四の実施形態では、文字検出プログラム3として、第四の文字検出プログラム34が用いられる。
【0100】
第四の文字検出プログラム34によると、
図19に示す第一のクロージング処理部141、第二のクロージング処理部142、最大明度画素選択部143、第一のオープニング処理部144、第二のオープニング処理部145、最小明度画素選択部146、画像合成処理部147、文字エッジ検出部148、および文字領域検出部149などが実現される。
【0101】
第一のクロージング処理部141ないし文字領域検出部149は、入力された画像データに基づいて処理を実行する。以下、
図17(A)に示す入力画像52の画像データが入力された場合を例に説明する。
【0102】
第一のクロージング処理部141および第二のクロージング処理部142は、それぞれ、第二の実施形態の第一のクロージング処理部121および第二のクロージング処理部122(
図9参照)と同様、入力画像52に対してクロージング処理を施す。
【0103】
すると、前に説明した通り、
図17(B)および(C)に示すような結果が得られる。以下、第一のクロージング処理部141によってクロージング処理が施された入力画像52を「第一のクロージング画像521」と記載し、第二のクロージング処理部142によってクロージング処理が施された入力画像52を「第二のクロージング画像522」と記載する。
【0104】
最大明度画素選択部143は、第二の実施形態の画像合成処理部123と同様、第一のクロージング画像521および第二のクロージング画像522それぞれの、位置が同じである画素同士を比較し、明るい方の画素を選択する。選択された画素からなる画像は、
図17(D)のような、第一のクロージング画像521および第二のクロージング画像522を合成した画像を表わす。そこで、以下、最大明度画素選択部143によって選択された画素群が表わす画像を「合成画像523」と記載する。
【0105】
第一のオープニング処理部144および第二のオープニング処理部145は、それぞれ、第三の実施形態の第一のオープニング処理部131および第二のオープニング処理部132(
図13参照)と同様、入力画像52に対してオープニング処理を施す。
【0106】
すると、
図20(A)および(B)に示すような結果が得られる。以下、第一のオープニング処理部144によってオープニング処理が施された入力画像52を「第一のオープニング画像524」と記載し、第二のオープニング処理部145によってオープニング処理が施された入力画像52を「第二のオープニング画像525」と記載する。
【0107】
最小明度画素選択部146は、第三の実施形態の画像合成処理部133と同様、第一のオープニング画像524および第二のオープニング画像525それぞれの、位置が同じである画素同士を比較し、暗い方の画素を選択する。選択された画素からなる画像は、
図20(C)のような、第一のオープニング画像524および第二のオープニング画像525を合成した画像を表わす。そこで、以下、最小明度画素選択部146によって選択された画素群が表わす画像を「合成画像526」と記載する。
【0108】
画像合成処理部147は、合成画像523および合成画像526それぞれの、位置が同じである画素の画素値(明度)同士の平均値を算出し、その平均値をその画素の画素値に決定することによって、合成画像523と合成画像526とを合成する。以下、合成された画像を「合成画像527」と記載する。
【0109】
文字エッジ検出部148は、第一の実施形態の文字エッジ検出部104(
図3参照)などと同様、合成画像527に対してエッジの検出の処理を施す。これにより、エッジ52Eが検出される。
【0110】
文字領域検出部149は、第一の実施形態の文字領域検出部105などと同様、文字エッジ検出部148によって検出されたエッジ52Eで囲まれた領域の位置を特定し、入力画像52からこの位置の画像を抽出する。抽出した画像は、文字と完全にまたはほぼ一致する。
【0111】
なお、
図18(A)に示す入力画像53の画像データが入力された場合は、第一のクロージング処理部141、第二のクロージング処理部142、および最大明度画素選択部143によって、それぞれ、
図21(A)、(B)、および(C)に示す結果が得られる。また、第一のオープニング処理部144、第二のオープニング処理部145、および最小明度画素選択部146によって、それぞれ、
図18(B)、(C)、および(D)に示した結果が得られる。そして、画像合成処理部147は、
図21(C)および
図18(D)に示す画像を、明度の平均値を算出することによって合成し、文字エッジ検出部148は、合成された画像からエッジを検出し、文字領域検出部149は、エッジに基づいて入力画像53から文字を検出する。
【0112】
図22は、画像形成装置1の全体的な処理の流れの変形例を説明するフローチャートである。
【0113】
次に、第四の実施形態における全体的な処理の流れを、
図22のフローチャートを参照しながら説明する。
【0114】
画像形成装置1は、横長のフィルタによって入力画像に対して第一のフィルタ処理を施す(
図22の#741)。ステップ#741とは独立して、縦長のフィルタによって入力画像に対して第一のフィルタ処理を施す(#742)。第四の実施形態では、第一のフィルタ処理としてクロージング処理を施す。そして、ステップ#741および#742のそれぞれの処理によって得られた画像を合成する(#743)。
【0115】
ステップ#741〜743の処理と前後してまたは並行して、画像形成装置1は、横長のフィルタによって入力画像に対して第二のフィルタ処理を施す(#744)。ステップ#744とは独立して、縦長のフィルタによって入力画像に対して第二のフィルタ処理を施す(#745)。第四の実施形態では、第二のフィルタ処理としてオープニング処理を施す。そして、ステップ#744および#745のそれぞれの処理によって得られた画像を合成する(#746)。
【0116】
さらに、画像形成装置1は、ステップ#743で得られた画像およびステップ#746で得られた画像を合成する(#747)。そして、合成した画像からエッジを検出し(#748)、エッジで囲まれた領域を文字の領域として検出する(#749)。
【0117】
第四の実施形態によると、
図18および
図19に例示したような不調がある場合であっても、入力画像から網点の文字を抽出することができる。
【0118】
〔第五の実施形態〕
図23は、第五の実施形態における画像形成装置1の機能的構成の例を示す図である。
【0119】
第四の実施形態では、クロージング処理の結果およびオープニング処理の結果の平均値を算出してからエッジを判別し文字を抽出した。第五の実施形態では、クロージング処理の結果およびオープニング処理の結果を別々に用いてエッジを判別する。そして、2つの判別結果に基づいて文字を抽出する。
【0120】
第五の実施形態における画像形成装置1のハードウェア構成は、第一の実施形態の場合と同様であり、
図2に示した通りである。ただし、第五の実施形態では、文字検出プログラム3として、第五の文字検出プログラム35が用いられる。
【0121】
第五の文字検出プログラム34によると、
図23に示す第一のクロージング処理部151、第二のクロージング処理部152、第一の画像合成処理部153、第一の文字エッジ検出部154、第一のオープニング処理部155、第二のオープニング処理部156、第二の画像合成処理部157、第二の文字エッジ検出部158、エッジ合成部159、および文字領域検出部150などが実現される。
【0122】
以下、
図10に示した入力画像51の画像データが入力された場合を例に、各部の処理を説明する。
【0123】
第一のクロージング処理部151ないし第一の文字エッジ検出部154は、第二の実施形態の第一のクロージング処理部121ないし文字エッジ検出部124(
図9参照)と同様の処理を行う。よって、
図12(A)〜(C)に示した結果と同様の結果が得られる。
【0124】
第一のオープニング処理部155ないし第二の文字エッジ検出部158は、第三の実施形態の第一のオープニング処理部131ないし文字エッジ検出部134(
図13参照)と同様の処理を行う。よって、
図14(A)〜(C)に示した結果と同様の結果が得られる。
【0125】
エッジ合成部159は、第一の文字エッジ検出部154によって検出されたエッジ51Eと第二の文字エッジ検出部158によって検出されたエッジ51E’とを、重ね合わせることによって合成する。具体的には、入力画像51の各画素がエッジの一部分であるか否かを、次のように判別する。その画素の位置と、エッジ51Eの任意の画素の位置またはエッジ51E’の任意の画素の位置とが一致するか否かをチェックする。そして、少なくとも一方と一致する場合は、その画素がエッジの一部分であると判別し、どちらとも一致しない場合は、その画素がエッジの一部分でないと判別する。
【0126】
文字領域検出部150は、第一の実施形態の文字領域検出部105などと同様、エッジ合成部159によって求められたエッジ51E2で囲まれた領域の位置を特定し、入力画像51からこの位置の画像を抽出する。抽出した画像は、文字領域51Aと完全にまたはほぼ一致する。
【0127】
図24は、画像形成装置1の全体的な処理の流れの変形例を説明するフローチャートである。
【0128】
次に、第五の実施形態における全体的な処理の流れを、
図24のフローチャートを参照しながら説明する。
【0129】
画像形成装置1は、横長のフィルタによって入力画像に対して第一のフィルタ処理を施す(
図24の#751)。ステップ#751とは独立して、縦長のフィルタによって入力画像に対して第一のフィルタ処理を施す(#752)。第五の実施形態では、第一のフィルタ処理としてクロージング処理を施す。そして、ステップ#751および#752のそれぞれの処理によって得られた画像を合成し(#753)、合成した画像からエッジを検出する(#754)。
【0130】
ステップ#751〜754の処理と前後してまたは並行して、画像形成装置1は、横長のフィルタによって入力画像に対して第二のフィルタ処理を施す(#755)。ステップ#755とは独立して、縦長のフィルタによって入力画像に対して第二のフィルタ処理を施す(#756)。第五の実施形態では、第二のフィルタ処理としてオープニング処理を施す。そして、ステップ#755および#756のそれぞれの処理によって得られた画像を合成し(#757)、合成した画像からエッジを検出する(#758)。
【0131】
さらに、画像形成装置1は、ステップ#754で検出したエッジおよびステップ#758で検出したエッジを合成し(#759)、合成したエッジで囲まれた領域を文字の領域として検出する(#760)。
【0132】
第五の実施形態によると、
図18および
図19に例示したような不調がある場合であっても、入力画像から網点の文字を抽出することができる。
【0133】
図25は、フィルタの向きの変形例を示す図である。
図26は、フィルタの形状の変形例を示す図である。
図27は、正方形のフィルタの例を示す図である。
図28は、3つ1組のフィルタの例を示す図である。
【0134】
第一ないし第五の実施形態では、アルファベット、漢字、および平仮名などを入力画像から検出する場合を例に説明したが、数字および記号などを入力画像から検出することもできる。また、罫線を入力画像から検出することもできる。
【0135】
第一ないし第五の実施形態では、1組のフィルタとして、水平方向に重みを偏在させたフィルタおよび垂直方向に重みを偏在させたフィルタを用いたが、
図25(A)のような、水平方向に対してα度の角度をなす方向に重みを偏在させたフィルタ、および、
図25(B)のような、垂直方向に対してα度の角度をなす方向に重みを偏在させたフィルタ、を用いてもよい。
【0136】
また、フィルタの形状は、長方形でなくても構わない。例えば、
図26(A)および(B)に示すような楕円形のフィルタであってもよい。楕円形のフィルタは、
図26(C)および(B)に示すように傾いていても構わない。
【0137】
スムージング処理で用いるフィルタは、重みが一定の方向(角度)に偏在していれば、例えば
図27(A)および(B)に示すように、正方形のフィルタであっても構わない。なお、各セルの数字は、相対的な重みを表わしている。
【0138】
3つ以上のフィルタを用いてもよい。例えば、
図28(A)〜(C)に示す3つのフィルタを用いてスムージング処理を実行する。これにより、3つの画像が得られる。そして、位置が同じである3つの画素同士を比較し、明度が最も低い画素を選択することによって、3つの画像を1つの画像に合成する。クロージング処理およびオープニング処理も同様に3つ以上のフィルタを用いることができる。
【0139】
第四の実施形態および第五の実施形態では、第一のフィルタ処理としてクロージング処理を実行し、第二のフィルタ処理としてオープニング処理を実行したが、他の組合せであってもよい。例えば、第一のフィルタ処理の代わりにスムージング処理を行ってもよい。または、第二のフィルタ処理の代わりにスムージング処理を行ってもよい。スムージング処理を適用する場合の処理の詳細は、第一の実施形態で説明した通りである。
【0140】
図3、
図9、
図13、
図19、および
図23にそれぞれ示した機能の全部または一部をASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)などの回路によって実現してもよい。
【0141】
その他、画像形成装置1の全体または各部の構成、処理内容、処理順序などは、本発明の趣旨に沿って適宜変更することができる。