(57)【要約】【課題】対象画像内の文字のエッジを適切に特定し強調する。【解決手段】画像処理装置は、対象画像データを用いて、特定種の文字のエッジを強調する強調処理を実行する。特定種の文字は、第１の色の文字であり、かつ、第１の色とは異なる第２の色の背景上に位置する文字である。画像処理装置は、機械学習モデルを用いて、注目画素を含む注目領域が文字領域であるか否かを判断し、注目画素の値を用いて、注目画素が第１の色を有するべきことを示す特定の判断条件を満たすか否かを判断し、注目領域が文字領域であると判断され、かつ、注目画素が特定の判断条件を満たす場合に、注目画素を第１の色を有するべき第１の画素として特定し、特定済みの第１の画素の周辺に位置する第２の色を有すべき第２の画素を特定し、特定済みの第１の画素に対応する画素が第１の色を有し、特定済みの第２の画素に対応する画素が第２の色を有するエッジ強調画像データを生成する。【選択図】  図５
2019114928.tif 000002
【特許請求の範囲】
【請求項１】
画像処理装置であって、
複数個の画素を含む対象画像を示す対象画像データを取得する画像取得部と、
前記対象画像データを用いて、前記対象画像内の特定種の文字のエッジを強調する強調処理を実行して、エッジ強調画像データを生成するエッジ強調部であって、前記特定種の文字は、第１の色の文字であり、かつ、前記第１の色とは異なる第２の色の背景上に位置する文字である、前記エッジ強調部と、
を備え、
前記エッジ強調部は、
注目画素を含む注目領域が文字を示す文字領域であるか否かを判断する第１判断部であって、前記文字領域であるか否かの判断は、文字を示す複数個の文字画像データと文字を示さない複数個の非文字画像データとを用いてトレーニングされた機械学習モデルを用いて実行される、前記第１判断部と、
前記注目画素の値を用いて、前記注目画素が前記第１の色を有するべきことを示す特定の判断条件を満たすか否かを判断する第２判断部と、
前記注目領域が前記文字領域であると判断され、かつ、前記注目画素が前記特定の判断条件を満たす場合に、前記注目画素を前記第１の色を有するべき第１の画素として特定する第１特定部と、
特定済みの前記第１の画素の周辺に位置する第２の画素であって前記第２の色を有すべき前記第２の画素を特定する第２特定部と、
特定済みの前記第１の画素に対応する画素が前記第１の色を有し、特定済みの前記第２の画素に対応する画素が前記第２の色を有する前記エッジ強調画像データを生成する生成部と、
を備える、画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記第２判断部は、前記第１判断部によって前記注目領域が前記文字領域であると判断される場合に、前記注目画素が前記特定の判断条件を満たすか否かを判断し、前記第１判断部によって前記注目領域が前記文字領域でないと判断される場合に、前記注目画素が前記特定の判断条件を満たすか否かを判断しない、画像処理装置。
【請求項３】
請求項１または２に記載の画像処理装置であって、
前記エッジ強調部は、さらに、前記対象画像データを用いて、前記対象画像内の複数個の画素の中から、前記第１の画素の候補となる複数個の候補画素を特定する候補特定部を備え、
前記複数個の候補画素のそれぞれを注目画素として前記第１の判断部による判断が実行される、画像処理装置。
【請求項４】
請求項１〜３のいずれかに記載の画像処理装置であって、
前記生成部は、
前記対象画像データに対して、前記対象画像を平滑化する平滑化処理を含む前記特定の画像処理を実行して、中間画像データを生成し、
前記中間画像データと、前記第１の画素および前記第２の画素の特定結果と、を用いて、前記エッジ強調画像データを生成する、画像処理装置。
【請求項５】
請求項４に記載の画像処理装置であって、
前記エッジ強調部は、さらに、前記対象画像データに対して、前記対象画像内のエッジを構成する複数個のエッジ画素を特定するエッジ特定部を備え、
前記生成部は、
前記対象画像データの前記複数個のエッジ画素の値に対して、前記対象画像内のエッジを鮮鋭化する鮮鋭化処理を実行し、前記複数個のエッジ画素とは異なる複数個の画素に対して、前記平滑化処理を実行する前記特定の画像処理を実行して、前記中間画像データを生成する、画像処理装置。
【請求項６】
請求項１〜５のいずれかに記載の画像処理装置であって、
前記第１の色は、黒色と白色とのうちの一方であり、
前記第２の色は、前記黒色と前記白色とのうちの他方である、画像処理装置。
【請求項７】
請求項１〜５のいずれかに記載の画像処理装置であって、さらに、
前記エッジ強調画像データを用いて、印刷データを生成する印刷データ生成部を備える、画像処理装置。
【請求項８】
請求項６に記載の画像処理装置であって、
前記印刷データは、複数種類の色材を用いて画像を印刷する印刷実行部のためのデータであり、
前記第１の色と前記第２の色との少なくとも一方は、前記複数種類の色材のいずれかに対応する色である、画像処理装置。
【請求項９】
請求項１〜８のいずれかに記載の画像処理装置であって、
前記対象画像データは、イメージセンサを用いて原稿を読み取ることによって生成されるスキャンデータである、画像処理装置。
【請求項１０】
コンピュータプログラムであって、
複数個の画素を含む対象画像を示す対象画像データを取得する画像取得機能と、
前記対象画像データを用いて、前記対象画像内の特定種の文字のエッジを強調する強調処理を実行して、エッジ強調画像データを生成するエッジ強調機能であって、前記特定種の文字は、第１の色の文字であり、かつ、前記第１の色とは異なる第２の色の背景上に位置する文字である、前記エッジ強調機能と、
をコンピュータに実現させ、
前記エッジ強調機能は、
注目画素を含む注目領域が文字を示す文字領域であるか否かを判断する第１判断機能であって、前記文字領域であるか否かの判断は、文字を示す複数個の文字画像データと文字を示さない複数個の非文字画像データとを用いてトレーニングされた機械学習モデルを用いて実行される、前記第１判断機能と、
前記注目画素の値を用いて、前記注目画素が前記第１の色を有するべきことを示す特定の判断条件を満たすか否かを判断する第２判断機能と、
前記注目領域が前記文字領域であると判断され、かつ、前記注目画素が前記特定の判断条件を満たす場合に、前記注目画素を前記第１の色を有するべき第１の画素として特定する第１特定機能と、
特定済みの前記第１の画素の周辺に位置する第２の画素であって前記第２の色を有すべき前記第２の画素を特定する第２特定機能と、
特定済みの前記第１の画素に対応する画素が前記第１の色を有し、特定済みの前記第２の画素に対応する画素が前記第２の色を有する前記エッジ強調画像データを生成する生成機能と、
を備える、コンピュータプログラム。
【請求項１１】
画像処理方法であって、
複数個の画素を含む対象画像を示す対象画像データを取得する画像取得工程と、
前記対象画像データを用いて、前記対象画像内の特定種の文字のエッジを強調する強調処理を実行して、エッジ強調画像データを生成するエッジ強調工程であって、前記特定種の文字は、第１の色の文字であり、かつ、前記第１の色とは異なる第２の色の背景上に位置する文字である、前記エッジ強調工程と、
を備え、
前記エッジ強調工程は、
注目画素を含む注目領域が文字を示す文字領域であるか否かを判断する第１判断工程であって、前記文字領域であるか否かの判断は、文字を示す複数個の文字画像データと文字を示さない複数個の非文字画像データとを用いてトレーニングされた機械学習モデルを用いて実行される、前記第１判断工程と、
前記注目画素の値を用いて、前記注目画素が前記第１の色を有するべきことを示す特定の判断条件を満たすか否かを判断する第２判断工程と、
前記注目領域が前記文字領域であると判断され、かつ、前記注目画素が前記特定の判断条件を満たす場合に、前記注目画素を前記第１の色を有するべき第１の画素として特定する第１特定工程と、
特定済みの前記第１の画素の周辺に位置する第２の画素であって前記第２の色を有すべき前記第２の画素を特定する第２特定工程と、
特定済みの前記第１の画素に対応する画素が前記第１の色を有し、特定済みの前記第２の画素に対応する画素が前記第２の色を有する前記エッジ強調画像データを生成する生成工程と、
を備える、画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、画像データによって示される画像内のエッジを強調するための画像処理に関する。
【背景技術】
【０００２】
特許文献１に開示された画像処理装置は、注目画素が黒エッジであるかの検出と、注目画素が白エッジであるかの検出と、を行う。黒エッジは、注目画素が黒画素であり、かつ、周辺画素との境界濃度が白から黒に変化するエッジを意味する。白エッジは、注目画素が白画素であり、かつ、周辺画素との境界濃度が黒から白に変化するエッジを意味する。画像処理装置は、注目画素が黒エッジである場合には、注目画素の多値レベルを、最大値（完全な黒を示すレベル）に変更し、注目画素が白エッジである場合には、注目画素の多値レベルを、最小値（完全な白を示すレベル）に変更する。これにより適正なエッジ強調処理を実行することができる、とされている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−２８１６７１号公報
【特許文献２】特開平６−１６４９２８号公報
【特許文献３】特開２０１６−３８７３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、例えば、文字のエッジを適切に特定し強調できない可能性があった。例えば、対象画像に、文字と文字とは異なるオブジェクト（例えば、写真）が含まれる場合には、文字のエッジだけでなく、写真内のエッジが強調される可能性があった。
【０００５】
本明細書は、対象画像内の文字のエッジを適切に特定し強調できる新たな技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］画像処理装置であって、複数個の画素を含む対象画像を示す対象画像データを取得する画像取得部と、前記対象画像データを用いて、前記対象画像内の特定種の文字のエッジを強調する強調処理を実行して、エッジ強調画像データを生成するエッジ強調処理部であって、前記特定種の文字は、第１の色の文字であり、かつ、前記第１の色とは異なる第２の色の背景上に位置する文字である、前記エッジ強調処理部と、を備え、前記エッジ強調処理部は、注目画素を含む注目領域が文字を示す文字領域であるか否かを判断する第１判断部であって、前記文字領域であるか否かの判断は、文字を示す複数個の文字画像と文字を示さない複数個の非文字画像とを用いてトレーニングされた機械学習モデルを用いて実行される、前記第１判断部と、前記注目画素の値を用いて、前記注目画素が前記第１の色を有するべきことを示す特定の判断条件を満たすか否かを判断する第２判断部と、前記注目領域が前記文字領域であると判断され、かつ、前記注目画素が前記特定の判断条件を満たす場合に、前記注目画素を前記第１の色を有するべき第１の画素として特定する第１特定部と、特定済みの前記第１の画素の周辺に位置する第２の画素であって前記第２の色を有すべき前記第２の画素を特定する第２特定部と、特定済みの前記第１の画素に対応する画素が前記第１の色を有し、特定済みの前記第２の画素に対応する画素が前記第２の色を有する前記エッジ強調画像データを生成する生成部と、を備える、画像処理装置。
【０００８】
上記構成によれば、機械学習モデルを用いて実行される領域判断処理によって注目領域が文字領域であると判断され、かつ、注目画素が第１の判断条件を満たす場合に、注目画素を第１の色を有するべき第１の画素として特定される。この結果、第１の色を有するべき第１の画素を適切に特定できる。したがって、対象画像内の特定種の文字のエッジを適切に特定し強調できる。
【０００９】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、複合機、スキャナ、プリンタ、画像処理方法、これら装置の機能または上記方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】画像処理装置の一例である複合機２００の構成を示すブロック図である。
【図２】画像処理のフローチャートである。
【図３】画像処理で用いられる画像の一例を示す第１の図である。
【図４】膨張処理と収縮処理とを説明する図である。
【図５】黒色画素特定処理のフローチャートである。
【図６】黒画素特定処理の第１の説明図である。
【図７】黒画素特定処理の第２の説明図である。
【図８】黒画素特定処理の第３の説明図である。
【図９】黒画素特定処理の第４の説明図である。
【図１０】白色画素特定処理のフローチャートである。
【図１１】白色画素特定処理の第１の説明図である。
【図１２】白画素特定処理の第２の説明図である。
【図１３】処理済画像の説明図である。
【発明を実施するための形態】
【００１１】
Ａ．実施例：
Ａ−１：複合機２００の構成
次に、実施の形態を実施例に基づき説明する。図１は、画像処理装置の一例である複合機２００の構成を示すブロック図である。複合機２００は、画像処理装置を制御するプロセッサであるＣＰＵ２１０と、ＤＲＡＭなどの揮発性記憶装置２２０と、フラッシュメモリやハードディスクドライブなどの不揮発性記憶装置２３０と、液晶ディスプレイなどの表示部２４０と、液晶ディスプレイと重畳されたタッチパネルやボタンを含む操作部２５０と、ユーザの端末装置１００などの外部装置と通信を行うためのインタフェース（通信ＩＦ）２７０と、印刷実行部２８０と、読取実行部２９０と、を備えている。
【００１２】
読取実行部２９０は、ＣＰＵ２１０の制御に従って、一次元イメージセンサを用いて原稿を光学的に読み取ることによってスキャンデータを生成する。印刷実行部２８０は、ＣＰＵ２１０の制御に従って、複数種類のトナー、具体的には、シアン（Ｃ）、マゼンタ（Ｍ）、イエロ（Ｙ）、ブラック（Ｋ）のトナーを、色材として用いて、レーザ方式で用紙などの印刷媒体に画像を印刷する。具体的には、印刷実行部２８０は、感光ドラムを露光して静電潜像を形成し、該静電潜像にトナーを付着させてトナー像を形成する。印刷実行部２８０は、感光ドラム上に形成されたトナー像を用紙に転写する。なお、変形例では、印刷実行部２８０は、色材としてのインクを吐出して、用紙上に画像を形成するインクジェット方式の印刷実行部であっても良い。
【００１３】
揮発性記憶装置２２０は、ＣＰＵ２１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置２３０には、コンピュータプログラムＰＧが格納されている。コンピュータプログラムＰＧは、ＣＰＵ２１０に複合機２００の制御を実現させる制御プログラムである。本実施例では、コンピュータプログラムＰＧは、複合機２００の製造時に、不揮発性記憶装置２３０に予め格納される形態で提供される。これに代えて、コンピュータプログラムＰＧは、サーバからダウンロードされる形態で提供されても良く、ＤＶＤ−ＲＯＭなどに格納される形態で提供されてもよい。ＣＰＵ２１０は、コンピュータプログラムＰＧを実行することにより、後述する画像処理を実行することができる。
【００１４】
Ａ−２：画像処理
図２は、画像処理のフローチャートである。この画像処理は、例えば、ユーザが、読取実行部２９０の原稿台に、原稿を載置して、コピーの実行指示を入力した場合に実行される。この画像処理は、原稿を、読取実行部２９０を用いて読み取ることによって生成されるスキャンデータを取得し、該スキャンデータを用いて、原稿を示す印刷データを生成することで、いわゆる原稿のコピーを実現する処理である。
【００１５】
Ｓ１０では、ＣＰＵ２１０は、ユーザが原稿台に設置した原稿を、読取実行部２９０を用いて読み取ることによって、対象画像データとしてのスキャンデータを生成する。原稿は、例えば、複合機２００、あるいは、図示しないプリンタによって画像が印刷された印刷物である。生成されたスキャンデータは、揮発性記憶装置２２０（図１）のバッファ領域に格納される。スキャンデータは、複数個の画素の値を含み、複数個の画素の値のそれぞれは、画素の色をＲＧＢ表色系の色値（ＲＧＢ値とも呼ぶ）で表す。すなわち、スキャンデータは、ＲＧＢ画像データである。１個の画素のＲＧＢ値は、例えば、赤色（Ｒ）と緑色（Ｇ）と青色（Ｂ）との３個の色成分の値（以下、Ｒ値、Ｇ値、Ｂ値とも呼ぶ）を含んでいる。本実施例では、各成分値の階調数は、２５６階調である。なお、各成分値の階調数は、２５６階調に限らず、３以上の階調数、例えば、６４階調、１２８階調であっても良い。
【００１６】
図３は、画像処理で用いられる画像の一例を示す第１の図である。図３（Ａ）には、スキャンデータによって示されるスキャン画像ＳＩの一例が示されている。スキャン画像ＳＩは、複数個の画素を含む。該複数個の画素は、第１方向Ｄ１と、第１方向Ｄ１と直交する第２方向Ｄ２と、に沿って、マトリクス状に配置されている。
【００１７】
図３（Ａ）のスキャン画像ＳＩは、原稿の用紙の地色を示す白色の背景Ｂｇ１と、３個の文字とは異なるオブジェクトＯｂ１〜Ｏｂ３と、４個の文字Ｏｂ４〜Ｏｂ７と、２個の文字Ｏｂ４、Ｏｂ５の背景Ｂｇ２と、を含んでいる。文字とは異なるオブジェクトは、例えば、写真や描画である。文字Ｏｂ５、Ｏｂ６は、黒色の文字である。文字Ｏｂ４、Ｏｂ７は、黒色とは異なる色、例えば、青色や赤色の文字である。背景Ｂｇ２は、白色とは異なる色を有する均一な画像である。
【００１８】
Ｓ２０では、ＣＰＵ２１０は、スキャンデータに対して、エッジ画素特定処理を実行する。エッジ画素特定処理は、スキャン画像ＳＩ内の複数個の画素の中から、スキャン画像ＳＩ内のエッジを構成する複数個のエッジ画素を特定する処理である。エッジ画素特定処理によって、例えば、エッジを構成するエッジ画素の値が「１」とされ、エッジを構成しない非エッジ画素の値が「０」とされた二値画像データが生成される。
【００１９】
具体的には、ＣＰＵ２１０は、スキャンデータを用いて、スキャン画像ＳＩ内の複数個の画素の輝度を示す輝度画像データを生成する。輝度Ｙは、各画素のＲＧＢ値（Ｒ、Ｇ、Ｂ）を用いて、例えば、Ｙ＝０．２９９×Ｒ＋０．５８７×Ｇ＋０．１１４×Ｂの式によって算出される。ＣＰＵ２１０は、輝度画像データの各画素の値に、いわゆるソーベルフィルタ（Sobel filter）を適用して、エッジ強度Ｓｅを算出する。ＣＰＵ２１０は、これらのエッジ強度Ｓｅを複数個の画素の値とするエッジ抽出データを生成する。
【００２０】
以下に、エッジ強度の算出式（１）を示す。式（１）の階調値Ｐ（ｘ，ｙ）は、輝度画像内の特定の画素位置（ｘ，ｙ）の階調値を表している。位置ｘは、第１方向Ｄ１の画素位置を示し、位置ｙは、第２方向Ｄ２の画素位置を示している。輝度画像内の画素位置（ｘ，ｙ）におけるエッジ強度Ｓｅ（ｘ，ｙ）は、その画素位置（ｘ，ｙ）を中心とし隣り合う３行３列の９つの画素の値を用いて算出される。算出式の第１項および第２項は、９つの位置の画素の階調値に、対応する係数をそれぞれ乗じた値の和の絶対値である。第１項は、第１方向Ｄ１の階調値の微分（すなわち、横方向の微分）であり、第２項は、第２方向Ｄ２の階調値の微分（すなわち、縦方向の微分）である。算出されるエッジ強度Ｓｅ（ｘ，ｙ）は、０〜２５５の範囲の２５６階調の値に正規化される。
【００２１】
【数１】
2019114928.tif 000003
…（１）
【００２２】
ＣＰＵ２１０は、エッジ抽出データに対して、二値化処理を実行して、二値画像データを生成する。例えば、ＣＰＵ２１０は、エッジ画像データにおいて、画素の値（すなわち、エッジ強度）が閾値（例えば、１２８）以上である画素を、エッジ画素に分類し、画素の値が閾値未満である画素を、非エッジ画素に分類する。これによって、スキャン画像ＳＩ内の複数個のエッジ画素が特定される。
【００２３】
図３（Ｂ）には、二値画像データによって示される二値画像ＢＩの一例が示されている。この二値画像ＢＩには、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ７のエッジＥｇ１〜Ｅｇ７を構成する複数個のエッジ画素と、背景Ｂｇ１と背景Ｂｇ２との間のエッジＥｇ８を構成する複数個のエッジ画素と、が特定されている。このように、エッジは、例えば、主として文字のエッジを含む。また、エッジは、文字とは異なるオブジェクト（例えば、描画や写真）に含まれる細線などのエッジを含む。
【００２４】
Ｓ２０では、ＣＰＵ２１０は、生成された二値画像データに対して、膨張・収縮処理を実行して、膨張・縮小処理済みの二値画像データを生成する。膨張・収縮処理は、二値画像ＢＩ内において、特定済みの複数個のエッジ画素によって構成されるエッジを膨張させる膨張処理と、膨張処理済みの該エッジを収縮させる収縮処理と、を含む。なお、膨張処理と収縮処理は、所定回数ずつ（例えば、２回ずつ）繰り返し実行される。
【００２５】
図４は、膨張処理と収縮処理とを説明する図である。図４（Ａ）には、二値画像ＢＩ（図３（Ｂ））の部分画像ＰＩ１が示されている。部分画像ＰＩ１は、膨張処理前のエッジＥｇＡ、ＥｇＢを含んでいる。２個のエッジＥｇＡ、ＥｇＢは、隙間ＮＴによって分離されている。また、エッジＥｇＡには、欠けＣＲが生じており、エッジＥｇＢには、孤立した非エッジ画素ＩＰが含まれている。本来、１個の連続した線や文字に対応するエッジが、このような隙間ＮＴ、欠けＣＲ、孤立した非エッジ画素ＩＰを含んでいる場合には、詳細は後述するが、Ｓ２５の黒画素特定処理のために、これらを除去することが好ましい。膨張処理と収縮処理は、これらの隙間ＮＴ、欠けＣＲ、孤立した非エッジ画素ＩＰを除去するために、実行される。
【００２６】
膨張処理は、例えば、所定サイズのフィルタ、図４（Ａ）の例では、縦３画素×横３画素のサイズのフィルタＦＩ１を用いて、二値画像ＢＩを示す二値画像データに対して実行される。具体的には、ＣＰＵ２１０は、フィルタＦＩ１を、二値画像データに対して適用して、膨張処理済みの二値画像データを生成する。すなわち、ＣＰＵ２１０は、注目画素に、フィルタＦＩ１の中心位置ＣＣ１（図４（Ａ）参照）が重なるように、フィルタＦＩ１を、部分画像ＰＩ１を含む二値画像ＢＩ上に配置する。ＣＰＵ２１０は、フィルタＦＩ１の範囲内に、エッジ画素が１個でも存在する場合には、注目画素に対応する膨張処理済みの二値画像（図示省略）内の画素をエッジ画素に設定する。ＣＰＵ２１０は、フィルタＦＩ１の範囲内に、エッジ画素が１つもない場合、すなわち、フィルタＦＩ１の範囲内の９個の画素が、非エッジ画素である場合には、注目画素に対応する膨張処理済みの二値画像内の画素を非エッジ画素に設定する。ＣＰＵ２１０は、二値画像ＢＩの全ての画素を注目画素として、膨張処理済みの二値画像内の対応する画素を、エッジ画素および非エッジ画素のいずれかに設定することによって、膨張処理済みの二値画像を表す膨張処理済みの二値画像データを生成する。
【００２７】
図４（Ｂ）には、膨張処理済みの二値画像のうちの、図４（Ａ）の部分画像ＰＩ１に対応する膨張処理済みの部分画像ＰＩ２が示されている。膨張処理済みの部分画像ＰＩ２では、上述の隙間ＮＴ、欠けＣＲ、孤立した非エッジ画素ＩＰが除去されていることが解る。また、膨張処理済みの部分画像ＰＩ２では、図４（Ａ）の部分画像ＰＩ１のエッジＥｇＡ、ＥｇＢに対応する１個のエッジＥｇＣは、エッジＥｇＡ、ＥｇＢと比較して、太くなっている（膨張している）。
【００２８】
収縮処理は、例えば、所定サイズのフィルタ、図４（Ｂ）の例では、縦３画素×横３画素のサイズのフィルタＦＩ２を用いて、膨張処理済みの二値画像データに対して実行される。具体的には、ＣＰＵ２１０は、フィルタＦＩ２を、膨張処理済みの二値画像を表す二値画像データに対して適用して、収縮処理済みの二値画像データを生成する。すなわち、ＣＰＵ２１０は、注目画素に、フィルタＦＩ２の中心位置ＣＣ２（図４（Ｂ）参照）が重なるように、フィルタＦＩ２を膨張処理済みの二値画像ＢＩ上に配置する。ＣＰＵ２１０は、フィルタＦＩ２の範囲内に、非エッジ画素が１個でも存在する場合には、注目画素に対応する収縮処理済みの二値画像内の画素を非エッジ画素に設定する。そして、ＣＰＵ２１０は、フィルタＦＩ２の範囲内に、非エッジ画素が１つもない場合、すなわち、フィルタＦＩ２の範囲内の９個の画素が、全てエッジ画素である場合には、注目画素に対応する収縮済みの二値画像内の画素をエッジ画素に設定する。ＣＰＵ２１０は、膨張処理済みの二値画像の全ての画素を注目画素として、収縮処理済みの二値画像内の対応する画素を、非エッジ画素およびエッジ画素のいずれかに設定することによって、収縮処理済みの二値画像を示す収縮処理済みの二値画像データを生成する。
【００２９】
図４（Ｃ）には、収縮済みの二値画像のうちの、図４（Ａ）の部分画像ＰＩ１に対応する収縮処理済みの部分画像ＰＩ３が示されている。収縮処理済みの部分画像ＰＩ３には、上述の隙間ＮＴ、欠けＣＲ、孤立した非エッジ画素ＩＰは、現れていない。そして、図４（Ａ）の部分画像ＰＩ１のエッジＥｇＡ、ＥｇＢに対応する１個のエッジＥｇＤは、エッジＥｇＡ、ＥｇＢと同じ程度の太さまで、収縮している。このような膨張処理と縮小処理が複数回繰り返されると、比較的小さな文字、例えば、１２ポイント以下の文字を構成する画素は、概ね全てエッジ画素として特定される。
【００３０】
なお、上述したフィルタＦＩ１、ＦＩ２のサイズ、すなわち、膨張処理による膨張の程度、および、収縮処理による収縮の程度は、一例である。例えば、フィルタＦＩ１、ＦＩ２は、例えば、縦５画素×横５画素のフィルタであっても良いし、縦７画素×横７画素のフィルタであっても良い。なお、最終的に生成される膨張・収縮処理済みの二値画像データは、文字などのエッジにおけるぼけた部分を構成する複数個の画素が、漏れなく、エッジ画素として特定されるように、膨張・収縮処理前の二値画像データエッジよりも、エッジが膨張された状態であることが好ましい。
【００３１】
以上の膨張・収縮処理済みの二値画像データを、以下では、単に、二値画像データと呼び、膨張・収縮処理済みの二値画像データにおいて特定されているエッジ画素を、単に、エッジ画素と呼ぶ。
【００３２】
図２のＳ２５では、ＣＰＵ２１０は、膨張・収縮処理済みの二値画像データと、対象画像データと、を用いて、黒画素特定処理を実行する。黒画素特定処理は、スキャン画像ＳＩ内の複数個の画素の中から、複数個の黒画素を特定する処理である。
【００３３】
黒画素は、スキャン画像ＳＩ内の複数個の画素のうち、白色の背景上に位置する黒色の文字を構成する画素であり、黒色を有するべき画素である。例えば、スキャン画像ＳＩ内の黒色の文字Ｏｂ５、Ｏｂ６を構成する画素は、原稿上では、黒色であるので、黒色を有するべき黒画素である。しかしながら、スキャンデータのようにイメージセンサを用いて生成される画像データによって示される画像では、特に、エッジの部分に、いわゆる「ぼけ」が発生する。このために、スキャン画像ＳＩ上では、例えば、黒色の文字Ｏｂ５、Ｏｂ６を構成する複数個の画素のうち、特に、エッジに位置する画素は、黒色ではなく、例えば、黒色より明るい色や彩度を有する色を有し得る。以上の説明から解るように、本実施例では、黒画素は、実際に黒色を有している場合もあれば、黒色とは異なる色を有している場合もある。本実施例の黒画素特定処理では、特に、白色の背景上の黒色の文字（図３（Ａ）の例では、背景Ｂｇ１上の文字Ｏｂ６）を構成する複数個のエッジ画素を黒画素として特定する。
【００３４】
黒画素特定処理によって、スキャンデータや二値画像データとは別に、特定済みの複数個の黒画素を示すフラグデータが生成される。フラグデータは、スキャン画像ＳＩの複数個の画素に対応するフラグを含む。フラグデータにおいて、黒画素として特定された画素に対応するフラグの値は、例えば、黒画素を示す値（例えば、「１」）を有する。黒画素特定処理の詳細については、後述する。
【００３５】
図２のＳ３０では、ＣＰＵ２１０は、特定済みの複数個の黒画素を示すフラグデータと、対象画像データと、を用いて、白画素特定処理を実行する。白画素特定処理は、スキャン画像ＳＩ内の複数個の画素の中から、複数個の白画素を特定する処理である。白画素は、スキャン画像ＳＩ内の複数個の画素のうち、白色を有するべき画素を意味する。例えば、原稿の地色を示す白色の背景Ｂｇ１を構成する画素は、白色を有するべき画素である。しかしながら、スキャンデータなどの画像では、上述した「ぼけ」のために、例えば、背景Ｂｇ１のうち、オブジェクトとのエッジに位置する画素は、白色ではなく、例えば、白色より暗い色や彩度を有する色を有し得る。以上の説明から解るように、本実施例では、白画素は、実際に白色を有している場合もあれば、白色とは異なる色を有している場合もある。本実施例の白画素特定処理は、黒色と白色との境界を構成するエッジを鮮明にすべく上述した黒画素の周辺に位置する複数個の白画素を特定する。例えば、図３（Ａ）の例では、背景Ｂｇ１を構成する画素のうち、黒色の文字Ｏｂ６とのエッジに沿う画素が白画素として特定される。
【００３６】
白画素特定処理によって、特定済みの複数個の白画素は、上述したフラグデータに記録される。例えば、白画素特定処理後のフラグデータにおいて、白画素として特定された画素に対応するフラグは、例えば、白画素を示す値（例えば、「２」）を有する。白画素特定処理の詳細については、後述する。
【００３７】
Ｓ２５の黒画素特定処理と、Ｓ３０の白画素特定処理と、によって、複数個の黒画素と、複数個の白画素と、黒画素でも白画素でもない複数個の画素と、を示すフラグデータが生成される。
【００３８】
Ｓ３５では、ＣＰＵ２１０は、スキャンデータに対して、網点平滑化処理を実行して、平滑化画像を示す平滑化画像データを生成する。具体的には、ＣＰＵ２１０は、スキャンデータに含まれる複数個の非エッジ画素の値のそれぞれに対して、ガウスフィルタなどの平滑化フィルタを用いた平滑化処理を実行して、平滑化処理済みの複数個の非エッジ画素の値を算出する。平滑化処理の対象となる非エッジ画素は、Ｓ１５のエッジ画素特定処理によって生成された二値画像データを参照して特定される。ＣＰＵ２１０は、スキャンデータに含まれる複数個のエッジ画素の値と、平滑化処理済みの複数個の非エッジ画素の値と、を含む平滑化画像データを生成する。
【００３９】
図３（Ｃ）には、平滑化画像データによって示される平滑化画像ＧＩが示されている。平滑化画像ＧＩは、白色の背景Ｂｇ１ｇと、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ７、背景Ｂｇ２が平滑化されたオブジェクトＯｂ１ｇ〜Ｏｂ７ｇ、背景Ｂｇ２ｇを含んでいる。これらのオブジェクトＯｂ１ｇ〜Ｏｂ７ｇ、背景Ｂｇ２ｇのエッジ以外の部分（非エッジ部分とも呼ぶ）は、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ７、背景Ｂｇ２と比較して、平滑化されている。
【００４０】
Ｓ４０では、ＣＰＵ２１０は、平滑化画像データに対して、エッジ鮮鋭化処理を実行して、鮮鋭化画像データを生成する。具体的には、ＣＰＵ２１０は、平滑化画像データに含まれる複数個のエッジ画素の値のそれぞれに対して、アンシャープマスク処理や、鮮鋭化フィルタを適用する処理などの鮮鋭化処理を実行して、鮮鋭化処理済みの複数個のエッジ画素の値を算出する。鮮鋭化処理の対象となるエッジ画素は、Ｓ１５のエッジ画素特定処理によって生成された二値画像データを参照して特定される。ＣＰＵ２１０は、平滑化画像データに含まれる複数個の非エッジ画素の値（平滑化処理済みの複数個の非エッジ画素の値）と、鮮鋭化処理済みの複数個のエッジ画素の値と、を含む鮮鋭化画像データを生成する。平滑化画像データに含まれる複数個のエッジ画素の値は、平滑化処理の対象ではないので、スキャンデータに含まれる複数個のエッジ画素の値と同じである。したがって、本ステップのエッジ鮮鋭化処理は、スキャンデータに含まれる複数個のエッジ画素の値に対して実行される、とも言うことができる。
【００４１】
図３（Ｄ）には、鮮鋭化画像データによって示される鮮鋭化画像ＦＩが示されている。鮮鋭化画像ＦＩは、白色の背景Ｂｇ１ｆと、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ７、背景Ｂｇ２に対応するオブジェクトＯｂ１ｆ〜Ｏｂ７ｆ、背景Ｂｇ２ｆを含んでいる。これらのオブジェクトＯｂ１ｆ〜Ｏｂ７ｆ、背景Ｂｇ２ｆのエッジは、スキャン画像ＳＩ内のオブジェクトＯｂ１〜Ｏｂ７、背景Ｂｇ２のエッジや、平滑化画像ＧＩ内のオブジェクトＯｂ１ｇ〜Ｏｂ７ｇ、背景Ｂｇ２ｇのエッジと比較して、鮮鋭化されている、すなわち、シャープになっている。
【００４２】
以上の説明から解るように、鮮鋭化画像ＦＩ内のオブジェクトＯｂ１ｆ〜Ｏｂ７ｆ、背景Ｂｇ２ｆは、鮮鋭化されたエッジと、平滑化された非エッジ部分を含む。
【００４３】
Ｓ４５では、ＣＰＵ２１０は、鮮鋭化画像データに対して、白黒画素置換処理を実行して、処理済画像を示す処理済画像データを生成する。白黒画素置換処理は、黒画素特定処理による黒画素の特定結果と、白画素特定処理による白画素の特定結果と、を用いて実行される処理である。具体的には、白黒画素置換処理は、鮮鋭化画像ＦＩ内の複数個の黒画素の色を、黒色に置換する処理と、鮮鋭化画像ＦＩ内の複数個の白画素を、白色に置換する処理と、を含む。鮮鋭化画像ＦＩ内の複数個の黒画素は、Ｓ２５の黒画素特定処理によって特定されたスキャン画像ＳＩ内の複数個の黒画素に対応する鮮鋭化画像ＦＩ内の複数個の画素である。鮮鋭化画像ＦＩ内の複数個の白画素は、Ｓ３０の白画素特定処理によって特定されたスキャン画像ＳＩ内の複数個の白画素に対応する鮮鋭化画像ＦＩ内の複数個の画素である。これらの黒画素および白画素は、上述したフラグデータを参照することによって特定される。
【００４４】
具体的には、ＣＰＵ２１０は、鮮鋭化画像データの複数個の黒画素の値（ＲＧＢ値）のそれぞれを、黒色を示すＲＧＢ値（Ｒ、Ｇ、Ｂ）＝（０、０、０）に置換する。ＣＰＵ２１０は、鮮鋭化画像データの複数個の白画素の値のそれぞれを、白色を示すＲＧＢ値（Ｒ、Ｇ、Ｂ）＝（２５５、２５５、２５５）に置換する。
【００４５】
Ｓ５０では、ＣＰＵ２１０は、処理済画像データを用いて印刷データを生成する印刷データ生成処理を実行する。具体的には、ＲＧＢ画像データである処理済画像データに対して色変換処理が実行されて、印刷に用いられる色材に対応する色成分（Ｃ、Ｍ、Ｙ、Ｋの成分）を有する色値であるＣＭＹＫ値で画素ごとの色を示すＣＭＹＫ画像データが生成される。色変換処理は、例えば、公知のルックアップテーブルを参照して実行される。ＣＭＹＫ値画像データに対して、ハーフトーン処理が実行されて、印刷に用いられる色材ごと、かつ、画素ごとに、ドットの形成状態を示すドットデータが生成される。ドットの形成状態は、例えば、ドット有、ドット無の２種類の状態や、大ドット、中ドット、小ドット、ドット無の４種類の状態を取り得る。ハーフトーン処理は、例えば、ディザ法や、誤差拡散法に従って実行される。該ドットデータは、印刷時に用いられる順に並べ替えられ、該ドットデータに、印刷コマンドが付加されることによって、印刷データが生成される。
【００４６】
Ｓ６０では、ＣＰＵ２１０は、印刷処理を実行して、画像処理を終了する。具体的には、ＣＰＵ２１０は、印刷データを印刷実行部２８０に供給して、印刷実行部２８０に処理済画像を印刷させる。
【００４７】
以上説明した画像処理によれば、Ｓ４５では、ＣＰＵ２１０は、鮮鋭化画像データに対して、白黒画素置換処理が実行されるので、白色と黒色との境界を鮮明にすることができる。例えば、白黒画素置換処理によって、図３（Ｄ）の鮮鋭化画像ＦＩ内の黒色の文字Ｏｂ６ｆのうちの白色の背景Ｂｇ１ｆとのエッジ部分の画素の色が黒色に変更される。また、鮮鋭化画像ＦＩ内の白色の背景Ｂｇ１ｆのうち、黒色の文字Ｏｂ６ｆとのエッジ部分に位置する画素の色が白色に変更される。この結果、処理済画像において、黒色の文字Ｏｂ６ｆのエッジ部分のぼけが低減され、白色の背景Ｂｇ１ｆ上にある黒色の文字Ｏｂ６ｆのエッジ、すなわち、背景の白色と、文字の黒色と、の境界（エッジ）が強調されて鮮明になる。この結果、特に、白色の背景Ｂｇ１ｆ上にある黒色の文字Ｏｂ６ｆの見栄えを向上できる。以上の説明から解るように、図２のＳ２５〜Ｓ４５の処理は、白色の背景上に位置する黒色の文字のエッジを強調するエッジ強調処理を含んでいる、と言うことができる。
【００４８】
また、スキャンデータに対して、網点平滑化処理（Ｓ３５）を含む画像処理（Ｓ３５、Ｓ４０）が実行されて、中間画像データ（具体的には、Ｓ４０にて生成される鮮鋭化画像データ）が生成され、該中間画像データを用いて、処理済画像データが生成される（Ｓ４５）。この結果、例えば、文字とは異なる領域（例えば、写真や背景などの網点領域）が平滑化され、かつ、黒色と白色との境界が適切に鮮明された処理済画像を示す処理済画像データを生成することができる。
【００４９】
例えば、処理済画像データでは、白色とは異なる色の背景Ｂｇ２ｆなどの均一な部分や、オブジェクトのエッジとは異なる部分を構成する非エッジ画素の値には、平滑化処理済みの値が用いられている。この結果、処理済画像のエッジとは異なる部分に、例えば、モアレの原因となる網点が表れることを抑制できるので、印刷される処理済画像にモアレなどの不具合が発生することを抑制できる。この結果、印刷される処理済画像の見栄えを向上することができる。
【００５０】
例えば、スキャンデータの生成に用いられた原稿は、画像が印刷された印刷物である。このため、例えば、原稿内の白とは異なる色を有する背景Ｂｇ２などの均一な部分は、画像を形成するドットレベルでみると、網点を形成している。網点は、複数個のドットと、ドットが配置されていない部分（原稿の地色を示す部分）と、を含む。このために、スキャン画像ＳＩ内の背景Ｂｇ２を示す領域には、画素レベルでみると、網点が示されている。網点内のドットは、原稿の印刷時に用いられるディザマトリクスなどの影響によって、周期性を持って並んでいる。このためにスキャンデータを用いて印刷を行うと、ハーフトーン処理前の元画像（スキャン画像ＳＩ）内に存在している網点のドットの周期成分と、印刷画像を構成する網点のドットの周期成分と、が干渉して、モアレが表れやすい。本実施例の処理済画像では、平滑化処理によって、元画像（スキャン画像ＳＩ）内のエッジとは異なる部分のドットの周期成分が低減される。この結果、処理済画像データを用いて、処理済画像を印刷する場合に、例えば、印刷される処理済画像にモアレが発生することを抑制できる。
【００５１】
さらに、スキャンデータの複数個のエッジ画素の値に対して、エッジ鮮鋭化処理が実行され（Ｓ４０）、複数個のエッジ画素とは異なる複数個の画素に対して、網点平滑化処理（Ｓ３５）が実行される。この結果、エッジを構成しない部分が平滑化され、エッジ（例えば、黒色とは異なる色の文字Ｏｂｆ４、Ｏｂ７ｆのエッジ）を構成する部分が強調され、かつ、白色と黒色との境界が適切に鮮明にされた処理済画像を示す処理済画像データを生成することができる
【００５２】
Ａ−３：黒色画素特定処理
図２のＳ２５の黒色画素特定処理について説明する。図５は、黒色画素特定処理のフローチャートである。Ｓ１００では、ＣＰＵ２１０は、フラグデータを初期化する。初期化されたフラグデータの複数個のフラグの値は、初期値、具体的には、黒画素でも白画素でもないことを示す値（本実施例では、「０」）を有する。
【００５３】
Ｓ１０２では、ＣＰＵ２１０は、スキャン画像ＳＩ内の複数個の画素から、所定の処理順に従って、１個の注目画素ＴＰを選択する。本実施例の処理順では、図３（Ａ）の第１方向Ｄ１と平行な複数本のラスタラインのうち、第２方向Ｄ２の上流側（図３（Ａ）の上側）から下流側に向かって順次に処理対象となる。そして、１本のラスタライン上の複数個の画素の中では、第１方向Ｄ１の上流側（図３（Ａ）の左側）から下流側に向かって順次に処理対象となる。すなわち、第１方向Ｄ１の位置が同じ複数個の画素は、第２方向Ｄ２の上流側の画素が、下流側の画素よりも先に選択される。また、第２方向Ｄ２の位置が同じ複数個の画素は、第１方向Ｄ１の上流側の画素が、下流側の画素よりも先に選択される。第１方向Ｄ１（図３（Ａ）の左から右に向かう方向）、および、第２方向Ｄ２（図３（Ａ）の上から下に向かう方向）を、処理方向とも呼ぶ。
【００５４】
Ｓ１０４では、ＣＰＵ２１０は、注目画素ＴＰは、エッジ画素であるか非エッジ画素であるかを判断する。ＣＰＵ２１０は、注目画素ＴＰが、図２のＳ１５の膨張・収縮処理後の二値画像データにおいて、エッジ画素として特定されている場合には、注目画素ＴＰは、エッジ画素であると判断する。ＣＰＵ２１０は、注目画素ＴＰが、該二値画像データにおいて、非エッジ画素として特定されている場合には、注目画素ＴＰは、非エッジ画素であると判断する。
【００５５】
注目画素ＴＰが、エッジ画素である場合には（Ｓ１０４：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１０６に処理を進める。注目画素ＴＰが、非エッジ画素である場合には（Ｓ１０４：ＮＯ）、ＣＰＵ２１０は、Ｓ１５０に処理を進める。
【００５６】
Ｓ１０６では、ＣＰＵ２１０は、スキャンデータのうち、注目画素ＴＰを中心とする注目領域ＴＲ内のデータ（領域データとも呼ぶ）を取得する。図５に示すように、注目領域ＴＲは、縦７画素×横７画素の矩形の領域である。注目領域ＴＲは、縦Ｍ画素×横Ｎ画素（Ｍ、Ｎは、２以上の整数）の様々なサイズであって良い。例えば、注目領域ＴＲとしては、縦７画素×横７画素の矩形の領域に代えて、縦５画素×横５画素の矩形の領域や、縦９画素×横９画素の矩形の領域が用いられても良い。
【００５７】
Ｓ１０８では、ＣＰＵ２１０は、機械学習モデルを用いて、注目領域ＴＲが文字を示す文字領域であるか否かを判断する。用いられる機械学習モデルは、ＣＮＮ（Convolutional Neural Network）を用いたモデルである。このような機械学習モデルとしては、例えば、ＬｅＮｅｔやＡｌｅｘＮｅｔが用いられる。ＬｅＮｅｔは、例えば、「Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner(1998): Gradient-based learning applied to document recognition. Proceedings of the IEEE 86, 11(November 1998),2278-2324.」に開示されている。ＡｌｅｘＮｅｔは、例えば、「Alex Krizhevsky, Ilya Sutskever and Geoffrey E. Hinton(2012): ImageNet classification with deep convolutional neural networks In F. Pereira, C. J. C. Burges, L. Bottou, & K. Q. Weinberger, eds. Advances in Neural Information Processing Systems 25. Curran Associates, Inc., 1097-1105.5」に開示されている。
【００５８】
機械学習モデルの入力は、注目領域ＴＲ内の４９個の画素の値（例えば、ＲＧＢ値や輝度値）を、各画素の注目領域ＴＲ内での位置に応じた順序で並べた行列である。すなわち、注目領域ＴＲ内のＮ個の画素の値が、注目領域ＴＲ内における当該画素の位置と対応付けて入力される。機械学習モデルの出力は、上述した注目領域ＴＲが文字領域である確率である文字確率Ｔｘｒである。
【００５９】
例えば、文字確率Ｔｘｒは、０〜１００％の数値で表される。ＣＰＵ２１０は、文字確率Ｔｘｒに基づいて、注目領域ＴＲが、文字を示す文字領域あるか否かを判断する。ＣＰＵ２１０は、文字確率Ｔｘｒが、ＴＨ１≦Ｔｘｒである場合には、注目領域ＴＲは文字領域であると判断する。ＣＰＵ２１０は、文字確率Ｔｘｒが、Ｔｘｒ＜ＴＨ１である場合には、注目領域ＴＲは文字領域でないと判断する。閾値ＴＨ１は、例えば、５０％である。
【００６０】
このように、４９個の画素の値の組みあわせが同じ画像であっても、どの画素の値が、注目領域ＴＲ内のどの位置にあるかが異なっていれば、異なる文字確率Ｔｘｒが出力され、該文字確率Ｔｘｒに基づいて、注目領域ＴＲについての判断が行われる。このように、注目領域ＴＲが、文字領域、非文字領域、不明ブロックのいずれであるかは、注目領域ＴＲ内の４９個の画素の位置と４９個の画素の値とに応じて判断されることが解る。
【００６１】
機械学習モデルは、例えば、白色の背景上の黒色の文字を示す所定個数（例えば、３０００個）の文字画像データと、文字を示さない所定個数の（例えば、３０００個）の非文字画像データと、を用いてトレーニングされている。これらのトレーニング用の文字画像データおよび非文字画像データは、注目領域ＴＲと同じサイズの画像である。非文字画像データは、文字とは異なるオブジェクト（例えば、写真）やベタ塗りの背景などを示す。本実施例では、スキャンデータを対象画像データとしている。このために、トレーニングに用いられる文字画像データは、例えば、白色の背景上の黒色の文字を含む原稿をイメージセンサを用いて光学的に読み取ることによって得られるスキャンデータのうち、当該黒色の文字を示す部分の部分画像データである。トレーニングに用いられる文字画像データは、例えば、文字とは異なるオブジェクトを含む原稿をイメージセンサを用いて光学的に読み取ることによって得られるスキャンデータのうちの部分画像データである。
【００６２】
Ｓ１１０では、ＣＰＵ２１０は、機械学習モデルを用いた判断によって、注目領域ＴＲが文字領域であると判断されたか否かを判断する。注目領域ＴＲが文字領域であると判断された場合には（Ｓ１１０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１１５に処理を進める。注目領域ＴＲが文字領域でないと判断された場合には（Ｓ１１０：ＮＯ）、ＣＰＵ２１０は、Ｓ１５０に処理を進める。
【００６３】
Ｓ１１５では、ＣＰＵ２１０は、注目画素ＴＰの値（ＲＧＢ値）は、第１黒色範囲内であるか否かを判断する。第１黒色範囲は、黒色を含む予め定められた範囲であり、ＲＧＢの各成分値（Ｒ、Ｇ、Ｂ）が、以下の式（２）を満たす範囲である。
Ｒ≦ＴＨ１、かつ、Ｇ≦ＴＨ１、かつ、Ｂ≦ＴＨ１    …（２）
閾値ＴＨ１は、各成分値が、０〜２５５の範囲の階調値である場合に、例えば、１３０である。注目画素ＴＰの値が、第１黒色範囲内である場合は、注目画素ＴＰは、白色よりも黒色に近い色を有すると考えられる。以下では、Ｓ１１５にて判断される条件、すなわち、「注目画素ＴＰの値が、第１黒色範囲内であること」を、判断条件Ａと呼ぶ。
【００６４】
判断条件Ａが満たされる場合には（Ｓ１１５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１２０に処理を進める。判断条件Ａが満たされない場合には（Ｓ１１５：ＮＯ）、ＣＰＵ２１０は、Ｓ１５０に処理を進める。
【００６５】
Ｓ１２０では、ＣＰＵ２１０は、注目画素ＴＰの値が第２黒色範囲内であり、かつ、周囲領域内の複数個の画素の値の平均値が第３黒色範囲内であるか否かを判断する。第２黒色範囲は、黒色を含む予め定められた範囲であり、第１黒色範囲より狭い範囲である。具体的には、第２黒色範囲は、ＲＧＢの各成分値（Ｒ、Ｇ、Ｂ）が、以下の式（３）を満たす範囲である。
Ｒ≦ＴＨ２、かつ、Ｇ≦ＴＨ２、かつ、Ｂ≦ＴＨ２    …（３）
閾値ＴＨ２は、閾値ＴＨ１より小さな値であり、各成分値が、０〜２５５の範囲の階調値である場合に、例えば、１００である。
【００６６】
周囲領域は、本実施例では、注目画素ＴＰを中心とした縦５画素×横５画素の矩形の領域である。ＣＰＵ２１０は、該周囲領域内の２５個の画素のＲＧＢ値の平均値（Ｒａｖ、Ｇａｖ、Ｂａｖ）を算出する。該平均値の３個の成分値Ｒａｖ、Ｇａｖ、Ｂａｖのうちの最大値をＭＡＸａｖとし、最小値をＭＩＮａｖとすると、第３黒色範囲は、以下の式（４）を満たす範囲である。
（ＭＡＸａｖ−ＭＩＮａｖ）≦ＴＨ３    …（４）
閾値ＴＨ３は、例えば、５０である。該平均値が、第３黒色範囲内である場合は、周囲領域内の画素の色は、彩度が比較的低いと考えられる。以下では、Ｓ１２０にて判断される条件、すなわち、「注目画素ＴＰの値が第２黒色範囲内であり、かつ、周囲領域内の複数個の画素の値の平均値が第３黒色範囲内であること」を、判断条件Ｂと呼ぶ。
【００６７】
判断条件Ｂが満たされる場合には（Ｓ１２０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１４５に処理を進める。判断条件Ｂが満たされない場合には（Ｓ１２０：ＮＯ）、ＣＰＵ２１０は、Ｓ１２５に処理を進める。
【００６８】
Ｓ１２５では、ＣＰＵ２１０は、注目画素ＴＰの上側に隣接する画素が黒画素であり、かつ、注目画素ＴＰの２個下の画素の値が白色範囲内であるか否かを判断する。フラグデータにおいて、注目画素ＴＰの上側に隣接する画素に対応するフラグが、黒画素を示す値である場合には、該隣接する画素は、黒画素であると判断される。
【００６９】
白色範囲は、白色を含む予め定められた範囲である。具体的には、ＣＰＵ２１０は、２個下の画素の輝度Ｙを、画素の各成分値（Ｒ、Ｇ、Ｂ）を用いて、上述した式を用いて算出する。白色範囲は、以下の式（５）を満たす範囲である。
Ｙ≧ＴＨ４    …（５）
閾値ＴＨ４は、例えば、０〜２５５の範囲の階調値である場合に、例えば、１９０である。注目画素ＴＰの値が、白色範囲内である場合には、注目画素ＴＰは、白色に近い十分な輝度を有すると考えられる。以下では、Ｓ１２５にて判断される条件、すなわち、「注目画素ＴＰの上側に隣接する画素が黒画素であり、かつ、注目画素ＴＰの２個下の画素の値が白色範囲内であること」を、判断条件Ｃと呼ぶ。
【００７０】
判断条件Ｃが満たされる場合には（Ｓ１２５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１４５に処理を進める。判断条件Ｃが満たされない場合には（Ｓ１２５：ＮＯ）、ＣＰＵ２１０は、Ｓ１３０に処理を進める。
【００７１】
Ｓ１３０では、ＣＰＵ２１０は、注目画素ＴＰの左側に隣接する画素が黒画素であり、かつ、注目画素ＴＰの２個右の画素の値が白色範囲内であるか否かを判断する。左側に隣接する画素が黒画素であるか否かは、Ｓ１２５と同様に、フラグデータを参照して判断される。白色範囲は、Ｓ１２５で用いられる白色範囲と同じである。以下では、Ｓ１３０にて判断される条件、すなわち、「注目画素ＴＰの左側に隣接する画素が黒画素であり、かつ、注目画素ＴＰの２個右の画素の値が白色範囲内であること」を、判断条件Ｄと呼ぶ。
【００７２】
判断条件Ｄが満たされる場合には（Ｓ１３０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１４５に処理を進める。判断条件Ｄが満たされない場合には（Ｓ１３０：ＮＯ）、ＣＰＵ２１０は、Ｓ１３５に処理を進める。
【００７３】
Ｓ１３５では、ＣＰＵ２１０は、注目画素ＴＰの下側に隣接する画素の値が第２黒色範囲内であり、かつ、該下側に隣接する画素の周囲領域内の複数個の画素の値の平均値が第３黒色範囲内であるか否かを判断する。第２黒色範囲は、上記式（３）を満たす範囲である。周囲領域は、上述した注目画素ＴＰの周囲領域と同様に、該下側に隣接する画素を中心とする縦５画素×横５画素の矩形の領域である。第３黒色範囲は、上記式（４）を満たす範囲である。以下では、Ｓ１３５にて判断される条件、すなわち、「注目画素ＴＰの下側に隣接する画素の値が第２黒色範囲内であり、かつ、該下側に隣接する画素の周囲領域内の複数個の画素の値の平均値が第３黒色範囲内であること」を、判断条件Ｅと呼ぶ。
【００７４】
判断条件Ｅが満たされる場合には（Ｓ１３５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１４５に処理を進める。判断条件Ｅが満たされない場合には（Ｓ１３５：ＮＯ）、ＣＰＵ２１０は、Ｓ１４０に処理を進める。
【００７５】
Ｓ１４０では、ＣＰＵ２１０は、注目画素ＴＰの右側に隣接する画素の値が第２黒色範囲内であり、かつ、該右側に隣接する画素の周囲領域内の複数個の画素の値の平均値が第３黒色範囲内であるか否かを判断する。第２黒色範囲は、上記式（３）を満たす範囲である。周囲領域は、上述した注目画素ＴＰの周囲領域と同様に、該右側に隣接する画素を中心とする縦５画素×横５画素の矩形の領域である。第３黒色範囲は、上記式（４）を満たす範囲である。以下では、Ｓ１４０にて判断される条件、すなわち、「注目画素ＴＰの右側に隣接する画素の値が第２黒色範囲内であり、かつ、該右側に隣接する画素の周囲領域内の複数個の画素の値の平均値が第３黒色範囲内であること」を、判断条件Ｆと呼ぶ。
【００７６】
判断条件Ｆが満たされる場合には（Ｓ１４０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ１４５に処理を進める。判断条件Ｆが満たされない場合には（Ｓ１４０：ＮＯ）、ＣＰＵ２１０は、Ｓ１５０に処理を進める。
【００７７】
Ｓ１４５では、ＣＰＵ２１０は、注目画素ＴＰを黒画素として特定する。このために、この場合には、ＣＰＵ２１０は、フラグデータにおいて、注目画素ＴＰに対応するフラグの値を、黒画素を示す値（本実施例では、「１」）に更新する。
【００７８】
Ｓ１５０では、ＣＰＵ２１０は、スキャン画像ＳＩ内の全ての画素を注目画素ＴＰとして処理したか否かを判断する。未処理の画素がある場合には（Ｓ１５０：ＮＯ）、ＣＰＵ２１０は、Ｓ１０２に戻って、未処理の画素を注目画素ＴＰとして選択する。全ての画素が処理された場合には（Ｓ１５０：ＹＥＳ）、ＣＰＵ２１０は、黒画素特定処理を終了する。
【００７９】
以上の説明から解るように、黒画素特定処理において、注目画素ＴＰが、膨張・縮小処理後の二値画像データにおいて、エッジ画素として特定されている場合（Ｓ１０４：ＹＥＳ）、注目画素ＴＰは、機械学習モデルを用いて、注目画素ＴＰを含む注目領域ＴＲが、文字領域であるか否かが判断される（Ｓ１０８、Ｓ１１０）。そして、注目領域ＴＲが文字領域である場合には（Ｓ１１０：ＹＥＳ）、注目画素ＴＰは、判断条件Ａ〜Ｆの少なくとも一部の判断対象とされる。そして、判断条件Ａ〜Ｆについて、以下の（１）〜（５）の場合に、該注目画素ＴＰは、黒画素として特定される。
【００８０】
（１）判断条件Ｂを少なくとも満たす場合
（２）判断条件Ａ、Ｃの両方を少なくとも満たす場合
（３）判断条件Ａ、Ｄの両方を少なくとも満たす場合
（４）判断条件Ａ、Ｅの両方を少なくとも満たす場合
（５）判断条件Ａ、Ｆの両方を少なくとも満たす場合
なお、第２黒色範囲は、第１黒色範囲より狭いので、判断条件Ｂを満たす場合には、判断条件Ａは、必ず満たされる。また、判断条件Ａが満たされない場合には、判断条件Ｂも満たされない。したがって、判断条件Ａが満たされない場合には、上記（１）〜（５）のいずれにも該当しない。以上の説明から解るように、判断条件Ａ〜Ｆで構成される上記（１）〜（５）の条件は、注目画素ＴＰの値を用いて判断される判断条件であって、注目画素ＴＰが黒色を有するべきことを示す特定の判断条件と言うことができる。
【００８１】
以下、具体例を説明する。図６は、黒画素特定処理の第１の説明図である。図６（Ａ）には、白色の背景上の黒色の文字（例えば、図３（Ａ）の文字Ｏｂ６）を構成する左右方向（第１方向Ｄ１）に延びる線の下側のエッジ（下エッジとも呼ぶ）の拡大図が示されている。下エッジの近傍の領域は、内側領域ＴＡと、外側領域ＢＡと、中間領域ＭＡと、を含んでいる。内側領域ＴＡは、黒色の文字側の領域である。外側領域ＢＡは、白色の背景側の領域である。中間領域ＭＡは、内側領域ＴＡと外側領域ＢＡとの間の領域である。内側領域ＴＡ内の画素は、黒に近似した色を有している。外側領域ＢＡ内の画素は、白色に近似した色を有している。中間領域ＭＡ内の画素は、黒色と白色との中間の色を有している。中間領域ＭＡは、いわゆる「ぼけ」が生じている領域である。これらの領域ＴＡ、ＢＡ、ＭＡ内の複数個の画素は、膨張済みの二値画像データにおいて、エッジ画素として特定されている。このために、これらの領域ＴＡ、ＢＡ、ＭＡ内の複数個の画素のいずれかが、注目画素ＴＰである場合には、Ｓ１０４にて、該注目画素ＴＰは、エッジ画素であると判断される（Ｓ１０４：ＹＥＳ）。
【００８２】
内側領域ＴＡ内の画素ＴＰ１の色は、黒色に近似している。また、画素ＴＰ１の周囲範囲ＡＡ１内の複数個の画素は、白色と黒色とのエッジ近傍の画素であるので、彩度は低い。このために、画素ＴＰ１が注目画素ＴＰである場合には、画素ＴＰ１の値は、第１黒色範囲内であると判断される（Ｓ１１５：ＹＥＳ）。そして、画素ＴＰ１の値は、第２黒色範囲内であり、かつ、周囲範囲ＡＡ１内の複数個の画素の値の平均値は、第３黒色範囲内であると判断される（Ｓ１２０：ＹＥＳ）。したがって、画素ＴＰ１は、上記判断条件Ｂを満たすので、黒画素として特定される（Ｓ１４５）。
【００８３】
中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素ＴＰ２の色は、白色よりも黒色に近いが、内側領域ＴＡ内の画素の色ほど黒色に近くない。このために、画素ＴＰ２が注目画素ＴＰである場合には、画素ＴＰ２の値は、第１黒色範囲内であると判断される（Ｓ１１５：ＹＥＳ）が、第２黒色範囲内ではないと判断される（Ｓ１２０：ＮＯ）。すなわち、画素ＴＰ２の値は、判断条件Ａを満たすが、判断条件Ｂを満たさない。
【００８４】
画素ＴＰ２の上側に隣接する画素ＳＰ１は、内側領域ＴＡ内の画素である。画素ＳＰ１は、画素ＴＰ２が注目画素ＴＰとして選択される前に、注目画素ＴＰとして選択されて黒画素として特定される。画素ＴＰ２の２個下の画素ＳＰ２は、外側領域ＢＡ内の画素である。外側領域ＢＡ内の画素ＳＰ２の色は、白色に近似している。このために、画素ＳＰ２の上側に隣接する画素は、黒画素であり、かつ、注目画素ＴＰの２個下の画素の値は、白色範囲内であると判断される（Ｓ１２５：ＹＥＳ）。したがって、画素ＴＰ１は、上記判断条件Ａ、Ｃの両方を満たすので、黒画素として特定される（Ｓ１４５）。
【００８５】
中間領域ＭＡのうち、内側領域ＴＡよりも外側領域に近い画素ＴＰ３の色は、黒色よりも白色に近い。このために、画素ＴＰ３が注目画素ＴＰである場合には、画素ＴＰ２の値は、第１黒色範囲内でないと判断される（Ｓ１１５：ＮＯ）。したがって、画素ＴＰ３は、上記判断条件Ａを満たさないので、黒画素として特定されない。
【００８６】
外側領域ＢＡ内の画素ＴＰ４は、白色に近似している。このために、画素ＴＰ４が注目画素ＴＰである場合には、画素ＴＰ４の値は、第１黒色範囲内でないと判断される（Ｓ１１５：ＮＯ）。したがって、画素ＴＰ４は、上記判断条件Ａを満たさないので、黒画素として特定されない。
【００８７】
図６（Ｂ）には、図６（Ａ）に示すスキャン画像ＳＩ内の領域に対応するフラグデータが示されている。このフラグデータは、黒色画素特定処理が終了した時点におけるフラグデータである。図６（Ｂ）に示すように、下エッジの近傍では、黒色画素特定処理によって、内側領域ＴＡ内の画素（例えば、画素ＴＰ１）と、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い領域内の画素（例えば、画素ＴＰ２）と、が黒画素として特定される。中間領域ＭＡのうち、内側領域ＴＡよりも外側領域ＢＡに近い領域内の画素（例えば、画素ＴＰ３）と、外側領域ＢＡ内の画素（例えば、画素ＴＰ４）と、は、黒画素として特定されない。
【００８８】
図７は、黒画素特定処理の第２の説明図である。図７（Ａ）には、黒色の文字を構成する上下方向（第２方向Ｄ２）に延びる線の右側のエッジ（右エッジとも呼ぶ）の拡大図が示されている。右エッジの近傍の領域は、図６（Ａ）の下エッジと同様に、内側領域ＴＡと、外側領域ＢＡと、中間領域ＭＡと、を含んでいる。これらの領域ＴＡ、ＢＡ、ＭＡ内の複数個の画素のいずれかが、注目画素ＴＰである場合には、Ｓ１０４にて、該注目画素ＴＰは、エッジ画素であると判断される（Ｓ１０４：ＹＥＳ）。
【００８９】
内側領域ＴＡ内の画素ＴＰ５の色は、黒色に近似している。また、画素ＴＰ５の周囲範囲ＡＡ２内の複数個の画素は、白色と黒色とのエッジ近傍の画素であるので、彩度は低い。このために、画素ＴＰ５は、図６（Ａ）の画素ＴＰ１と同様に、判断条件Ｂを満たす（Ｓ１１５：ＹＥＳ、かつ、Ｓ１２０：ＹＥＳ）ので、黒画素として特定される（Ｓ１４５）。
【００９０】
中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素ＴＰ６の色は、白色よりも黒色に近いが、内側領域ＴＡ内の画素の色ほど黒色に近くない。このために、画素ＴＰ６は、図６（Ａ）の画素ＴＰ２と同様に、判断条件Ａを満たす（Ｓ１１５：ＹＥＳ）が、判断条件Ｂを満たさない（Ｓ１２０：ＮＯ）。
【００９１】
画素ＴＰ６の上側に隣接する画素ＳＰ３は、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素である。このために、画素ＳＰ３は、画素ＴＰ６が注目画素ＴＰとして選択される前に、注目画素ＴＰとして選択されて黒画素として特定される。そして、画素ＴＰ６の２個下の画素ＳＰ４は、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素である。このために、画素ＳＰ４の色は、白色に近似していない。このために、画素ＴＰ６は、判断条件Ｃを満たさないと判断される（Ｓ１２５：ＮＯ）。
【００９２】
さらに、画素ＴＰ６の左側に隣接する画素ＳＰ５は、内側領域ＴＡ内の画素である。画素ＳＰ５は、画素ＴＰ６が注目画素ＴＰとして選択される前に、注目画素ＴＰとして選択されて黒画素として特定される。画素ＴＰ６の２個右の画素ＳＰ６は、外側領域ＢＡ内の画素である。外側領域ＢＡ内の画素ＳＰ６の色は、白色に近似している。このために、画素ＳＰ６は、判断条件Ｄを満たすと判断される（Ｓ１３０：ＹＥＳ）。したがって、画素ＴＰ６は、判断条件Ａ、Ｄの両方を満たすので、黒画素として特定される（Ｓ１４５）。
【００９３】
中間領域ＭＡのうち、内側領域ＴＡよりも外側領域に近い画素ＴＰ７の色は、黒色よりも白色に近い。また、外側領域ＢＡ内の画素ＴＰ８は、白色に近似している。このために、図６（Ａ）の画素ＴＰ３、ＴＰ４と同様に、これらの画素ＴＰ７、ＴＰ８は、判断条件Ａを満たさないので（Ｓ１１５：ＮＯ）、黒画素として特定されない。
【００９４】
図７（Ｂ）には、図７（Ａ）に示すスキャン画像ＳＩ内の領域に対応するフラグデータが示されている。このフラグデータは、黒色画素特定処理が終了した時点におけるフラグデータである。図７（Ｂ）に示すように、右エッジの近傍では、下エッジの近傍と同様に、黒色画素特定処理によって、内側領域ＴＡ内の画素（例えば、画素ＴＰ５）と、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い領域内の画素（例えば、画素ＴＰ６）と、が黒画素として特定される。中間領域ＭＡのうち、内側領域ＴＡよりも外側領域ＢＡに近い領域内の画素（例えば、画素ＴＰ７）と、外側領域ＢＡ内の画素（例えば、画素ＴＰ８）と、は、黒画素として特定されない。
【００９５】
図８は、黒画素特定処理の第３の説明図である。図８（Ａ）には、黒色の文字を構成する左右方向（第１方向Ｄ１）に延びる線の上側のエッジ（上エッジとも呼ぶ）の拡大図が示されている。上エッジの近傍の領域は、図６（Ａ）の下エッジと同様に、内側領域ＴＡと、外側領域ＢＡと、中間領域ＭＡと、を含んでいる。これらの領域ＴＡ、ＢＡ、ＭＡ内の複数個の画素のいずれかが、注目画素ＴＰである場合には、Ｓ１０４にて、該注目画素ＴＰは、エッジ画素であると判断される（Ｓ１０４：ＹＥＳ）。
【００９６】
内側領域ＴＡ内の画素ＴＰ９の色は、黒色に近似している。また、画素ＴＰ９の周囲範囲ＡＡ３内の複数個の画素は、白色と黒色とのエッジ近傍の画素であるので、彩度は低い。このために、画素ＴＰ９は、図６（Ａ）の画素ＴＰ１と同様に、判断条件Ｂを満たす（Ｓ１１５：ＹＥＳ、かつ、Ｓ１２０：ＹＥＳ）ので、黒画素として特定される（Ｓ１４５）。
【００９７】
中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素ＴＰ１０の色は、白色よりも黒色に近いが、内側領域ＴＡ内の画素の色ほど黒色に近くない。このために、画素ＴＰ１０は、図６（Ａ）の画素ＴＰ２と同様に、判断条件Ａを満たす（Ｓ１１５：ＹＥＳ）が、判断条件Ｂを満たさない（Ｓ１２０：ＮＯ）。
【００９８】
画素ＴＰ１０の上側に隣接する画素ＳＰ７は、中間領域ＭＡのうち、内側領域ＴＡよりも外側領域ＢＡに近い画素である。このために、画素ＳＰ７は、画素ＴＰ１０が注目画素ＴＰとして選択される前に、注目画素ＴＰとして選択されているが、黒画素として特定されていない。このために、画素ＴＰ１０は、判断条件Ｃを満たさないと判断される（Ｓ１２５：ＮＯ）。
【００９９】
そして、画素ＴＰ１０の左側に隣接する画素ＳＰ８は、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素である。このために、画素ＳＰ８は、画素ＴＰ１０が注目画素ＴＰとして選択される前に、注目画素ＴＰとして選択されて黒画素として特定される。画素ＴＰ１０の２個右の画素ＳＰ９は、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素である。このために、画素ＳＰ９の色は、白色に近似していない。このために、画素ＴＰ１０は、判断条件Ｄを満たさないと判断される（Ｓ１３０：ＮＯ）。
【０１００】
画素ＴＰ１０の下側に隣接する画素ＳＰ１０は、内側領域ＴＡ内の画素である。このために、画素ＳＰ１０の色は、黒色に近似している。また、画素ＳＰ１０の周囲範囲ＡＡ４内の複数個の画素は、白色と黒色とのエッジ近傍の画素であるので、彩度は低い。このために、画素ＴＰ１０は、判断条件Ｅを満たすと判断される（Ｓ１３５：ＹＥＳ）。したがって、画素ＴＰ１０は、判断条件Ａ、Ｅの両方を満たすので、黒画素として特定される（Ｓ１４５）。
【０１０１】
中間領域ＭＡのうち、内側領域ＴＡよりも外側領域に近い画素ＴＰ１１の色は、黒色よりも白色に近い。また、外側領域ＢＡ内の画素ＴＰ１２は、白色に近似している。このために、図６（Ａ）の画素ＴＰ３、ＴＰ４と同様に、これらの画素ＴＰ１１、ＴＰ１２の値は、判断条件Ａを満たさないので（Ｓ１１５：ＮＯ）、黒画素として特定されない。
【０１０２】
図８（Ｂ）には、図８（Ａ）に示すスキャン画像ＳＩ内の領域に対応するフラグデータが示されている。このフラグデータは、黒色画素特定処理が終了した時点におけるフラグデータである。図８（Ｂ）に示すように、上エッジの近傍では、下エッジの近傍と同様に、黒色画素特定処理によって、内側領域ＴＡ内の画素（例えば、画素ＴＰ９）と、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い領域内の画素（例えば、画素ＴＰ１０）と、が黒画素として特定される。中間領域ＭＡのうち、内側領域ＴＡよりも外側領域ＢＡに近い領域内の画素（例えば、画素ＴＰ１１）と、外側領域ＢＡ内の画素（例えば、画素ＴＰ１２）と、は、黒画素として特定されない。
【０１０３】
図９は、黒画素特定処理の第４の説明図である。図９（Ｂ）には、黒色の文字を構成する上下方向（第２方向Ｄ２）に延びる線の左側のエッジ（左エッジとも呼ぶ）の拡大図が示されている。左エッジの近傍の領域は、図６（Ａ）の下エッジと同様に、内側領域ＴＡと、外側領域ＢＡと、中間領域ＭＡと、を含んでいる。これらの領域ＴＡ、ＢＡ、ＭＡ内の複数個の画素のいずれかが、注目画素ＴＰである場合には、Ｓ１０４にて、該注目画素ＴＰは、エッジ画素であると判断される（Ｓ１０４：ＹＥＳ）。
【０１０４】
内側領域ＴＡ内の画素ＴＰ１３の色は、黒色に近似している。また、画素ＴＰ１３の周囲範囲ＡＡ５内の複数個の画素は、白色と黒色とのエッジ近傍の画素であるので、彩度は低い。このために、画素ＴＰ１３は、図６（Ａ）の画素ＴＰ１と同様に、判断条件Ｂを満たす（Ｓ１１５：ＹＥＳ、かつ、Ｓ１２０：ＹＥＳ）ので、黒画素として特定される（Ｓ１４５）。
【０１０５】
中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素ＴＰ１４の色は、白色よりも黒色に近いが、内側領域ＴＡ内の画素の色ほど黒色に近くない。このために、画素ＴＰ１４は、図６（Ａ）の画素ＴＰ２と同様に、判断条件Ａを満たす（Ｓ１１５：ＹＥＳ）が、判断条件Ｂを満たさないと判断される（Ｓ１２０：ＮＯ）。
【０１０６】
画素ＴＰ１４の上側に隣接する画素ＳＰ１１は、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素である。このために、画素ＳＰ１１は、画素ＴＰ１４が注目画素ＴＰとして選択される前に、注目画素ＴＰとして選択されて黒画素として特定される。そして、画素ＴＰ１０の２個下の画素ＳＰ１２は、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素である。このために、画素ＳＰ１２の色は、白色に近似していない。このために、画素ＴＰ１４は、判断条件Ｃを満たさないと判断される（Ｓ１２５：ＮＯ）。
【０１０７】
そして、画素ＴＰ１４の左側に隣接する画素ＳＰ１３は、中間領域ＭＡのうち、内側領域ＴＡよりも外側領域ＢＡに近い画素である。このために、画素ＳＰ１３は、画素ＴＰ１０が注目画素ＴＰとして選択される前に、注目画素ＴＰとして選択されるが、黒画素として特定されない。このために、画素ＴＰ１４は、判断条件Ｄを満たさないと判断される（Ｓ１３０：ＮＯ）。
【０１０８】
画素ＴＰ１４の下側に隣接する画素ＳＰ１４は、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素である。このために、画素ＳＰ１４の色は、白色よりも黒色に近いが、内側領域ＴＡ内の画素の色ほど黒色に近くない。このために、画素ＴＰ１４は、判断条件Ｅを満たさないと判断される（Ｓ１３５：ＮＯ）。
【０１０９】
画素ＴＰ１４の右側に隣接する画素ＳＰ１５は、内側領域ＴＡ内の画素である。このために、画素ＳＰ１５の色は、黒色に近似している。また、画素ＳＰ１５の周囲範囲ＡＡ６内の複数個の画素は、白色と黒色とのエッジ近傍の画素であるので、彩度は低い。このために、画素ＴＰ１４は、判断条件Ｆを満たすと判断される（Ｓ１４０：ＹＥＳ）。したがって、画素ＴＰ１４は、判断条件Ａ、Ｆの両方を満たすので、黒画素として特定される（Ｓ１４５）。
【０１１０】
図９（Ｂ）には、図９（Ａ）に示すスキャン画像ＳＩ内の領域に対応するフラグデータが示されている。このフラグデータは、黒色画素特定処理が終了した時点におけるフラグデータである。図９（Ｂ）に示すように、上エッジの近傍では、下エッジの近傍と同様に、黒色画素特定処理によって、内側領域ＴＡ内の画素（例えば、画素ＴＰ１３）と、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い領域内の画素（例えば、画素ＴＰ１４）と、が黒画素として特定される。中間領域ＭＡのうち、内側領域ＴＡよりも外側領域ＢＡに近い領域内の画素（例えば、画素ＴＰ１５）と、外側領域ＢＡ内の画素（例えば、画素ＴＰ１６）と、は、黒画素として特定されない。
【０１１１】
以上の図６〜図９の説明から解るように、白色の背景上の黒色の文字において、内側領域ＴＡ内の画素、および、中間領域ＭＡのうち、外側領域ＢＡよりも内側領域ＴＡに近い画素は、上記（１）〜（５）の場合のうちのいずれかに該当するために、黒画素として特定される。また、外側領域ＢＡ内の画素、および、中間領域ＭＡ、内側領域ＴＡよりも外側領域ＢＡに近い画素は、上記（１）〜（５）の場合のうちのいずれかにも該当しないために、黒画素として特定されない。この結果、黒画素を適切に特定することができる。なお、黒色以外の文字のエッジ近傍の画素は、第１黒色範囲、および、第２黒色範囲内の画素の値を有さないので、判断条件Ａ、Ｂを満たさないので、黒画素として特定されない。また、黒色の文字であっても、背景が白色でない文字のエッジ近傍の画素は、周囲領域の画素の平均値の彩度が比較的高くなる、あるいは、外側に２個離れた画素の色が白色に近似しない。このために、当該エッジ近傍の画素は、黒画素として特定されない。
【０１１２】
Ａ−４：白色画素特定処理
図２のＳ３０の白色画素特定処理について説明する。図１０は、白色画素特定処理のフローチャートである。Ｓ２００では、ＣＰＵ２１０は、スキャンデータの第１方向Ｄ１および第２方向Ｄ２の読取解像度（単位は、ｄｐｉ（dot per inch））に応じて、確認画素数Ｍの値を設定する。確認画素数Ｍは、注目画素ＴＰから、確認方向に向かって、白画素として特定するか否かの確認を行う画素の個数であり、１以上の自然数である。本実施例では、第１方向Ｄ１の読取解像度に応じた確認画素数Ｍ１と、第２方向Ｄ２の読取解像度に応じた確認画素数Ｍ２と、をそれぞれ設定する。確認画素数Ｍは、読取解像度が高いほど、大きな値に設定される。例えば、確認画素数Ｍは、読取解像度をＲ（単位は、ｄｐｉ）とした場合に、（Ｒ／３００）の値の小数点以下を切り捨てた値に決定される。例えば、確認画素数Ｍは、読取解像度が６００ｄｐｉである場合には、「２」に設定され、読取解像度が１２００ｄｐｉである場合には、「４」に設定される。
【０１１３】
Ｓ２０５では、ＣＰＵ２１０は、スキャン画像ＳＩ内の複数個の画素から、１個の注目画素ＴＰを選択する。
【０１１４】
Ｓ２１０では、ＣＰＵ２１０は、黒色画素特定処理で作成されたフラグデータを参照して、注目画素ＴＰが、黒画素であるか否かを判断する。注目画素ＴＰが、黒色画素特定処理にて、黒画素として特定された画素である場合には、注目画素ＴＰは、黒画素であると判断され、黒画素として特定されていない画素である場合には、黒画素でないと判断される。
【０１１５】
注目画素ＴＰが黒画素である場合には（Ｓ２１０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２１５に処理を進める。注目画素ＴＰが黒画素でない場合には（Ｓ２１０：ＮＯ）、ＣＰＵ２１０は、Ｓ２６０に処理を進める。
【０１１６】
Ｓ２１５では、ＣＰＵ２１０は、上下左右の４方向の中から、１つの確認方向を選択する。Ｓ２３０では、ＣＰＵ２１０は、注目画素ＴＰから確認方向にＭ個先の画素は、黒画素であるか否かを判断する。Ｍ個先の画素が黒画素であるか否かは、Ｓ２１０と同様に、黒色画素特定処理で作成されたフラグデータを参照して判断される。
【０１１７】
図１１は、白色画素特定処理の第１の説明図である。図１１（Ａ）には、図６（Ａ）と同様の下エッジの拡大図が示されている。図１１（Ｂ）には、図１１（Ａ）に示すスキャン画像ＳＩ内の領域に対応するフラグデータが示されている。このフラグデータは、白色画素特定処理が終了した時点におけるフラグデータである。
【０１１８】
確認方向が図１１（Ａ）の左方向（第１方向Ｄ１の反対方向）または右方向（第１方向Ｄ１）である場合には、確認画素数Ｍの値は、第１方向Ｄ１の確認画素数Ｍ１である。確認方向が図１１（Ａ）の上方向（第２方向Ｄ２の反対方向）または下方向（第２方向Ｄ２）である場合には、確認画素数Ｍの値は、第２方向Ｄ２の確認画素数Ｍ２である。ここでは、図１１（Ａ）には、確認画素数Ｍ１、Ｍ２の両方が、「２」である場合を示している。
【０１１９】
注目画素ＴＰが、画素ＴＰ１７であり、確認方向が上方向である場合には、画素ＳＰ１６が黒画素であるか否かが判断される。同様に、注目画素ＴＰが、画素ＴＰ１７であり、確認方向が下方向、左方向、右方向である場合には、それぞれ、画素ＳＰ１７、ＳＰ１８、ＳＰ１９が黒画素であるか否かが判断される。図１１（Ａ）の例では、注目画素ＴＰが、画素ＴＰ１７であり、確認方向が上方向、左方向、右方向である場合には、Ｍ個（図１１（Ａ）の例では２個）先の画素ＳＰ１６、ＳＰ１８、ＳＰ１９は、それぞれ、黒画素であると判断される。注目画素ＴＰが、画素ＴＰ１７であり、確認方向が下方向である場合に、Ｍ個先の画素ＳＰ１７は、黒画素でないと判断される。
【０１２０】
Ｍ個先の画素は、黒画素である場合には（Ｓ２３０：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２５５に処理を進める。Ｍ個先の画素が、黒画素でない場合には（Ｓ２３０：ＮＯ）、ＣＰＵ２１０は、Ｓ２３５に処理を進める。
【０１２１】
Ｓ２３５では、ＣＰＵ２１０は、注目画素ＴＰから確認方向にＭ個先の画素の値は、白色範囲内であるか否かを判断する。白色範囲は、上述した式（５）を満たす範囲である。該画素ＳＰ１７は、外側領域ＢＡ内の画素であるので、白色に近似している。このために、Ｍ個先の画素が、図１１（Ａ）の画素ＳＰ１７である場合には、該画素ＳＰ１７の値は、白色範囲内であると判断される。
【０１２２】
Ｍ個先の画素の値が、白色範囲内である場合には（Ｓ２３５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２４０に処理を進める。Ｍ個先の画素の値が、白色範囲内でない場合には（Ｓ２３５：ＮＯ）、ＣＰＵ２１０は、Ｓ２５５に処理を進める。
【０１２３】
Ｓ２４０では、ＣＰＵ２１０は、注目画素ＴＰから確認方向にＭ個先の画素を白画素として特定する。このために、この場合には、ＣＰＵ２１０は、フラグデータにおいて、注目画素ＴＰに対応するフラグの値を、白画素を示す値（本実施例では、「２」）に更新する。Ｍ個先の画素が、図１１（Ａ）の画素ＳＰ１７である場合には、画素ＳＰ１７は、白画素として特定される。
【０１２４】
Ｓ２４５では、ＣＰＵ２１０は、注目画素ＴＰと、注目画素ＴＰから確認方向にＭ個先の画素と、の間に、黒画素とは異なる画素があるか否かを判断する。注目画素ＴＰが、図１１（Ａ）の画素ＴＰ１７であり、Ｍ個先の画素が、画素ＳＰ１７である場合には、該画素ＴＰ１７と画素ＳＰ１７との間には、１個の画素ＳＰ２０がある。画素ＳＰ２０は、黒画素として特定されていない（図１１（Ｂ））ので、黒画素とは異なる画素があると判断される。仮に、確認画素数Ｍが「４」である場合には、注目画素ＴＰと、４個先の画素と、の間には、３個の画素がある。一般的には、注目画素ＴＰと、確認方向にＭ個先の画素と、の間には、確認方向に沿って並ぶ（Ｍ−１）個の画素がある。本ステップでは、該（Ｍ−１）個の画素に、少なくとも１個の黒画素とは異なる画素があるか否かが判断される。
【０１２５】
注目画素ＴＰとＭ個先の画素との間に、黒画素とは異なる画素がある場合には（Ｓ２４５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２５０に処理を進める。注目画素ＴＰとＭ個先の画素との間に、黒画素とは異なる画素がない場合には（Ｓ２４５：ＮＯ）、Ｓ２５５に処理を進める。
【０１２６】
Ｓ２５０では、ＣＰＵ２１０は、注目画素ＴＰとＭ個先の画素との間の黒画素とは異なる画素を白画素として特定する。このために、この場合には、ＣＰＵ２１０は、フラグデータにおいて、注目画素ＴＰとＭ個先の画素との間の黒画素とは異なる画素に対応するフラグの値を、白画素を示す値（本実施例では、「２」）に更新する。Ｍ個先の画素が、図１１（Ａ）の画素ＳＰ１７である場合には、画素ＳＰ１７は、白画素として特定される。注目画素ＴＰが、図１１（Ａ）の画素ＴＰ１７であり、Ｍ個先の画素が、画素ＳＰ１７である場合には、該画素ＴＰ１７と画素ＳＰ１７との間の１個の画素ＳＰ２０が、白画素として特定される。
【０１２７】
Ｓ２５５では、ＣＰＵ２１０は、上下左右の４方向を全て確認したか否かを判断する。未確認の方向がある場合には（Ｓ２５５：ＮＯ）、ＣＰＵ２１０は、Ｓ２１５に戻って、未確認の方向を確認方向に設定する。４方向を確認した場合には（Ｓ２５５：ＹＥＳ）、ＣＰＵ２１０は、Ｓ２６０に処理を進める。
【０１２８】
Ｓ２６０では、ＣＰＵ２１０は、スキャン画像ＳＩ内の全ての画素を注目画素ＴＰとして処理したか否かを判断する。未処理の画素がある場合には（Ｓ２６０：ＮＯ）、ＣＰＵ２１０は、Ｓ２０５に戻って、未処理の画素を注目画素ＴＰとして選択する。全ての画素が処理された場合には（Ｓ２５０：ＹＥＳ）、ＣＰＵ２１０は、白画素特定処理を終了する。
【０１２９】
以上の説明から解るように、白画素特定処理において、黒画素から所定の確認方向にＭ個先の画素（例えば、図１１（Ａ）の画素ＳＰ１７）が、黒画素でなく、かつ、その値が白色範囲内である場合に、白画素として特定される（Ｓ２３０〜Ｓ２４０）。換言すれば、Ｍ個先の画素が、黒画素とは異なる色を有するべき画素であり、かつ、黒色よりも白色に近い色を有する場合に、該Ｍ個先の画素は、白画素として特定される。この結果、黒画素の周辺の画素の中から適切に白画素を特定することができる。例えば、文字のエッジ上の黒画素の周辺の白い背景を示す画素を適切に白画素として特定することができる。
【０１３０】
黒画素と、白画素と、の間の画素が、白画素とも黒画素とも異なる画素であると、黒色と白色との境界が鮮明にならない可能性がある。本実施例では、黒画素からＭ個先の画素、すなわち、黒画素から特定方向にＭ個（Ｍは、２以上の整数）の画素分だけ離れた画素が白画素として特定された場合には、該特定方向に沿って該黒画素と、該Ｍ個の画素分だけ離れた画素と、の間に位置する（Ｍ−１）個の中間画素は、その画素が、黒画素でない場合に、該中間画素の値に関わらずに、白画素として特定される（Ｓ２４５、Ｓ２５０）。この結果、黒画素と、白画素と、の間の画素が、白画素とも黒画素とも異なる画素であると判断されることを抑制できる。したがって、黒色と白色との境界をより効果的に強調できる。
【０１３１】
このように、黒画素の周辺画素、具体的には、黒画素との距離がＭ画素以内の画素は、該画素が黒画素でないことを含む特定条件を満たすか否かが判断され、該特定条件を満たす場合には、白画素として特定される。一方、黒画素に対して上記周辺画素よりも離れた位置にある複数個の遠方画素（例えば、図１１（Ａ）の画素ＳＰ２１）、具体的には、黒画素との距離がＭ画素を超える画素は、該特定条件については判断されない。
【０１３２】
この結果、図１１（Ｂ）に示すように、中間領域ＭＡのうち、内側領域ＴＡより外側領域ＢＡに近い複数個の画素（例えば、図１１（Ａ）の画素ＳＰ２０）が、白画素として特定される（対応するフラグ＝２）。これらの画素は、中間領域ＭＡ内の複数個の画素のうち、黒画素に隣接する画素であって、黒画素として特定されていない画素である。また、外側領域ＢＡのうち、中間領域ＭＡと隣接する複数個の画素（例えば、図１１（Ａ）の画素ＳＰ１７）が、白画素として特定される（対応するフラグ＝２）。また、外側領域ＢＡのうち、黒画素から３画素以上離れた複数個の画素（例えば、図１１（Ａ）の画素ＳＰ２１）は、白画素にも黒画素にも特定されない（対応するフラグ＝０）。
【０１３３】
図１２を参照して、さらに、具体例を説明する。図１２は、白画素特定処理の第２の説明図である。図１２（Ａ）には、図８（Ａ）と同様の下エッジの拡大図が示されている。図１２（Ｂ）には、図１３（Ａ）に示すスキャン画像ＳＩ内の領域に対応するフラグデータが示されている。下エッジについても同様に、例えば、黒画素である画素ＴＰ１８が注目画素ＴＰである場合には、４方向にＭ個（図１２（Ａ）では２個）先の画素ＳＰ２２〜ＳＰ２５のうち、黒画素でなく、かつ、その値が白色範囲内である画素ＳＰ２２が、白画素として特定される（Ｓ２３０〜Ｓ２４０）。そして、画素ＴＰ１８と、画素ＳＰ２２と、の間に位置する画素ＳＰ２６は、黒画素ではないので、白画素として特定される。画素ＴＰ１８から３画素離れた画素ＳＰ２７は、遠方画素であるので、上記特定条件について判断されずに、白画素として特定されない。したがって、図１２（Ｂ）に示すように、中間領域ＭＡのうち、内側領域ＴＡより外側領域ＢＡに近い複数個の画素（例えば、図１２（Ａ）の画素ＳＰ２２）が、白画素として特定される（対応するフラグ＝２）。また、外側領域ＢＡのうち、中間領域ＭＡと隣接する複数個の画素（例えば、図１２（Ａ）の画素ＳＰ２６）が、白画素として特定される（対応するフラグ＝２）。また、外側領域ＢＡのうち、黒画素から３画素以上離れた複数個の画素（例えば、図１２（Ａ）の画素ＳＰ２７）は、白画素にも黒画素にも特定されない（対応するフラグ＝０）。
【０１３４】
図示は省略するが、右エッジ（図７（Ａ））および左エッジ（図９（Ａ））においても、中間領域ＭＡのうち、内側領域ＴＡより外側領域ＢＡに近い複数個の画素と、外側領域ＢＡのうち、中間領域ＭＡと隣接する複数個の画素と、が白画素として特定される。黒画素から３画素以上離れた複数個の画素は、白画素にも黒画素にも特定されない。
【０１３５】
図１３は、処理済画像の説明図である。図１３（Ａ）、（Ｂ）には、それぞれ、図１１（Ａ）の下エッジ、図１２（Ａ）の上エッジに対応する処理済画像ＯＩの拡大図が示されている。上述した黒画素および白画素の特定結果を用いて、図２のＳ４５の白黒画素置換処理が実行された場合には、図１３（Ａ）、（Ｂ）の処理済画像ＯＩを示す処理済画像データが生成される。この処理済画像ＯＩにおいて、黒い画素は、スキャン画像ＳＩ内の特定済みの黒画素に対応する画素であり、黒色に置換された画素（黒置換画素とも呼ぶ）である。処理済画像ＯＩにおいて、丸印が付された白い画素は、特定済みの白画素に対応する画素であり、白色に置換された画素（白置換画素とも呼ぶ）である。処理済画像ＯＩにおいて、丸印が付されていない白い画素は、遠方画素（白画素にも黒画素にも特定されていない画素）に対応する対応遠方画素である。このように、処理済画像ＯＩは、複数個の黒置換画素と、複数個の白置換画素と、複数個の対応遠方画素と、を含む。この結果、処理済画像ＯＩにおいて、黒色と白色との境界を鮮明にすることができる。複数個の遠方画素は、鮮鋭化画像ＦＩ（図３（Ｄ））の対応する画素の値を有するので、白色とも黒色とも異なる色を有し得る。この結果、黒色と白色との境界を鮮明にするために、黒色と白色との境界から離れた遠方の部分が、過度に影響を受けることを抑制できる。例えば、スキャン画像ＳＩにおいて、白色の背景Ｂｇ１が、完全な白色でなく、例えば、薄い模様や薄い色を含んでいる場合に、処理済画像ＯＩにおいて、背景Ｂｇ１の模様や色が失われて画質が低下することを抑制できる。また、スキャン画像ＳＩにおいて、黒色の文字の近傍に、例えば、薄い色のオブジェクト（例えば、描画など）が含まれる場合に、該オブジェクトの一部が白色に置換されて該オブジェクトの見栄えが低下することを抑制できる。
【０１３６】
以上説明した本実施例によれば、図２のＳ２５の黒画素特定処理（図５）において、ＣＰＵ２１０は、機械学習モデルを用いて、注目領域ＴＲが文字領域であるか否かを判断する（図５のＳ１０８、Ｓ１１０）。ＣＰＵ２１０は、注目画素ＴＰの値を用いて、注目画素ＴＰが黒色を有するべきことを示す特定の判断条件を満たすか否かを判断する（図５のＳ１２０〜Ｓ１４０）。ＣＰＵ２１０は、注目領域ＴＲが文字領域であると判断され（Ｓ１１０：ＹＥＳ）、かつ、注目画素ＴＰが黒色を有するべきことを示す特定の判断条件を満たす場合に（図５のＳ１２０〜Ｓ１４０のいずれかにてＹＥＳ）、注目画素ＴＰを黒画素として特定する（図５のＳ１４５）。さらに、図２のＳ３０の白画素特定処理（図１０）において、ＣＰＵ２１０は、特定済みの黒画素の周辺に位置する白画素を特定する。ＣＰＵ２１０は、スキャン画像ＳＩにおいて特定済みの黒画素に対応する画素が黒色を有し、特定済みの白画素に対応する画素が白色を有する処理済画像データを生成する（図２のＳ３５〜Ｓ４５）。この結果、黒色画素特定処理において、機械学習モデルを用いて黒画素を適切に特定できる。したがって、処理済画像データを生成する際に、黒色の文字以外のオブジェクトのエッジが強調されることを抑制できるので、スキャン画像ＳＩ内の黒色の文字のエッジを適切に特定し強調できる。
【０１３７】
具体的に説明する。仮に、上述した黒色を有するべきことを示す特定の判断条件（図５のＳ１２０〜Ｓ１４０）を満たすか否かだけで、黒色画素を特定する場合には、例えば、文字とは異なるオブジェクトＯｂ１〜Ｏｂ３に含まれる黒色の画素であって、周囲に白色の画素を有する画素が、黒画素として誤って特定され得る。この場合には、文字とは異なるオブジェクトＯｂ１〜Ｏｂ３に含まれる黒色の画素と周囲の白色の画素との境界のエッジが誤って強調され、処理済画像の画質が低下するおそれがある。例えば、写真に含まれる被写体（人や静物）の輪郭などが誤って強調され、写真が不自然な見栄えとなる場合がある。このような被写体の輪郭における画素の値の変化のパターンと、白色の背景上の黒色の文字のエッジにおける画素の値の変化のパターンと、の間には、違いがある。このようなパターンの違いは、上述した判断条件Ａ〜Ｆのような比較的簡単な数式で表現することは困難であるが、機械学習モデルをトレーニングすることによって機械学習モデルを用いて判断可能である。本実施例では、機械学習モデルを用いて注目画素ＴＰを含む注目領域ＴＲが文字領域であると判断されることが、注目画素ＴＰが黒画素として特定されるための必要条件となっているので、文字以外のオブジェクトのエッジが強調されることを抑制して、黒色の文字のエッジを適切に特定し強調できる。
【０１３８】
さらに、本実施例では、ＣＰＵ２１０は、注目領域ＴＲが文字領域であると判断される場合に（Ｓ１１０：ＹＥＳ）、注目画素ＴＰが上述の特定の判断条件を満たすか否かを判断し（図５のＳ１２０〜Ｓ１４０）、注目領域ＴＲが文字領域でないと判断される場合に（Ｓ１１０：ＮＯ）、注目画素ＴＰが特定の判断条件を満たすか否かを判断しない。この結果、無駄に、特定の判断条件を満たすか否かを判断することを抑制できるので、処理済画像データの生成に要する処理負荷を低減できる。
【０１３９】
さらに、本実施例では、図２のＳ１５にて、ＣＰＵ２１０は、対象画像内の複数個の画素の中から、複数個のエッジ画素を特定する。そして、黒画素特定処理では、これらの複数個のエッジ画素のそれぞれについて、機械学習モデルを用いた判断が実行される（図５のＳ１０４：ＹＥＳ、Ｓ１０６）。この結果、全ての画素について機械学習モデルを用いた判断が実行される場合と比較して、処理済画像データの生成に要する処理負荷を低減できる。
【０１４０】
さらに、本実施例では、図２のＳ５０にて、処理済画像データを用いて、印刷データを生成するので、印刷画像内の白色の背景上に位置する黒色の文字のエッジを適切に特定し強調することができる。
【０１４１】
さらに、本実施例で強調すべき文字の色（黒色）は、印刷実行部２８０によって用いられる４種類のインクのうちのＫインクに対応する色である。インクに対応する色（例えば、シアン、マゼンタ、イエロ、黒のいずれか）のエッジを強調すると、印刷画像上でも該エッジの強調が維持される。このために、エッジ強調処理を行う意義が大きい。例えば、文字の色がインクに対応する色と異なる色である場合には、当該文字のエッジは、Ｓ５０の印刷データ生成処理にて行われるハーフトーン処理によってドットデータに変換された場合に、崩れやすい。このために、ハーフトーン処理の前にエッジを強調する意義が小さい。本実施例によれば、印刷画像において色材に対応する色の文字のエッジを適切に特定し強調することができる。
【０１４２】
さらに本実施例では、対象画像データは、イメージセンサを用いて原稿を読み取ることによって生成されるスキャンデータである。スキャンデータによって示される画像内の文字のエッジは、ぼけていることが多い。上記構成によれば、そのような画像内の文字のエッジを適切に特定し強調することができる。
【０１４３】
以上の説明から解るように、本実施例の黒色は、第１の色の例であり、白色は、第２の色の例である。本実施例の黒画素は、第１の画素の例であり、白画素は、第２の画素の例である。処理済画像データは、エッジ強調画像データの例である。また、本実施例の処理済画像データは、エッジ強調画像データの例である。
【０１４４】
Ｂ．変形例：
【０１４５】
（１）上記実施例では、黒色と白色との境界を鮮明にするべく、黒色を有するべき黒画素と、白色を有するべき白画素と、が特定されている（図２のＳ２５、Ｓ３０）。これに代えて、他の色、例えば、シアンとマゼンタとの境界を鮮明にするべく、シアンを有するべきシアン画素と、マゼンタを有するべきマゼンタ画素と、が特定されても良い。一般的に言えば、第１色を有するべき複数個の第１画素と、第１色とは異なる色を有するべき複数個の第２画素と、が特定されることが好ましい。
【０１４６】
ここで、印刷を前提とする場合には、第１色と第２色との組み合わせは、印刷に用いられる複数種類の色材（例えば、インクやトナー）に対応する色と、印刷に用いられる用紙の地色と、の中から選択される２色であることが好ましい。例えば、第１色と第２色との組み合わせは、印刷に用いられる色材の色であるシアン、マゼンタ、イエロ、黒と、用紙の地色である白と、から成る５色の中から選択される２色であることが好ましい。この場合には、処理済画像データに対してハーフトーン処理を実行して得られる印刷画像（網点画像）においても、第１色と第２色との境界は、鮮明のままで維持される。
【０１４７】
さらには、背景の色として特定される色（本実施例では白色）は、基準以上の明度を有する色であることが好ましい。例えば、背景の色として特定される色は、完全な黒の明度を０として、完全な白の明度を１００とする場合に、７０以上の明度を有する色であることが好ましい。この場合には、文字などのオブジェクトの色とのコントラストが高くなりやすい。このために、処理済画像ＯＩにおいて、文字などのオブジェクトと背景との境界が鮮明に見えやすい。
【０１４８】
（２）上記実施例の黒画素特定処理（図５）では、Ｓ１２０〜Ｓ１４０の特定の判断条件を判断する処理が実行される前に、Ｓ１０８、Ｓ１１０の機械学習モデルを用いた判断を行っている。これに代えて、Ｓ１２０〜Ｓ１４０の特定の判断条件を判断する処理を行い、注目画素ＴＰが特定の判断条件を満たす場合に、Ｓ１０８、Ｓ１１０の機械学習モデルを用いた判断を行っても良い。
【０１４９】
（２）図６の黒画素特定処理では、二値画像データによって特定される複数個のエッジ画素の中から、黒画素が特定される（Ｓ１０４）。これに代えて、例えば、スキャン画像ＳＩ内の全ての画素の中から、黒画素が特定されても良い。すなわち、図６のＳ１０４は省略されても良い。
【０１５０】
（３）図６の黒画素特定処理において、黒色を有するべきことを示す特定の判断条件は、一例であり、これに限られない。例えば、実施例の第２黒色範囲よりも狭く、かつ、黒色を含む範囲内の画素の値を有する画素は、全て黒画素として特定されても良い。
【０１５１】
（４）図１０の白画素特定処理において、白画素として特定するための条件は、一例であり、これに限られない。例えば、黒画素の４方向に隣接する画素のうち、黒画素でなく、かつ、最も白に近い画素を、白画素として特定しても良い。また、上記実施例の確認画素数Ｍの値は、スキャンデータの読取解像度に関わらずに、一定の値（例えば、２）であっても良い。
【０１５２】
（５）上記実施例では、スキャンデータの各画素の値は、ＲＧＢ値であるが、他の表色系の色値であっても良い。例えば、スキャンデータの各画素の値は、Ｃ、Ｍ、Ｙの３個の成分値を含むＣＭＹ表色系の色値であっても良い。
【０１５３】
（６）上記実施例では、エッジ画素に対して、エッジ鮮鋭化処理が実行され（図２のＳ４０）、非エッジ画素に対して、網点平滑化処理が実行される（図２のＳ３５）。これに代えて、エッジ画素に対しては、文字の見栄えを向上するためのアンチエイリアス処理が実行されても良い。また、非エッジ画素に対しては、例えば、印刷時の色材の使用量を減らすために、色を飛ばす処理（白に変換する処理）が実行されても良い。一般的には、エッジ画素と、エッジ画素と、に互いに異なる画像処理が実行されることが好ましい。あるいは、エッジ画素と非エッジ画素のいずれか一方に対して、特定の画像処理が実行され、他方に対して、該特定の画像処理が実行されなくても良い。また、図２のＳ４０、Ｓ３５の処理は省略されて、スキャンデータに対して、Ｓ４５の白黒画素置換処理が実行されても良い。
【０１５４】
（７）上記実施例では、対象画像データは、スキャンデータであるが、これに限られない。対象画像データは、２次元イメージセンサを備えるデジタルカメラによって印刷物を読み取ることによって生成されても良い。また、また、対象画像データは、描画作成や文書作成などのアプリケーションプログラムを用いて作成された画像データであっても良い。
【０１５５】
（８）上記実施例では、処理済画像データは、処理済画像を印刷するために用いられている（図２のＳ５０、Ｓ５５）。これに限らず、処理済画像データは、処理済画像を液晶ディスプレイなどの表示部に表示するために用いられても良い。
【０１５６】
（９）図２の画像処理を実現する画像処理装置は、複合機２００に限らず、種々の装置であってよい。例えば、スキャナやデジタルカメラが、自身で生成された対象画像データを用いて、プリンタに供給するための印刷データを生成するために、図２の画像処理を実行しても良い。また、例えば、スキャナやプリンタと通信可能な接続される端末装置（例えば、端末装置１００）やサーバ（図示省略）が、スキャナから取得したスキャンデータを用いて、図２の画像処理を実行して、印刷データを生成し、該印刷データをプリンタに供給しても良い。また、ネットワークを介して互いに通信可能な複数個のコンピュータ（例えば、クラウドサーバ）が、画像処理に要する機能を一部ずつ分担して、全体として、画像処理を実行してもよい。この場合、複数個のコンピュータの全体が、画像処理装置の例である。
【０１５７】
（１０）上記各実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。例えば、図４のＳ４５の白黒画素置換処理や、Ｓ４０のエッジ強調処理は、ＡＳＩＣなどの専用のハードウェアによって、実行されても良い。
【０１５８】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１５９】
１００…端末装置、２００…複合機、２１０…ＣＰＵ、２２０…揮発性記憶装置、２３０…不揮発性記憶装置、２４０…表示部、２５０…操作部、２７０…通信ＩＦ、２８０…印刷実行部、２９０…読取実行部、Ｄ１…第１方向、Ｄ２…第２方向、ＴＡ…内側領域、ＢＡ…外側領域、ＭＡ…中間領域、ＰＧ…コンピュータプログラム、ＢＩ…二値画像、ＯＩ…処理済画像、ＧＩ…平滑化画像、ＦＩ…鮮鋭化画像、ＳＩ…スキャン画像
【図１】
2019114928.tif 000004
【図２】
2019114928.tif 000005
【図３】
2019114928.tif 000006
【図４】
2019114928.tif 000007
【図５】
2019114928.tif 000008
【図６】
2019114928.tif 000009
【図７】
2019114928.tif 000010
【図８】
2019114928.tif 000011
【図９】
2019114928.tif 000012
【図１０】
2019114928.tif 000013
【図１１】
2019114928.tif 000014
【図１２】
2019114928.tif 000015
【図１３】
2019114928.tif 000016