(57)【要約】【課題】  原画像の内容を反映した縮小画像を迅速に得る。【解決手段】  画像処理装置１００は、原画像をａ倍した画像を生成するにあたり、２つのステップにより画像の縮小を行う。第１縮小ステップでは画像の倍率をｂ倍とし、第２縮小ステップでは画像の倍率をｃ倍とする（ただし、ｂ×ｃ＝ａ、１＞ａ＞０）。そして、第１縮小ステップでは原画像の画素を間引きする方法により画像を縮小し、第２縮小ステップでは、第１縮小ステップにより生成された画像の濃度分布を保存する方法により画像を縮小し、最終的に原画像をａ倍した画像を生成する。【選択図】        図２
2005301881.tif 000002
【特許請求の範囲】
【請求項１】
原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小手段と、
前記第１縮小手段により生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小手段とを有し（但し、ｂ×ｃ＝ａ、１＞ａ＞０）、
前記第１縮小手段は、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、
前記第２縮小手段は、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第２縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第２縮小画像の画素の画素値とすること
を特徴とする画像処理装置。
【請求項２】
前記第２縮小手段は、投影法または平均値法のいずれかを用いて第２縮小画像を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
原画像を縮小して第１縮小画像を生成する第１縮小手段と、
前記第１縮小画像が生成されたことを契機として前記第１縮小画像中の黒画素数を計数し、計数された黒画素数が、前記第１縮小手段により縮小される前の画像から定まる閾値以上であるか否か判断する判断手段と、
前記第１縮小手段により生成された第１縮小画像を縮小して第２縮小画像を生成する第２縮小手段と、
を有し、
前記第１縮小手段は、前記第１縮小画像を構成する各画素を縮小前の画像を構成する画素に写像し、縮小前の画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、
前記第２縮小手段は、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、
前記判断手段の判断結果が肯定的である場合、前記第１縮小画像を前記第１縮小手段により再度縮小し、前記判断手段の判断結果が否定的である場合、前記第２縮小手段により前記第１縮小画像を縮小して第２縮小画像を生成すること
を特徴とする画像処理装置。
【請求項４】
前記第１縮小手段で行われる画像の縮小の倍率と、前記第２縮小手段で行われる画像の縮小の倍率のうち、少なくとも一方の倍率が１／ｎ（ｎは、ｎ≧２を満たす整数）であることを特徴とする請求項１または請求項３に記載の画像処理装置。
【請求項５】
前記第２縮小手段で行われる画像の縮小の倍率が１／ｎ（ｎは、ｎ≧２を満たす整数）であることを特徴とする請求項１または請求項３に記載の画像処理装置。
【請求項６】
前記第１縮小手段で行われる画像の縮小の倍率と、前記第２縮小手段で行われる画像の縮小の倍率のうち、少なくとも一方の倍率が１／２m（ｍは、ｍ≧１を満たす整数）であることを特徴とする請求項１または請求項３に記載の画像処理装置。
【請求項７】
前記第２縮小手段で行われる画像の縮小の倍率が１／２m（ｍは、ｍ≧１を満たす整数）であることを特徴とする請求項１または請求項３に記載の画像処理装置。
【請求項８】
原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小手段と、
前記第１縮小手段により生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小手段と、
前記第２縮小手段により生成された第２縮小画像をｄ倍に縮小した第３縮小画像を生成する第３縮小手段とを有し（但し、ｂ×ｃ×ｄ＝ａ、１＞ａ＞０）、
前記第１縮小手段は、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、
前記第２縮小手段は、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、
前記第３縮小手段は、前記第３縮小画像を構成する各画素を前記第２縮小画像を構成する画素に写像し、前記第２縮小画像において前記第３縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第３縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第３縮小画像の画素の画素値とすること
を特徴とする画像処理装置。
【請求項９】
前記第１縮小手段は、最近傍法または零次ホールド法のいずれかを用いて第１縮小画像を生成することを特徴とする請求項１，３または８のいずれかに記載の画像処理装置。
【請求項１０】
前記第３縮小手段は、投影法または平均値法のいずれかを用いて第３縮小画像を生成することを特徴とする請求項８または請求項９に記載の画像処理装置。
【請求項１１】
前記第１縮小手段で行われる画像の縮小の倍率と，前記第２縮小手段で行われる画像の縮小の倍率と、前記第３縮小手段で行われる画像の縮小の倍率のうち、少なくともいずれか１つの倍率が１／ｎ（ｎは、ｎ≧２を満たす整数）であること
を特徴とする請求項８に記載の画像処理装置。
【請求項１２】
前記第３縮小手段で行われる画像の縮小の倍率が１／ｎ（ｎは、ｎ≧２を満たす整数）であることを特徴とする請求項８に記載の画像処理装置。
【請求項１３】
前記第１縮小手段で行われる画像の縮小の倍率と，前記第２縮小手段で行われる画像の縮小の倍率と、前記第３縮小手段で行われる画像の縮小の倍率のうち、少なくともいずれか１つの倍率が１／２m（ｍは、ｍ≧１を満たす整数）であること
を特徴とする請求項８に記載の画像処理装置。
【請求項１４】
前記第３縮小手段で行われる画像の縮小の倍率が１／２m（ｍは、ｍ≧１を満たす整数）であることを特徴とする請求項８に記載の画像処理装置。
【請求項１５】
コンピュータに、
原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小ステップと、
前記第１縮小ステップにより生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小ステップと
を実行させるプログラムであって（但し、ｂ×ｃ＝ａ、１＞ａ＞０）、
前記第１縮小ステップでは、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、
前記第２縮小ステップでは、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第２縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第２縮小画像の画素の画素値とすること
を特徴とするプログラム。
【請求項１６】
コンピュータに、
原画像を縮小して第１縮小画像を生成する第１縮小ステップと、
前記第１縮小画像が生成されたことを契機として前記第１縮小画像中の黒画素数を計数し、計数された黒画素数が、前記第１縮小手段により縮小される前の画像から定まる閾値以上であるか否か判断する判断ステップと、
前記第１縮小ステップにより生成された第１縮小画像を縮小して第２縮小画像を生成する第２縮小ステップと
を実行させるプログラムであって、
前記第１縮小ステップでは、前記第１縮小画像を構成する各画素を縮小前の画像を構成する画素に写像し、縮小前の画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、
前記第２縮小ステップでは、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、
前記判断ステップでの判断結果が肯定的である場合、前記第１縮小画像を前記第１縮小ステップにより再度縮小し、前記判断ステップでの判断結果が否定的である場合、前記第２縮小ステップにより前記第１縮小画像を縮小して第２縮小画像を生成すること
を特徴とするプログラム。
【請求項１７】
コンピュータに、
原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小ステップと、
前記第１縮小ステップにより生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小ステップと、
前記第２縮小ステップにより生成された第２縮小画像をｄ倍に縮小した第３縮小画像を生成する第３縮小ステップと
を実行させるプログラムであって（但し、ｂ×ｃ×ｄ＝ａ、１＞ａ＞０）、
前記第１縮小ステップでは、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、
前記第２縮小ステップでは、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、
前記第３縮小ステップでは、前記第３縮小画像を構成する各画素を前記第２縮小画像を構成する画素に写像し、前記第２縮小画像において前記第３縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第３縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第３縮小画像の画素の画素値とすること
を特徴とするプログラム。
【請求項１８】
請求項１５乃至請求項１７のいずれかに記載のプログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を縮小する技術に関する。
【背景技術】
【０００２】
２値画像を縮小する方法として、最近傍法や論理和法といった方法が知られている。最近傍法は、縮小した画像と原画像との間で、白画素と黒画素の画素の比が近似するという利点があるが、縮小時に細線が消失したり掠れるという欠点を有している。一方、論理和法は、細線の消失や掠れが生じないという利点を有しているが、黒画素が常に優先されるため白画素が消失しやすくなり、黒潰れが発生するという欠点を有している。
【０００３】
このように、最近傍法や論理和法では、画像を縮小する際、画像の内容によって細線消失や画像潰れといった問題が生じ得るため、例えば、特許文献１〜３に記載されているように、細線の消失や画像潰れが発生するのを防止する技術が考案されている。
【特許文献１】特開平６−１６４８９７号公報
【特許文献２】特開平６−２３１２３８号公報
【特許文献３】特開平１０−１０８００７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
さて、図面を作成するためのＣＡＤ（Computer Aided Design）ソフトや、文書を作成するためのワープロソフトにおいては、図面や文書全体のレイアウトの確認を行うために、Ａ０やＡ１などの大きなサイズの図面を縮小して全体を表示したり、文書や静止画などをサムネイル表示するなど、原画像を大きな縮小率で縮小させて表示する機能がある。
このように縮小率が大きな画像においては、画像潰れを防ぎつつ、図面や文書全体のレイアウトを確認できる画像が求められる。
【０００５】
特許文献１〜３に記載されている技術は、細線消失や画像潰れといった問題を防止することを目的としているが、このように縮小率が大きな場合を想定していないため、縮小率が大きな場合に原画像の内容を反映した縮小画像を得ることができない。
【０００６】
このように縮小率が大きな場合に、画像の内容を反映した縮小画像を得る方法として
投影法と呼ばれる画像の縮小方法があるが、投影法は、縮小後の画像の各画素に影響を与える原画素と、各原画素の縮小画像への寄与率を求め、この寄与率に基づいて原画像の各画素値を加重平均することにより縮小画像の画素の画素値を決定するため、縮小率が大きいと、画像の縮小を行う際に演算に時間がかかり、縮小画像を直ぐに表示できないという欠点がある。
【０００７】
本発明は、上述した背景の下になされたものであり、原画像の内容を反映した縮小画像を迅速に得ることを可能とする技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するために本発明は、原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小手段と、前記第１縮小手段により生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小手段とを有し（但し、ｂ×ｃ＝ａ、１＞ａ＞０）、前記第１縮小手段は、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、前記第２縮小手段は、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第２縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第２縮小画像の画素の画素値とする画像処理装置を提供する。
【０００９】
また本発明は、コンピュータに、原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小ステップと、前記第１縮小ステップにより生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小ステップとを実行させるプログラムであって（但し、ｂ×ｃ＝ａ、１＞ａ＞０）、前記第１縮小ステップでは、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、前記第２縮小ステップでは、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第２縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第２縮小画像の画素の画素値とすることを特徴とするプログラムと、該プログラムを記録したコンピュータ読取り可能な記録媒体を提供する。
【００１０】
この画像処理装置（コンピュータ）は、原画像をａ倍した画像を生成するにあたり、２つの縮小手段（ステップ）により画像の縮小を行い、第１縮小手段（ステップ）では画像の倍率をｂ倍とし、第２縮小手段（ステップ）では画像の倍率をｃ倍とする（ただし、ｂ×ｃ＝ａ、１＞ａ＞０）。そして、第１縮小手段（ステップ）では原画像の画素が間引きされ、第２縮小手段（ステップ）では、第１縮手段（ステップ）により生成された画像の濃度分布が保存される。
【００１１】
また本発明は、原画像を縮小して第１縮小画像を生成する第１縮小手段と、前記第１縮小画像が生成されたことを契機として前記第１縮小画像中の黒画素数を計数し、計数された黒画素数が、前記第１縮小手段により縮小される前の画像から定まる閾値以上であるか否か判断する判断手段と、前記第１縮小手段により生成された第１縮小画像を縮小して第２縮小画像を生成する第２縮小手段とを有し、前記第１縮小手段は、前記第１縮小画像を構成する各画素を縮小前の画像を構成する画素に写像し、縮小前の画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、前記第２縮小手段は、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、前記判断手段の判断結果が肯定的である場合、前記第１縮小画像を前記第１縮小手段により再度縮小し、前記判断手段の判断結果が否定的である場合、前記第２縮小手段により前記第１縮小画像を縮小して第２縮小画像を生成することを特徴とする画像処理装置を提供する。
【００１２】
また本発明は、コンピュータに、原画像を縮小して第１縮小画像を生成する第１縮小ステップと、前記第１縮小画像が生成されたことを契機として前記第１縮小画像中の黒画素数を計数し、計数された黒画素数が、前記第１縮小手段により縮小される前の画像から定まる閾値以上であるか否か判断する判断ステップと、前記第１縮小ステップにより生成された第１縮小画像を縮小して第２縮小画像を生成する第２縮小ステップとを実行させるプログラムであって、前記第１縮小ステップでは、前記第１縮小画像を構成する各画素を縮小前の画像を構成する画素に写像し、縮小前の画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、前記第２縮小ステップでは、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、前記判断ステップでの判断結果が肯定的である場合、前記第１縮小画像を前記第１縮小ステップにより再度縮小し、前記判断ステップでの判断結果が否定的である場合、前記第２縮小ステップにより前記第１縮小画像を縮小して第２縮小画像を生成することを特徴とするプログラムと、該プログラムを記録したコンピュータ読取り可能な記録媒体を提供する。
【００１３】
この画像処理装置（コンピュータ）では、原画像を縮小した画像を生成するにあたり、２つの縮小手段（ステップ）により画像の縮小が行われる。第１縮小手段（ステップ）では、画素が間引きされて縮小される。画像処理装置（コンピュータ）は、この縮小された画像中の黒画素の数を計数し、黒画素の数が、縮小前の画像から定まる閾値以上であるか否か判断する。この判断結果が肯定的である場合、第１縮小手段（ステップ）により縮小された画像が、第１縮小手段（ステップ）により再度縮小され、判断結果が否定的である場合、第１縮小手段（ステップ）により縮小された画像が、縮小前の画像の画素値を保存する方法により縮小される。
【００１４】
また本発明は、原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小手段と、前記第１縮小手段により生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小手段と、前記第２縮小手段により生成された第２縮小画像をｄ倍に縮小した第３縮小画像を生成する第３縮小手段とを有し（但し、ｂ×ｃ×ｄ＝ａ、１＞ａ＞０）、前記第１縮小手段は、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、前記第２縮小手段は、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、前記第３縮小手段は、前記第３縮小画像を構成する各画素を前記第２縮小画像を構成する画素に写像し、前記第２縮小画像において前記第３縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第３縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第３縮小画像の画素の画素値とする画像処理装置を提供する。
【００１５】
また本発明は、コンピュータに、原画像をｂ倍に縮小した第１縮小画像を生成する第１縮小ステップと、前記第１縮小ステップにより生成された第１縮小画像をｃ倍に縮小した第２縮小画像を生成する第２縮小ステップと、前記第２縮小ステップにより生成された第２縮小画像をｄ倍に縮小した第３縮小画像を生成する第３縮小ステップとを実行させるプログラムであって（但し、ｂ×ｃ×ｄ＝ａ、１＞ａ＞０）、前記第１縮小ステップでは、前記第１縮小画像を構成する各画素を前記原画像を構成する画素に写像し、前記原画像において前記第１縮小画像の画素に対応する位置の画素の画素値を、前記第１縮小画像の画素の画素値とし、前記第２縮小ステップでは、前記第２縮小画像を構成する各画素を前記第１縮小画像を構成する画素に写像し、前記第１縮小画像において前記第２縮小画像の画素に対応する位置の周辺の画素の画素値の論理和演算の結果を、前記第２縮小画像の画素の画素値とし、前記第３縮小ステップでは、前記第３縮小画像を構成する各画素を前記第２縮小画像を構成する画素に写像し、前記第２縮小画像において前記第３縮小画像の画素に対応する位置の周辺の画素の画素値から、前記第３縮小画像を構成する画素の画素値を求め、この求めた画素値を前記第３縮小画像の画素の画素値とすることを特徴とするプログラムと、該プログラムを記録したコンピュータ読取り可能な記録媒体を提供する。
【００１６】
この画像処理装置（コンピュータ）は、原画像をａ倍した画像を生成するにあたり、３つの縮小手段（ステップ）により画像の縮小を行い、第１縮小手段（ステップ）では画像の倍率をｂ倍とし、第２縮小手段（ステップ）では画像の倍率をｃ倍とし、第３縮小手段（ステップ）では画像の倍率をｄ倍とする（ただし、ｂ×ｃ×ｄ＝ａ、１＞ａ＞０）。そして、第１縮小手段（ステップ）では原画像の画素が間引きされ、第２縮小手段（ステップ）では、縮小前の画像の画素値を保存する方法により縮小される。第３縮小手段（ステップ）では、第２縮手段（ステップ）により生成された画像の濃度分布が保存される。
【発明の効果】
【００１７】
本発明によれば、原画像の内容を反映した縮小画像を迅速に得ることが可能となる。
【発明を実施するための最良の形態】
【００１８】
［Ａ．第１実施形態］
［Ａ−１．構成］
図１は、本発明の実施形態に係わる画像処理装置１００のハードウェア構成を示すブロック図である。図１に示したように、画像処理装置１００の各部は、バス１０１に接続されており、このバス１０１を介して各部間で通信を行う。
【００１９】
Ｕ／Ｉ（ユーザインターフェース）部１０６は、キーボードやマウスなどの入力装置を具備しており、具備しているキーボードのキーやマウスのボタンが押下されると、押下されたキーを示す信号を、ＣＰＵ（Central Processing Unit）１０２へ供給する。
【００２０】
Ｉ／Ｆ（インターフェース）部１０７は、図面を光学的に読取り２値画像を生成するスキャナ装置２００と通信を行う際のインターフェースや、液晶ディスプレイ等の表示デバイスを具備したディスプレイ装置３００と通信を行う際のインターフェースとして機能する。Ｉ／Ｆ部１０７は、ＣＰＵ１０２の制御の下、ＣＰＵ１０２から供給されたデータや信号をスキャナ装置２００やディスプレイ装置３００へ供給する一方、スキャナ装置２００から供給されたデータや信号をＣＰＵ１０２へ供給する。
【００２１】
記憶部１０５は、例えばハードディスク装置など、データを永続的に記憶する装置（図示略）を有しており、画像処理装置１００の各部を制御するためのデータや、画像を表す画像データなどの各種データを記憶する。また、記憶部１０５は、画像処理装置１００の各部を制御する機能を実現するＯＳ（Operating System）ソフトウェアや、画像データが表す画像の編集機能を実現する画像処理ソフトウェアなど、各種ソフトウェアを記憶している。
【００２２】
ＲＯＭ（Read Only Memory）１０３は、ＩＰＬ（Initial Program Loader）と呼ばれるプログラムを記憶している。ＣＰＵ１０２は、図示を省略した電源から電力が供給されると、ＲＯＭ１０３からＩＰＬを読み出して実行する。ＣＰＵ１０２は、ＩＰＬを実行すると、記憶部１０５からＯＳソフトウェアを読み出し、ＲＡＭ（Random Access Memory）１０４を作業エリアとして起動する。ＣＰＵ１０２が、ＯＳソフトウェアを起動すると、Ｕ／Ｉ部１０６から供給される信号に応じて各部を制御する機能が画像処理装置１００において実現する。
【００２３】
また、ＯＳソフトウェアを起動したＣＰＵ１０２は、画像処理装置１００の使用者が、Ｕ／Ｉ部１０６を操作し、画像処理ソフトウェアの起動を指示する旨の操作を行うと、Ｕ／Ｉ部１０６から供給される信号に基づいて、画像処理装置１００の操作者が行った操作を判断し、記憶部１０５から画像処理ソフトウェアを読出して起動する。ＣＰＵ１０２が画像処理ソフトウェアを起動すると、記憶部１０５に記憶された画像データを読出し、読出した画像データが表す画像を編集したり、ディスプレイ装置３００に拡大・縮小表示させる機能が実現する。また、ＣＰＵ１０２が画像処理ソフトウェアを起動すると、スキャナ装置２００に載置された図面を読取り、読取った図面を示す画像データを記憶部１０５に記憶させる機能が実現する。このように画像処理装置１００は、ＣＰＵ１０２がソフトウェアに従って動作し、各種処理・制御を行うという点で、一般的なコンピュータ装置と同様の構成を有していると言える。
【００２４】
［Ａ−２．動作］
次に、本実施形態の動作について説明する。なお、以下の説明においては、ＯＳソフトウェアと画像処理ソフトウェアとがＣＰＵ１０２により既に起動されている場合を想定して動作の説明を行う。また、以下の説明においては、ＣＰＵ１０２が、記憶部１０５に記憶されている画像データを読出してＲＡＭ１０４に格納し、ＲＡＭ１０４に格納された画像データに従って、図３に示したように、画像を既にディスプレイ装置３００に表示させている場合を想定して動作の説明を行う。また、この画像データにより表される画像は２値画像であり、黒画素の値は「１」、白画素の値は「０」というように、個々の画素の値が１ビットで表されている場合を想定する。
【００２５】
画像処理装置１００の使用者（以下、単にユーザと称する）が、Ｕ／Ｉ部１０６を操作し、画像の拡大・縮小を行うためのメニュー画面を表示させるべく、図３に例示したメニューバーの「表示」の部分をクリックする旨の操作を行うと、ＣＰＵ１０２は、画像の倍率を設定するためのメニュー画面（図４参照）をディスプレイ装置３００に表示させる。このメニュー画面を見たユーザが、Ｕ／Ｉ部１０６を操作し、図４に例示したメニュー画面のテキストボックスＢＸに、画像の倍率を入力し、「ＯＫ」ボタンをクリックする旨の操作を行うと、ＣＰＵ１０２は、入力された倍率を判断する。ＣＰＵ１０２は、画像の倍率が「１倍」以下である場合、即ち、画像を縮小する場合には、図２に例示したフローチャートに従い、入力された倍率に応じて画像の縮小処理を行う。
【００２６】
＜入力された倍率が「１／８倍＞倍率」である場合＞
ユーザがＵ／Ｉ部１０６を操作し、画像の倍率として例えば「１／１６」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、まずＣＰＵ１０２は、入力された倍率が１／８倍未満であるか否かを判断する（図２：ステップＳＡ１）。ここで、ＣＰＵ１０２は、入力された倍率が１／１６であるため、ステップＳＡ１でＹＥＳと判断する。ＣＰＵ１０２は、ステップＳＡ１でＹＥＳと判断すると、拡大・縮小処理を行う前の原画像を、入力された倍率で縮小するにあたり、まず最近傍法により画像を縮小し（第１縮小手段）、次に投影法により画像を縮小する（第２縮小手段）。ＣＰＵ１０２は、このように２段階で画像の縮小処理を行うにあたり、第２段階において倍率を１／８倍として縮小処理を行うと、ユーザが入力した倍率の大きさの画像が得られるように、まず第１段階で行う縮小処理の倍率を求める。
【００２７】
入力された倍率が１／１６である場合、２段階で画像の縮小処理を行うに際し、第２段階で行う縮小処理の倍率を１／８倍とするためには、第１段階で行う縮小処理の倍率は１／２倍となる。ＣＰＵ１０２は、第１段階で行う縮小処理の倍率を１／２倍とし、画像データが表す画像（原画像）を最近傍法により縮小する（ステップＳＡ５）。ＣＰＵ１０２は、ステップＳＡ５の処理を終え、１／２倍の大きさに縮小した画像（第１縮小画像）を生成すると、次に、この画像を１／８倍の倍率で投影法により縮小する（ステップＳＡ６）。ＣＰＵ１０２は、ステップＳＡ５とステップＳＡ６の処理により、原画像の１／１６倍の大きさに縮小した画像（第２縮小画像）を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＡ１１）。
【００２８】
＜入力された倍率が、１／４倍＞倍率≧１／８倍である場合＞
ユーザが画像の倍率として例えば「１／６」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、まずＣＰＵ１０２は入力された倍率が１／８倍未満であるか否かを判断する（ステップＳＡ１）。ここで、ＣＰＵ１０２は、入力された倍率が１／６であるため、ステップＳＡ１でＮＯと判断する。ＣＰＵ１０２は、ステップＳＡ１でＮＯと判断すると、入力された倍率が１／４倍未満であるか否かを判断する（ステップＳＡ２）。ここで、ＣＰＵ１０２は、入力された倍率が１／６であるため、ステップＳＡ２でＹＥＳと判断する。ＣＰＵ１０２は、ステップＳＡ２でＹＥＳと判断すると、拡大・縮小処理を行う前の原画像を、入力された倍率で縮小するにあたり、まず最近傍法により画像を縮小し（第１縮小手段）、次に投影法により画像を縮小する（第２縮小手段）。ＣＰＵ１０２は、このように２段階で画像の縮小処理を行うにあたり、第２段階において倍率を１／４倍として縮小処理を行うと、ユーザが入力した倍率の大きさの画像が得られるように、まず第１段階で行う縮小処理の倍率を求める。
【００２９】
入力された倍率が１／６である場合、２段階で画像の縮小処理を行うに際し、第２段階で行う縮小処理の倍率を１／４倍とするためには、第１段階で行う縮小処理の倍率は２／３倍となる。ＣＰＵ１０２は、縮小処理の倍率を２／３倍とし、画像データが表す画像（原画像）を最近傍法により縮小する（ステップＳＡ７）。ＣＰＵ１０２は、ステップＳＡ７の処理を終え、２／３倍の大きさに縮小した画像（第１縮小画像）を生成すると、次に、この画像を１／４倍の倍率で投影法により縮小する（ステップＳＡ８）。ＣＰＵ１０２は、ステップＳＡ７とステップＳＡ８の処理により、原画像の１／６倍の大きさに縮小した画像（第２縮小画像）を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＡ１１）。
【００３０】
＜入力された倍率が、１／２倍＞倍率≧１／４倍である場合＞
ユーザが画像の倍率として例えば「１／３」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、まずＣＰＵ１０２は入力された倍率が１／８倍未満であるか否かを判断する（ステップＳＡ１）。ここで、ＣＰＵ１０２は、入力された倍率が１／３であるため、ステップＳＡ１でＮＯと判断する。ＣＰＵ１０２は、ステップＳＡ１でＮＯと判断すると、入力された倍率が１／４倍未満であるか否かを判断する（ステップＳＡ２）。ここで、ＣＰＵ１０２は、入力された倍率が１／３であるため、ステップＳＡ２でＮＯと判断する。ＣＰＵ１０２は、ステップＳＡ２でＮＯと判断すると、入力された倍率が１／２倍未満であるか否かを判断する（ステップＳＡ３）。ここで、ＣＰＵ１０２は、入力された倍率が１／３であるため、ステップＳＡ３でＹＥＳと判断する。ＣＰＵ１０２は、ステップＳＡ３でＹＥＳと判断すると、拡大・縮小処理を行う前の原画像を、入力された倍率で縮小するにあたり、まず最近傍法により画像を縮小し（第１縮小手段）、次に投影法により画像を縮小する（第２縮小手段）。ＣＰＵ１０２は、このように２段階で画像の縮小処理を行うにあたり、第２段階において倍率を１／２倍として縮小処理を行うと、ユーザが入力した倍率の大きさの画像が得られるように、まず第１段階で行う縮小処理の倍率を求める。
【００３１】
入力された倍率が１／３である場合、２段階で画像の縮小処理を行うに際し、第２段階で行う縮小処理の倍率を１／２倍とするためには、第１段階で行う縮小処理の倍率は２／３倍となる。ＣＰＵ１０２は、縮小処理の倍率を２／３倍とし、画像データが表す画像（原画像）を最近傍法により縮小する（ステップＳＡ９）。ＣＰＵ１０２は、ステップＳＡ９の処理を終え、２／３倍の大きさに縮小した画像（第１縮小画像）を生成すると、次に、この画像を１／２倍の倍率で投影法により縮小する（ステップＳＡ１０）。ＣＰＵ１０２は、ステップＳＡ９とステップＳＡ１０の処理により、原画像の１／３倍の大きさに縮小した画像（第２縮小画像）を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＡ１１）。
【００３２】
＜入力された倍率が、倍率≧１／２倍である場合＞
ユーザがＵ／Ｉ部１０６を操作し、画像の倍率として例えば「３／４」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、入力された倍率が３／４であるため、ステップＳＡ１〜ステップＳＡ２でＮＯと判断される。ＣＰＵ１０２は、ステップＳＡ２でＮＯと判断すると、入力された倍率が１／２倍未満であるか否かを判断する（ステップＳＡ３）。ここで、ＣＰＵ１０２は、入力された倍率が３／４であるため、ステップＳＡ３でＮＯと判断する。ＣＰＵ１０２は、ステップＳＡ３でＮＯと判断すると、入力された倍率で最近傍法により画像を縮小する（ステップＳＡ４）。ＣＰＵ１０２は、ステップＳＡ４の処理により、原画像の３／４倍の大きさに縮小した画像を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＡ１１）。
【００３３】
縮小する際の倍率が１に近い場合には、最近傍法であっても、細線消失や画像潰れなどが起こる確率が低くなる。本実施形態では、上述したように縮小時の倍率が１倍に近い場合には、最近傍法のみにより画像の縮小を行うので、迅速に縮小後の画像を得ることができる。一方、本実施形態においては、縮小時の倍率が、画素潰れなどが生じる虞がある倍率である場合、まず、最近傍法により画像の縮小が行われる。これにより、画素の間引きが行われ、画像潰れが生じにくくなる。そして、最近傍法により画像の縮小が行われた後、投影法により１／２m倍（ｍは整数）の倍率で縮小処理が行われる。これにより原画像の濃度分布が保存され、細部の潰れが少ない良好な縮小画像を得ることができる。なお、投影法で縮小処理を行う際には、倍率が１／２m倍となっているため、投影法は平均値法と同じ処理で実施でき、画素の画素値を求める際の演算が効率良く行われ、迅速に縮小された画像を得ることができる。尚、本実施例では倍率を外部から入力するように記載したが、本発明はもちろんこれに限定されるものではない。サムネイル表示のように予め表示サイズが決まっている場合には、記憶部１０５に格納された画像データのサイズ情報から倍率を計算して、それを元に自動的に処理を行っても良い。
【００３４】
［Ｂ．第２実施形態］
次に本発明の第２実施形態について説明する。なお、本実施形態において、画像処理装置１００のハードウェア構成は、上述した第１実施形態と同じであるため、ハードウェアの構成については、その説明を省略する。本実施形態においては、画像を縮小する際の処理の流れ、即ち、ソフトウェアに従ってＣＰＵ１０２が行う処理の流れが、第１実施形態と異なる。
【００３５】
本実施形態においては、ＣＰＵ１０２は、画像を縮小する際の倍率が「１／４倍＞倍率」である場合、最近傍法と、論理和法と、投影法とを用いて画像の縮小処理を行う。また、ＣＰＵ１０２は、画像を縮小する際の倍率が「１／２倍＞倍率≧１／４倍」である場合には、最近傍法と投影法とにより画像の縮小処理を行い、画像を縮小する際の倍率が「倍率≧１／２」である場合には、投影法により画像の縮小処理を行う。
【００３６】
次に、本実施形態の動作について説明する。なお、ユーザが画像処理装置１００のＵ／Ｉ部１０６を操作してから画像の倍率を設定するためのメニュー画面が表示されるまでの動作は、上述した第１実施形態の動作と同じであるため、その説明を省略する。
【００３７】
＜入力された倍率が「１／８倍＞倍率」である場合＞
ユーザが画像の倍率として例えば「１／１６」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、まずＣＰＵ１０２は、入力された倍率が１／８倍未満であるか否かを判断する（図５：ステップＳＢ１）。ここで、ＣＰＵ１０２は、入力された倍率が１／１６であるため、ステップＳＢ１でＹＥＳと判断する。ＣＰＵ１０２は、ステップＳＢ１でＹＥＳと判断すると、まず最近傍法により画像を縮小し（第１縮小手段）、次に論理和法で画像を縮小した後（第２縮小手段）、投影法により画像を縮小して（第３縮小手段）、入力された倍率の画像を生成する。ＣＰＵ１０２は、このように３段階で画像の縮小処理を行うにあたり、論理和法による縮小処理の倍率を１／２倍とし、投影法による縮小処理の倍率を１／４倍とする。ここで、ＣＰＵ１０２は、第１段階での縮小処理により生成された画像を１／８倍すると、入力された倍率の画像が得られるようにすべく、まず第１段階で行う縮小処理の倍率を求める。
【００３８】
入力された倍率が１／１６である場合、３段階で画像の縮小処理を行うに際し、第２段階で行う縮小処理の倍率を１／２倍とし、第３段階で行う縮小処理の倍率を１／４倍とするためには、第１段階で行う縮小処理の倍率は１／２倍となる。ＣＰＵ１０２は、縮小処理の倍率を１／２倍とし、画像データが表す画像（原画像）を、まず最近傍法により縮小する（ステップＳＢ５）。ＣＰＵ１０２は、ステップＳＢ５の処理を終え、原画像の１／２倍の大きさに縮小した画像（第１縮小画像）を生成すると、次に、この画像を１／２倍の倍率で論理和法により縮小する（ステップＳＢ６）。ＣＰＵ１０２は、ステップＳＢ６の処理を終え、原画像の１／４倍の大きさに縮小した画像（第２縮小画像）を生成すると、次に、この画像を１／４倍の倍率で投影法により縮小する（ステップＳＢ７）。ＣＰＵ１０２は、ステップＳＢ５からステップＳＢ７の処理により、元の画像の１／１６倍の大きさに縮小した画像（第３縮小画像）を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＢ１３）。
【００３９】
＜入力された倍率が、１／４倍＞倍率≧１／８倍である場合＞
ユーザが画像の倍率として例えば「１／６」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、まずＣＰＵ１０２は、入力された倍率が１／８倍未満であるか否かを判断する（図５：ステップＳＢ１）。ここで、ＣＰＵ１０２は、入力された倍率が１／６であるため、ステップＳＢ１でＮＯと判断する。ＣＰＵ１０２は、ステップＳＢ１でＮＯと判断すると、入力された倍率が１／４倍未満であるか否かを判断する（ステップＳＢ２）。ここで、ＣＰＵ１０２は、入力された倍率が１／６であるため、ステップＳＢ２でＹＥＳと判断する。ＣＰＵ１０２は、ステップＳＢ２でＹＥＳと判断すると、まず最近傍法により画像を縮小し（第１縮小手段）、次に論理和法で画像を縮小した後（第２縮小手段）、投影法により画像を縮小して（第３縮小手段）、入力された倍率の画像を生成する。ＣＰＵ１０２は、このように３段階で画像の縮小処理を行うにあたり、論理和法による縮小処理の倍率を１／２倍とし、投影法による縮小処理の倍率を１／２倍とする。ここで、ＣＰＵ１０２は、第１段階での縮小処理により生成された画像を１／４倍すると、入力された倍率の画像が得られるようにすべく、まず第１段階で行う縮小処理の倍率を求める。
【００４０】
入力された倍率が１／６である場合、３段階で画像の縮小処理を行うに際し、第２段階で行う縮小処理の倍率を１／２倍とし、第３段階で行う縮小処理の倍率を１／２倍とするためには、第１段階で行う縮小処理の倍率は２／３倍となる。ＣＰＵ１０２は、縮小処理の倍率を２／３倍とし、画像データが表す画像（原画像）を、まず最近傍法により縮小する（ステップＳＢ８）。ＣＰＵ１０２は、ステップＳＢ８の処理を終え、原画像の２／３倍の大きさに縮小した画像（第１縮小画像）を生成すると、次に、この画像を１／２倍の倍率で論理和法により縮小する（ステップＳＢ９）。ＣＰＵ１０２は、ステップＳＢ９の処理を終え、原画像の２／６倍の大きさに縮小した画像（第２縮小画像）を生成すると、次に、この画像を１／２倍の倍率で投影法により縮小する（ステップＳＢ１０）。ＣＰＵ１０２は、ステップＳＢ８からステップＳＢ１０の処理により、原画像の１／６倍の大きさに縮小した画像（第３縮小画像）を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＢ１３）。
【００４１】
＜入力された倍率が、１／２倍＞倍率≧１／４倍である場合＞
ユーザが画像の倍率として例えば「１／３」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、まずＣＰＵ１０２は入力された倍率が１／８倍未満であるか否かを判断する（ステップＳＢ１）。ここで、ＣＰＵ１０２は、入力された倍率が１／３であるため、ステップＳＢ１でＮＯと判断する。ＣＰＵ１０２は、ステップＳＢ１でＮＯと判断すると、入力された倍率が１／４倍未満であるか否かを判断する（ステップＳＢ２）。ここで、ＣＰＵ１０２は、入力された倍率が１／３であるため、ステップＳＢ２でＮＯと判断する。ＣＰＵ１０２は、ステップＳＢ２でＮＯと判断すると、入力された倍率が１／２倍未満であるか否かを判断する（ステップＳＢ３）。ここで、ＣＰＵ１０２は、入力された倍率が１／３であるため、ステップＳＢ３でＹＥＳと判断する。ＣＰＵ１０２は、ステップＳＢ３でＹＥＳと判断すると、まず最近傍法により画像を縮小し、次に投影法により画像を縮小して、入力された倍率の画像を生成する。ＣＰＵ１０２は、このように２段階で画像の縮小処理を行うにあたり、第２段階において倍率を１／２倍として縮小処理を行うと、入力された倍率の大きさの画像が得られるように、まず第１段階で行う縮小処理の倍率を求める。
【００４２】
入力された倍率が１／３である場合、２段階で画像の縮小処理を行うに際し、第２段階で行う縮小処理の倍率を１／２倍とするためには、第１段階で行う縮小処理の倍率は２／３倍となる。ＣＰＵ１０２は、縮小処理の倍率を２／３倍とし、画像データが表す画像を最近傍法により縮小する（ステップＳＢ１１）。ＣＰＵ１０２は、ステップＳＢ１１の処理を終え、２／３倍の大きさに縮小した画像を生成すると、次に、この画像を１／２倍の倍率で投影法により縮小する（ステップＳＢ１２）。ＣＰＵ１０２は、ステップＳＢ１１とステップＳＢ１２の処理により、原画像の１／３倍の大きさに縮小した画像を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＢ１３）。
【００４３】
＜入力された倍率が、倍率≧１／２倍である場合＞
ユーザが画像の倍率として例えば「３／４」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、入力された倍率が３／４であるため、ステップＳＢ１とステップＳＢ２でＮＯと判断される。ＣＰＵ１０２は、ステップＳＢ２でＮＯと判断すると、入力された倍率が１／２倍未満であるか否かを判断する（ステップＳＢ３）。ここで、ＣＰＵ１０２は、入力された倍率が３／４であるため、ステップＳＢ３でＮＯと判断する。ＣＰＵ１０２は、ステップＳＢ３でＮＯと判断すると、入力された倍率で最近傍法により画像を縮小する（ステップＳＢ４）。ＣＰＵ１０２は、ステップＳＢ４の処理により、元の画像の３／４倍の大きさに縮小した画像を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＢ１３）。
【００４４】
縮小する際の倍率が１に近い場合には、投影法であっても縮小処理に時間がかからない。本実施形態では、上述したように縮小時の倍率が１倍に近い場合には、投影法のみにより画像の縮小を行うので、原画像の濃度を保存した良好な画像を得ることができる。一方、本実施形態においては、縮小時の倍率が、画素潰れなどが生じる虞がある倍率である場合、まず、最近傍法により画像の縮小が行われる。これにより、画素の間引きが行われ、画像潰れが生じにくくなる。そして、最近傍法により画像の縮小が行われた後、論理和法により縮小処理が行われる。これにより、縮小された画像において細線や画素の孤立点が保持される。そしてこの後、投影法により１／２m倍（ｍは整数）の倍率で縮小処理が行われる。これにより原画像の濃度分布が保存され、細部の潰れが少ない良好な縮小画像を得ることができる。なお、投影法で縮小処理を行う際には、倍率が１／２m倍となっているため、画素の画素値を求める際の演算が効率良く行われ、迅速に縮小された画像を得ることができる。
【００４５】
［Ｃ．第３実施形態］
次に本発明の第３実施形態について説明する。なお、本実施形態において、画像処理装置１００のハードウェア構成は、上述した第１実施形態と同じであるため、ハードウェアの構成については、その説明を省略する。本実施形態においては、画像を縮小する際の処理の流れ、即ち、ソフトウェアに従ってＣＰＵ１０２が行う処理の流れが、第１実施形態と異なる。
【００４６】
本実施形態においては、ＣＰＵ１０２は、画像を縮小する際の倍率が「倍率＞１／２倍」である場合には、最近傍法により画像の縮小を行う。また、ＣＰＵ１０２は、画像を縮小する際の倍率が「１／２倍≧倍率」である場合、まず最近傍法により画像の縮小処理を行う（第１縮小手段）。そして最近傍法により得られた画像中の黒画素の画素数を確認し、画像中における黒画素数に応じて、最近傍法または論理和法のいずれかを用いて画像の縮小処理を行う。
【００４７】
次に、本実施形態の動作について、まず、画像を縮小する際の倍率が「倍率＞１／２倍」である場合の動作について説明し、次に、画像を縮小する際の倍率が「１／２倍≧倍率」である場合の動作について説明する。なお、ユーザが画像処理装置１００のＵ／Ｉ部１０６を操作してから画像の倍率を設定するためのメニュー画面が表示されるまでの動作は、上述した第１実施形態の動作と同じであるため、その説明を省略する。
【００４８】
＜入力された倍率が「倍率＞１／２」である場合＞
ユーザがＵ／Ｉ部１０６を操作し、画像の倍率として例えば「３／４」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、ＣＰＵ１０２は、まず、変数ｎに８を代入すると共に、原画像中の黒画素の画素数Ｂｏを計数する（図６：ステップＳＣ１）。次にＣＰＵ１０２は、画像の倍率が１／ｎ倍以上であるか否か判断する（ステップＳＣ２）。ここでｎ＝８であるため、倍率（３／４）＞１／８となるので、ＣＰＵ１０２はステップＳＣ２でＹＥＳと判断する。ＣＰＵ１０２は、ステップＳＣ２でＹＥＳと判断すると、変数ｎから１を減算し（ステップＳＣ３）、この後、変数ｎの値が２以上であるか否かを判断する（ステップＳＣ４）。ここでｎ＝７であるため、ＣＰＵ１０２は、ステップＳＣ４でＹＥＳと判断すると、ステップＳＣ２へ処理の流れを戻す。
【００４９】
入力された倍率が３／４であるので、ＣＰＵ１０２は、変数ｎの値が０になるまで、ステップＳＣ２からステップＳＣ４の処理を繰り返す。ＣＰＵ１０２は、変数ｎの値が０となり、ステップＳＣ４でＮＯと判断すると、入力された倍率（３／４倍）で、画像データが表す画像を最近傍法により縮小する（ステップＳＣ５）。ＣＰＵ１０２は、ステップＳＣ５の処理により、元の画像の３／４倍の大きさに縮小した画像を生成すると、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、この画像をディスプレイ装置３００に表示させる（ステップＳＣ１４）。
【００５０】
＜入力された倍率が「１／２倍≧倍率」である場合＞
次に、入力された倍率が「１／２倍≧倍率」である場合の動作について説明する。ユーザがＵ／Ｉ部１０６を操作し、画像の倍率として例えば「１／１６」を入力した後、「ＯＫ」ボタンをクリックする旨の操作を行うと、ＣＰＵ１０２は、まず、変数ｎに８を代入する（ステップＳＣ１）。次にＣＰＵ１０２は、画像の倍率が１／ｎ倍以上であるか否か判断する（ステップＳＣ２）。ここでｎ＝８であるため、１／８＞倍率（１／１６）となるので、ＣＰＵ１０２はステップＳＣ２でＮＯと判断する。
【００５１】
ＣＰＵ１０２は、ステップＳＣ２でＮＯと判断すると、まず、最近傍法により画像を縮小する（ステップＳＣ６）。ここでＣＰＵ１０２は、縮小処理を行うに際し、当該ステップ以降に倍率を１／ｎ倍として縮小処理を行うと、入力された倍率の大きさの画像が得られるように、縮小処理の倍率を求める。ここで、入力された倍率が１／１６であり、変数ｎ＝８である。１／８倍の縮小により１／１６倍の画像が得られるようにするために、ＣＰＵ１０２は、ステップＳＣ７における縮小処理の倍率を１／２倍とし、画像の縮小を行う。
【００５２】
ＣＰＵ１０２は、ステップＳＣ６で縮小処理を行った後、縮小した画像（第１縮小画像）における黒画素の画素数Ｂｎを計数し（ステップＳＣ７）、次に行う縮小処理を論理和法で行うか否かを判断するために閾値Ｔｂを算出する（ステップＳＣ８）。この閾値Ｔｂは、元の画像における黒画素の画素数をＢｏ、これまでに行われた縮小の倍率をｂ、画像潰れを抑制するための黒画素の残存率をｐとすると、以下の式で表される。
Ｔｂ＝Ｂｏ＊ｂ＊ｐ・・・（１）
なお、この残存率ｐは、予め定められた固定の値（例えば０．８）でもよいし、この時点までに行われた縮小処理の倍率に応じて変更するようにしてもよい。
【００５３】
ＣＰＵ１０２は、計数された黒画素の数が、求められた閾値Ｔｂの値以上である場合には（ステップＳＣ９：ＹＥＳ）、倍率を１／ｎ倍とし、画像データが表す画像を論理和法により縮小し（ステップＳＣ１０）、縮小された画像（第２縮小画像）をディスプレイ装置３００に表示させる（ステップＳＣ１４）。ここで変数ｎ＝８である場合、ＣＰＵ１０２は、倍率を１／８倍とし、画像データが表す画像を論理和法により縮小する（第２縮小手段）。
【００５４】
一方、ＣＰＵ１０２は、ステップＳＣ９においてＮＯ、即ち、黒画素数が閾値Ｔｂの値未満であると判断すると、変数ｎの値から１を減算する（ステップＳＣ１１）。次にＣＰＵ１０２は、変数ｎの値が２以上であるか否かを判断する（ステップＳＣ１２）。ここで、ステップＳＣ１１の処理により変数ｎ＝７となっているため、ＣＰＵ１０２は、ステップＳＣ１２でＹＥＳと判断し、ステップＳＣ６へ処理の流れを戻す。
【００５５】
ＣＰＵ１０２は、ステップＳＣ６以降の処理を行い、ステップＳＣ９において、黒画素数Ｂｎが、閾値Ｔｂより多いと判断した場合、再度ステップＳＣ１１へ処理の流れを移す。ＣＰＵ１０２は、ステップＳＣ６からステップＳＣ１２の処理を繰り返し、変数ｎの値が２未満となった場合（ステップＳＣ１２：ＮＯ）、倍率を１／２倍として論理和法により画像の縮小を行う（ステップＳＣ１３）。次にＣＰＵ１０２は、Ｉ／Ｆ部１０７を介してディスプレイ装置３００を制御し、入力された倍率に縮小された画像（第２縮小画像）を、ディスプレイ装置３００に表示させる（ステップＳＣ１４）。
【００５６】
以上説明したように本実施形態によれば、縮小する際の倍率が１に近い場合には、最近傍法により画像が縮小されるので、縮小された画像を迅速に得ることができる。一方、縮小時の倍率が、画素潰れが生じる虞がある倍率である場合、画像中の黒画素の数をみながら、画素潰れが生じない程度まで、最近傍法により画像の縮小が行われる。そして、このように、画素の間引きを行って画像潰れが生じないようにした後、論理和法により黒画素を保存しながら画像を縮小するので、画像潰れの少ない良好な画像を得ることができる。また、最近傍法と論理和法のみで画像が縮小されるので、縮小された画像を迅速に得ることができる。
【００５７】
［Ｄ．変形例］
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、他の様々な形態で実施可能である。例えば、上述の実施形態を以下のように変形して本発明を実施してもよい。
【００５８】
＜変形例１＞
上述した実施形態においては、画像の縮小をソフトウェア処理により実現しているが、画像の縮小をハードウェアにより行うようにしてもよい。
第１実施形態において、画像の縮小をハードウェアにより行う場合のブロック図を図７に示す。第１画像処理部１１０は、ＣＰＵ１０２から、画像の倍率を示す示すデータと、画像データとが供給されると、供給された倍率にしたがって、画像データが表す画像の大きさを最近傍法により縮小する。また、第２画像処理部１１１は、ＣＰＵ１０２から、画像の倍率を示す示すデータと、画像データとが供給されると、供給された倍率にしたがって、画像データが表す画像の大きさを、投影法により縮小する。この態様においては、ステップＳＡ４，５，７，９では、第１画像処理部１１０を用いて画像の縮小が行われ、ステップＳＡ６，８，１０においては、第２画像処理部１１１を用いて画像の縮小が行われる。
【００５９】
また、第２実施形態においても、画像の縮小処理をハードウェアにより行うようにしてもよい。この態様の画像処理装置１００のハードウェア構成を図８に示す。第３画像処理部１１２は、ＣＰＵ１０２から、画像の倍率を示す示すデータと、画像データとが供給されると、供給された倍率にしたがって、画像データが表す画像の大きさを論理和法により縮小する。この態様においては、ステップＳＢ５，８，１１では、第１画像処理部１１０を用いて画像の縮小が行われ、ステップＳＢ６，９においては、第３画像処理部１１２を用いて画像の縮小が行われる。また、ステップＳＢ４，７，１０，１２においては、第２画像処理部１１１を用いて画像の縮小が行われる。なお、上述した第１画像処理部１１０と第３画像処理部１１２とを用いることにより、第３実施形態においても、画像の縮小処理をハードウェアにより行うことができる。
【００６０】
＜変形例２＞
上述した実施形態では、本発明に係る画像の縮小機能を実現させるためのソフトウェアを記憶部１０５に予め記憶させておく場合について説明した。しかしながら、ＣＤ−ＲＯＭ（Compact Disk-Read Only Memory）やフレキシブルディスク、ＤＶＤ（Digital Versatile Disk）などのコンピュータ装置読み取り可能な記録媒体に上記ソフトウェアを記録させておき、係る記録媒体を用いて上記ソフトウェアを一般的なコンピュータ装置にインストールして本発明に係る画像の縮小機能をそのコンピュータ装置に実現させるようにしてもよい。また、上記ソフトウェアを、ＬＡＮ（Local Area Network）またはインターネットに接続されたコンピュータ装置に記憶させておき、このコンピュータ装置から上記ソフトウェアをダウンロードしてコンピュータ装置にインストールし、本発明に係る画像の縮小機能をそのコンピュータ装置に実現させるようにしてもよい。
【００６１】
＜変形例３＞
上述した実施形態において、最近傍法で画像の縮小処理を行っているステップでは、最近傍法に替えて零次ホールド法などの画素の間引きを基本とした方法により画像の縮小処理を行うようにしてもよい。また、上述した実施形態において、投影法により画像の縮小処理を行っているステップでは、縮小前の画像における複数の画素の画素値を参照し、参照した画素値から縮小後の画像の画素値を求める方法であれば、投影法ではなく、例えば線形補間法や３次畳み込み法などの他の方式を用いて画像の縮小処理を行うようにしても良い。また、倍率が１／２の場合には線形補間法を、１／４以下の場合には３次畳み込み法を使うなど、倍率に応じて参照する画素の範囲を変更しても良い。
【００６２】
＜変形例４＞
上述した第３実施形態においては、最近傍法で縮小した後、画像縮小後の黒画素の数を計数し、黒画素の数が予め求めた閾値未満であれば、論理和法により縮小処理を行うようにしているが、黒画素の数ではなく、白画素の数を計数し、白画素の数に応じて論理和法により縮小処理を行うようにしてもよい。
【００６３】
＜変形例５＞
上述した第３実施形態において、黒画素の残存率ｐは、拡大・縮小処理を行う前の原画像中の黒画素の割合Ｒｏに応じて残存率ｐを変更するようにしてもよい。ここで、黒画素の割合Ｒｏは、原画像中の黒画素数をＢｏ、原画像の幅をＷ、原画像の高さをＨとすると、以下の式で表される。
Ｒｏ＝Ｂｏ／（Ｗ＊Ｈ）・・・（２）
原画像中の黒画素の割合が高い場合、縮小を行うと画像潰れが発生しやすくなると考えられるので、黒画素の割合Ｒｏに応じて、黒画素の残存率ｐの値を小さくするようにする。
また、予め画像データが表す画像の種類を認識し、画像の種類によって残存率ｐを異ならせるようにしてもよい。例えば、比較的細線が多い図面などの場合には、残存率ｐを高めの値（例えばｐ＝０．９）とし、比較的細かい文字が多いオフィス文書や線が稠密な地形図などの場合には残存率ｐを低めの値（例えばｐ＝０．７）としてもよい。なお、上述した変形例を組み合わせて残存率ｐを決めるようにしてもよい。
【００６４】
＜変形例６＞
縮小後の画像の幅をＷｎ、縮小後の画像の高さをＨｎとした場合、縮小後の画像中の黒画素の割合Ｒｎは以下の式により求められる。
Ｒｎ＝Ｂｎ／（Ｗｎ＊Ｈｎ）・・・（３）
第３実施形態において、ステップＳＣ６で最近傍法により画像を縮小した後、ステップＳＣ９において、縮小後の黒画素の割合Ｒｎを判定し、ステップＳＣ１０またはステップＳＣ１１に分岐するようにしてもよい。この場合、ステップＳＣ９において、ＣＰＵ１０２は、縮小後の黒画素の割合Ｒｎが「Ｒｎ≧Ｒｏ＊ｐ」の関係となっているか否か判定し、判定結果が肯定的であればステップＳＣ１１へ処理の流れを移し、判定結果が否定的であればステップＳＣ１０へ処理の流れを移す。
【００６５】
＜変形例７＞
１／２倍や１／４倍、１／８倍というように、倍率を１／２m倍（ｍは整数）として画像の縮小を行うにあたり、縮小前の画素値と縮小後の画素値との関係を表した変換テーブルを予め記憶しておき、この変換テーブルを用いて、画像の横方向の縮小処理を行うようにしてもよい。
図９は、１／２倍の縮小を論理和法により行う際に用いる変換テーブルの一例である。ＣＰＵ１０２は、１／２倍の縮小を論理和法により行う場合、縮小前の画像中の画素値を８ビットずつ抽出する。画素値は２値で表されているので、例えば、ＬＳＢ（Least Significant Bit）のみが１で他のビットが０である場合、抽出した画素値は「０００００００１」というように表される。ＣＰＵ１０２は、この値と同じ値を変換テーブルにおいて検索し、入力値フィールドにおいて同じ値が格納されているセルを見つけると、このセルに対応付けて出力値フィールドに格納されている値を読出す。例えば、図１１（ａ）に示したように、縮小前の画像から抽出した画素値が「０００００００１」である場合、変換テーブルから読出される値は「０００１」となる。ＣＰＵ１０２は、この読出した値を縮小後の画素の画素値とし、画像を形成する。
【００６６】
図１０は、１／２倍の縮小を投影法により行う際に用いる変換テーブルの一例である。ＣＰＵ１０２は、１／２倍の縮小を投影法により行う場合、縮小前の画像中の画素値を８ビットずつ抽出する。画素値は２値で表されているので、例えば、ＬＳＢのみが１で他のビットが０である場合、抽出した画素値は「０００００００１」というように表される。ＣＰＵ１０２は、この値と同じ値を変換テーブルにおいて検索し、入力値フィールド同じ値が格納されているセルを見つけると、このセルに対応付けて出力値フィールドに格納されている値を読出す。例えば、図１１（ｂ）に示したように、抽出した値が「０００００００１」である場合、変換テーブルから読出される値は「０、０、０、１２８」となる。ＣＰＵ１０２は、この読出した値を縮小後の画素の画素値とし、画像を形成する。
【００６７】
なお、画像の縦方向の縮小については、最近傍法の場合には２mのライン毎に２m-1目のラインを抽出すればよく、論理和法の場合には、２mのライン毎に画素の論理和をとればよい。また、投影法の場合には、横方向の縮小により１画素の画素値が多値化された後で２mのライン毎に画素値の平均値を求めればよい。ここで、平均値を求める際の除算は、多値化された画素値を２進数で表し、２進数で表された値をｍビット分だけ右方向にシフトさせて計算するようにしてもよい。
このように、変換テーブルを用いると、縮小後の画素に対応する画素値を一意に素早く求めることができるため、縮小処理にかかる時間を短くすることができる。なお、最近傍法により縮小処理を行う場合にも、上述したように変換テーブルを設けて縮小処理を行うようにしてもよいのは勿論である。また、変換テーブルを用いて画像を縮小させる場合、例えば１６ビットなどの８の倍数のビット単位で表される値を入力値フィールドに格納し、８の倍数のビット単位で画素値を抽出して画像の縮小処理を行うようにしてもよいし、８の倍数ではなく任意の整数ｎの倍数のビット単位で画像の縮小処理を行うようにしてもよい。
【００６８】
＜変形例８＞
画像を縮小する際に用いる縮小方法の順番は、上述した順番に限定されるものではない。例えば、第１実施形態において、最近傍法と投影法の順番を入れ替え、投影法により１／２m倍の倍率で第１段階の縮小処理を行い、ユーザが入力した倍率の大きさとなるように最近傍法により第２段階の縮小処理を行うようにしてもよい。また、第２実施形態のように３段階で縮小処理を行う場合においても、最近傍法、論理和法、投影法を用いる順番を第２実施形態と異ならせるようにしてもよい。
【図面の簡単な説明】
【００６９】
【図１】本発明の実施形態に係る画像処理装置のハードウェア構成を示すブロック図である。
【図２】本発明の第１実施形態において、ＣＰＵ１０２が行う処理の流れを例示したフローチャートである。
【図３】同実施形態においてディスプレイ装置３００に表示される画面を例示した図である。
【図４】同実施形態においてディスプレイ装置３００に表示されるメニュー画面を例示した図である。
【図５】本発明の第２実施形態において、ＣＰＵ１０２が行う処理の流れを例示したフローチャートである。
【図６】本発明の第３実施形態において、ＣＰＵ１０２が行う処理の流れを例示したフローチャートである。
【図７】本発明の実施形態の変形例に係わる画像処理装置１００の構成を示すブロック図である。
【図８】本発明の実施形態の変形例に係わる画像処理装置１００の構成を示すブロック図である。
【図９】本発明の実施形態の変形例において用いられる変換テーブルの一例を示す図である。
【図１０】本発明の実施形態の変形例において用いられる変換テーブルの一例を示す図である。
【図１１】変換テーブルを用いた縮小処理を説明するための図である。
【符号の説明】
【００７０】
１００・・・画像処理装置、１０１・・・バス、１０２・・・ＣＰＵ、１０３・・・ＲＯＭ、１０４・・・ＲＡＭ、１０５・・・記憶部、１０６・・・Ｕ／Ｉ部、１０７・・・Ｉ／Ｆ部、１１０・・・第１画像処理部、１１１・・・第２画像処理部、１１２・・・第３画像処理部、２００・・・スキャナ装置、３００・・・ディスプレイ装置。
【図１】
2005301881.tif 000003
【図２】
2005301881.tif 000004
【図３】
2005301881.tif 000005
【図４】
2005301881.tif 000006
【図５】
2005301881.tif 000007
【図６】
2005301881.tif 000008
【図７】
2005301881.tif 000009
【図８】
2005301881.tif 000010
【図９】
2005301881.tif 000011
【図１０】
2005301881.tif 000012
【図１１】
2005301881.tif 000013