(57)【要約】【課題】網点を含む画像であっても文字画素を精度良く特定する。【解決手段】画像処理装置は、対象画像データを用いて対象画像内の複数個の画素の中から文字画素の候補である複数個の候補画素を特定する第１の特定部であって、対象画像内のエッジを構成する複数個のエッジ画素を候補画素として特定する処理を含む、第１の特定部と、対象画像上に配置される複数個のブロックのうちの非背景ブロックが連続する個数である連続数を特定する連続数特定部であって、非背景ブロックは対象画像の背景とは異なる特徴値を有するブロックである、連続数特定部と、連続数に基づいて複数個のブロックから文字ブロックを特定する第２の特定部と、候補画素の特定結果と文字ブロックの特定結果とに基づいて対象画像内の複数個の文字画素を特定する第３の特定部と、を備える。【選択図】  図１２
2020092363.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
イメージセンサを用いて印刷物を読み取ることによって生成される対象画像データを取得する画像取得部と、
前記対象画像データを用いて前記対象画像内の複数個の画素の中から文字画素の候補である複数個の候補画素を特定する第１の特定部であって、前記対象画像内のエッジを構成する複数個のエッジ画素を前記候補画素として特定する処理を含む、前記第１の特定部と、
前記対象画像データを用いて、前記対象画像上に配置される複数個のブロックのうちの非背景ブロックが連続する個数である連続数を特定する連続数特定部であって、前記非背景ブロックは、前記対象画像の背景とは異なる特徴値を有するブロックである、前記連続数特定部と、
前記連続数に基づいて前記複数個のブロックから文字ブロックを特定する第２の特定部と、
前記候補画素の特定結果と、前記文字ブロックの特定結果と、に基づいて、前記対象画像内の複数個の前記文字画素を特定する第３の特定部と、
を備える画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第３の特定部は、特定された前記複数個の候補画素のうち、特定された前記文字ブロック内に位置する画素を、前記文字画素として特定する、画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記特徴値は、前記複数個のブロックの色に関する値であり、
前記非背景ブロックは、前記対象画像の背景色とは異なる色を有するブロックである、画像処理装置。
【請求項４】
請求項１〜３のいずれかに記載の画像処理装置であって、
前記第２の特定部は、連続する一組の前記非背景ブロックの前記連続数が第１の基準未満である場合に、前記一組の非背景ブロックを前記文字ブロックとして特定する、画像処理装置。
【請求項５】
請求項１〜４のいずれかに記載の画像処理装置であって、
前記第２の特定部は、
連続する一組の前記非背景ブロックの前記連続数が第１の基準以上であり、かつ、前記一組の非背景ブロックの色数が第２の基準未満である場合に、前記一組の非背景ブロックを前記文字ブロックとして特定する、画像処理装置。
【請求項６】
請求項１〜４のいずれかに記載の画像処理装置であって、
前記第２の特定部は、
連続する一組の前記非背景ブロックの前記連続数が第１の基準以上である場合に、前記一組の非背景ブロックのそれぞれについて、前記非背景ブロックに含まれる前記候補画素に関する指標値を算出し、
前記指標値が特定条件を満たす場合に、前記一組の非背景ブロックを前記文字ブロックとして特定する、画像処理装置。
【請求項７】
請求項６に記載の画像処理装置であって、
前記第２の特定部は、
前記一組の非背景ブロックのそれぞれについて、基準個数以上の前記候補画素を含む候補ブロックであるか否かを判断し、
前記一組の非背景ブロックに占める前記候補ブロックの割合を前記指標値として算出し、
前記候補ブロックの割合が基準割合以上である場合に、前記一組の非背景ブロックを前記文字ブロックとして特定する、画像処理装置。
【請求項８】
請求項６に記載の画像処理装置であって、
前記第２の特定部は、
前記一組の非背景ブロックのそれぞれについて、基準個数以上の前記候補画素を含む候補ブロックであるか前記基準個数未満の前記候補画素を含む非候補ブロックであるか否かを判断し、
前記一組の非背景ブロックにおいて前記非候補ブロックが所定方向に連続する最大連続数を前記指標値として算出し、
前記最大連続数が第３の基準以上である場合に、前記一組の非背景ブロックを前記文字ブロックとして特定する、画像処理装置。
【請求項９】
請求項１〜８のいずれかに記載の画像処理装置であって、
前記第１の特定部は、
前記対象画像データを用いて、前記対象画像データに含まれる前記複数個の画素の値に対応する複数個の第１の値であって、前記対象画像データの対応する画素の値に基づく前記複数個の第１の値を含む第１の画像データを生成し、
前記第１の画像データによって示される第１の画像内のエッジを示す複数個の第１のエッジ画素を特定し、
前記対象画像データを用いて、前記対象画像データに含まれる前記複数個の画素の値に基づく複数個の第２の値であって、前記対象画像データの対応する画素の値に基づく前記複数個の第２の値を含む第２の画像データを生成し、
前記第２の画像データによって示される第２の画像内のエッジを示す複数個の第２のエッジ画素を特定し、
前記対象画像内の複数個の画素のうち、前記複数個の第１のエッジ画素に対応する複数個の画素と、前記複数個の第２のエッジ画素に対応する複数個の画素と、を含む画素群であって、前記複数個の第１のエッジ画素とも前記複数個の第２のエッジ画素とも対応しない複数個の画素を含まない、前記画素群を、前記複数個の候補画素として特定する、画像処理装置。
【請求項１０】
請求項１〜９のいずれかに記載の画像処理装置であって、さらに、
前記対象画像データのうち、特定済みの前記文字画素の値に対して第１の画像処理を実行し、前記文字画素とは異なる画素の値に対して前記第１の画像処理とは異なる第２の画像処理を実行して、画像処理済みの前記対象画像データを生成する画像処理部を備える、画像処理装置。
【請求項１１】
請求項１０に記載の画像処理装置であって、さらに、
前記画像処理済みの前記対象画像データを用いて、印刷データを生成する印刷データ生成部を備える、画像処理装置。
【請求項１２】
コンピュータプログラムであって、
イメージセンサを用いて印刷物を読み取ることによって生成される対象画像データを取得する画像取得機能と、
前記対象画像データを用いて前記対象画像内の複数個の画素の中から文字画素の候補である複数個の候補画素を特定する第１の特定機能であって、前記対象画像内のエッジを構成する複数個のエッジ画素を前記候補画素として特定する処理を含む、前記第１の特定機能と、
前記対象画像データを用いて、前記対象画像上に配置される複数個のブロックのうちの非背景ブロックが連続する個数である連続数を特定する連続数特定機能であって、前記非背景ブロックは、前記対象画像の背景とは異なる特徴値を有するブロックである、前記連続数特定機能と、
前記連続数に基づいて前記複数個のブロックから文字ブロックを特定する第２の特定機能と、
前記候補画素の特定結果と、前記文字ブロックの特定結果と、に基づいて、前記対象画像内の複数個の前記文字画素を特定する第３の特定機能と、
をコンピュータに実現させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、イメージセンサを用いて印刷物を読み取ることによって生成される画像データに対する画像処理に関し、特に、画像内の文字画素を特定するための画像処理に関する。
【背景技術】
【０００２】
イメージセンサを用いて印刷物を読み取ることによって生成される画像データでは、該画像データによって示される画像内に、印刷物に含まれる網点が現れる。このような網点を構成する画素は、画像内の文字画素を特定する際に、文字画素として誤って特定されやすい。
【０００３】
特許文献１に開示された画像処理装置は、画素ごとにエッジであるか否かを判定するエッジ判定と、画素ごとに網点であるかを判定する網点判定と、を実行する。画像処理装置は、エッジであり、かつ、網点ではない画素を、文字を示す画素として特定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−３１８６５９号公報
【特許文献２】特開平３−２０８４６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように、網点を含む画像であっても、例えば、網点に起因して文字のない領域において文字画素が誤って特定されることを抑制して、文字画素を精度良く特定できる技術が求められていた。
【０００６】
本明細書は、網点を含む画像であっても、対象画像内の文字画素を精度良く特定できる技術を開示する。
【課題を解決するための手段】
【０００７】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００８】
［適用例１］画像処理装置であって、イメージセンサを用いて印刷物を読み取ることによって生成される対象画像データを取得する画像取得部と、前記対象画像データを用いて前記対象画像内の複数個の画素の中から文字画素の候補である複数個の候補画素を特定する第１の特定部であって、前記対象画像内のエッジを構成する複数個のエッジ画素を前記候補画素として特定する処理を含む、前記第１の特定部と、前記対象画像データを用いて、前記対象画像上に配置される複数個のブロックのうちの非背景ブロックが連続する個数である連続数を特定する連続数特定部であって、前記非背景ブロックは、前記対象画像の背景とは異なる特徴値を有するブロックである、前記連続数特定部と、前記連続数に基づいて前記複数個のブロックから文字ブロックを特定する第２の特定部と、前記候補画素の特定結果と、前記文字ブロックの特定結果と、に基づいて、前記対象画像内の複数個の前記文字画素を特定する第３の特定部と、を備える画像処理装置。
【０００９】
背景とは異なるオブジェクトは、文字や写真などの種類に応じて特徴の連続性が異なる。上記構成によれば、背景とは異なる非背景ブロックが連続する個数である連続数に基づいて文字ブロックが特定されるので、上述した特徴の連続性を考慮して適切に文字ブロックを特定できる。したがって、候補画素の特定結果と文字ブロックの特定結果とに基づいて、対象画像内の文字画素を精度良く特定できる。
【００１０】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、複合機、スキャナ、プリンタ、画像処理方法、これら装置の機能または上記方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１１】
【図１】画像処理装置の一例である複合機２００の構成を示すブロック図である。
【図２】画像処理のフローチャートである。
【図３】画像処理で用いられる画像の一例を示す第１の図である。
【図４】文字特定処理で用いられる画像の一例を示す図である。
【図５】第１の二値画像データ生成処理のフローチャートである。
【図６】エッジ強調処理のフローチャートである。
【図７】平滑化済みのＲ成分画像データとエッジ強調済みのＲ成分画像データとの説明図である。
【図８】レベル補正処理のためのトーンカーブの一例を示す図である。
【図９】第２の二値画像データ生成処理のフローチャートである。
【図１０】スキャンデータの最小成分値と最大成分値の説明図である。
【図１１】画像処理に用いられる画像の一例を示す第２の図である。
【図１２】第１実施例のブロック判定処理のフローチャートである。
【図１３】第１実施例のブロック判定処理のフローチャートである。
【図１４】スキャン画像ＳＩ上に配置される複数個のブロックＢＬの説明図である。
【図１５】ランレングス情報の説明図である。
【図１６】スキャン画像ＳＩ上に特定される各種のブロックの説明図である。
【図１７】第２実施例のブロック判定処理のフローチャートである。
【発明を実施するための形態】
【００１２】
Ａ．実施例：
Ａ−１：複合機２００の構成
実施の形態を実施例に基づき説明する。図１は、画像処理装置の一例である複合機２００の構成を示すブロック図である。複合機２００は、画像処理装置を制御するプロセッサであるＣＰＵ２１０と、ＤＲＡＭなどの揮発性記憶装置２２０と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置２３０と、液晶ディスプレイなどの表示部２４０と、液晶ディスプレイと重畳されたタッチパネルやボタンを含む操作部２５０と、ユーザの端末装置１００などの外部装置と通信を行うためのインタフェース（通信ＩＦ）２７０と、印刷実行部２８０と、読取実行部２９０と、を備えている。
【００１３】
読取実行部２９０は、ＣＰＵ２１０の制御に従って、一次元イメージセンサを用いて原稿を光学的に読み取ることによってスキャンデータを生成する。印刷実行部２８０は、ＣＰＵ２１０の制御に従って、複数種類のトナー、具体的には、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）、ブラック（Ｋ）のトナーを、色材として用いて、レーザ方式で用紙などの印刷媒体に画像を印刷する。具体的には、印刷実行部２８０は、感光ドラムを露光して静電潜像を形成し、該静電潜像にトナーを付着させてトナー像を形成する。印刷実行部２８０は、感光ドラム上に形成されたトナー像を用紙に転写する。なお、変形例では、印刷実行部２８０は、色材としてのインクを吐出して、用紙上に画像を形成するインクジェット方式の印刷実行部であっても良い。
【００１４】
揮発性記憶装置２２０は、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置２３０には、コンピュータプログラムＰＧが格納されている。コンピュータプログラムＰＧは、ＣＰＵ２１０に複合機２００の制御を実現させる制御プログラムである。本実施例では、コンピュータプログラムＰＧは、複合機２００の製造時に、不揮発性記憶装置２３０に予め格納される形態で提供される。これに代えて、コンピュータプログラムＰＧは、サーバからダウンロードされる形態で提供されても良く、ＤＶＤ−ＲＯＭなどに格納される形態で提供されてもよい。ＣＰＵ２１０は、コンピュータプログラムＰＧを実行することにより、後述する画像処理を実行することができる。
【００１５】
Ａ−２：画像処理
図２は、画像処理のフローチャートである。この画像処理は、例えば、ユーザが、読取実行部２９０の原稿台に、原稿を載置して、コピーの実行指示を入力した場合に実行される。この画像処理は、原稿を、読取実行部２９０を用いて読み取ることによって生成されるスキャンデータを取得し、該スキャンデータを用いて、原稿を示す印刷データを生成することで、いわゆる原稿のコピーを実現する処理である。
【００１６】
Ｓ１０では、ＣＰＵ２１０は、ユーザが原稿台に設置した原稿を、読取実行部２９０を用いて読み取ることによって、対象画像データとしてのスキャンデータを生成する。原稿は、例えば、複合機２００、あるいは、図示しないプリンタによって画像が印刷された印刷物である。生成されたスキャンデータは、揮発性記憶装置２２０（図１）のバッファ領域に格納される。スキャンデータは、複数個の画素の値を含み、複数個の画素の値のそれぞれは、画素の色をＲＧＢ表色系の色値（ＲＧＢ値とも呼ぶ）で表す。すなわち、スキャンデータは、ＲＧＢ画像データである。１個の画素のＲＧＢ値は、例えば、赤色（Ｒ）と緑色（Ｇ）と青色（Ｂ）との３個の色成分の値（以下、Ｒ値、Ｇ値、Ｂ値とも呼ぶ）を含んでいる。本実施例では、各成分値の階調数は、２５６階調である。
【００１７】
ＲＧＢ画像データであるスキャンデータは、ＲＧＢ表色系を構成する３個の色成分に対応する３個の成分画像データ（Ｒ成分画像データ、Ｇ成分画像データ、Ｂ成分画像データ）を含んでいると言うことができる。各成分画像データは、１種類の色成分の値を、画素の値とする画像データである。
【００１８】
図３は、画像処理で用いられる画像の一例を示す第１の図である。図３（Ａ）には、スキャンデータによって示されるスキャン画像ＳＩの一例が示されている。スキャン画像ＳＩは、複数個の画素を含む。該複数個の画素は、第１方向Ｄ１と、第１方向Ｄ１と直交する第２方向Ｄ２と、に沿って、マトリクス状に配置されている。
【００１９】
図３（Ａ）のスキャン画像ＳＩは、原稿の用紙の地色を示す白色の背景Ｂｇ１と、３個の文字とは異なるオブジェクトＯｂ１〜Ｏｂ３と、２個の文字Ｏｂ４、Ｏｂ５と、２個の文字Ｏｂ４、Ｏｂ５の背景Ｂｇ２と、を含んでいる。文字とは異なるオブジェクトは、例えば、写真である。背景Ｂｇ２は、白色とは異なる色を有する均一な画像である。
【００２０】
Ｓ２０では、ＣＰＵ２１０は、スキャンデータに対して、文字特定処理を実行する。文字特定処理は、スキャン画像ＳＩ内の複数個の画素を、文字を示す複数個の文字画素と、文字を示さない複数個の非文字画素と、に分類することによって、文字画素を特定する処理である。
【００２１】
文字特定処理によって、例えば、文字画素の値が「１」とされ、非文字画素の値が「０」とされた二値画像データ（文字特定データとも呼ぶ）が生成される。図３（Ｂ）には、文字特定データによって示される文字特定画像ＴＩの一例が示されている。この文字特定画像ＴＩには、スキャン画像ＳＩ内の２個の文字Ｏｂ４、Ｏｂ５のエッジを構成する複数個の画素が、文字画素Ｔｐ４、Ｔｐ５として、特定されている。なお、比較的大きな文字については、文字のエッジを構成する画素が文字画素として特定され、比較的小さな文字については、文字を構成する画素の全体が文字画素として特定される。文字特定処理の詳細は、後述する。
【００２２】
Ｓ３０では、ＣＰＵ２１０は、スキャンデータに対して、網点平滑化処理を実行して、平滑化画像を示す平滑化画像データを生成する。具体的には、ＣＰＵ２１０は、スキャンデータに含まれる複数個の非文字画素の値のそれぞれに対して、ガウスフィルタなどの平滑化フィルタを用いた平滑化処理を実行して、平滑化処理済みの複数個の非文字画素の値を算出する。平滑化処理の対象となる非文字画素は、Ｓ２０の分類処理によって生成された文字特定データを参照して特定される。ＣＰＵ２１０は、スキャンデータに含まれる複数個の文字画素の値と、平滑化処理済みの複数個の非文字画素の値と、を含む平滑化画像データを生成する。
【００２３】
図３（Ｃ）には、平滑化画像データによって示される平滑化画像ＧＩが示されている。平滑化画像ＧＩは、白色の背景Ｂｇ１ｇと、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ５、背景Ｂｇ２が平滑化されたオブジェクトＯｂ１ｇ〜Ｏｂ５ｇ、背景Ｂｇ２ｇを含んでいる。これらのオブジェクトＯｂ１ｇ〜Ｏｂ５ｇ、背景Ｂｇ２ｇのうち、文字Ｏｂ４ｇ、Ｏｂ５ｇ以外の部分（非文字部分とも呼ぶ）は、スキャン画像ＳＩと比較して、平滑化されている。
【００２４】
Ｓ４０では、ＣＰＵ２１０は、平滑化画像データに対して、文字鮮鋭化処理を実行して、処理済み画像データを生成する。具体的には、ＣＰＵ２１０は、平滑化画像データに含まれる複数個の文字画素の値のそれぞれに対して、アンシャープマスク処理や鮮鋭化フィルタを適用する処理などの鮮鋭化処理を実行して、鮮鋭化処理済みの複数個の文字画素の値を算出する。鮮鋭化処理の対象となる文字画素は、Ｓ２０の分類処理によって生成された文字特定データを参照して特定される。そして、ＣＰＵ２１０は、平滑化画像データに含まれる複数個の非文字画素の値（平滑化処理済みの複数個の非文字画素の値）と、鮮鋭化処理済みの複数個の文字画素の値と、を含む処理済み画像データを生成する。平滑化画像データに含まれる複数個の文字画素の値は、平滑化処理の対象ではないので、スキャンデータに含まれる複数個の文字画素の値と同じである。したがって、本ステップの文字鮮鋭化処理は、スキャンデータに含まれる複数個の文字画素の値に対して実行される、とも言うことができる。
【００２５】
図３（Ｄ）には、処理済み画像データによって示される処理済み画像ＦＩが示されている。処理済み画像ＦＩは、白色の背景Ｂｇ１ｆと、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ５、背景Ｂｇ２に対応するオブジェクトＯｂ１ｆ〜Ｏｂ５ｆ、背景Ｂｇ２ｆを含んでいる。これらのオブジェクトＯｂ１ｆ〜Ｏｂ５ｆ、背景Ｂｇ２ｆのうち、文字Ｏｂ４ｆ、Ｏｂ５ｆのエッジは、スキャン画像ＳＩ内の文字Ｏｂ４、Ｏｂ５や、平滑化画像ＧＩ内の文字Ｏｂ４ｇ、Ｏｂ５ｇと比較して、鮮鋭化されている。また、文字以外のオブジェクトＯｂ１ｆ〜Ｏｂ３ｆ、背景Ｂｇ２ｆのエッジは、鮮鋭化されていない。
【００２６】
以上の説明から解るように、処理済み画像ＦＩ内のオブジェクトＯｂ１ｆ〜Ｏｂ５ｆ、背景Ｂｇ２ｆは、鮮鋭化された文字と、平滑化された非文字を含む。
【００２７】
Ｓ５０では、ＣＰＵ２１０は、処理済み画像データを用いて印刷データを生成する印刷データ生成処理を実行する。具体的には、ＲＧＢ画像データである処理済み画像データに対して色変換処理が実行されて、印刷に用いられる色材に対応する色成分（Ｃ、Ｍ、Ｙ、Ｋの成分）を有する色値であるＣＭＹＫ値で画素ごとの色を示すＣＭＹＫ画像データが生成される。色変換処理は、例えば、公知のルックアップテーブルを参照して実行される。ＣＭＹＫ値画像データに対して、ハーフトーン処理が実行されて、印刷に用いられる色材ごと、かつ、画素ごとに、ドットの形成状態を示すドットデータが生成される。ドットの形成状態は、例えば、ドット有、ドット無の２種類の状態や、大ドット、中ドット、小ドット、ドット無の４種類の状態を取り得る。ハーフトーン処理は、例えば、ディザ法や、誤差拡散法に従って実行される。該ドットデータは、印刷時に用いられる順に並べ替えられ、該ドットデータに、印刷コマンドが付加されることによって、印刷データが生成される。
【００２８】
Ｓ６０では、ＣＰＵ２１０は、印刷処理を実行して、画像処理を終了する。具体的には、ＣＰＵ２１０は、印刷データを印刷実行部２８０に供給して、印刷実行部２８０に処理済み画像を印刷させる。
【００２９】
以上説明した画像処理によれば、画像処理部としてのＣＰＵ２１０は、スキャンデータのうち、特定済みの複数個の文字画素の値に対して第１の画像処理（具体的には、エッジ鮮鋭化処理）を実行し（Ｓ４０）、複数個の非文字画素の値に対して第１の画像処理とは異なる第２の画像処理（具体的には、網点平滑化処理）を実行し（Ｓ３０）、処理済み画像データを生成する。この結果、文字画素の値と、文字画素とは異なる画素の値と、に対して、互いに異なる画像処理が実行されるので、スキャンデータに対する適切な画像処理を実現できる。なお、変形例では、Ｓ４０の文字鮮鋭化処理が先に実行され、その後に、Ｓ３０の網点平滑化処理が実行されても良い。
【００３０】
より具体的には、鮮鋭化処理済みの複数個の文字画素の値と、平滑化処理済みの複数個の非文字画素の値と、を含む処理済み画像データが生成される（Ｓ３０、Ｓ４０）。この結果、見栄えの良い処理済み画像ＦＩを示す処理済み画像データを生成することができる。
【００３１】
例えば、図３（Ｄ）の処理済み画像ＦＩに示すように、処理済み画像データでは、文字画素の値には、鮮鋭化処理済みの値が用いられている。この結果、処理済み画像ＦＩの文字がシャープに見えるので、例えば、印刷される処理済み画像ＦＩの見栄えを向上することができる。
【００３２】
また、処理済み画像データでは、処理済み画像ＦＩ内の背景Ｂｇ２や、写真などの文字とは異なるオブジェクトを構成する非文字画素の値には、平滑化処理済みの値が用いられている。この結果、処理済み画像ＦＩの文字とは異なる部分に、例えば、モアレの原因となる網点が表れることを抑制できるので、印刷される処理済み画像ＦＩにモアレなどの不具合が発生することを抑制できる。この結果、印刷される処理済み画像ＦＩの見栄えを向上することができる。また、写真内のエッジが過度に強調されることが抑制されるので、画像ＦＩの見栄えを向上することができる。
【００３３】
例えば、スキャンデータの生成に用いられた原稿は、画像が印刷された印刷物である。このため、例えば、原稿内の白とは異なる色を有する背景Ｂｇ２などの均一な部分は、画像を形成するドットレベルでみると、網点を形成している。網点は、複数個のドットと、ドットが配置されていない部分（原稿の地色を示す部分）と、を含む。このために、スキャン画像ＳＩ内の背景Ｂｇ２を示す領域には、画素レベルでみると、網点が示されている。網点内のドットは、原稿の印刷時に用いられるディザマトリクスなどの影響によって、周期性を持って並んでいる。このためにスキャンデータを用いて印刷を行うと、ハーフトーン処理前の元画像（スキャン画像ＳＩ）内に存在している網点のドットの周期成分と、印刷画像を構成する網点のドットの周期成分と、が干渉して、モアレが表れやすい。本実施例の処理済み画像ＦＩでは、平滑化処理によって、元画像（スキャン画像ＳＩ）内のエッジとは異なる部分のドットの周期成分が低減される。この結果、処理済み画像データを用いて、処理済み画像ＦＩを印刷する場合に、例えば、印刷される処理済み画像ＦＩにモアレが発生することを抑制できる。
【００３４】
特に、上記画像処理では、印刷データ生成部としてのＣＰＵ２１０は、処理済み画像データを用いて、印刷データを生成する（Ｓ５０）ので、例えば、印刷される処理済み画像ＦＩに発生しやすいモアレを抑制可能な適切な印刷データを生成することができる。
【００３５】
Ａ−３：文字特定処理
図２のＳ２０の文字特定処理について説明する。Ｓ２２では、ＣＰＵ２１０は、スキャンデータを用いて、第１の二値画像データ生成処理を実行して、第１の二値画像データを生成する。第１の二値画像データは、エッジ画素と非エッジ画素とを示す二値データである。ここで、第１の二値画像データによって示されるエッジ画素を第１のエッジ画素とも呼び、第１の二値画像データによって示される非エッジ画素を第１の非エッジ画素とも呼ぶ。第１の二値画像データ生成処理の詳細は、後述する。
【００３６】
Ｓ２４では、ＣＰＵ２１０は、スキャンデータを用いて、第２の二値画像データ生成処理を実行して、第２の二値画像データを生成する。第２の二値画像データは、第１の二値画像データと同様に、エッジ画素と非エッジ画素とを示す二値データである。第２の二値画像データは、第１の二値画像データとは異なる処理によって生成され、第１の二値画像データとは異なるデータである。ここで、第２の二値画像データによって示されるエッジ画素を第２のエッジ画素とも呼び、第２の二値画像データによって示される非エッジ画素を第２の非エッジ画素とも呼ぶ。第２の二値画像データ生成処理の詳細は、後述する。
【００３７】
Ｓ２６では、ＣＰＵ２１０は、Ｓ２２にて生成された第１の二値画像データと、Ｓ２４にて生成された第２の二値画像データと、を合成する論理和合成処理を実行して、最終的に特定されるエッジ画素と非エッジ画素とを示す二値画像データ（エッジ特定データとも呼ぶ）を生成する。具体的には、ＣＰＵ２１０は、第１の二値画像データと、第２の二値画像データと、の各画素の論理和を取ることによって、エッジ特定データとしての二値画像データを生成する。
【００３８】
換言すれば、第１の特定部としてのＣＰＵ２１０は、第１の二値画像データによって特定される複数個の第１のエッジ画素と、第２の二値画像データによって特定される複数個の第２のエッジ画素と、を含む画素群であって、第１のエッジ画素とも第２のエッジ画素とも異なる画素を含まない画素群を、最終的に、複数個のエッジ画素（文字候補画素）として特定する。この結果、第１の二値画像データと第２の二値画像データとを用いて、対象画像内の画素がエッジ画素であるか否かを精度良く判断することができる。例えば、スキャン画像ＳＩ内のエッジ画素の特定漏れを効果的に低減できる。
【００３９】
エッジ特定データによって特定されるエッジ画素は、文字画素の候補となる画素であり、文字候補画素とも呼ぶ。例えば、エッジ特定データは、文字候補画素（本実施例ではエッジ画素）の値が「１」とされ、文字候補画素ではない画素（本実施例では、非エッジ画素）の値が「０」とされた二値画像データである。
【００４０】
図４は、文字特定処理で用いられる画像の一例を示す図である。図４（Ａ）には、エッジ特定データによって示されるエッジ特定画像ＥＩの一例が示されている。このエッジ特定画像ＥＩには、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ５のエッジＥｇ１〜Ｅｇ５を構成する複数個のエッジ画素と、背景Ｂｇ１と背景Ｂｇ２との境界のエッジＥｇ８を構成する複数個のエッジ画素とが、文字候補画素として特定されている。このように、文字候補画素によって示されるエッジは、文字のエッジを含む。また、該エッジは、文字とは異なるオブジェクト（例えば、写真）に含まれる細線などのエッジを含む。
【００４１】
Ｓ２８では、ＣＰＵ２１０は、スキャンデータに対して、ブロック判定処理を実行して、ブロックごとに、文字を含む文字ブロックと、文字を含まない非文字ブロックと、を示す二値画像データ（ブロック判定データとも呼ぶ）を生成する。ブロック判定処理は、スキャンデータを用いて、スキャン画像ＳＩ内に配置される複数個のブロックのそれぞれが、文字ブロックであるか否かをブロックごとに判断する処理である。１個のブロックは、Ｎ個（Ｎは２以上の整数）の画素を含む矩形の領域である。ブロック判定データは、文字ブロックを構成する画素の値が「１」とされ、非文字ブロックを構成する画素の値が「０」とされた二値画像データである。
【００４２】
図４（Ｂ）には、ブロック判定データによって示されるブロック判定画像ＢＩの一例が示されている。このブロック判定画像ＢＩには、スキャン画像ＳＩ内の文字Ｏｂ４、Ｏｂ５が配置された領域を示す文字ブロックＢｋ４、Ｂｋ５が特定されている。
【００４３】
Ｓ２９では、ＣＰＵ２１０は、Ｓ２６にて生成されたエッジ特定データと、Ｓ２８にて生成されたブロック判定データと、を合成する論理積合成処理を実行して、文字画素と非文字画素とを示す上述した文字特定データ（図３（Ｂ）参照）を生成する。具体的には、ＣＰＵ２１０は、エッジ特定データと、ブロック判定データと、の各画素の論理積を取ることによって、文字特定データとしての二値画像データを生成する。換言すれば、ＣＰＵ２１０は、エッジ特定データによって特定される複数個の候補画素のうち、ブロック判定データによって特定される文字ブロック内に位置する画素を、文字画素として特定する。ＣＰＵ２１０は、スキャン画像ＳＩ内の複数個の画素のうち、エッジ特定データによって特定される複数個の候補画素とは異なる画素、および、ブロック判定データによって特定される文字ブロックとは異なるブロック内に位置する画素を、非文字画素として特定する。文字特定データが生成されると、文字特定処理は、終了される。
【００４４】
Ａ−４：第１の二値画像データ生成処理
図２のＳ２２の第１の二値画像データ生成処理について説明する。図５は、第１の二値画像データ生成処理のフローチャートである。Ｓ１００では、ＣＰＵ２１０は、スキャンデータに含まれる３個の成分画像データ、すなわち、Ｒ成分画像データ、Ｇ成分画像データ、Ｂ成分画像データのそれぞれに対して、平滑化処理を実行する。これによって、３個の平滑化済みの成分画像データ、すなわち、平滑化済みのＲ成分画像データ、平滑化済みのＧ成分画像データ、平滑化済みのＢ成分画像データが生成される。
【００４５】
平滑化処理は、処理対象の成分画像データによって示される成分画像を平滑化する処理である。本実施例の平滑化処理は、処理対象の成分画像データの各画素の値に対して、所定の平滑化フィルタを適用して、平滑化済みの各画素の値を算出する処理である。平滑化フィルタには、例えば、縦７画素×横７画素のサイズのガウスフィルタが用いられる。
【００４６】
Ｓ１１０では、３個の平滑化済みの成分画像データのそれぞれに対して、エッジ強調処理を実行して、３個のエッジ強調済みの成分画像データ、すなわち、エッジ強調済みのＲ成分画像データ、エッジ強調済みのＧ成分画像データ、エッジ強調済みのＢ成分画像データを生成する。
【００４７】
図６は、エッジ強調処理のフローチャートである。ここでは、平滑化済みのＲ成分画像データが処理対象であるとして説明する。平滑化済みのＧ成分画像データおよび平滑化済みのＢ成分画像データに対しても同様の処理が行われる。
【００４８】
Ｓ２００では、ＣＰＵ２１０は、エッジ強調済みのＲ成分画像データを生成するためのキャンバスデータをメモリ（具体的には、揮発性記憶装置２２０のバッファ領域）に準備する。キャンバスデータによって示されるキャンバス（初期画像）は、スキャン画像ＳＩと同じサイズの画像、すなわち、同じ画素数の画像である。キャンバスデータの各画素の値は、所定の初期値（例えば、０）である。
【００４９】
Ｓ２０５では、ＣＰＵ２１０は、平滑化済みのＲ成分画像データによって示される平滑化済みのＲ成分画像内の複数個の画素から１個の注目画素を選択する。
【００５０】
Ｓ２１０では、ＣＰＵ２１０は、注目画素に対応するマスク値ＭＶを算出する。マスク値ＭＶは、注目画素の値ＴＶと、注目画素に対して上下左右に隣接する４個の画素を含む所定個数の周辺画素の値と、を用いて、注目画素の値ＴＶを平滑化する処理によって算出される。このために、マスク値ＭＶを、平滑値とも呼ぶ。具体的には、注目画素を中心とする縦１０画素×横１０画素の矩形の範囲内の１００個の画素の値の平均値が、注目画素に対応するマスク値ＭＶとして算出される。
【００５１】
Ｓ２２０では、ＣＰＵ２１０は、注目画素の値ＴＶと、注目画素に対応するマスク値ＭＶと、の差分ΔＶを算出する（ΔＶ＝（ＴＶ−ＭＶ））。
【００５２】
Ｓ２３０では、ＣＰＵ２１０は、差分ΔＶは、基準以上であるか否かを判断する。具体的には、差分ΔＶが、予め定められた閾値ＴＨ以上であるか否かが判断される。閾値ＴＨは、成分値が、０〜２５５の範囲の２５６階調の値である場合に、例えば、２０〜３０程度の値である。
【００５３】
差分ΔＶが基準以上である場合には（Ｓ２３０：ＹＥＳ）、Ｓ２４０にて、ＣＰＵ２１０は、注目画素の値ＴＶと、注目画素に対応する差分ΔＶと、の和（ＴＶ＋ΔＶ）を、処理済みの値として算出する。差分ΔＶが基準未満である場合には（Ｓ２３０：ＮＯ）、ＣＰＵ２１０は、Ｓ２４０をスキップする。
【００５４】
Ｓ２４５では、ＣＰＵ２１０は、注目画素の値を、Ｓ２００にて準備されたキャンバスデータに記録する。Ｓ２４０が実行された場合には、Ｓ２４０にて算出された注目画素の値ＴＶと、注目画素に対応する差分ΔＶと、の和が、処理済みの値としてキャンバスデータに記録される。Ｓ２４０がスキップされた場合には、平滑化済みのＲ成分画像データの注目画素の値が、そのまま、キャンバスデータに記録される。
【００５５】
Ｓ２５０では、ＣＰＵ２１０は、Ｒ成分画像内の全ての画素を注目画素として処理したか否かを判断する。未処理の画素がある場合には（Ｓ２５０：ＮＯ）、ＣＰＵ２１０は、Ｓ２０５に戻って、未処理の画素を注目画素として選択する。全ての画素が処理された場合には（Ｓ２５０：ＹＥＳ）、ＣＰＵ２１０は、エッジ強調処理を終了する。この時点でエッジ強調済みのＲ成分画像データが生成されている。
【００５６】
図７は、平滑化済みのＲ成分画像データと、エッジ強調済みのＲ成分画像データと、の説明図である。図７（Ａ）には、図５のＳ１００の平滑化処理前のＲ成分画像データを概念的に示すグラフが図示されている。図７（Ｂ）、図７（Ｃ）には、それぞれ、平滑化処理済みのＲ成分画像データ、および、エッジ強調済みのＲ成分画像データを概念的に示すグラフが図示されている。各グラフのうち、左側の部分には、網点を示す網点領域が概念的に示され、右側の部分には、文字などのオブジェクトのエッジを示すエッジ領域が概念的に示されている。各グラフの縦軸は、Ｒ成分の値を示し、横軸は、所定の方向（例えば、図３の第１方向Ｄ１）の位置を示す。
【００５７】
平滑化処理前のＲ成分画像データには、例えば、網点領域において、複数個の網点と、該網点間の複数個の隙間と、に対応する複数個の谷部Ｃ１〜Ｃ３と、複数個の山部Ｐ１、Ｐ２と、が現れる（図７（Ａ））。このような谷部Ｃ１〜Ｃ３と、複数個の山部Ｐ１、Ｐ２と、の間のＲ成分の値の差が大きいまま残存していると、後述するＳ１５０の二値化処理において、該Ｒ成分の値の差に起因して、網点を示すエッジ画素が特定されやすい。網点領域は、画素レベルの視点（網点を認識できる程度のミクロの視点）でみれば、網点を含むが、観察者の視点（網点を認識できない程度のマクロの視点）でみれば、均一な領域である。このため、本実施例では、網点領域内において、網点に起因するエッジ画素は、特定されるべきではない。網点領域は、図２のＳ３０で平滑化されることが好ましく、Ｓ４０にて、鮮鋭化されるべきではないからである。仮に、網点のエッジが鮮鋭化されると、網点の周期性が目立つために、該画像を印刷する場合に、モアレが目立ちやすくなるからである。例えば、スキャン画像ＳＩ内の背景Ｂｇ２などの均一な部分や、オブジェクトのエッジとは異なる部分において、エッジ画素は、特定されるべきではない。
【００５８】
平滑化済みのＲ成分画像データでは、平滑化処理によって、例えば、網点領域において、複数個の谷部Ｃ１ａ〜Ｃ３ａと、複数個の山部Ｐ１ａ、Ｐ２ａと、のＲ成分の値の差が、平滑化処理前のＲ成分画像データと比較して十分に小さくなっている（図７（Ｂ））。
【００５９】
ここで、本実施例のエッジ強調処理では、注目画素の値ＴＶと、注目画素に対応するマスク値ＭＶと、の差分ΔＶと、が大きいほど、エッジ強調の効果が大きくなる。このために、図７（Ｂ）の網点領域のように、比較的Ｒ成分の値の差が小さく平坦になっている領域では、エッジ強調の効果が小さくなる。また、本実施例のエッジ強調処理では、差分ΔＶが基準未満である場合には、エッジ強調が行われずに、平滑化済みのＲ成分画像データの画素の値がそのまま採用される（図６のＳ２３０）。この結果、エッジ強調済みのＲ成分画像データでは、エッジ強調処理が行われたにも関わらずに、例えば、網点領域において、複数個の谷部Ｃ１ｂ〜Ｃ３ｂと、複数個の山部Ｐ１ｂ、Ｐ２ｂと、のＲ成分の値の差は、平滑化処理済みのＲ成分画像データと比較して大きくなってはいない（図７（Ｃ））。すなわち、平滑化済みのＲ成分画像データと同様に、エッジ強調済みのＲ成分画像データでは、複数個の谷部Ｃ１ｂ〜Ｃ３ｂと、複数個の山部Ｐ１ｂ、Ｐ２ｂと、のＲ成分の値の差が、平滑化処理前のＲ成分画像データ（図７（Ａ））と比較して十分に小さくなっている（図７（Ｃ））。
【００６０】
平滑化処理前のＲ成分画像データには、例えば、文字などのオブジェクトのエッジを示すエッジ領域において、該エッジに対応してＲ成分の値が急激に変化する変動部Ｅ１が現れる（図７（Ａ））。このような変動部Ｅ１において、値の変化が大きいほど、後述するＳ１５０の二値化処理において、該Ｒ成分の値の差に起因して、オブジェクトのエッジを示すエッジ画素が特定されやすい。
【００６１】
平滑化済みのＲ成分画像データでは、平滑化処理によって、例えば、エッジ領域において、変動部Ｅ１ａにおける値の変化が、平滑化処理前のＲ成分画像データと比較して小さくなっている（緩やかになっている）（図７（Ｂ））。
【００６２】
しかしながら、文字などのオブジェクトのエッジに対応する変動部Ｅ１ａにおける値の変化は、網点領域における値の変化よりは十分に大きいので、エッジ強調処理によって、再度、急激な変化に戻される。この結果、エッジ強調済みのＲ成分画像データでは、エッジ領域において、変動部Ｅ１ｂのＲ成分の値の変化は、平滑化処理済みのＲ成分画像データと比較して大きくなっている（図７（Ｃ））。このため、エッジ強調済みのＲ成分画像データでは、エッジ領域において、変動部Ｅ１ｂにおける値の変化が、平滑化処理前のＲ成分画像データと比較して、同程度、もしくは、急激になっている（図７（Ｃ））。
【００６３】
以上の説明から解るように、本実施例では、各成分画像データに対して、平滑化処理（Ｓ１００）と、エッジ強調処理（Ｓ１１０）とを、この順序で実行するので、網点のエッジを示すエッジ画素が特定されることを抑制することができ、かつ、文字などのオブジェクトのエッジを示すエッジ画素が特定されることを促進することができる。この結果、スキャン画像ＳＩ内の複数個のエッジ画素を適切に特定することができる。
【００６４】
Ｒ、Ｇ、Ｂの３個の色成分に対応する３個の強調処理済みの成分画像データが生成されると、図５の１２０では、該３個の強調処理済みの成分画像データを用いて、輝度画像データを生成する。輝度画像データは、該３個の強調処理済みの成分画像データによって示される強調済画像内の複数個の画素の輝度を示すデータである。具体的には、ＣＰＵ２１０は、該３個の強調処理済みの成分画像データから取得される各画素のＲ値、Ｇ値、Ｂ値を用いて、各画素の輝度Ｙを算出する。輝度Ｙは、例えば、上記３成分の加重平均であり、具体的には、Ｙ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂの式を用いて算出できる。輝度画像データは、１種類の成分値（輝度を示す値）で構成される単成分画像データである。輝度成分データは、スキャンデータの対応する画素の値（ＲＧＢ値）に基づく輝度Ｙを画素ごとに含んでいる。輝度成分データは、第１の画像データの例である。
【００６５】
Ｓ１３０では、ＣＰＵ２１０は、生成された輝度画像データに対して、当該輝度画像データによって示される輝度画像内のエッジを抽出するエッジ抽出処理を実行して、エッジ抽出データを生成する。具体的には、ＣＰＵ２１０は、輝度画像データの各画素の値に、公知のエッジ抽出フィルタ、例えば、ソーベルフィルタ（Sobel filter）を適用して、各画素のエッジ強度を算出する。ＣＰＵ２１０は、これらのエッジ強度を、複数個の画素の値とするエッジ抽出データを生成する。
【００６６】
Ｓ１４０では、ＣＰＵ２１０は、エッジ抽出データに対して、レベル補正処理を実行して、補正処理済みのエッジ抽出データを生成する。レベル補正処理は、エッジ抽出データの画素の値が取り得る階調値の範囲（本実施例では、０〜２５５の範囲）内の特定範囲を拡大する補正処理である。
【００６７】
図８は、レベル補正処理のためのトーンカーブの一例を示す図である。具体的には、ＣＰＵ２１０は、エッジ抽出データの各画素に対して、図８のトーンカーブを適用する。この結果、閾値Ｖｂ（例えば、２４５）以上の値は、全て最大値（２５５）に変換されるとともに、閾値Ｖａ（例えば、１０）以下の値は、全て最小値（０）に変換される。そして、閾値Ｖａより大きく、かつ、閾値Ｖｂ未満の範囲は、０から２５５の範囲に拡大される。このように、後述するＳ１５０の二値化処理の前に、二値化閾値を含む範囲（図８の閾値Ｖａより大きく、かつ、閾値Ｖｂ未満の範囲）を拡大するので、二値化の精度を向上できる。
【００６８】
Ｓ１５０では、ＣＰＵ２１０は、補正処理済みのエッジ抽出データに対して、二値化処理を実行して、二値画像データを生成する。例えば、ＣＰＵ２１０は、エッジ画像データにおいて、画素の値（すなわち、エッジ強度）が閾値（例えば、１２８）以上である画素を、エッジ画素に分類し、画素の値が閾値未満である画素を、非エッジ画素に分類する。二値画像データでは、上述したように、エッジ画素の値は、「１」とされ、非エッジ画素の値は、「０」とされる。
【００６９】
以上説明した第１の二値画像データ生成処理によれば、図７を参照して説明したように、複数個の成分画像データのそれぞれに対して平滑化処理を実行することで、スキャン画像ＳＩ内に現れる網点の特徴を低減できる。さらに、図７を参照して説明したように、複数個の平滑化済みの成分画像データのそれぞれに対して、エッジ強調処理を実行することで、平滑化処理によって平滑化されたスキャン画像ＳＩ内のエッジを適切に強調できる。この結果、網点に起因するエッジ画素が特定されることを抑制しつつ、スキャン画像ＳＩ内のエッジ画素の適切に特定できる。
【００７０】
さらに、単成分画像データとして、輝度画像データが用いられるので、スキャン画像ＳＩ内の複数個のエッジ画素をより適切に特定できる。例えば、網点は、印刷に用いられるＣ、Ｍ、Ｙの原色を有することが多いが、このような複数種の原色間の差は、Ｒ、Ｇ、Ｂの各成分画像データにおいて比較的大きくなるが、輝度画像データでは、比較的小さくなる。このために、輝度画像データを用いることで、網点に起因するエッジ画素が特定されることを適切に抑制できる。また、文字の読みやすさのために、文字の色と背景の色とは、輝度に比較的大きな差があることが多い。このために、輝度画像データを用いることで、文字をはじめとするオブジェクトのエッジを示すエッジ画素を適切に特定できる。
【００７１】
さらに、図６のエッジ強調処理では、注目画素に対応するマスク値（平滑値とも呼ぶ）の算出（Ｓ２１０）と、注目画素の値ＴＶと注目画素に対応するマスク値との差分ΔＶの算出（Ｓ２２０）と、注目画素の値ＴＶと対応する差分ΔＶとの和（ＴＶ＋ΔＶ）の算出（Ｓ２４０）と、を含むいわゆるアンシャープマスク処理が実行される。この結果、スキャン画像ＳＩのエッジを適切に強調できるので、特定すべきエッジ画素の特定漏れを抑制できる。この結果、スキャン画像ＳＩ内のエッジ画素をより適切に特定できる。
【００７２】
さらに、図６のエッジ強調処理では、スキャン画像ＳＩ内の複数個の画素のうち、対応する差分ΔＶが基準以上である画素については、アンシャープマスク処理の対象とされ、該差分ΔＶが基準未満である画素については、アンシャープマスク処理の対象とされない（Ｓ２３０、２４０）。この結果、図７を参照して説明したように、スキャン画像ＳＩの網点に起因する画素間の値の差が強調されることをさらに抑制できるので、網点に起因するエッジ画素の特定をさらに抑制できる。そして、文字などのオブジェクトのエッジについては適切に強調できる。したがって、スキャン画像ＳＩ内のエッジ画素をさらに適切に特定できる。
【００７３】
Ａ−５：第２の二値画像データ生成処理
図２のＳ２４の第２の二値画像データ生成処理について説明する。図９は、第２の二値画像データ生成処理のフローチャートである。Ｓ３００では、ＣＰＵ２１０は、スキャンデータを用いて、最小成分データを生成する。具体的には、ＣＰＵ２１０は、スキャンデータに含まれる複数個の画素の値（ＲＧＢ値）のそれぞれから、最小成分値Ｖｍｉｎを取得する。最小成分値Ｖｍｉｎは、ＲＧＢ値に含まれる複数個の成分値（Ｒ値、Ｇ値、Ｂ値）のうちの最小値である。ＣＰＵ２１０は、これらの最小成分値Ｖｍｉｎを複数個の画素の値とする画像データを、最小成分データとして生成する。最小成分データは、スキャン画像ＳＩと同じサイズの画像を示す画像データである。最小成分データに含まれる複数個の画素の値のそれぞれは、スキャンデータの対応する画素の値（ＲＧＢ値）の最小成分値Ｖｍｉｎである。
【００７４】
図１０は、スキャンデータの最小成分値と最大成分値の説明図である。図１０（Ａ）〜図１０（Ｅ）には、ＲＧＢ値の一例として、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）、黒（Ｋ）、白（Ｗ）のＲＧＢ値が、棒グラフで図示されている。図１０に示すように、Ｃ、Ｍ、Ｙ、Ｋ、ＷのＲＧＢ値（Ｒ、Ｇ、Ｂ）は、それぞれ、（０、２５５、２５５）、（２５５、０、２５５）（２５５、２５５、０）、（０、０、０）、（２５５、２５５、２５５）である。
【００７５】
これらのＲＧＢ値の輝度Ｙは、上述したように、例えば、Ｙ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂの式を用いて算出できる。Ｃ、Ｍ、Ｙ、Ｋ、Ｗの輝度（０〜２５５の値で表す）は、約１８６、１１３、２２６、０、２５５であり、それぞれに異なる値となる（図１０）。これに対して、Ｃ、Ｍ、Ｙ、Ｋ、Ｗの最小成分値Ｖｍｉｎは、図１０に示すように、０、０、０、０、２５５となり、白（Ｗ）を除いて同じ値となる。
【００７６】
図１１は、画像処理に用いられる画像の一例を示す第２の図である。図１１（Ａ）は、スキャン画像ＳＩのうち、上述した網点領域の拡大図である。例えば、図１１（Ａ）の例では、スキャン画像ＳＩ内の網点領域は、複数個のＭドットＭＤと、複数個のＹドットＹＤと、を含んでいる。ここでは、説明のために、ＭドットＭＤを示す画像は、マゼンタの原色を有する均一な画像であり、ＹドットＹＤを示す画像は、イエロの原色を有する均一な画像であるとする。
【００７７】
図１１（Ｂ）には、最小成分データによって示される最小成分画像ＭＮＩの一例が示されている。この最小成分画像ＭＮＩは、図１１（Ａ）のスキャン画像ＳＩに対応している。最小成分画像ＭＮＩでは、スキャン画像ＳＩのＹドットＭＤに対応する領域ＭＤｂ内の画素の値と、ＹドットＹＤに対応する領域ＹＤｂ内の画素の値と、は互いに同じとなる。図１１（Ｃ）には、比較例として、各画素の輝度を示す輝度画像データによって示される輝度画像ＹＩが示されている。この輝度画像ＹＩは、図１１（Ａ）のスキャン画像ＳＩに対応している。輝度画像ＹＩでは、最小成分画像ＭＮＩとは異なり、スキャン画像ＳＩのＭドットＭＤに対応する領域ＭＤｄ内の画素の値と、ＹドットＹＤに対応する領域ＹＤｄ内の画素の値と、は互いに異なる。
【００７８】
以上の説明から解るように、最小成分画像ＭＮＩでは、スキャン画像ＳＩにおいて、原稿内のＣ、Ｍ、Ｙ、Ｋドットが形成された部分に対応する複数個の画素の値の間の差が、輝度画像ＹＩよりも小さくなる。そして、最小成分画像ＭＮＩでは、スキャン画像ＳＩにおいて、原稿内の地色（用紙の白色）を示す領域に対応する地色領域の画素の値が、ドットが形成された部分に対応する画素の値よりも大きくなる。
【００７９】
Ｓ３１０では、ＣＰＵ２１０は、生成された最小成分データに対して、該最小成分データによって示される最小成分画像ＭＮＩを平滑化する平滑化処理を実行して、平滑化済みの最小成分データを生成する。具体的には、ＣＰＵ２１０は、最小成分データの各画素の値に、所定の平滑化フィルタ、本実施例では、縦５画素×横５画素のガウスフィルタを適用することによって、平滑化済みの各画素の値を算出する。平滑化済みの最小成分データは、スキャンデータの対応する画素の値（ＲＧＢ値）に基づいて上述した処理で生成された平滑化済みの値を画素ごとに含んでいる。平滑化済みの最小成分データは、第２の画像データの例である。
【００８０】
Ｓ３２０では、ＣＰＵ２１０は、平滑化済みの最小成分データに対して、当該平滑化済みの最小成分データによって示される平滑化済みの最小成分画像ＭＮＩ内のエッジを抽出するエッジ抽出処理を実行して、エッジ抽出データを生成する。具体的には、ＣＰＵ２１０は、平滑化済みの最小成分データの各画素の値に、図５のＳ１３０の処理と同一のソーベルフィルタを適用して、エッジ強度を算出する。ＣＰＵ２１０は、これらのエッジ強度を、複数個の画素の値とするエッジ抽出データを生成する。
【００８１】
Ｓ３３０では、ＣＰＵ２１０は、エッジ抽出データに対して、レベル補正処理を実行して、補正処理済みのエッジ抽出データを生成する。レベル補正処理は、図５のＳ１４０の処理と同一である。Ｓ３４０では、ＣＰＵ２１０は、補正処理済みのエッジ抽出データに対して、図５のＳ１５０の処理と同様の二値化処理を実行して、二値画像データを生成する。二値画像データでは、上述したように、エッジ画素の値は、「１」とされ、非エッジ画素の値は、「０」とされる。
【００８２】
以上説明した第２の二値画像データ生成処理によれば、最小成分データに対してエッジ抽出処理が実行され、エッジ抽出データが生成される（Ｓ３２０）。そして、該エッジ抽出データを二値化する処理（Ｓ３４０）を含むエッジ画素特定処理が実行することによって、スキャン画像ＳＩの複数個のエッジ画素が特定される（Ｓ３３０、Ｓ３４０、図２のＳ２６）。最小成分データでは、図１１を参照して説明したように、網点領域において、画素間の値の差を抑制できるので、その後に、エッジ画素を特定する際に、網点に起因するエッジ画素が特定されることを抑制できる。したがって、スキャン画像ＳＩ内のエッジ画素を適切に特定できる。
【００８３】
より具体的に説明すると、網点領域を構成する要素は、Ｃ、Ｍ、Ｙ、Ｋの各ドットと、用紙の地色（白）と、の５種類である。最小成分データでは、これらの要素のうち、４種類の要素を示す画素の間の値の差を抑制できる。この結果、最小成分データを用いる場合には、網点のエッジを示すエッジ画素が特定されることを抑制することができる。
【００８４】
一方で、文字の色と背景の色とは、一方が、濃い色を有し、他方が薄い色を有する場合が多い。このために、文字と背景のうち、一方は、用紙の地色（白）を示す部分を比較的多く含み、他方は、Ｃ、Ｍ、Ｙ、Ｋのドットを示す部分を比較的多く含む場合が多い。図１０に示すように、最小成分データでは、Ｃ、Ｍ、Ｙ、Ｋのドットを示す部分の画素の値と、用紙の地色（白）を示す部分の画素の値と、の間で、大きな差がある。このために、最小成分データを用いて、エッジ画素を特定すると、文字のエッジを構成するエッジ画素は、適切に特定できる可能性が高い。特に、イエロ（Ｙ）は、Ｃ、Ｍ、Ｋと比較して濃度が低い（輝度が高い）。このために、用紙の地色（白）の背景に、イエロの文字がある場合には、輝度画像データを二値化しても、該イエロの文字のエッジを構成するエッジ画素を、適切に特定できない場合がある。本実施例では、このような場合でも該イエロの文字のエッジを構成するエッジ画素を、適切に特定できる。このために、輝度画像データを用いたエッジ画素の特定に加えて、最小成分データを用いたエッジ画素の特定を実行することで、輝度画像データだけでは、特定できない文字などのエッジ画素を特定し得る。この結果、スキャン画像ＳＩ内のエッジ画素の特定精度を向上できる。
【００８５】
さらに、最小成分データに対して、エッジ抽出処理の前に平滑化処理が実行される（Ｓ３１０）。この結果、平滑化処理によって、最小成分画像ＭＮＩ内の網点領域おいて、画素間の値の差を、さらに抑制できる。例えば、スキャン画像ＳＩ内の網点領域において、Ｃ、Ｍ、Ｙ、Ｋのドットの重なりや、読取実行部２９０での読取時のぼけなどによって、ドットを示す部分は、必ずしもＣ、Ｍ、Ｙ、Ｋの原色を有している訳ではない。このために、最小成分画像ＭＮＩ内では、Ｃ、Ｍ、Ｙ、Ｋの各ドットを示す複数個の画素の間の値が、小さくなってはいるものの、ゼロではない。平滑化処理によって、該画素の間の値の差をさらに小さくすることができる。この結果、網点に起因するエッジ画素が特定されることを、さらに抑制できる。また、第２の二値画像データ生成処理においても、第１の二値画像データ生成処理と同様に、レベル補正処理（Ｓ３３０）が実行されるので、スキャン画像ＳＩ内のエッジ画素の特定精度を向上できる。
【００８６】
以上説明したように、上記実施例では、２種類の単成分画像データ、すなわち、輝度画像データと、最小成分データと、を用いて、最終的にエッジ画素が特定される（図２のＳ２２〜Ｓ２６）。このように互いに異なる処理を用いて生成される２種類の単成分画像データを用いて、スキャン画像ＳＩ内の複数個のエッジ画素が特定されるので、スキャン画像ＳＩ内の複数個のエッジ画素の特定漏れを抑制できる。例えば、白の背景にイエロの文字がある場合には、白とイエロの輝度の差は比較的小さいので、輝度画像データを用いて、該文字のエッジを構成するエッジ画素を特定することは困難である。これに対して、図１０（Ｃ）、（Ｅ）から解るように、最小成分データでは、白とイエロとの差が大きく現れるので、白の背景にイエロの文字がある場合には、最小成分データを用いて、該文字のエッジを構成するエッジ画素を特定することは容易である。また、例えば、マゼンタの背景にイエロの文字がある場合には、最小成分データには、マゼンタとイエロとの差が現れないので、最小成分データを用いて、該文字のエッジを構成するエッジ画素を特定することは困難である。これに対して、マゼンタの背景にイエロの文字がある場合には、マゼンタとイエロの輝度の差は、比較的大きいので、輝度画像データを用いて、該文字のエッジを構成するエッジ画素を特定することは容易である。
【００８７】
また、輝度画像データに加えて用いられる単成分画像データは、最小成分データであるので、上述の通り、スキャン画像ＳＩ内の網点に起因するエッジ画素が特定されることは、抑制できる。
【００８８】
Ａ−６：ブロック判定処理
図２のＳ２８のブロック判定処理について説明する。図１２、図１３は、第１実施例のブロック判定処理のフローチャートである。図１４は、スキャン画像ＳＩ上に配置される複数個のブロックＢＬの説明図である。ブロック判定処理は、上述したように、スキャンデータを用いて、スキャン画像ＳＩ内に配置される複数個のブロックＢＬのそれぞれが、文字ブロックであるか否かを判断することによって、ブロック判定データを生成する処理である。
【００８９】
Ｓ４００では、ＣＰＵ２１０は、ブロック判定データを生成するためのキャンバスデータをメモリ（具体的には、揮発性記憶装置２２０のバッファ領域）に準備する。キャンバスデータによって示されるキャンバス（初期画像）は、スキャン画像ＳＩと同じサイズの画像、すなわち、同じ画素数の画像である。キャンバスデータの各画素の値は、所定の初期値（例えば、０）である。
【００９０】
Ｓ４０２では、ＣＰＵ２１０は、スキャン画像ＳＩ上に複数個のブロックＢＬを設定する。例えば、図１４に示すように、スキャン画像ＳＩは、マトリクス状に配置された縦Ｐ行×横Ｑ列のブロックＢＬに分割される（Ｐ、Ｑは２以上の整数）。１個のブロックＢＬは、縦ｍ×横ｎ個の（ｍ×ｎ）個の画素を含む矩形の領域である（ｍ、ｎは２以上の整数）。例えば、ｍ、ｎは、それぞれ、２０である。
【００９１】
Ｓ４０４では、ＣＰＵ２１０は、スキャン画像ＳＩにおいて設定された複数個のブロックＢＬから、１個の注目ブロックを選択する。
【００９２】
Ｓ４０５では、ＣＰＵ２１０は、公知の変換式を用いて、注目ブロックの各画素のＲＧＢ値をＨＳＶ表色系の色値（ＨＳＶ値とも呼ぶ）に変換する。各ＨＳＶ値は、３個の成分値、すなわち、色相を示すＨ値と、彩度を示すＳ値と、明度を示すＶ値と、を含む。Ｈ値は、０度〜３６０度の範囲の値を取る。Ｓ値は、０％〜１００％の範囲の値を取り、０％は無彩色を示す。Ｖ値は、０％〜１００％の値を取り、０％は黒、１００％は白を示す。
【００９３】
Ｓ４０７では、ＣＰＵ２１０は、注目ブロック内の各画素を８個の基本色のいずれかに分類する。８個の基本色は、Ｋ、Ｃ、Ｍ、Ｙ、Ｒ、Ｇ、Ｂ、Ｗの８色である。例えば、Ｓ値が所定の基準値（例えば、２０％）未満であり、かつ、Ｖ値が５０％未満の画素は、Ｋの画素に分類される。Ｓ値が所定の基準値未満であり、かつ、Ｖ値が５０％以上の画素は、Ｗの画素に分類される。Ｓ値が所定の基準値以上である画素は、Ｈ値（色相）に応じて、有彩色であるＣ、Ｍ、Ｙ、Ｒ、Ｇ、Ｂのいずれかに分類される。Ｃ、Ｍ、Ｙ、Ｒ、Ｇ、Ｂに対応するＨ値の範囲は、予め定められている。
【００９４】
Ｓ４１０では、ＣＰＵ２１０は、注目ブロックの最頻色を、注目ブロックの代表色（ブロック色とも呼ぶ）に決定する。注目ブロックの最頻色は、８個の基本色のうち、Ｓ４０７にて最も多数の画素が分類された色である。本実施例では、スキャン画像ＳＩの背景Ｂｇ１の色として、スキャンされた用紙の色である白（Ｗ）が想定されている。このために、背景Ｂｇ１を主に含むブロックＢＬのブロック色は、Ｗに決定され、背景Ｂｇ１とは異なるオブジェクトを主に含むブロックＢＬの代表色は、そのオブジェクトの色に応じて、Ｃ、Ｍ、Ｙ、Ｋ、Ｒ、Ｇ、Ｂのいずれかに決定される。
【００９５】
Ｓ４１５では、ＣＰＵ２１０は、スキャン画像ＳＩ内の全てのブロックＢＬを注目ブロックとして処理したか否かを判断する。未処理のブロックＢＬがある場合には（Ｓ４１５：ＮＯ）、ＣＰＵ２１０は、Ｓ４０４に処理を戻す。全てのブロックＢＬが処理された場合には（Ｓ４１５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ４２０に処理を進める。
【００９６】
Ｓ４２０では、ＣＰＵ２１０は、横方向（図１４の第１方向Ｄ１）のカラーランレングス情報ＲＬｃを生成する。カラーランレングス情報ＲＬｃは、第１方向Ｄ１に沿って、背景色（本実施例ではＷ）を代表色とするブロックＢＬ（背景ブロックとも呼ぶ）が連続する個数（連続数とも呼ぶ）と、背景色とは異なる色（本実際例では、Ｃ、Ｍ、Ｙ、Ｋ、Ｒ、Ｇ、Ｂ）を代表色とするブロックＢＬ（非背景ブロックとも呼ぶ）の連続数と、が記録された情報である。カラーランレングス情報ＲＬｃは、図１４のスキャン画像ＳＩの左端から右端まで伸びる１行分のブロック群（例えば、図１４のブロック群ＢＧ１）ごとに生成される。本実施例では、スキャン画像ＳＩに縦Ｐ行×横Ｑ列のブロックＢＬが配置されるので、１行分のブロック群は、Ｑ個のブロックＢＬを含む。そして、Ｐ行のブロック群に対応するＰ個のカラーランレングス情報ＲＬｃが生成される。
【００９７】
図１５は、ランレングス情報の説明図である。図１５（Ａ）には、１行分のブロック群ＢＧｃの一例が示されている。各ブロックＢＬ内のアルファベットは、そのブロックＢＬの代表色を示す。図１５（Ａ）にて、ハッチングされたブロックは非背景ブロックであり、ハッチングされていないブロックは、背景ブロックである。図１５（Ｂ）には、カラーランレングス情報ＲＬｃの一例が示されている。カラーランレングス情報ＲＬｃは、５個の連続数情報Ｌｃ１〜Ｌｃ５を含んでいる。これらの連続数情報Ｌｃ１〜Ｌｃ５は、それぞれ、図１５（Ａ）のブロック群ＢＧｃのうち、４個の連続する背景ブロックＡ１、５個の連続する非背景ブロックＡ２、２個の連続する背景ブロックＡ３、３個の連続する非背景ブロック群Ａ４、３個の連続する背景ブロックＡ５に対応している。
【００９８】
Ｓ４３０では、ＣＰＵ２１０は、注目非背景ブロックを選択する。具体的には、カラーランレングス情報ＲＬｃを参照して、スキャン画像ＳＩに配置された複数個のブロックＢＬの中から、第１方向Ｄ１に連続する１組の非背景ブロックを、注目非背景ブロックとして選択される。例えば、図１４の例では、スキャン画像ＳＩ内の文字ＴＸ１、ＴＸ２の一部に対応する非背景ブロックＡａ、Ａｂと、横線ＬＮに対応する非背景ブロックＡｃと、文字ＴＸ１、ＴＸ２より大きな文字ＢＴの一部に対応する非背景ブロックＡｄと、写真ＰＣの一部に対応する非背景ブロックＡｅと、が例示されている。これらの非背景ブロックが、注目非背景ブロックとして一組ずつ選択される。
【００９９】
Ｓ４３５は、ＣＰＵ２１０は、カラーランレングス情報ＲＬｃを参照して、注目非背景ブロックの連続数は、閾値ＴＨ１未満であるか否かを判断する。一般的に、小さな文字は、背景上に配置される細線で構成されることが多いために、小さな文字が配置された文字領域では、背景色を有する領域と非背景色（文字色）を有する領域とが短い間隔で繰り返される場合が多い。これに対して、写真などが配置された網点領域は、比較的大きな矩形の領域であり、該領域の全体、もしくは、ほとんどの部分が非背景色（写真内の様々な色）を有する。このために、文字に対応する非背景ブロックの連続数は、網点領域に対応する非背景ブロックの連続数と比較して小さくなる。閾値ＴＨ１は、例えば、小さな文字が配置された文字領域と、写真などが配置された網点領域と、を判別できるように、サンプル画像を用いて予め実験的に決定される。
【０１００】
注目非背景ブロックの連続数が閾値ＴＨ１未満である場合には（Ｓ４３５：ＹＥＳ）、Ｓ４４５にて、ＣＰＵ２１０は、注目非背景ブロックを、文字ブロックに決定する。注目非背景ブロックの連続数が閾値ＴＨ１以上である場合には（Ｓ４３５：ＮＯ）、Ｓ４５０にて、ＣＰＵ２１０は、注目非背景ブロックを、網点ブロックの候補である網点候補ブロックに決定する。
【０１０１】
Ｓ４５５では、ＣＰＵ２１０は、スキャン画像ＳＩ内の全ての非背景ブロックを注目ブロックとして処理したか否かを判断する。未処理の非背景ブロックがある場合には（Ｓ４５５：ＮＯ）、ＣＰＵ２１０は、Ｓ４３０に処理を戻す。全ての非背景ブロックが処理された場合には（Ｓ４５５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ４６０に処理を進める。
【０１０２】
Ｓ４６０の時点で、スキャン画像ＳＩ内の複数個のブロックＢＬは、背景ブロックと、文字ブロックと、網点候補ブロックと、のいずれかに分類されている。図１６は、スキャン画像ＳＩ上に特定される各種のブロックの説明図である。図１６の例では、スキャン画像ＳＩ内の文字ＴＸ１、ＴＸ２に対応する複数個のブロックＢＡ１、ＢＡ２は、文字ブロックに分類される。横線ＬＮに対応する複数個のブロックＢＡ３と、大きな文字ＢＴに対応する複数個のブロックＢＡ４と、写真ＰＣに対応する複数個のブロックＢＡ５は、網点候補ブロックに分類される。これらのブロックＢＡ１〜ＢＡ５とは異なるブロックＢＬは、背景ブロックに分類される。
【０１０３】
ここで、横線ＬＮは、文字と同様にエッジが強調された方が見栄えが向上する。また、大きな文字ＢＴは、文字であるのでエッジが強調された方が見栄えが向上する。このために、本来は、横線ＬＮや大きな文字ＢＴに対応するブロックＢＬは、文字ブロックとして特定されることが好ましく、網点候補ブロックとして特定されることは好ましくない。この段階では、横線ＬＮや大きな文字ＢＴに対応するブロックＢＬは、網点候補ブロックとして特定されているので、これらのブロックＢＬを文字ブロックとして特定するように、特定結果を修正することが好ましい。そこで、本実施例では、以下に説明する図１３のＳ４６０〜Ｓ５１５が実行される。
【０１０４】
Ｓ４６０では、ＣＰＵ２１０は、網点候補ブロックに対してラベリングを実行して、１以上の連続する網点候補ブロックから成る網点候補領域を特定する。ラベリングは、第１方向Ｄ１や第２方向Ｄ２に連続する１以上の網点候補ブロックで構成される連続な１つの領域に、１つの識別子を割り当て、網点候補ブロックで構成される互いに離れた領域に、互いに異なる識別子を割り当てる処理である。図１６の例では、上述した複数個のブロックＢＡ３と、複数個のブロックＢＡ４と、複数個のブロックＢＡ５と、に対応する３個の網点候補領域が特定される。
【０１０５】
Ｓ４６５では、ＣＰＵ２１０は、Ｓ４６０にて特定された１以上の網点候補領域から１個の注目網点候補領域を選択する。
【０１０６】
Ｓ４７０では、ＣＰＵ２１０は、注目網点候補領域を構成する各ブロックＢＬを、エッジブロックと、非エッジブロックと、のいずれかに分類する。具体的には、ＣＰＵ２１０は、図２のＳ２２の第１の二値画像データ生成処理（図５）にて生成された第１の二値画像データを参照して、各ブロックＢＬに含まれる第１のエッジ画素の個数をカウントする。ＣＰＵ２１０は、第１のエッジ画素の個数が所定の閾値ＴＨｅ以上であるブロックＢＬをエッジブロックに分類し、第１のエッジ画素の個数が所定の閾値ＴＨｅ未満であるブロックＢＬを非エッジブロックに分類する。変形例では、図２のＳ２４の第２の二値画像データ生成処理（図９）にて生成された第２の二値画像データを参照して、第２のエッジ画素の個数に基づいて、エッジブロックと非エッジブロックとに分類しても良い。第１のエッジ画素、第２のエッジ画素は、いずれも文字候補画素の一部である。あるいは、図２のＳ２６の論理和合成処理にて生成されたエッジ特定データを参照して、エッジ画素（文字候補画素）の個数に基づいて、エッジブロックと非エッジブロックとに分類しても良い。
【０１０７】
図１６において、網点候補領域となる複数個のブロックＢＡ３〜ＢＡ５において、クロスハッチングが付されたブロックＢＬは、エッジブロックであり、クロスハッチングが付されていないブロックＢＬは、非エッジブロックである。例えば、横線ＬＮに対応する網点候補領域（複数個のブロックＢＡ３）では、全てのブロックＢＬがエッジブロックに分類されている。大きな文字ＢＴに対応する網点候補領域（複数個のブロックＢＡ４）では、大きな文字ＢＴの外縁に対応するブロックＢＬだけがエッジブロックに分類されている。写真ＰＣに対応する網点候補領域（複数個のブロックＢＡ５）では、外縁に対応するブロックＢＬと、内部の一部のブロックＢＬと、がエッジブロックに分類されている。写真ＰＣの内部は、一般的に、滑らかな部分とエッジが存在する部分とが分散して混在している。このために、写真ＰＣに対応する網点候補領域では、写真ＰＣの内部にエッジブロックと非エッジブロックとが分散して混在している。
【０１０８】
Ｓ４７５では、ＣＰＵ２１０は、注目網点候補領域について横方向（図１６の第１方向Ｄ１）のエッジランレングス情報ＲＬｅを生成する。横方向のエッジランレングス情報ＲＬｅは、第１方向Ｄ１に沿って、エッジブロックが連続する個数（連続数とも呼ぶ）と、非エッジブロックの連続数と、が記録された情報である。横方向のエッジランレングス情報ＲＬｅは、注目網点候補領域（例えば、図１６の複数個のブロックＢＡ５から成る領域）について、左端から右端まで伸びる１行分のブロック群（例えば、図１６のブロック群ＢＧ２）ごとに生成される。例えば、注目網点候補領域がＫ行分（Ｋは１以上の整数）のブロック群を含む場合には、Ｋ行のブロック群に対応するＫ個の横方向のエッジランレングス情報ＲＬｅが生成される。
【０１０９】
図１５（Ｃ）には、網点候補領域の１行分のブロック群ＢＧｅの一例が示されている。ブロック群ＢＧｅにおいて、「Ｅ」が付されたブロックＢＬは、エッジブロックであり、空欄のブロックＢＬは、非エッジブロックである。図１５（Ｄ）には、エッジランレングス情報ＲＬｅの一例が示されている。エッジランレングス情報ＲＬｅは、６個の連続数情報Ｌｅ１〜Ｌｃ６を含んでいる。これらの連続数情報Ｌｅ１〜Ｌｃ６は、それぞれ、図１５（Ｃ）のブロック群ＢＧｅのうち、１個のエッジブロックＢ１、３個の連続する非エッジブロックＢ２、１個のエッジブロックＢ３、２個の連続する非エッジブロックＢ４、２個の連続するエッジブロックＢ５、２個の連続する非エッジブロックＢ６に対応している。
【０１１０】
Ｓ４８０では、ＣＰＵ２１０は、注目網点候補領域について縦方向（図１６の第２方向Ｄ２）のエッジランレングス情報ＲＬｅを生成する。縦方向のエッジランレングス情報ＲＬｅは、第２方向Ｄ２に沿って、エッジブロックの連続数と、非エッジブロックの連続数と、が記録された情報である。縦方向のエッジランレングス情報ＲＬｅは、注目網点候補領域（例えば、図１６の複数個のブロックＢＡ５から成る領域）について、上端から下端まで伸びる１列分のブロック群（例えば、図１６のブロック群ＢＧ３）ごとに生成される。例えば、注目網点候補領域がＬ列分（Ｌは１以上の整数）のブロック群を含む場合には、Ｌ列のブロック群に対応するＬ個の縦方向のエッジランレングス情報ＲＬｅが生成される。
【０１１１】
Ｓ４８５では、ＣＰＵ２１０は、注目網点候補領域における非エッジブロックの最大連続数Ｖｍｘを特定する。具体的には、横方向および縦方向のエッジランレングス情報ＲＬｅを参照して、非エッジブロックの横方向および縦方向の連続数のうちの最大値が、最大連続数Ｖｍｘとして特定される。
【０１１２】
Ｓ４９０では、ＣＰＵ２１０は、注目網点候補領域におけるエッジブロックが占める割合Ｅｒを算出する。割合Ｅｒは、注目網点候補領域におけるエッジブロックの個数を、注目網点候補領域の総ブロック数で除した値である。
【０１１３】
Ｓ４９５では、ＣＰＵ２１０は、エッジブロックが占める割合Ｅｒが、所定の閾値ＴＨ２以上であるか否かを判断する。横線ＬＮ（図１６）などの線（例えば、横線や縦線や斜めの線）に対応する網点候補領域では、ほとんどのブロックがエッジブロックに分類されると考えられる。このために、線に対応する網点候補領域では、エッジブロックが占める割合Ｅｒが、写真などに対応する網点候補領域と比較して高くなる。閾値ＴＨ２は、例えば、線に対応する網点候補領域と写真に対応する網点候補領域と、を判別できるように、サンプル画像を用いて予め実験的に決定される。閾値ＴＨ２は、例えば、８０％である。
【０１１４】
エッジブロックが占める割合Ｅｒが所定の閾値ＴＨ２以上である場合には（Ｓ４９５：ＹＥＳ）、Ｓ５０５にて、ＣＰＵ２１０は、注目網点候補領域を構成する全てのブロックＢＬを、文字ブロックに決定する。これによって、線に対応するブロックＢＬ（例えば、図１６の複数個のブロックＢＡ３）は、最終的に、文字ブロックとして特定される。エッジブロックが占める割合Ｅｒが所定の閾値ＴＨ２未満である場合には（Ｓ４９５：ＮＯ）、ＣＰＵ２１０は、Ｓ５００に処理を進める。
【０１１５】
Ｓ５００では、ＣＰＵ２１０は、非エッジブロックの最大連続数Ｖｍｘは、所定の閾値ＴＨ３以上であるか否かを判断する。大きな文字ＢＴは、一般的に、ベタ塗りのオブジェクトである。このために、大きな文字ＢＴの外縁にはエッジが存在するが、内部にはエッジはほとんど存在しない。これに対して写真ＰＣでは、外縁だけでなく、内部にも分散してエッジが存在する。このために、大きな文字ＢＴに対応する網点候補領域では、非エッジブロックの最大連続数Ｖｍｘが、写真などに対応する網点候補領域と比較して大きくなる。閾値ＴＨ３は、例えば、大きな文字ＢＴに対応する網点候補領域と写真に対応する網点候補領域と、を判別できるように、サンプル画像を用いて予め実験的に決定される。
【０１１６】
非エッジブロックの最大連続数Ｖｍｘが所定の閾値ＴＨ３以上である場合には（Ｓ５００：ＹＥＳ）、Ｓ５０５にて、ＣＰＵ２１０は、注目網点候補領域を構成する全てのブロックＢＬを、文字ブロックに決定する。これによって、大きな文字ＢＴに対応するブロックＢＬ（例えば、図１６の複数個のブロックＢＡ４）は、最終的に、文字ブロックとして特定される。非エッジブロックの最大連続数Ｖｍｘが所定の閾値ＴＨ３未満である場合には（Ｓ５００：ＮＯ）、Ｓ５１０にて、ＣＰＵ２１０は、注目網点候補領域を構成する全てのブロックＢＬを、網点ブロックに決定する。これによって、写真ＰＣに対応するブロックＢＬ（例えば、図１６の複数個のブロックＢＡ５）は、最終的に、網点ブロックとして特定される。
【０１１７】
Ｓ５１５では、ＣＰＵ２１０は、スキャン画像ＳＩ内の全ての網点候補領域を注目網点候補領域として処理したか否かを判断する。未処理の網点候補領域がある場合には（Ｓ５１５：ＮＯ）、ＣＰＵ２１０は、Ｓ４６５に処理を戻す。全ての網点候補領域が処理された場合には（Ｓ５１５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ５２０に処理を進める。
【０１１８】
Ｓ５２０の時点で、スキャン画像ＳＩ内の全てのブロックＢＬは、文字ブロックと、網点ブロックと、背景ブロックと、のいずれかに分類されている。Ｓ５２０では、ＣＰＵ２１０は、文字ブロックと、非文字ブロック（網点ブロックまたは背景ブロック）と、を示す二値画像データを、ブロック判定データとして生成する。
【０１１９】
以上説明した本実施例によれば、画像取得部としてのＣＰＵ２１０は、印刷物を読み取ることによって生成されるスキャンデータを対象画像データとして取得する（図２のＳ１０）。第１の特定部としてのＣＰＵ２１０は、スキャンデータを用いてスキャン画像ＳＩ内の複数個の画素の中から複数個の文字候補画素を特定する（図２のＳ２２〜Ｓ２６）。連続数特定部としてのＣＰＵ２１０は、スキャン画像ＳＩ上に配置される複数個のブロックＢＬのうちの非背景ブロックの連続数を特定する（図１２のＳ４２０）。第２の特定部としてのＣＰＵ２１０は、該連続数に基づいて複数個のブロックＢＬから文字ブロックを特定する（図１２、図１３のＳ４３０〜Ｓ５１５）。第３の特定部としてのＣＰＵ２１０は、文字候補画素の特定結果と、文字ブロックの特定結果と、に基づいて、スキャン画像ＳＩ内の複数個の文字画素を特定する（図２のＳ２９）。
【０１２０】
背景とは異なるオブジェクトは、文字や写真などの種類に応じて特徴の連続性が異なる。例えば、上述のように、文字を含む領域では、背景と細線とが交互に現れるため非背景ブロックの連続数は写真ＰＣの領域よりも小さくなりやすい。本実施例によれば、非背景ブロックの連続数に基づいて文字ブロックが特定されるので、上述した特徴の連続性を考慮して適切に文字ブロックを特定できる。したがって、文字候補画素の特定結果と文字ブロックの特定結果とに基づいて、スキャン画像ＳＩ内の文字画素を精度良く特定できる。例えば、写真ＰＣ内のオブジェクトのエッジや網点のエッジを、文字画素として誤って特定する不都合を低減できる。
【０１２１】
さらに、本実施例によれば、第３の特定部としてのＣＰＵ２１０は、特定された複数個の文字候補画素のうち、特定された文字ブロック内に位置する画素を、文字画素として特定する（図２のＳ２９）。この結果、複数個の文字候補画素の中から、精度良く文字画素を特定できる。
【０１２２】
さらに、本実施例によれば、各ブロックＢＬの特徴値としてとして、複数個のブロックの色に関する値、具体的には、各ブロックＢＬの代表色（８個の値（Ｃ、Ｍ、Ｙ、Ｋ、Ｒ、Ｇ、Ｂ、Ｗ）のいずれか）が用いられる。そして、非背景ブロックは、スキャン画像ＳＩの背景色（Ｗ）とは異なる色を有するブロックである。背景色とは異なる色を有するオブジェクトは、文字や写真などの種類に応じて色の連続性が異なる。例えば、文字を含む領域では、背景と細線とが交互に現れることに対応して、背景色とは異なる色（文字色）の領域と背景色の領域とが交互に現れる。これに対して写真ＰＣの領域では、背景色とは異なる色の領域が連続しやすい。このために、文字を含む領域では、背景色とは異なる色を有する非背景ブロックの連続数が、写真ＰＣの領域よりも小さくなりやすい。本実施例によれば、このような文字と写真との間の色に関する特徴の違いを利用して、精度良く文字ブロックを特定できる。
【０１２３】
さらに、本実施例によれば、第２の特定部としてのＣＰＵ２１０は、連続する一組の非背景ブロックの連続数が所定の閾値ＴＨ１（第１の基準とも呼ぶ）未満である場合に（図１２のＳ４３５にてＹＥＳ）、該一組の非背景ブロックを文字ブロックとして特定する（図１２のＳ４４５）。上述したように、文字は背景上に配置された細線で構成されるので、文字に対応する非背景ブロック（文字を構成する線に対応する）の連続数は比較的小さくなる可能性が高い。本実施例では、このような特性を利用して精度良く文字ブロックを特定できる。
【０１２４】
本実施例によれば、第２の特定部としてのＣＰＵ２１０は、連続する一組の非背景ブロックの連続数が閾値ＴＨ１以上である場合に（図１２のＳ４３５にてＮＯ）、該一組の非背景ブロック（網点候補領域を構成するブロックＢＬ）のそれぞれについて、非背景ブロックに含まれる文字候補画素（例えば、第１のエッジ画素）に関する指標値（例えば、最大連続数Ｖｍｘや割合Ｅｒ）を算出し、該指標値が特定条件を満たす場合に、該一組の非背景ブロックを前記文字ブロックとして特定する（図１３のＳ４６０〜Ｓ５１５）。
【０１２５】
一組の非背景ブロックの連続数が閾値ＴＨ１以上であっても、その非背景ブロックに含まれる文字候補画素に関する分布等によっては、これらのブロックＢＬに対応するオブジェクトは、写真ＰＣではなく、大きな文字ＢＴもしくは文字と同様の画像処理を施すべき線（例えば、横線ＬＮ）である可能性がある。本実施例によれば、このような場合であっても非背景ブロックに含まれる文字候補画素に関する指標値を用いて、精度良く文字ブロックを特定できる。
【０１２６】
より具体的には、第２の特定部としてのＣＰＵ２１０は、連続数が閾値ＴＨ１以上である一組の非背景ブロック、すなわち、網点候補領域を構成する複数個のブロックＢＬのそれぞれについて、閾値ＴＨｅ（基準個数とも呼ぶ）以上の個数の第１のエッジ画素（文字候補画素の一部である）を含むエッジブロックであるか否かを判断し（図１３のＳ４７０）、一組の非背景ブロックに占めるエッジブロックの割合Ｅｒを指標値として算出する（図１３のＳ４９０）。ＣＰＵ２１０は、エッジブロックの割合Ｅｒが所定の閾値ＴＨ２（基準割合とも呼ぶ）以上である場合に（図１３のＳ４９５にてＹＥＳ）、一組の非背景ブロックを文字ブロックとして特定する（図１３のＳ５０５）。上述のように、線に対応する非背景ブロックでは、該線のエッジに対応するエッジブロックの割合が比較的高くなる。本実施例では、このような特性を利用して、線に対応する非背景ブロックを文字ブロックとして精度良く特定することができる。
【０１２７】
さらに、第２の特定部としてのＣＰＵ２１０は、連続数が閾値ＴＨ１以上である一組の非背景ブロック、すなわち、網点候補領域を構成する複数個のブロックＢＬのそれぞれについて、閾値ＴＨｅ未満の個数の第１のエッジ画素（文字候補画素の一部である）を含む非エッジブロックであるか否かを判断し（図１３のＳ４７０）、一組の非背景ブロック（網点候補領域）において非エッジブロックが横方向または縦方向に連続する最大連続数Ｖｍｘを指標値として算出する（図１３のＳ４８５）。ＣＰＵ２１０は、最大連続数Ｖｍｘが所定の閾値ＴＨ３（第３の基準とも呼ぶ）以上である場合に（図１３の５００にてＹＥＳ）、一組の非背景ブロックを文字ブロックとして特定する（図１３のＳ５０５）。上述のように、大きな文字ＢＴに対応する非背景ブロックでは、最大連続数Ｖｍｘが、写真ＰＣなどに対応する非背景ブロックよりも大きくなる。本実施例では、このような特性を利用して、大きな文字ＢＴに対応する一組の非背景ブロックを文字ブロックとして精度良く特定することができる。
【０１２８】
Ｂ．第２実施例
第２実施例では、図２のＳ２８のブロック判定処理の内容が第１実施例とは異なる。第２実施例のその他の処理および構成は、第１実施例と同一である。図１７は、第２実施例のブロック判定処理のフローチャートである。図１７のブロック判定処理では、図１３のＳ４６０〜Ｓ５１５の処理は実行されない。その代わりに、図１７のブロック判定処理では、Ｓ４３５の後にＳ４４０Ｂの処理が追加されている。
【０１２９】
図１７のブロック判定処理のＳ４００〜Ｓ４２０の処理は、図１２のＳ４００〜Ｓ４２０の処理と同一である。Ｓ４３０では、図１２のＳ４３０と同様に、ＣＰＵ２１０は、注目非背景ブロックを選択する。Ｓ４３５では、図１２のＳ４３５と同様に、ＣＰＵ２１０は、カラーランレングス情報ＲＬｃを参照して、注目非背景ブロックの連続数は、閾値ＴＨ１未満であるか否かを判断する。
【０１３０】
注目非背景ブロックの連続数が閾値ＴＨ１未満である場合には（Ｓ４３５：ＹＥＳ）、Ｓ４４５にて、図１２のＳ４４５と同様に、ＣＰＵ２１０は、注目非背景ブロックを、文字ブロックに決定する。注目非背景ブロックの連続数が閾値ＴＨ１以上である場合には（Ｓ４３５：ＮＯ）、Ｓ４４０Ｂにて、ＣＰＵ２１０は、注目非背景ブロックの色数は所定の閾値ＴＨｃ未満であるか否かを判断する。注目非背景ブロックは、閾値ＴＨ１以上の個数のブロックＢＬで構成されており、これらの各ブロックの代表色は、Ｃ、Ｍ、Ｙ、Ｋ、Ｒ、Ｇ、Ｂのいずれかに決定されている（Ｓ４１０）。注目非背景ブロックを構成する閾値ＴＨ１以上の個数のブロックＢＬに含まれる代表色の数が色数として特定される。該色数が所定の閾値ＴＨｃ未満であるか否かが判断される。
【０１３１】
一般的に、大きな文字ＢＴや横線ＬＮなどの線は、一色でベタ塗りされていることが多い。これに対して、写真ＰＣは、様々な色を含むことが多い。このために、注目非背景ブロックが大きな文字ＢＴや横線ＬＮなどの線に対応する場合には、注目非背景色ブロックの色数は、注目非背景ブロックが写真ＰＣに対応する場合よりも少なくなる。閾値ＴＨｃは、例えば、大きな文字や線に対応する非背景ブロックと、写真などが配置された非背景ブロックと、を判別できるように、サンプル画像を用いて予め実験的に決定される。閾値ＴＨｃは、例えば、１である。
【０１３２】
注目非背景ブロックの色数が所定の閾値ＴＨｃ未満である場合には（Ｓ４４０Ｂ：ＹＥＳ）、Ｓ４４５にて、ＣＰＵ２１０は、注目非背景ブロックを構成する全てのブロックＢＬを、文字ブロックに決定する。これによって、線に対応するブロックＢＬおよび大きな文字に対応するブロックＢＬは、文字ブロックとして特定される。注目非背景ブロックの色数が所定の閾値ＴＨｃ以上である場合には（Ｓ４４０Ｂ：ＮＯ）、Ｓ４５０Ｂにて、ＣＰＵ２１０は、注目非背景ブロックを構成する全てのブロックＢＬを、網点ブロックに決定する。これによって、写真ＰＣに対応するブロックＢＬは、網点ブロックとして特定される。
【０１３３】
Ｓ４５５では、ＣＰＵ２１０は、スキャン画像ＳＩ内の全ての非背景ブロックを注目ブロックとして処理したか否かを判断する。未処理の非背景ブロックがある場合には（Ｓ４５５：ＮＯ）、ＣＰＵ２１０は、Ｓ４３０に処理を戻す。全ての非背景ブロックが処理された場合には（Ｓ４５５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ５２０に処理を進める。
【０１３４】
Ｓ５２０の時点で、スキャン画像ＳＩ内の複数個のブロックＢＬは、背景ブロックと、文字ブロックと、網点ブロックと、のいずれかに分類されている。Ｓ５２０では、図１３のＳ５２０と同様に、ＣＰＵ２１０は、文字ブロックと、非文字ブロック（網点ブロックまたは背景ブロック）と、を示す二値画像データを、ブロック判定データとして生成する。
【０１３５】
以上説明した第２実施例によれば、第２の特定部としてのＣＰＵ２１０は、連続する一組の非背景ブロック（注目非背景ブロック）の連続数が閾値ＴＨ１（第１の基準とも呼ぶ）以上であり（図１６のＳ４３５にてＮＯ）、かつ、一組の非背景ブロックの色数が閾値ＴＨｃ（第２の基準とも呼ぶ）未満である場合に（図１６のＳ４４０ＢにてＹＥＳ）、該一組の非背景ブロックを文字ブロックとして特定する（図１６のＳ４４５）。
【０１３６】
一組の非背景ブロックの連続数が閾値ＴＨ１以上であっても色数が少ない場合には、これらのブロックＢＬ内のオブジェクトは、写真ではなく、大きな文字ＢＴもしくは文字と同様の画像処理を施すべき線（例えば、横線ＬＮ）である可能性が高い。本実施例によれば、このような色数の特性を利用して、大きな文字ＢＴや線に対応する非背景ブロックを文字ブロックとして精度良く特定することができる。
【０１３７】
Ｃ．変形例：
（１）上記実施例では、ブロックＢＬの特徴値として代表色を示す値（ＣＭＹＫＲＧＢＷの８値のいずれか）が採用され、代表色が白（Ｗ）であるブロックＢＬが背景ブロックとして特定され、代表色が白以外の色であるブロックＢＬが非背景ブロックとして特定される（図１２のＳ４０４〜Ｓ４２０）。これに限らず、例えば、白以外の用紙の原稿が用いられる場合には、当該用紙の色を示す特徴値（例えば、平均色値）を有するブロックＢＬが背景ブロックとして特定され、当該用紙の色とは異なる色を示す特徴値を有するブロックＢＬが非背景ブロックとして特定されても良い。
【０１３８】
また、ブロックＢＬの特徴値として平均明度や平均輝度や画素値のバラツキなどが採用されても良い。例えば、平均明度や平均輝度が基準以上であるブロックＢＬが背景ブロックとして特定され、平均明度や平均輝度が基準未満であるブロックＢＬが非背景ブロックとして特定されても良い。また、画素値のバラツキが基準未満であるブロックＢＬが背景ブロックとして特定され、画素値のバラツキが基準以上であるブロックＢＬが非背景ブロックとして特定されても良い。
【０１３９】
（２）上記実施例では、図２のＳ２６にて特定された複数個の文字候補画素のうち、図２のＳ２８にて特定された文字ブロック内に位置する画素を、文字画素として特定している（図２のＳ２９）。これに限らず、文字候補画素の特定結果と、文字ブロックの特定結果と、に基づく他の手法で、最終的に文字画素が特定されても良い。例えば、文字ブロックに含まれる文字候補画素は、文字である可能性がある比較的広い範囲の色（例えば、黒、赤、青、黄など）を有していれば、文字画素として特定され、非文字ブロックに含まれる文字候補画素は、文字である可能性が高い色（例えば、黒のみ）を有する場合に限り、文字画素として特定されても良い。
【０１４０】
（３）上記実施例では、一組の非背景ブロックの連続数が閾値ＴＨ１未満である場合には、一組の非背景ブロックを文字ブロックとして特定している。これに代えて、例えば、設定されるブロックＢＬのサイズが、特定すべき文字のサイズの下限と比較して、大幅に小さい場合には、一組の非背景ブロックの連続数が、所定の下限値以上、かつ、所定の上限値未満である場合に限り、該一組の非背景ブロックを文字ブロックとして特定しても良い。
【０１４１】
（４）第１の二値画像データ生成処理（図５）では、単成分画像データとして、輝度画像データが用いられる（Ｓ１２０）。これに代えて、スキャンデータの対応する画素のＲＧＢ値に含まれる３個の成分値（Ｒ値、Ｇ値、Ｂ値）の平均値を、各画素の値とする平均成分値画像データが用いられても良い。
【０１４２】
（５）上記実施例の第２の二値画像データ生成処理（図９）では、単成分画像データとして、最小成分データが用いられる（Ｓ３００）。これに代えて、最大成分データや反転最小成分データが用いられても良い。
【０１４３】
最大成分データは、スキャンデータに含まれる複数個の画素に対応する複数個の値を含み、該複数個の値のそれぞれは、スキャンデータの対応する画素の最大成分値Ｖｍａｘである。最大成分値Ｖｍａｘは、スキャンデータの対応する画素のＲＧＢ値に含まれる複数個の成分値（Ｒ値、Ｇ値、Ｂ値）のうちの最大値である。
【０１４４】
反転最小成分データは、以下のように、取得される。先ず、スキャンデータに含まれる複数個の画素の値（ＲＧＢ値）のそれぞれについて、複数個の成分値（Ｒ値、Ｇ値、Ｂ値）が反転された反転済みの色値が生成される。反転前のＲＧＢ値を（Ｒｉｎ、Ｇｉｎ、Ｂｉｎ）とすると、反転済みのＲＧＢ値（Ｒｏｕｔ、Ｇｏｕｔ、Ｂｏｕｔ）は、以下の式（１）〜（３）で表される。
【０１４５】
Ｒｏｕｔ＝Ｒｍａｘ−Ｒｉｎ          …（１）
Ｇｏｕｔ＝Ｇｍａｘ−Ｇｉｎ          …（２）
Ｂｏｕｔ＝Ｂｍａｘ−Ｂｉｎ          …（３）
【０１４６】
ここで、Ｒｍａｘ、Ｇｍａｘ、Ｂｍａｘは、それぞれ、Ｒ値、Ｇ値、Ｂ値が取り得る値の最大値であり、本実施例では、Ｒｍａｘ＝Ｇｍａｘ＝Ｂｍａｘ＝２５５である。これらの反転済みのＲＧＢ値を複数個の画素の値とする画像データが、反転画像データとして生成される。そして、反転画像データを用いて、反転最小成分データが生成される。具体的には、反転画像データに含まれる複数個の反転済みのＲＧＢ値のそれぞれから、反転最小成分値ＶＲｍｉｎが取得される。反転最小成分値ＶＲｍｉｎは、該反転済みのＲＧＢ値に含まれる複数個の成分値（Ｒ値、Ｇ値、Ｂ値）のうちの最小値である。反転最小成分データは、これらの反転最小成分値ＶＲｍｉｎを、複数個の画素の値とする画像データである。
【０１４７】
反転最小成分値ＶＲｍｉｎは、最大成分値の反転値であり、ＶＲｍｉｎ＝（２５５−Ｖｍａｘ）の関係が成り立つ。このために、最大成分データと反転最小成分データとは、両方とも、スキャンデータの各画素の値に含まれる複数個の成分値のうちの最大値に基づく値（最大値の反転値、あるいは、最大値そのもの）を、画素の値とする画像データである、と言うことができる。
【０１４８】
図１０に示すように、Ｃ、Ｍ、Ｙ、Ｋ、Ｗの最大成分値Ｖｍａｘは、２５５、２５５、２５５、０、２５５となり、黒（Ｋ）を除いて同じ値となる。したがって、最大成分データや反転最小成分データにおいては、網点領域を構成する５種類の要素、すなわち、Ｃ、Ｍ、Ｙ、Ｋの各ドットと、用紙の地色（白）と、のうちの４種類の要素（Ｃ、Ｍ、Ｙのドットと、用紙の地色（白））を示す画素間の値の差が抑制される。この結果、最大成分データや反転最小成分データを用いる場合には、最小成分データを用いる場合と同様に、網点に起因するエッジ画素が特定されることを抑制できる。
【０１４９】
（６）上記実施例の図２の画像処理において、Ｓ２４の第２の二値画像データ生成処理およびＳ２６の論理和合成処理は省略されても良い。すなわち、Ｓ２２の第１の二値画像データ生成処理において生成される第１の二値画像データが、最終的なエッジ特定データであっても良い。逆に、Ｓ２２の第１の二値画像データ生成処理およびＳ２６の論理和合成処理は省略されても良い。すなわち、Ｓ２４の第２の二値画像データ生成処理において生成される第２の二値画像データが、最終的なエッジ特定データであっても良い。
【０１５０】
（７）上記実施例では、文字画素に対して、文字鮮鋭化処理が実行され（図２のＳ４０）、非文字画素に対して、網点平滑化処理が実行される（図２のＳ３０）。これに代えて、文字画素に対しては、文字の見栄えを向上するためのアンチエイリアス処理が実行されても良い。また、非文字画素に対しては、例えば、印刷時の色材の使用量を減らすために、色を飛ばす処理（白に変換する処理）が実行されても良い。一般的には、文字画素と、非文字画素と、に互いに異なる画像処理が実行されることが好ましい。あるいは、文字画素と非文字画素のいずれか一方に対して、特定の画像処理が実行され、他方に対して、該特定の画像処理が実行されなくても良い。
【０１５１】
（８）上記実施例では、図５のＳ１３０や図９のＳ３２０のエッジ抽出処理において、ソーベルフィルタ（Sobel filter）が用いられている。これに代えて、これらエッジ抽出処理では、ロバーツフィルタや、ラプラシアンフィルタなどの他のエッジ抽出フィルタが用いられても良い。
【０１５２】
（９）上記実施例では、対象画像データは、スキャンデータであるが、これに限られない。対象画像データは、２次元イメージセンサを備えるデジタルカメラによって印刷物を読み取ることによって生成されても良い。
【０１５３】
（１０）上記実施例では、第１の二値画像データと、第２の二値画像データと、の論理和を取ることによって、エッジ特定データが生成される（図２のＳ２６）。これに代えて、第１の二値画像データと、第２の二値画像データと、第３の二値画像データと、の論理和を取ることによって、エッジ特定データが生成されても良い。第３の二値画像データには、例えば、上述した最大成分データを用いて生成される二値画像データが用いられても良い。これによって、文字などのエッジの特定漏れをさらに抑制することができる。
【０１５４】
（１１）上記実施例の第１の二値画像データ生成処理（図５）や第２の二値画像データ生成処理（図９）は、適宜に変更可能である。例えば、図５のＳ１１０、Ｓ１４０の処理の全部または一部は、省略可能である。また、図９のＳ３１０、Ｓ３３０のうちの全部または一部は、省略可能である。
【０１５５】
（１２）図２の画像処理を実現する画像処理装置は、複合機２００に限らず、種々の装置であってよい。例えば、スキャナやデジタルカメラが、自身で生成された画像データを用いて、プリンタに供給するための印刷データを生成するために、図２の画像処理を実行しても良い。また、例えば、スキャナやプリンタと通信可能な接続される端末装置（例えば、端末装置１００）やサーバ（図示省略）が、スキャナから取得したスキャンデータを用いて、図２の画像処理を実行して、印刷データを生成し、該印刷データをプリンタに供給しても良い。また、ネットワークを介して互いに通信可能な複数個のコンピュータ（例えば、クラウドサーバ）が、画像処理に要する機能を一部ずつ分担して、全体として、画像処理を実行してもよい。この場合、複数個のコンピュータの全体が、画像処理装置の例である。
【０１５６】
（１３）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図２のＳ２６の論理和合成処理やＳ２９の論理積合成処理は、ＡＳＩＣなどの専用のハードウェアによって、実行されても良い。
【０１５７】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１５８】
１００…端末装置、２００…複合機、２１０…ＣＰＵ、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２４０…表示部、２５０…操作部、Ｓ２７０…通信ＩＦ、２８０…印刷実行部、２９０…読取実行部、ＰＧ…コンピュータプログラム、ＳＩ…スキャン画像、ＴＩ…文字特定画像、ＧＩ…平滑化画像、ＦＩ…処理済み画像、ＥＩ…エッジ特定画像、ＢＩ…ブロック判定画像、ＹＩ…輝度画像、ＢＬ…ブロック
【図１】
2020092363.tif 000003
【図２】
2020092363.tif 000004
【図３】
2020092363.tif 000005
【図４】
2020092363.tif 000006
【図５】
2020092363.tif 000007
【図６】
2020092363.tif 000008
【図７】
2020092363.tif 000009
【図８】
2020092363.tif 000010
【図９】
2020092363.tif 000011
【図１０】
2020092363.tif 000012
【図１１】
2020092363.tif 000013
【図１２】
2020092363.tif 000014
【図１３】
2020092363.tif 000015
【図１４】
2020092363.tif 000016
【図１５】
2020092363.tif 000017
【図１６】
2020092363.tif 000018
【図１７】
2020092363.tif 000019