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