(57)【特許請求の範囲】
【請求項１】
所定の縮小率で原画像を縮小する縮小部と、
前記縮小部が用いた前記所定の縮小率の逆数を拡大率として用いて前記縮小結果画像を拡大する拡大部と、
前記拡大部による拡大結果の画像に含まれる各画素の値と、前記拡大結果画像中の当該画素の位置に対応する前記原画像中の位置に配置される画素の値と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定部と、
前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小部であって、前記画質劣化領域に用いる縮小率は、前記画質劣化領域の他の前記原画像中の領域に用いる縮小率よりも大きいことを特徴とする変形縮小部と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記変形縮小部は、前記画質劣化領域については縮小せず、前記画質劣化領域の他の前記原画像中の領域については前記縮小部が用いた前記所定の縮小率で縮小することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画質劣化領域判定部が判定した領域の前記原画像中の位置に基づいて当該領域を補正し、補正後の領域を前記画質劣化領域とする画質劣化領域補正部、をさらに備えることを特徴とする請求項１から２のいずれか１項に記載の画像処理装置。
【請求項４】
前記原画像の１つの走査方向を処理方向として前記画像処理装置が備える各部の処理を行った後、前記走査方向に対して垂直な方向を処理方向として前記画像処理装置が備える各部の処理を行うことを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記画質劣化領域の他の前記原画像中の領域から、前記処理方向と平行な辺を有する長方形の領域であって前記原画像の背景色を表す画素のみを含む領域である余白を検出し、検出した余白について前記所定の縮小率で縮小した場合の大きさよりも小さな大きさに縮小することを前記変形縮小部に指示する余白調整部、
をさらに備え、
前記変形縮小部は、さらに、前記余白調整部の指示に従って前記原画像を縮小することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記変形縮小部による縮小の後の画像の大きさを求め、求めた大きさが前記縮小結果画像の大きさよりも大きい場合に、前記原画像について、前記縮小部が用いた前記所定の縮小率と異なる縮小率を用いて、少なくとも前記縮小部、前記画質劣化領域判定部、及び前記余白調整部の処理を実行することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
所定の縮小率で原画像を縮小する縮小部と、
前記縮小部による縮小結果の画像に基づいて取得される情報と、前記原画像に基づいて取得される情報と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定部と、
前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小部と、
を備え、
前記変形縮小部による縮小の後の画像の大きさを求め、求めた大きさが前記縮小結果画像の大きさよりも大きい場合に、前記画質劣化領域のそれぞれを原画像として、前記縮小部が用いた前記所定の縮小率と異なる縮小率を用いて、少なくとも前記縮小部及び前記画質劣化領域判定部の処理を実行することを特徴とする画像処理装置。
【請求項８】
所定の縮小率で原画像を縮小する縮小部と、
前記縮小部による縮小結果の画像に基づいて取得される情報と、前記原画像に基づいて取得される情報と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定部と、
前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小部と、
を備え、
処理対象として指定された画像を原画像として、複数の異なる縮小率を用いて少なくとも前記縮小部及び前記画質劣化領域判定部の処理を繰り返し実行し、前記画質劣化領域判定部において前記画質劣化領域が存在しないと判定された場合に前記縮小部で用いられた縮小率のうち、縮小後の画像の大きさが最小となる縮小率を、前記指定された画像の可能縮小率として決定する可能縮小率決定部、をさらに備えることを特徴とする画像処理装置。
【請求項９】
前記画質劣化領域のそれぞれを処理対象として指定して前記可能縮小率決定部の処理を実行し、
前記変形縮小部は、前記画質劣化領域のそれぞれについて前記可能縮小率決定部が決定した可能縮小率を用いて前記画質劣化領域を縮小する、ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
所定の縮小率で原画像を縮小する縮小ステップと、
前記縮小部が用いた前記所定の縮小率の逆数を拡大率として用いて前記縮小結果画像を拡大する拡大ステップと、
前記拡大部による拡大結果の画像に含まれる各画素の値と、前記拡大結果画像中の当該画素の位置に対応する前記原画像中の位置に配置される画素の値と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定ステップと、
前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小ステップであって、前記画質劣化領域に用いる縮小率は、前記画質劣化領域の他の前記原画像中の領域に用いる縮小率よりも大きいことを特徴とする変形縮小ステップと、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及びプログラムに関する。
【背景技術】
【０００２】
二値画像の縮小変換処理では、変換の前後において情報の欠落が発生する場合がある。例えば、縮小変換前の原画像中の細線が縮小変換後の画像において消失する場合がある。また例えば、原画像中の背景色の細線が変換後の画像において消失することで、原画像中の異なる複数の線又は領域が変換後の画像において１つの線又は領域として表される場合がある。このような情報欠落が縮小変換処理において発生すると、画像の品質は劣化する。
【０００３】
画像の縮小変換処理における情報欠落の発生を防止する従来技術として、例えば、特許文献１には、二値イメージデータにおける黒画素の分布の特徴を評価し、この評価結果に基づいて、黒画素の分布が少ない領域を優先的に排除することによって二値イメージデータを縮小変換する装置が開示されている。
【０００４】
特許文献２には、複数の画素を含む画像を単位画像エリアに分割し、この単位画像エリアをそれぞれ縮小後の画像の１画素とする画像縮小処理を実行する画像データ縮小装置が開示されている。この画像データ縮小装置では、直線状に配列された画素列が単位画像エリアに存在することを検出した場合は、その画素列の色情報を強調して、当該単位画像エリアに対応する縮小後の画像の画素の色を決定する。
【０００５】
また例えば、特許文献３に開示される縮小変換装置では、変換画像中の画素（変換画素）のそれぞれを原画像へ写像し、各変換画素を中心に一定の範囲内に配置される原画像の画素について画素値の反転を検出することで、原画像のその範囲内において１画素の幅を有する細線の有無を検出する。そして、細線を検出した場合は、検出した細線の色を表す画素値を変換画素の値とすることで細線を保存し、細線を検出しなかった場合は、変換画素に最も近い原画像の画素の値を当該変換画素の値とする。
【０００６】
【特許文献１】特開平０８−２１４１５０号公報
【特許文献２】特開２００１−１００７２９号公報
【特許文献３】特開平０５−０４１７９５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、画像の縮小処理による情報欠落を防止するとともに、効率的に画像を縮小できる技術を提供することを１つの目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、所定の縮小率で原画像を縮小する縮小部と、前記縮小部が用いた前記所定の縮小率の逆数を拡大率として用いて前記縮小結果画像を拡大する拡大部と、前記拡大部による拡大結果の画像に含まれる各画素の値と、前記拡大結果画像中の当該画素の位置に対応する前記原画像中の位置に配置される画素の値と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定部と、前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小部であって、前記画質劣化領域に用いる縮小率は、前記画質劣化領域の他の前記原画像中の領域に用いる縮小率よりも大きいことを特徴とする変形縮小部と、を備えることを特徴とする画像処理装置である。
【００１０】
請求項２に係る発明は、請求項１に係る発明において、前記変形縮小部は、前記画質劣化領域については縮小せず、前記画質劣化領域の他の前記原画像中の領域については前記縮小部が用いた前記所定の縮小率で縮小する。
【００１１】
請求項３に係る発明は、請求項１から２のいずれか１項に係る発明において、前記画質劣化領域判定部が判定した領域の前記原画像中の位置に基づいて当該領域を補正し、補正後の領域を前記画質劣化領域とする画質劣化領域補正部、をさらに備える。
【００１２】
請求項４に係る発明は、請求項１から３のいずれか１項に係る発明において、前記原画像の１つの走査方向を処理方向として前記画像処理装置が備える各部の処理を行った後、前記走査方向に対して垂直な方向を処理方向として前記画像処理装置が備える各部の処理を行う。
【００１３】
請求項５に係る発明は、請求項４に係る発明において、前記画質劣化領域の他の前記原画像中の領域から、前記処理方向と平行な辺を有する長方形の領域であって前記原画像の背景色を表す画素のみを含む領域である余白を検出し、検出した余白について前記所定の縮小率で縮小した場合の大きさよりも小さな大きさに縮小することを前記変形縮小部に指示する余白調整部、をさらに備え、前記変形縮小部は、さらに、前記余白調整部の指示に従って前記原画像を縮小する。
【００１４】
請求項６に係る発明は、請求項５に係る発明において、前記変形縮小部による縮小の後の画像の大きさを求め、求めた大きさが前記縮小結果画像の大きさよりも大きい場合に、前記原画像について、前記縮小部が用いた前記所定の縮小率と異なる縮小率を用いて、少なくとも前記縮小部、前記画質劣化領域判定部、及び前記余白調整部の処理を実行する。
【００１５】
請求項７に係る発明は、所定の縮小率で原画像を縮小する縮小部と、前記縮小部による縮小結果の画像に基づいて取得される情報と、前記原画像に基づいて取得される情報と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定部と、前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小部と、を備え、前記変形縮小部による縮小の後の画像の大きさを求め、求めた大きさが前記縮小結果画像の大きさよりも大きい場合に、前記画質劣化領域のそれぞれを原画像として、前記縮小部が用いた前記所定の縮小率と異なる縮小率を用いて、少なくとも前記縮小部及び前記画質劣化領域判定部の処理を実行する。
【００１６】
請求項８に係る発明は、所定の縮小率で原画像を縮小する縮小部と、前記縮小部による縮小結果の画像に基づいて取得される情報と、前記原画像に基づいて取得される情報と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定部と、前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小部と、を備え、処理対象として指定された画像を原画像として、複数の異なる縮小率を用いて少なくとも前記縮小部及び前記画質劣化領域判定部の処理を繰り返し実行し、前記画質劣化領域判定部において前記画質劣化領域が存在しないと判定された場合に前記縮小部で用いられた縮小率のうち、縮小後の画像の大きさが最小となる縮小率を、前記指定された画像の可能縮小率として決定する可能縮小率決定部、をさらに備える。
【００１７】
請求項９に係る発明は、請求項８に係る発明において、前記画質劣化領域のそれぞれを処理対象として指定して前記可能縮小率決定部の処理を実行し、前記変形縮小部は、前記画質劣化領域のそれぞれについて前記可能縮小率決定部が決定した可能縮小率を用いて前記画質劣化領域を縮小する。
【００１８】
請求項１０に係る発明は、所定の縮小率で原画像を縮小する縮小ステップと、前記縮小部が用いた前記所定の縮小率の逆数を拡大率として用いて前記縮小結果画像を拡大する拡大ステップと、前記拡大部による拡大結果の画像に含まれる各画素の値と、前記拡大結果画像中の当該画素の位置に対応する前記原画像中の位置に配置される画素の値と、を比較することで、前記縮小結果画像において画質の劣化が生じる領域に対応する前記原画像中の領域である画質劣化領域を判定する画質劣化領域判定ステップと、前記画質劣化領域と、前記画質劣化領域の他の前記原画像中の領域と、について互いに異なる縮小率を用いて、前記原画像を縮小する変形縮小ステップであって、前記画質劣化領域に用いる縮小率は、前記画質劣化領域の他の前記原画像中の領域に用いる縮小率よりも大きいことを特徴とする変形縮小ステップと、をコンピュータに実行させることを特徴とするプログラムである。
【発明の効果】
【００１９】
請求項１又は１０に係る発明によると、縮小結果画像に基づいて取得される情報と原画像に基づいて取得される情報とを比較することで画質劣化領域を確実に判定でき、この画質劣化領域とその他の原画像中の領域とを互いに異なる縮小率で縮小するため、画質の劣化を生じさせずに原画像を縮小できる。
【００２０】
また、画質劣化領域を容易に判定できる。
【００２１】
請求項２に係る発明によると、画質劣化が生じないことが確実である変形縮小処理を行うことができる。
【００２２】
請求項３に係る発明によると、補正された画質劣化領域とその他の原画像中の領域とを互いに異なる縮小率で縮小できる。
【００２３】
請求項４に係る発明によると、容易な計算によって、画質劣化領域とその他の原画像中の領域とを互いに異なる縮小率で縮小するための処理を実行できる。
【００２４】
請求項５に係る発明によると、画像中の余白をより小さく縮小することで、画質劣化領域とその他の原画像中の領域とを互いに異なる縮小率で縮小した結果の画像の大きさをより小さくすることができる。
【００２５】
請求項６に係る発明によると、原画像の全体を所定の縮小率で縮小した結果の画像の大きさよりも変形縮小処理の後の画像の大きさが大きい場合に当該所定の縮小率と異なる縮小率を用いて原画像の画質劣化領域を判定する処理を繰り返して実行することができ、その結果、原画像の全体を所定の縮小率で縮小した結果の画像により近い大きさの画像を変形縮小処理の結果として得ることができる。
【００２６】
請求項７に係る発明によると、原画像の全体を所定の縮小率で縮小した結果の画像の大きさよりも変形縮小処理の後の画像の大きさが大きい場合に、原画像の全体を所定の縮小率で縮小した結果の画像の大きさにより近い大きさの画像を変形縮小処理の結果として得ることができる。
【００２７】
請求項８に係る発明によると、画質劣化が生じない範囲で処理対象の画像を最も小さく縮小するための縮小率を求めることができる。
【００２８】
請求項９に係る発明によると、画質劣化領域を縮小せず、画質劣化領域の他の原画像中の領域を所定の縮小率で縮小する場合と比較して、原画像の全体を所定の縮小率で縮小した結果の画像の大きさにより近い大きさの画像を変形縮小処理の結果として得ることができる。
【発明を実施するための最良の形態】
【００２９】
図１は、本発明の１つの実施形態の画像処理装置１０の概略構成の例を示すブロック図である。画像処理装置１０は、画像入力部１２、ユーザ入力部１４、処理部１６、記憶部１８、及び出力部２０を備える。
【００３０】
画像入力部１２は、処理対象の画像データの入力を受け付けて処理部１６に渡す。画像入力部１２が受け付ける画像データは、例えば、画素ごとに白色及び黒色のいずれかを表す値を有する二値画像のデジタルデータである。画像入力部１２は、例えば、スキャナなどの一般的なデジタル画像生成装置から画像データの入力を受け付ける。また例えば、画像入力部１２は、インターネットやＬＡＮ（Local Area Network）などのネットワーク（図示しない）を介して画像処理装置１０と接続されたコンピュータなどの情報処理装置から画像データの入力を受け付けてもよい。なお、以下の説明では、色などを表す数値を有する画素からなるデジタル画像データを単に「画像」と呼ぶ。
【００３１】
ユーザ入力部１４は、ユーザによる指示の入力を受け付けて処理部１６に渡す。ユーザ入力部１４は、例えば、キーボード及びマウスなどの一般的な入力装置であってよい。
【００３２】
処理部１６は、画像入力部１２が受け付けた画像に対する処理を行う。処理部１６は、縮小部１６０、拡大部１６２、縮小ＮＧマスク作成部１６４、及び変形縮小部１６６を備える。
【００３３】
縮小部は、原画像を所定の縮小率で縮小する処理を行う。縮小部は、例えば、画像の縮小方法として用いられる一般的な縮小方法によって原画像を縮小する。
【００３４】
拡大部１６２は、縮小部が縮小した結果の画像（以下、「縮小結果画像」とも呼ぶ）を拡大する処理を行う。拡大部１６２は、縮小部が用いた縮小率の逆数を拡大率として用い、縮小部が用いた縮小方法に対応する方法によって縮小結果画像を拡大する。例えば、縮小部が原画像を１／２倍に縮小した場合、拡大部１６２は、当該縮小結果画像を２倍に拡大する。この拡大部１６２による拡大の結果の画像（以下、「拡大結果画像」とも呼ぶ）は、縮小部による縮小前の原画像と同じ大きさを有する。
【００３５】
縮小ＮＧマスク作成部１６４は、縮小部の縮小処理によって情報欠落が生じ得る原画像中の領域を表すＮＧエリアを含む縮小ＮＧマスクを作成する。縮小ＮＧマスクは、原画像中の各画素に対応する画素を含む。縮小ＮＧマスク中の各画素は、後述の変形縮小部１６６の処理で用いられる情報を有する。例えば、縮小ＮＧマスク中の各画素は、当該画素がＮＧエリアに含まれる場合にＯＮに設定され、当該画素がＮＧエリアに含まれない場合にＯＦＦに設定されるＮＧマスク値を有する。縮小ＮＧマスク作成部１６４は、ＮＧエリア判定部１６４０及び縮小ＮＧマスク補正部１６４２を備える。
【００３６】
ＮＧエリア判定部１６４０は、縮小部の縮小処理によって情報欠落が生じ得る領域を判定する。ＮＧエリア判定部１６４０は、例えば、縮小処理によって細線の消失又は線同士の潰れなどの画質の劣化が生じる領域をＮＧエリアとして判定する。ＮＧエリア判定部１６４０は、例えば、拡大結果画像の各画素の値と原画像の各画素の値とを比較することでＮＧエリアを判定する。
【００３７】
縮小ＮＧマスク補正部１６４２は、ＮＧエリア判定部１６４０が判定したＮＧエリアを補正して、補正された縮小ＮＧマスクを生成する。縮小ＮＧマスク補正部１６４２が行う補正処理の内容の詳細は後述する。
【００３８】
変形縮小部１６６は、縮小ＮＧマスク作成部１６４が作成した縮小ＮＧマスクに従って原画像を縮小する。変形縮小部１６６は、例えば、縮小ＮＧマスクが表す各種の領域について互いに異なる縮小率を用いて原画像を縮小する。例えば、変形縮小部１６６は、縮小ＮＧマスクが表すＮＧエリアについては縮小率１．０で縮小し（つまり、縮小しない）、ＮＧエリア以外の原画像の領域については、縮小部が用いた所定の縮小率で縮小する。
【００３９】
記憶部１８は、処理部１６における処理に必要な情報を記憶する記憶装置である。記憶部１８は、例えば、処理部１６の処理対象の画像、処理部１６が行う処理で用いられる変数の値、及び処理部１６が行う処理の手順を記述したプログラムなどを記憶する。
【００４０】
出力部２０は、処理部１６による処理の結果を出力する。例えば、出力部２０は、処理部１６による処理の結果として生成された画像を表示装置（図示しない）に対して出力し、当該画像を表示装置に表示させる。あるいは、例えば、出力部２０は、処理結果の画像をネットワーク（図示しない）に対して出力することで、ネットワークを介して画像処理装置１０に接続された装置に処理結果の画像を送ってもよい。
【００４１】
図２は、処理部１６が行う処理の手順の例を示すフローチャートである。
【００４２】
図２を参照し、処理部１６は、まずステップＳ１で、処理の対象である原画像を画像入力部１２から取得する。本例では、原画像は、二値画像のデジタルデータであるとする。
【００４３】
次に、ステップＳ２で、処理部１６は、処理方向を原画像の主走査方向に設定する。ステップＳ３以降、処理部１６が備える各部は、現在の処理方向の画素線に対して各処理を行う。
【００４４】
ステップＳ３で、処理部１６の縮小部は、現在の処理方向に所定の縮小率で原画像を縮小する。縮小部は、例えば、原画像の主走査方向の各画素線を１／ｆ倍（１．０＜ｆ）に縮小する。この縮小率１／ｆの値は、例えばユーザによって指定された値であってよい。縮小部は、ユーザ入力部１４を介して、ユーザが指定した縮小率１／ｆの値を取得できる。あるいは、縮小部は、予め設定されて記憶部１８に記憶された縮小率１／ｆを用いてもよい。縮小部は、画像の縮小変換処理において一般的に用いられる方法で縮小処理を行う。例えば、原画像の各画素線から、縮小率１／ｆに応じて決定される一定の間隔で複数の画素を選択し、選択した各画素の値を、縮小結果画像の対応する画素線に含まれる各画素の値とする。縮小処理が終了すると、縮小部１６０は縮小結果画像を拡大部１６２に渡す。
【００４５】
ステップＳ４で、拡大部１６２は、縮小部から取得した縮小結果画像を拡大する。拡大部１６２は、設定された処理方向に、縮小部が用いた縮小率１／ｆの逆数で表される拡大率ｆで縮小結果画像を拡大する。例えば、拡大部１６２は、縮小結果画像の主走査方向の各画素線をｆ倍に拡大する。拡大部１６２は、縮小部が縮小処理（ステップＳ３）で用いた方法に対応する方法で拡大処理を行う。拡大部１６２の拡大処理（ステップＳ４）は、縮小処理（ステップＳ３）における変換の逆変換によって拡大結果画像を得るものであると言える。例えば、原画像の各画素線から一定間隔で選択された画素の値を縮小結果画像の画素線に含まれる各画素の値とする上述の例の方法で縮小処理が行われていた場合、拡大部１６２は、縮小結果画像の各画素線について、画素と画素との間に、拡大率ｆに応じて決定される所定の個数の画素を挿入した画素線を拡大結果画像の画素線とする。ここで、画素と画素との間に挿入される画素の値は、例えば、挿入される画素を挟む２つの画素のうちの一方と同じ値に設定しておけばよい。拡大処理が終了すると、拡大部１６２は、拡大結果画像を縮小ＮＧマスク作成部１６４に渡す。
【００４６】
縮小処理（ステップＳ３）において何らかの情報欠落が生じていた場合、ステップＳ４で縮小結果画像を拡大した拡大結果画像は、縮小結果画像における情報欠落状態を維持するものとなる。例えば、図３を参照し、画素線Ａは、原画像ＩＭＧOの主走査方向の１つの画素線である。画素線Ｂは、画素線Ａを主走査方向（矢印Ｍの方向）に１／ｆ倍に縮小した画素線である。つまり、画素線Ｂは、縮小結果画像において原画像ＩＭＧOの画素線Ａに対応する画素線である。また、画素線Ｃは、画素線Ｂを主走査方向にｆ倍に拡大した画素線である。つまり、画素線Ｃは、拡大結果画像において原画像ＩＭＧOの画素線Ａに対応する画素線Ｃである。
【００４７】
図３に例示する原画像ＩＭＧOの画素線Ａでは、一点鎖線で囲んだ部分ｐ１に４つの黒画素が配置されており、各黒画素とその隣の黒画素との間には１つの白画素が配置されている。一方、縮小結果画像の画素線Ｂでは、画素線Ａの部分ｐ１に対応する部分において、４つの黒画素が連続して配置されており、画素線Ａにおいて黒画素と黒画素との間に配置されている白画素は消失している。これは、縮小処理によって白色の細線が消失し、原画像ＩＭＧOにおける４本の独立した黒線が潰れて１つの線として縮小結果画像に現れることを示す。また、画素線Ａにおいて一点鎖線で囲んだ部分ｐ２に存在する１つの黒画素は、画素線Ｂでは消失している。これは、原画像ＩＭＧOにおける黒色の細線が縮小結果画像において消失することを表す。そして、画素線Ｂを拡大した画素線Ｃにおいても、画素線Ａの部分ｐ１中の白画素に対応する白画素は存在せず、画素線Ａの部分ｐ２中の黒画素に対応する黒画素は存在しない。つまり、拡大結果画像の画素線Ｃには、縮小結果画像の画素線Ｂにおける情報欠落状態が反映されている。したがって、原画像ＩＭＧOの画素線Ａと拡大結果画像の画素線Ｃとを比較することで、縮小処理によって情報欠落が生じた部分を判定できる。
【００４８】
再び図２を参照し、ステップＳ５で、縮小ＮＧマスク作成部１６４は、原画像と拡大結果画像とを比較することで縮小ＮＧマスクを作成する。
【００４９】
図４に、縮小ＮＧマスク作成処理の詳細手順の例を示す。図２のステップＳ５が開始されると、処理部１６の縮小ＮＧマスク作成部１６４は、図４に例示する手順の処理を開始する。
【００５０】
図４を参照し、縮小ＮＧマスク作成部１６４は、まず、縮小ＮＧマスクの初期化を行う（ステップＳ５０）。初期化処理では、縮小ＮＧマスク作成部１６４は、例えば、原画像の各画素に対応する画素を含む縮小ＮＧマスクを作成し、作成した縮小ＮＧマスク中の全画素のＮＧマスク値をＯＦＦに設定する。初期化処理の後、縮小ＮＧマスク作成部１６４は、原画像の処理方向の画素線を１つ取得し（ステップＳ５１）、この画素線に対応する画素線を拡大結果画像から取得する（ステップＳ５２）。例えば、図３の例の画素線ＡをステップＳ５１で原画像から取得した場合、ステップＳ５２では、図３の例の画素線Ｃを拡大結果画像から取得する。
【００５１】
次に、ステップＳ５４で、縮小ＮＧマスク作成部１６４のＮＧエリア判定部１６４０は、原画像の対象画素線（ステップＳ５１で取得）と、これに対応する拡大結果画像の画素線（ステップＳ５２で取得）と、を比較して、両者の間の相違部分を求める。例えば、ＮＧエリア判定部１６４０は、ステップＳ５４で、原画像の画素線の各画素の値と、対応する拡大結果画像の画素線の各画素の値と、に対して論理演算のＡＮＤ演算を行うことで、原画像の画素線の画素と拡大結果画像の画素線の画素とが異なる値を有する画素線上の位置を求める。
【００５２】
図５を参照し、線ｄｉｆｆは、図３の例の原画像の画素線Ａと、図３の例の拡大結果画像の画素線Ｃと、に対してＮＧエリア判定部１６４０がステップＳ５４の処理を行った結果の例を示す。図５の線ｄｉｆｆにおいて、斜線を引いた四角は、画素線Ａ上の画素と、この画素の位置に対応する画素線Ｃ上の位置にある画素と、が互いに異なる値を有する（ＡＮＤ演算の結果はFALSE）画素位置を表す。この斜線を引いた四角で表される画素位置は、画素線Ａと画素線Ｃとの間の相違部分である。また、線ｄｉｆｆにおいて、斜線を引いた四角が配置されていない画素位置では、画素線Ａ上の画素と画素線Ｃ上の画素とが同じ値を有する（ＡＮＤ演算の結果はTRUE）。
【００５３】
図４の説明に戻り、原画像の画素線と拡大結果画像の画素線との間の相違部分を求めた後、ステップＳ５６で、ＮＧエリア判定部１６４０は、拡大結果画像の画素線を同色の画素が連続する部分に分割する。例えば、図５の例の画素線Ｃは、ｃ０，ｃ１，ｃ２，ｃ３，ｃ４に分割される。部分ｃ１，ｃ３は、黒画素が連続する部分であり、部分ｃ０，ｃ２，ｃ４は、白画素が連続する部分である。
【００５４】
ステップＳ５８では、ＮＧエリア判定部１６４０は、ステップＳ５６で分割した部分のうちの１つを選択する。
【００５５】
次にステップＳ６０で、ＮＧエリア判定部１６４０は、ステップＳ５８で選択した分割部分に、原画像の画素線と拡大結果画像の画素線との間の相違部分が含まれるか否かを判定する。相違部分が含まれる場合、処理はステップＳ６２に進み、相違部分が含まれない場合、処理はステップＳ６４に進む。例えば、図５の画素線Ｃの部分ｃ０がステップＳ５８で選択された場合、原画像の画素線Ａと拡大結果画像の画素線Ｃとの間の相違を表す線ｄｉｆｆにおいて部分ｃ０に対応する部分は、相違部分（斜線を引いた四角）を含まないので、ステップＳ６０の判定の結果、ステップＳ６４に進む。また例えば、図５の画素線Ｃの部分ｃ１がステップＳ５８で選択された場合、線ｄｉｆｆにおいて部分ｃ１に対応する部分は、相違部分を含むので、ステップＳ６０の判定の結果、ステップＳ６２に進む。
【００５６】
ステップＳ６２で、ＮＧエリア判定部１６４０は、縮小ＮＧマスクにおいて原画像の画素線に対応する画素線について、処理対象の分割部分（ステップＳ５８で選択）に対応する部分に含まれる少なくとも一部の画素のＮＧマスク値をＯＮに設定する。ＮＧエリア判定部１６４０は、例えば、縮小ＮＧマスクの画素線において処理対象の分割部分に対応する部分に含まれる画素のうち、ステップＳ６０で存在が確認された相違部分の画素位置に対応する位置に配置される画素と、この画素から所定の範囲内の位置に配置される画素と、についてＮＧマスク値をＯＮに設定する。図５を参照し、画素線ＮＧは、縮小ＮＧマスクにおいて原画像の画素線Ａに対応する画素線である。画素線ＮＧにおいて、拡大結果画像の画素線Ｃの分割部分ｃ１に対応する部分に含まれる全画素のＮＧマスク値がＯＮに設定され、画素線Ｃの分割部分ｃ２に対応する部分に含まれる画素のうち、相違部分に対応する位置及びその左隣の画素のＮＧマスク値がＯＮに設定されている。このようにＮＧマスク値をＯＮに設定された画素からなる領域がＮＧエリアであり、縮小部１６０の縮小処理（図２のステップＳ３）によって情報欠落が生じると判定された領域である。
【００５７】
ステップＳ６２の後、処理はステップＳ６４に進む。
【００５８】
ステップＳ６４では、ＮＧエリア判定部１６４０は、拡大結果画像の画素線のすべての分割部分について処理済みであるか否かを判定する。すべての分割部分について処理済みでない場合は、ステップＳ５８に戻って未処理の分割部分を１つ選択し、ステップＳ６０〜Ｓ６４の処理を繰り返す。すべての分割部分について処理済みである場合、処理はステップＳ６６に進む。
【００５９】
ステップＳ６６で、ＮＧエリア判定部１６４０は、原画像の処理方向の画素線のすべてについて処理済みであるか否かを判定する。すべての画素線について処理済みであれば、縮小ＮＧマスク作成処理は終了し、すべての画素線について処理済みでなければ、ステップＳ５１に戻って未処理の画素線が取得され、ステップＳ５２以下の処理が繰り返される。
【００６０】
図６に、図４に例示する手順の縮小ＮＧマスク作成処理によって生成される縮小ＮＧマスクの例を示す。図６は、図３の例の原画像ＩＭＧOに対して図４に例示する手順の処理を行った場合の縮小ＮＧマスクの例である。縮小ＮＧマスクＭＳＫ中の斜線を引いた四角で表されるＮＧエリアａ１，ａ２，ａ３は、それぞれ、原画像ＩＭＧOを縮小部１６０が縮小した場合に情報欠落が生じると判定された領域を表す。例えば、ＮＧエリアａ１，ａ３は、白色の細線が消失することにより原画像ＩＭＧO中の複数の黒色線同士が潰れてしまう領域を表し、ＮＧエリアａ２は、黒色の細線が消失する領域を示す。
【００６１】
図２の説明に戻り、縮小ＮＧマスク作成処理（図２のステップＳ５、図４）が終了すると、縮小ＮＧマスク作成部１６４の縮小ＮＧマスク補正部１６４２は、縮小ＮＧマスクを補正する処理を行う（ステップＳ７）。後述の変形縮小処理（ステップＳ８）では、原画像について、縮小ＮＧマスクが表すＮＧエリアと、ＮＧエリア以外の領域と、を異なる縮小率で処理方向に縮小するため、変形縮小後の画像において処理方向に画素ずれが生じ得る。例えば、図６を参照し、破線ｌ１，ｌ２，ｌ３，ｌ４，ｌ５は、各ＮＧエリアの上下方向（現在の処理方向Ｍと垂直な方向）の端部に対応する。図６の例の縮小ＮＧマスクＭＳＫに従って変形縮小処理を行うと、各破線ｌ１，ｌ２，ｌ３，ｌ４，ｌ５の上下に位置する画素線に関して、変形縮小後の画像において処理方向に画素ずれが生じる。縮小ＮＧマスク作成部１６４の縮小ＮＧマスク補正部１６４２は、縮小ＮＧマスクを補正し、変形縮小処理（ステップＳ８）によって画素ずれが生じる部分を減少させる。
【００６２】
図７に、縮小ＮＧマスク補正処理の詳細手順の例を示す。図２の縮小ＮＧマスク補正処理（ステップＳ７）が開始されると、縮小ＮＧマスク補正部１６４２は、図７の例の手順の処理を開始する。
【００６３】
図７を参照し、まずステップＳ７０で、縮小ＮＧマスク補正部１６４２は、縮小ＮＧマスク作成部１６４が作成した縮小ＮＧマスク中に未処理のＮＧエリアが存在するか否かを判定する。縮小ＮＧマスク中に未処理のＮＧエリアが存在すればステップＳ７２に進み、存在しなければ処理を終了する。
【００６４】
例えば、縮小処理（図２のステップＳ３）において、いずれの画素線においても情報欠落が生じなかった場合、いずれの画素線についても縮小ＮＧマスク作成処理でＮＧマスクがＯＮに設定されることはなく（図４のステップＳ６０で常にＮＯ判定）、縮小ＮＧマスクはＮＧエリアを含まないものとなる。この場合、縮小ＮＧマスク補正処理が開始されてから１回目のステップＳ７０の判定でＮＯに進み、ステップＳ７２以降の処理は行われない。
【００６５】
ステップＳ７２では、縮小ＮＧマスク補正部１６４２は、縮小ＮＧマスクから、未処理のＮＧエリアを１つ選択する。
【００６６】
次に、ステップＳ７３で、縮小ＮＧマスク補正部１６４２は、選択したＮＧエリアが処理方向と平行な辺を有する長方形になるように補正する。このために縮小ＮＧマスク補正部１６４２は、例えば、選択したＮＧエリアを通る処理方向の画素線のうち、縮小ＮＧマスクの外枠（原画像の外枠に対応）を表す長方形の処理方向の２辺のそれぞれに最も近い２本の画素線を検出する。同様に、選択したＮＧエリアを通る処理方向に対して垂直な方向の画素線のうち、縮小ＮＧマスクの外枠の長方形の処理方向に対して垂直な方向の２辺のそれぞれに最も近い２本の画素線を検出する。そして、検出された４本の画素線が形成する長方形の範囲内に含まれるすべての画素のＮＧマスク値をＯＮに設定することで、選択したＮＧエリアを長方形にする。
【００６７】
ステップＳ７３の処理の具体例として、図８を参照し、縮小ＮＧマスクＭＳＫ０のＮＧエリアａが処理対象である場合の処理を説明する。縮小ＮＧマスク補正部１６４２は、ＮＧエリアａを通る処理方向の画素線のうち、縮小ＮＧマスクの外枠の長方形の処理方向の２辺に最も近い２本の画素線ｕ，ｄと、縮小マスクの外枠の長方形の処理方向に対して垂直な方向の２辺に最も近い２本の画素線ｌ，ｒと、の４本の画素線を検出する。そして、検出した画素線ｕ，ｄ，ｌ，ｒによって形成される長方形の範囲内の画素のＮＧマスク値をＯＮに設定する。ステップＳ７３の処理により、選択したＮＧエリアをすべて含む最小の長方形がＮＧエリアとして設定される。
【００６８】
なお、図６の例のＮＧエリアａ１，ａ２，ａ３のように、すでに処理方向と平行な辺を有する長方形であるＮＧエリアが選択された場合はステップＳ７３の処理は省略できる。
【００６９】
ステップＳ７４では、縮小ＮＧマスク補正部１６４２は、選択されたＮＧエリアを表す長方形の上端の辺を含む画素線の１つ上の画素線において、ＮＧマスク値がＯＮに設定されている画素が含まれているか否かを判定する。なお、ここで、「上端の辺」は、ＮＧエリアを表す長方形の処理方向の２辺のうちの１辺であり、上端の辺の「１つ上の画素線」は、上端の辺を含む画素線に隣り合う２本の処理方向の画素線のうち選択されたＮＧエリアを通らない画素線である。
【００７０】
ＮＧエリアの上端の辺を含む画素線の１つ上の画素線にＮＧマスク値がＯＮに設定されている画素が含まれていれば、ステップＳ７４からステップＳ７６に進み、当該１つ上の画素線において、選択されたＮＧエリアの位置に対応する画素のＮＧマスク値をＯＮに設定する。すると、この画素線は、選択されたＮＧエリアの新たな上端の辺を含む画素線となる。その後、ステップＳ７４の判定でＮＧエリアの上端の辺を含む画素線の１つ上の画素線がＮＧマスク値ＯＮの画素を含まないと判定されるまで、ステップＳ７４，Ｓ７６の処理が繰り返される。ステップＳ７４でＮＯ判定されると、処理はステップＳ７８に進む。
【００７１】
例えば、図６の例の縮小ＮＧマスクＭＳＫのＮＧエリアａ１がステップＳ７２で選択された場合、ＮＧエリアａ１の上端の辺を含む画素線の１つ上の画素線には、ＮＧマスク値がＯＮに設定されている画素は存在しない。よって、ステップＳ７４の判定でＮＯに進み、ステップＳ７８の判定が行われる。
【００７２】
また例えば、図６の例のＮＧエリアａ３がステップＳ７２で選択された場合、ＮＧエリアａ３の上端を含む画素線の１つ上の画素線は、ＮＧエリアａ１，ａ２を通るため、ＮＧマスク値ＯＮの画素を含む。よって、ステップＳ７４の判定でＹＥＳに進み、ステップＳ７６で、ＮＧエリアａ３の上端の辺を含む画素線の１つ上の画素線において、ＮＧエリアａ３の位置に対応する画素のＮＧマスク値がＯＮに設定され、この画素線がＮＧエリアａ３の新たな上端の辺を含む画素線となる。そして、ステップＳ７４，Ｓ７６の処理が繰り返されてＮＧエリアａ３の上端の辺が破線ｌ１の位置に達すると、ステップＳ７４でＮＯ判定されてステップＳ７８に進む。
【００７３】
ステップＳ７８では、ステップＳ７２で選択されたＮＧエリアの下端の辺を含む画素線の１つ下の画素線において、ＮＧマスク値がＯＮに設定されている画素が含まれるか否かを判定する。なお、「下端の辺」は、選択されたＮＧエリアを表す長方形において上述の「上端の辺」と平行な他方の辺であり、下端の辺の「１つ下の画素線」は、下端の辺に隣り合う処理方向の２本の画素線のうち、選択されたＮＧエリアを通らない画素線である。下端の辺を含む画素線の１つ下の画素線にＮＧマスク値ＯＮの画素が含まれていれば、ステップＳ７８からステップＳ８０に進み、当該画素線において、選択されたＮＧエリアの位置に対応する画素のＮＧマスク値をＯＮに設定する。この画素線が選択されたＮＧエリアの新たな下端の辺を含む画素線となる。
【００７４】
例えば、図６の例のＮＧエリアａ１がステップＳ７２で選択された場合、ＮＧエリアａ１の下端の辺に相当する画素線の１つ下の画素線は、ＮＧエリアａ３を通るので、ＮＧマスク値がＯＮに設定されている画素を含む。この場合、ステップＳ７８からステップＳ８０へ進む。
【００７５】
ステップＳ８０の後、ステップＳ７８の判定でＮＧエリアの下端の辺に相当する画素線の１つ下の画素線がＮＧマスクＯＮの画素を含まないと判定されるまで、ステップＳ７８，Ｓ８０の処理を繰り返し、ステップＳ７８でＮＯ判定されると、処理はステップＳ７０に戻る。
【００７６】
図７に例示する手順の縮小ＮＧマスク補正処理の結果、例えば、図９に示す補正縮小ＮＧマスクＭＳＫ´が生成される。図９は、図６の例の縮小ＮＧマスクＭＳＫに対して、図７の例の縮小ＮＧマスク補正処理を行った場合の補正縮小ＮＧマスクの例である。図９を参照し、補正後の縮小ＮＧマスクＭＳＫ´に含まれる各ＮＧエリアａ１´，ａ２´，ａ３´は、主走査方向Ｍに対して垂直な方向に同一の長さを有し、かつ、それぞれの上端の画素線及び下端の画素線が１直線上（それぞれ、破線ｌ１，ｌ５）に位置する。図９の例の補正縮小ＮＧマスクＭＳＫ´によると、後述の変形縮小処理（図２のステップＳ８）において、各破線ｌ１，ｌ５の上下の画素線については主走査方向Ｍに画素ずれが生じ得るが、各破線ｌ２，ｌ３，ｌ４の上下の画素線については画素ずれが生じることはない。
【００７７】
図２の説明に戻り、縮小ＮＧマスク補正処理（ステップＳ７、図７）が終了すると、ステップＳ８で、変形縮小部１６６は、補正縮小ＮＧマスクに従って原画像を縮小する。変形縮小部１６６は、例えば、補正縮小ＮＧマスクが表すＮＧエリアについては、現在の処理方向に縮小率１．０で縮小し（つまり、縮小しない）、ＮＧエリア以外の領域については、処理方向に１／ｆ倍に縮小する。
【００７８】
以下、図１０及び図１１を参照し、変形縮小部１６６が行う変形縮小処理の例を説明する。図１０を参照し、原画像ＩＭＧO及び補正縮小ＮＧマスクＭＳＫ´は、それぞれ、図３の原画像ＩＭＧO及び図９の補正縮小ＮＧマスクＭＳＫ´と同様である。変形縮小部１６６は、原画像ＩＭＧOの主走査方向Ｍの各画素線について、この画素線に対応する補正縮小ＮＧマスクＭＳＫ´の画素線に含まれる各画素のＮＧマスク値を参照して変形縮小処理を行う。図１０では、この変形縮小後の画像ＩＭＧMを原画像ＩＭＧOの下方に示す。図１０に示す変形縮小後画像ＩＭＧM中、一点鎖線で囲んだ領域は、それぞれ、補正縮小ＮＧマスクＭＳＫ´中の各ＮＧエリアに対応する。また、図１０では、原画像ＩＭＧOと変形縮小後画像ＩＭＧMとの間に、原画像ＩＭＧO中の画素線Ａ、補正縮小ＮＧマスクＭＳＫ´中で画素線Ａに対応する画素線Ｅ、及び、変形縮小後画像ＩＭＧM中で画素線Ａに対応する画素線Ｆを示す。
【００７９】
以下、原画像ＩＭＧOの画素線Ａに対して変形縮小処理を行う場合を例にとって説明する。変形縮小部１６６は、まず、画素線Ａに対応する補正縮小ＮＧマスクＭＳＫ´の画素線Ｅを取得する。そして、画素線ＥにおいてＮＧマスク値がＯＮに設定されている部分を検出し、このＮＧマスク値ＯＮの部分に対応する画素線Ａの部分を検出する。画素線Ｅは、ＮＧエリアａ１´，ａ２´，ａ３´を通るため、画素線Ｅ上で各ＮＧエリアａ１´，ａ２´，ａ３´に含まれる部分が検出される。画素線Ｅ上で検出された各ＮＧエリアａ１´，ａ２´，ａ３´の部分に対応する画素線Ａの部分として、それぞれ、長さＬ2，Ｌ4，Ｌ6の部分が検出される。次に、変形縮小部１６６は、画素線Ａについて、ＮＧエリアに対応する部分（長さＬ2，Ｌ4，Ｌ6）は縮小率１．０で、ＮＧエリアに対応する部分以外の部分（長さＬ1，Ｌ3，Ｌ5，Ｌ7）は縮小率１／ｆで主走査方向に縮小する処理を行う。ここで、長さＬ1，Ｌ3，Ｌ5，Ｌ7の各部分については、縮小部１６０が縮小処理（図２のステップＳ３）で用いた方法と同じ方法で縮小する。画素線Ａを変形縮小した結果の画素線Ｆにおいて、画素線Ａの長さＬ1，Ｌ3，Ｌ5，Ｌ7の各部分に対応する部分の長さは、それぞれ、Ｌ1／ｆ，Ｌ3／ｆ，Ｌ5／ｆ，Ｌ7／ｆである。画素線Ｆにおいて、画素線Ａの長さＬ2，Ｌ4，Ｌ6の各部分に対応する部分の長さは、それぞれ、Ｌ2，Ｌ4，Ｌ6のままである。
【００８０】
図１１に、画素線Ａを例に以上で説明した変形縮小処理を原画像ＩＭＧO中の全画素線のそれぞれについて行った結果の例を示す。図１１を参照すると、原画像ＩＭＧOは、補正縮小ＮＧマスクＭＳＫ´が表すＮＧエリア（一点鎖線で囲んだ領域）を含むか否かによって、一辺の長さが原画像ＩＭＧOの主走査方向の幅ＷOである長方形の領域（エリア１，エリア２，エリア３）に分割される。エリア１，エリア３は、ＮＧエリアを含まず、エリア２は、ＮＧエリアを含む。原画像の各画素線について上述の変形縮小処理を行った結果の各エリア１、エリア２、エリア３の幅をそれぞれ、Ｗ1，Ｗ2，Ｗ3とする。エリア１及びエリア３は、ＮＧエリアを含まないため、全体として主走査方向に１／ｆ倍に縮小され、Ｗ1＝Ｗ3＝ＷO／ｆ＝（Ｌ1＋Ｌ2＋Ｌ3＋Ｌ4＋Ｌ5＋Ｌ6＋Ｌ7）／ｆとなる。ＮＧエリアを含むエリア２については、図１０を参照して説明したように、縮小されない部分（Ｌ2，Ｌ4，Ｌ6）と１／ｆ倍に縮小される部分（Ｌ1，Ｌ3，Ｌ5，Ｌ7）とを含むため、Ｗ2＝Ｌ2＋Ｌ4＋Ｌ6＋（Ｌ1＋Ｌ3＋Ｌ5＋Ｌ7）／ｆとなる。よって、Ｗ1＝Ｗ3＜Ｗ2である。このままでは、Ｗ１又はＷ３とＷ２との間の差分に該当する領域（図１１の破線で表す領域）には画素が存在しない。これらの領域については、例えば、背景色（この例では白色）の画素で補完する。あるいは、これらの領域に対応する画素線中の画素値の平均値を有する画素で補完してもよい。このように画素の補完処理を行うことで、幅Ｗ2を有する変形縮小後画像ＩＭＧM（図１０参照）が生成される。
【００８１】
以上、変形縮小部１６６による変形縮小処理（図２のステップＳ８）の例を説明した。この例の変形縮小処理では、縮小処理（ステップＳ３）で情報欠落が生じた領域（ＮＧエリア）については縮小せず、縮小処理で情報欠落が生じなかった領域（ＮＧエリア以外の領域）については、当該縮小処理で用いられた方法及び縮小率と同じ方法及び縮小率を用いて縮小する。したがって、この例の変形縮小処理では、情報欠落は発生しない。
【００８２】
図２の説明に戻り、変形縮小処理（ステップＳ８）が終了すると、副走査方向について処理済みであるか否かを判定する（ステップＳ９）。処理済みでなければ、処理方向を副走査方向に設定し（ステップＳ１０）、ステップＳ３以降の処理を行う。副走査方向について処理済みであれば、図２の例の手順の処理は終了する。
【００８３】
図１２は、他の１つの実施形態の画像処理装置の概略構成の例を示すブロック図である。図１２において、図１と同様の構成要素には同様の符号を付し、その詳細な説明を省略する。図１２に例示する画像処理装置１１の処理部１７は、図１の例の画像処理装置１０の処理部１６の各構成要素に加えて、画像幅調整部１６８を備える。
【００８４】
画像幅調整部１６８は、変形縮小部１６６の変形縮小処理で情報欠落が生じない限度において、変形縮小後の画像の幅が目標の幅に近づくように、原画像中の各種の領域の縮小率又は縮小後の幅を決定する処理を行う。
【００８５】
画像幅調整部１６８は、画像幅算出部１６８０及び余白調整部１６８２を含む。画像幅算出部１６８０は、変形縮小部１６６による変形縮小を行った結果の画像の幅を算出する。例えば、画像幅算出部１６８０は、図１１の例の幅Ｗ1，Ｗ2，Ｗ3の各値を算出する処理を行う。
【００８６】
余白調整部１６８２は、原画像中の余白を検出し、検出した余白について、変形縮小処理でＮＧエリア以外の領域の縮小に用いられる縮小率で縮小した場合よりも小さくなるように、検出した余白が余白の縮小率又は縮小後の幅を決定する処理を行う。
【００８７】
図１３は、図１２に例示する画像処理装置１１の処理部１７が行う処理の手順の例を示すフローチャートである。図１３において、図２に例示する手順の処理と同様の処理を行う処理ステップには図２と同様の符号を付す。
【００８８】
図１３を参照し、まず、処理部１７は、原画像を取得し（ステップＳ１）、処理方向を主走査方向に設定する（ステップＳ２）。
【００８９】
次に、処理部１７は、縮小率１／ｆを用いて補正縮小ＮＧマスクを作成する（ステップＳ３０）。縮小率１／ｆの値は、図２に例示する手順の処理と同様に、ユーザによって指定された値であってよいし、予め設定されて記憶部１８に記憶された値であってもよい。ステップＳ３０では、図２から図９を参照して説明したステップＳ３〜Ｓ７の処理と同様の処理によって補正縮小ＮＧマスクが生成される。
【００９０】
ステップＳ４０では、画像幅調整部１６８の画像幅算出部１６８０は、ステップＳ３０の処理の結果として生成された補正縮小ＮＧマスクに従って変形縮小部１６６が原画像を変形縮小した場合の変形縮小後の画像の幅を算出する。ここで、「画像の幅」とは、現在の処理方向の画像の大きさを意味する。画像幅算出部１６８０は、例えば、次の手順で画像幅を算出する。まず、画像幅算出部１６８０は、補正縮小ＮＧマスクが表すＮＧエリアを含むか否かに従って、原画像の幅ＷOと同じ大きさの一辺を有する長方形の領域に、原画像を分割する。例えば図１１の原画像ＩＭＧO及び補正縮小ＮＧマスクの場合、原画像ＩＭＧOは、エリア１、エリア２、及びエリア３に分割される。次に、分割された領域それぞれから１つの画素線を選択し、補正縮小ＮＧマスクに従って変形縮小処理を行った結果の各画素線の長さを算出する。この各画素線の長さは、分割された領域それぞれの変形縮小後の幅となる。図１１の例では、原画像ＩＭＧOのエリア１、エリア２、エリア３それぞれの変形縮小後の幅Ｗ1，Ｗ2，Ｗ3が算出される。
【００９１】
ステップＳ４２では、画像幅調整部１６８は、画像幅算出部１６８０がステップＳ４０で求めた幅の最大値が原画像の幅ＷOの１／ｆ倍以下であるか否かを判定する。図１１の例では、ステップＳ４０で算出される幅Ｗ1，Ｗ2，Ｗ3のうち最大値を有する幅Ｗ2が原画像の幅ＷOの１／ｆ倍以下であるか否かを判定する。
【００９２】
変形縮小後の画像幅の最大値が原画像の幅の１／ｆ倍を超えている場合、画像幅調整処理（ステップＳ４４）に進む。
【００９３】
図１４は、画像幅調整処理の詳細手順の一例を示すフローチャートである。
【００９４】
図１４を参照し、まず、余白調整部１６８２は、変形縮小後の幅が最大となる原画像中の領域を対象エリアとする。例えば、図１１の例のエリア２が対象エリアとなる。そして、対象エリアにおいて、補正縮小ＮＧマスクが表すＮＧエリア以外の領域の中から、処理方向と垂直な方向の対象エリアの辺と同じ長さの一辺を有する長方形の余白を検出する（ステップＳ４４０）。ここで、「余白」とは、原画像の背景色の画素のみからなる部分を意味する。また、以下では、図１４のステップＳ４４０で検出される余白を「縦余白」と呼ぶこともある。
【００９５】
図１５を参照し、灰色の長方形ｂｌ１，ｂｌ２，ｂｌ３，ｂｌ４は、図１１の例の原画像ＩＭＧOについてステップＳ４４０の処理を行った場合に検出される縦余白の例である。縦余白ｂｌ１，ｂｌ２，ｂｌ３，ｂｌ４は、それぞれ、エリア２の副走査方向（主走査方向Ｍに対して垂直な方向）の辺と同じ長さの一辺を有する。
【００９６】
再び図１４を参照し、縦余白を検出した後、余白調整部１６８２は、検出した縦余白のそれぞれについて、変形縮小処理の後の幅が元の幅の１／ｆ倍よりも小さくなるように縦余白の幅を調整する（ステップＳ４４２）。例えば、補正縮小ＮＧマスクにおいて各縦余白に対応する領域について、変形縮小後の幅が１画素幅となるように変形縮小処理を行うよう指示する情報と関連付ける。あるいは、例えば複数の縦余白を検出した場合であれば、検出した縦余白同士の幅の比を維持した上で、元の縦余白の幅の１／ｆ倍よりも小さい幅になるように変形縮小処理を行うよう指示する情報と、補正縮小ＮＧマスクにおいて各縦余白に対応する領域と、を関連付けてもよい。
【００９７】
次に、ステップＳ４４４では、画像幅算出部１６８０は、ステップＳ４２２で調整された変形縮小後の縦余白の幅を用いて、変形縮小後の対象エリアの幅を算出する。例えば、図１１のエリア２の例の場合、図１５の各縦余白ｂｌ１，ｂｌ２，ｂｌ３，ｂｌ４の幅を１画素幅とし、ＮＧエリアに該当する部分の幅をＬ２，Ｌ４，Ｌ６のまま、ＮＧエリア及び縦余白のいずれにも該当しない部分の幅を元の幅の１／ｆ倍として、変形縮小後のエリア２の幅を算出する。
【００９８】
次に、ステップＳ４４４で算出した対象エリアの幅が原画像の幅ＷOの１／ｆ以下であるか否かを判定し（ステップＳ４４６）、目標の画像幅（ＷO／ｆ）以下であれば処理を終了し、目標の画像幅（ＷO／ｆ）を超えていればステップＳ４４８へ進む。
【００９９】
ステップＳ４４８では、処理部１７は、出力部２０を介して、縦余白の幅を調整した上で変形縮小処理を行ったとしても変形縮小後の画像の幅が目標の画像幅を超える旨を表す警告情報を出力する。例えば、この警告情報を表示装置（図示しない）に対して出力して表示させることで、縦余白調整済みの変形縮小後の画像幅が目標の画像幅を超える旨をユーザに知らせることができる。
【０１００】
ステップＳ４５０では、現在の縮小率１／ｆよりも大きな縮小率１／（ｆ−α）を用いて、原画像について補正縮小ＮＧマスクを作成する処理を再度実行するか否かを決定する。つまり、縮小部１６０において現在の縮小率１／ｆで縮小するよりも緩やかに原画像を縮小して補正縮小ＮＧマスクを作成する処理を行うか否かを決定する。ここで、αの値は、例えば、図１３の処理の開始時のｆの値をｆSTとして、次の式：
１／ｆST＜１／（ｆST−α）＜１．０
を満たすように、０＜α＜ｆST−１．０の範囲の定数に予め設定しておく。補正縮小ＮＧマスク作成処理を再度実行することを決定すると、ステップＳ４５２でｆの値をｆ−αに設定（つまり、縮小率１／ｆを１／（ｆ−α）に設定）し、図１３のステップＳ３０に戻り、ステップＳ３０以下の処理を再び行う。補正縮小ＮＧマスク作成処理を再度実行しないことを決定すると、画像幅調整処理は終了する。
【０１０１】
ステップＳ４５０の決定は、例えば、ユーザの指示に従って行う。例えば、ステップＳ４４８において、上述の警告情報とともに、新たな縮小率１／（ｆ−α）を用いた補正縮小ＮＧマスクの作成処理の実行をユーザが望むか否かを入力するようユーザに促す情報を表示装置に表示させ、ユーザが実行を望む旨を表す入力を受けた場合にステップＳ４５０からステップＳ４５２に進み、ユーザが実行を望まない旨を表す入力を受けた場合に処理を終了する。あるいは、例えば、ステップＳ４５０において、１／（ｆ−α）が所定の値の範囲内あればＹＥＳに進み、所定の値の範囲外であればＮＯに進むようにしてもよい。この値の範囲は、例えば、縮小部１６０の縮小処理で用いる縮小率として適切な値の範囲０＜１／（ｆ−α）＜１．０に設定しておく。ユーザが実行を望む旨を表す入力を受けたこと、及び、１／（ｆ−α）の値が所定の範囲内であることの両方の条件が満たされる場合にステップＳ４５０でＹＥＳに進むようにしてもよい。
【０１０２】
図１３の説明に戻り、ステップＳ８では、補正縮小ＮＧマスクに従って変形縮小を行う。画像幅調整処理により、補正縮小ＮＧマスクにおいて、縦余白の縮小に関する指示情報が設定されていれば、変形縮小部１６６は、その指示情報に従って変形縮小後の縦余白の幅を決定する。補正縮小ＮＧマスクの縦余白以外の領域については、ＮＧマスク値のＯＮ又はＯＦＦに応じて、図１０及び図１１を参照して説明した図２のステップＳ８の変形縮小処理と同様の処理を行う。
【０１０３】
変形縮小処理の後、副走査方向について処理済みでなければ（ステップＳ９でＮＯ）、処理方向を副走査方向に設定し（ステップＳ１０）て、副走査方向についてステップＳ３０以降の処理を行う。副走査方向について処理済みであれば（ステップＳ９でＹＥＳ）、処理は終了する。
【０１０４】
以上、図１３及び図１４に例示する手順の処理によると、変形縮小後の画像は、情報欠落が生じない限度において、図１３の処理の開始時に設定されていた縮小率１／ｆで原画像を縮小した場合の幅に最も近い幅を有するものとなる。例えば、ユーザが指定した縮小率１／ｆを用いて図１３の処理を開始した場合、情報欠落が生じない限度内で、ユーザの希望する画像サイズに最も近いサイズの変形縮小後画像が得られる。また例えば、情報欠落が生じることが確実である縮小率１／ｆを用いて図１３の処理を開始した場合、情報欠落が生じない最小サイズの変形縮小後画像が得られる。
【０１０５】
以下、図１４、図１６、及び図１７を参照し、画像幅調整処理（図１３のステップＳ４４）の詳細手順の他の一例を説明する。
【０１０６】
本例の画像幅調整処理において、画像幅調整部１６８は、まず、図１４を参照して説明したステップＳ４４０〜ステップＳ４４８の処理を行う。縦余白の幅の調整後の対象エリアの変形縮小後の幅が目標の幅（ＷO／ｆ）を超えている場合（ステップＳ４４６でＮＯ）、その旨を表す警告情報を出力し（ステップＳ４４８）、画像幅調整部１６８は、図１６に例示する手順の処理を開始する。
【０１０７】
図１６を参照し、まずステップＳ４６０で、目標縮小率１／ｆTに現在の縮小率１／ｆの値を代入する。次に、対象エリアに含まれるＮＧエリアの中から１つのＮＧエリアを選択し（ステップＳ４６２）、選択したＮＧエリアについて可能縮小率１／ｆｍｉｎを決定する（ステップＳ４６４）。可能縮小率１／ｆｍｉｎは、処理対象の画像について縮小部１６０の縮小処理を行った場合に情報欠落が生じない縮小率のうち、縮小後の画像の大きさが最小となる縮小率である。
【０１０８】
可能縮小率決定処理（ステップＳ４６４）が開始されると、画像幅調整部１６８は、図１７に例示する手順の処理を開始する。
【０１０９】
図１７を参照し、ステップＳ６００で、０＜１／（ｆ−α）＜１．０であるか否かが判定される。ここで、αの値は、例えば、図１４を参照して説明したステップＳ４５０，Ｓ４５２の処理におけるαと同様、０＜α＜ｆST−１の範囲（ｆSTは、図１３の処理の開始時のｆの値）の定数に設定しておく。
【０１１０】
ステップＳ６００の判定でＹＥＳに進むと、ステップＳ６０２で、新たなｆの値としてｆ−αが設定される。次に、図１６のステップＳ４６２で選択されたＮＧエリアについて、縮小率１／ｆを用いて、補正縮小ＮＧマスク作成処理（ステップＳ３０）が行われる。ステップＳ３０では、選択されたＮＧエリアを原画像として、縮小率１／ｆを用いて、図２から図９を参照して説明したステップＳ３〜ステップＳ７の処理を実行することで、選択されたＮＧエリアの補正縮小ＮＧマスクが作成される。
【０１１１】
ステップＳ３０の後、選択されたＮＧエリアについて作成された補正縮小ＮＧマスク中にＮＧエリアが存在するか否かが判定される（ステップＳ６０４）。ステップＳ６０４で、補正縮小ＮＧマスク中にＮＧエリアが存在すると判定されると、処理はステップＳ６００に戻り、ステップＳ６００以下の処理を繰り返す。ステップＳ６０４で、補正縮小ＮＧマスク中にＮＧエリアが存在しないと判定されると、ｆｍｉｎの値として現在のｆの値を設定し（ステップＳ６０６）、可能縮小率１／ｆｍｉｎの値が決定され、図１７の処理は終了する。
【０１１２】
ステップＳ３０で用いられる縮小率１／ｆの値は、選択したＮＧエリアに関する前回の補正縮小ＮＧマスク作成処理に用いられた縮小率の値よりも大きい。したがって、ステップＳ６０４では、選択したＮＧエリアについて、ある縮小率を用いて縮小すると情報欠落が生じる場合に、より緩やかな縮小率で縮小した場合に情報欠落が生じるか否かを判定していると言える。
【０１１３】
ステップＳ６００，Ｓ６０２，Ｓ６０４を含む処理ループが繰り返されると、１／（ｆ−α）の値が０＜１／（ｆ−α）＜１．０の範囲外となる場合がある。この場合、ステップＳ６００の判定でＮＯに進んでｆの値として１．０が設定され（ステップＳ６０８）、ステップＳ６０６に進み、可能縮小率１／ｆｍｉｎの値は１．０に決定される。
【０１１４】
なお、図１３のステップＳ３０で原画像について作成された補正縮小ＮＧマスクにおいて、図１７の例の可能縮小率決定処理の対象となったＮＧエリアについて、決定された可能縮小率１／ｆｍｉｎで変形縮小処理を行うことを指示する情報が設定される。
【０１１５】
図１６を再び参照し、可能縮小率決定処理（ステップＳ４６４，図１７）が終了すると、ステップＳ４６６で、画像幅算出部１６８０は、変形縮小後の対象エリアの幅を算出する。ステップＳ４６６では、すでに可能縮小率決定処理を行ったＮＧエリアについては決定された可能縮小率１／ｆｍｉｎで縮小し、可能縮小率決定処理を未だ行っていないＮＧエリアについては縮小率１．０で縮小して変形縮小を行った場合の対象エリアの幅が算出される。ステップＳ４６６では、さらに、図１４のステップＳ４４２の縦余白調整処理の結果も考慮して対象エリアの幅が算出される。
【０１１６】
ステップＳ４６６で算出した対象エリアの幅が原画像の幅ＷOの１／ｆT倍以下であれば、画像幅調整処理は終了し、算出した対象エリアの幅が目標の画像幅ＷO／ｆTを越えていれば、ステップＳ４７０に進む。ステップＳ４７０では、対象エリアに含まれるすべてのＮＧエリアについて処理済みであるか否かを判定する。未処理のＮＧエリアが存在すれば、ステップＳ４７４に進んでｆの値としてｆTの値を設定し、ステップＳ４６２に戻り、未処理のＮＧエリアを１つ選択して、ステップＳ４６４以下の処理を繰り返す。
【０１１７】
ステップＳ４７０で、対象エリアに含まれるすべてのＮＧエリアについて処理済みであると判定すると、ステップＳ４７２で、画像幅調整部１６８は、出力部２０を介して、対象エリア中のすべてのＮＧエリアを可能な限り縮小したとしても変形縮小後の画像幅が目標の画像幅を超える旨を表す情報を出力し、画像幅調整処理を終了する。
【０１１８】
以上、図１４、図１６、及び図１７を参照して説明した画像幅調整処理の例では、原画像においてＮＧエリアが存在することから変形縮小後の画像幅が目標画像幅を超える場合に、各ＮＧエリアに関してより大きな縮小率を用いて縮小ＮＧマスクを作成することで、当該ＮＧエリアについて情報欠落が生じない可能縮小率を求める。そして、変形縮小処理（図１３のステップＳ８）では、各ＮＧエリアについて、縮小率１．０を用いる代わりに当該ＮＧエリアの可能縮小率を用いて縮小する。縦余白の幅の調整（図１４のステップＳ４４２）と各ＮＧエリアの可能縮小率による縮小とを共に行うことで、情報欠落を生じることなく目標の画像幅以下の幅を有する変形縮小後画像が得られる場合がある。
【０１１９】
また、以上では、図１７の可能縮小率決定処理を画像幅調整処理の手順の一部として説明したが、原画像を処理対象として図１７の可能縮小率決定処理を行ってもよい。原画像について図１７の可能縮小率決定処理を行うと、原画像の可能縮小率を求めることができる。
【０１２０】
また、図１２の例の画像処理装置１１の処理部１７は、原画像の補正縮小ＮＧマスクに含まれる各ＮＧエリアについて、当該ＮＧエリアを原画像として、上述の２つの例の画像幅調整処理のいずれかを含む図１３の例の手順の処理を再帰的に実行することもできる。
【０１２１】
以上で説明した各種の実施形態の変形縮小処理の例では、補正縮小ＮＧマスクに従って、原画像中の異なる領域について異なる縮小率で縮小処理が行われる。したがって、上述の各種の例の変形縮小処理では、画像中の線の長さや太さなどが、原画像中の領域によって異なる比率で変換される場合がある。しかしながら、原画像における線と線との間の連結関係及び原画像中の線の存在は変形縮小処理後の画像においても保存される。したがって、例えば電気回路図など、要素同士の連結関係及び線の存在が図面に意味を与える画像に対して上述の各種の例の変形縮小処理を行うと、図面の表す情報の意味を変更することなく画像は縮小される。
【０１２２】
以上で説明した実施形態の画像処理装置１０，１１は、典型的には、汎用のコンピュータにて上述の電子文書処理装置の各部の機能又は処理内容を記述したプログラムを実行することにより実現される。コンピュータは、例えば、ハードウエアとして、図１８に示すように、ＣＰＵ（中央演算装置）６０、メモリ（一次記憶）６２、各種Ｉ／Ｏ（入出力）インタフェース６４などがバス６６を介して接続された回路構成を有する。また、そのバス６６に対し、例えばＩ／Ｏインタフェース６４経由で、キーボードやマウスなどの入力装置６８、及び、ＣＲＴ（Cathode Ray Tube）や液晶ディスプレイなどの表示装置７０が接続される。また、バス６６には、Ｉ／Ｏインタフェース６４を介して、ＨＤＤ（ハードディスクドライブ）７２や、ＣＤ、ＤＶＤ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体を読み取るためのディスクドライブ７４が接続される。このようなドライブ７２，７４は、メモリに対する外部記憶装置として機能する。実施形態の処理内容が記述されたプログラムがＣＤやＤＶＤなどの記録媒体を経由して、又はネットワーク経由で、ＨＤＤ７２などの固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがメモリ６２に読み出されＣＰＵ６０により実行されることにより、上述の各種の実施形態の処理が実現される。
【図面の簡単な説明】
【０１２３】
【図１】本発明の１つの実施形態の画像処理装置の構成例を示すブロック図である。
【図２】図１の例の画像処理装置の処理部が行う処理の手順の一例を示すフローチャートである。
【図３】画像の縮小処理によって生じる情報欠落の様子の一例を示す図である。
【図４】縮小ＮＧマスク作成処理の手順の一例を示すフローチャートである。
【図５】ＮＧエリアを判定する処理の例を説明するための図である。
【図６】原画像に対して作成される縮小ＮＧマスクの一例を示す図である。
【図７】縮小ＮＧマスク補正処理の手順の一例を示すフローチャートである。
【図８】縮小ＮＧマスク補正処理の手順の一部の例を説明するための図である。
【図９】縮小ＮＧマスクを補正した補正縮小ＮＧマスクの一例を示す図である。
【図１０】変形縮小処理の例を説明するための図である。
【図１１】変形縮小処理の例を説明するための図である。
【図１２】本発明の他の１つの実施形態の画像処理装置の構成例を示すブロック図である。
【図１３】図１２に例示の画像処理装置の処理部が行う処理の手順の一例を示すフローチャートである。
【図１４】画像幅調整処理の手順の一例を示すフローチャートである。
【図１５】余白の幅を調整する処理の例を説明するための図である。
【図１６】画像幅調整処理の手順の他の一例を示すフローチャートである。
【図１７】可能縮小率決定処理の手順の一例を示すフローチャートである。
【図１８】コンピュータのハードウエア構成の一例を示す図である。
【符号の説明】
【０１２４】
１０，１１  画像処理装置、１２  画像入力部、１４  ユーザ入力部、１６，１７  処理部、１８  記憶部、２０  出力部、６２  メモリ、６４  インタフェース、６６  バス、６８  入力装置、７０  表示装置、７２  ＨＤＤ、７４  ディスクドライブ、１６０  縮小部、１６２  拡大部、１６４  縮小ＮＧマスク作成部、１６６  変形縮小部、１６８  画像幅調整部、１６４０  ＮＧエリア判定部、１６４２  縮小ＮＧマスク補正部、１６８０  画像幅算出部、１６８２  余白調整部。
【図１】
0004968115.tif 000002
【図２】
0004968115.tif 000003
【図３】
0004968115.tif 000004
【図４】
0004968115.tif 000005
【図５】
0004968115.tif 000006
【図６】
0004968115.tif 000007
【図７】
0004968115.tif 000008
【図８】
0004968115.tif 000009
【図９】
0004968115.tif 000010
【図１０】
0004968115.tif 000011
【図１１】
0004968115.tif 000012
【図１２】
0004968115.tif 000013
【図１３】
0004968115.tif 000014
【図１４】
0004968115.tif 000015
【図１５】
0004968115.tif 000016
【図１６】
0004968115.tif 000017
【図１７】
0004968115.tif 000018
【図１８】
0004968115.tif 000019