(57)【要約】【課題】  ドキュメント内の画像を従来よりも適切に補正できるようにする。【解決手段】  画像領域を含むドキュメントの実際の観察条件（視距離、印字サイズ）に基づくＬＰＦを用いて低周波画像を生成する。そして、画像領域を含むドキュメントのうち、ユーザにより指定された補正対象領域の画素値を、生成した低周波画像を用いて補正する。したがって、フィルタの適用対象となる領域の周辺の情報（画素値）を反映した低周波画像を生成することができ、ドキュメントを展開したときの見えを考慮して画像を補正することができる。また、指定した領域のみを補正するため、ハロ等の画像障害を抑制し、必要のない部分への補正を行わないようにすることができる。【選択図】  図１
2010134704.tif 000002
【特許請求の範囲】
【請求項１】
画像データを含むドキュメントデータの画素値を補正する画像処理装置であって、
前記ドキュメントデータに基づいて出力されるドキュメントの観察条件をユーザによる操作に基づいて取得する取得手段と、
前記観察条件を用いて、前記補正を行うためのローパスフィルタを生成するフィルタ生成手段と、
前記ローパスフィルタを用いて、前記ドキュメントデータに対する低周波画像データを生成する低周波データ生成手段と、
前記ドキュメントデータにおける画像データを含む領域の画素値を、前記低周波画像データを用いて補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記補正手段は、前記ドキュメントデータにおける画像データを含む領域であって、ユーザによる操作に基づいて指定された領域の画素値を、前記低周波画像データを用いて補正することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記観察条件は、前記ドキュメントを観察する際の照明条件と、前記ドキュメントを観察する際の当該ドキュメントからの距離と、前記ドキュメントの印字サイズとの少なくとも何れか１つを含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記補正手段は、前記ドキュメントデータの画素値及び前記低周波画像データの画素値を用いて、前記ドキュメントデータにおける画像データを含む領域の画素値を補正するための補正係数を算出し、算出した補正係数と当該領域における画素値とを乗算して、当該領域の画素値を補正することを特徴とする請求項１〜３の何れか１項に記載の画像処理装置。
【請求項５】
画像データを含むドキュメントデータの画素値を補正する画像処理方法であって、
前記ドキュメントデータに基づいて出力されるドキュメントの観察条件をユーザによる操作に基づいて取得する取得ステップと、
前記観察条件を用いて、前記補正を行うためのローパスフィルタを生成するフィルタ生成ステップと、
前記ローパスフィルタを用いて、前記ドキュメントデータに対する低周波画像データを生成する低周波データ生成ステップと、
前記ドキュメントデータにおける画像データを含む領域の画素値を、前記低周波画像データを用いて補正する補正ステップとを有することを特徴とする画像処理方法。
【請求項６】
前記補正ステップは、前記ドキュメントデータにおける画像データを含む領域であって、ユーザによる操作に基づいて指定された領域の画素値を、前記低周波画像データを用いて補正することを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記観察条件は、前記ドキュメントを観察する際の照明条件と、前記ドキュメントを観察する際の当該ドキュメントからの距離と、前記ドキュメントの印字サイズとの少なくとも何れか１つを含むことを特徴とする請求項５又は６に記載の画像処理方法。
【請求項８】
前記補正ステップは、前記ドキュメントデータの画素値及び前記低周波画像データの画素値を用いて、前記ドキュメントデータにおける画像データを含む領域の画素値を補正するための補正係数を算出し、算出した補正係数と当該領域における画素値とを乗算して、当該領域の画素値を補正することを特徴とする請求項５〜７の何れか１項に記載の画像処理方法。
【請求項９】
画像データを含むドキュメントデータの画素値を補正することをコンピュータに実行させるためのコンピュータプログラムであって、
前記ドキュメントデータに基づいて出力されるドキュメントの観察条件をユーザによる操作に基づいて取得する取得ステップと、
前記観察条件を用いて、前記補正を行うためのローパスフィルタを生成するフィルタ生成ステップと、
前記ローパスフィルタを用いて、前記ドキュメントデータに対する低周波画像データを生成する低周波データ生成ステップと、
前記ドキュメントデータにおける画像データを含む領域の画素値を、前記低周波画像データを用いて補正する補正ステップとをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びコンピュータプログラムに関し、特に、ドキュメント内の画像を再現するために用いて好適なものである。
【背景技術】
【０００２】
昨今、デジタルカメラによってシーンを撮影し、撮影した画像をディスプレイやプロジェクタでの表示やプリンタでの印字を用いて親しむ機会が増えている。この際、撮影時の露出量が適正でないことに起因して、非常に明るい画像又は非常に暗い画像になることがある。また、撮影時の露出量が適正であったとしても、デジタルカメラの輝度レンジに対して、出力機器のレンジが狭い場合には、全体的に暗く眠い画像が出力機器から出力されることになる。
【０００３】
これらの問題に対して、従来のＳ字カーブやニー圧縮等の１Ｄ／３ＤＬＵＴを用いる画像処理では、シャドウやハイライトのディティールが大きく損なわれることがある。これは、画像全体に対して一様な処理が行われることから、特定の階調領域を犠牲にして他の階調領域を良好に再現する処理となるからである。
また、別の画像処理として、レチネックスやiCAM等を用いた画像処理が知られている。これらの画像処理では、画像の低周波領域を用いて照明成分を近似し、この低周波成分を圧縮することで暗画像を明るく補正し、狭いレンジで画像を良好に再現することを実現する。この画像処理では、注目画素と周辺の画素との輝度の対比を用いて補正を行うため、特定の階調領域でのつぶれ等の画像障害の程度が低い。この低周波成分を抽出するにはＬＰＦ（Low Pass Filter）を用いる。ＬＰＦを設計する方法として、入力側でのシーンとの視距離や画角、或いは出力側での観察距離や印字サイズに応じて視野角を決定し、決定した視野角をＬＰＦに反映することで入力・観察条件に対応した再現を得る方法が提案されている。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前述した技術で補正した画像をドキュメント中に埋め込む場合、画像の良好な再現が得られないという問題があった。例えば、ビジネスドキュメントや年賀状・レター・アルバムのように、ドキュメント中に画像が配置されている場合、画像と周辺背景との対比により画像の見えが異なることがある。また、前述した技術とは別の方法として、ドキュメント全体に補正処理を実施する方法もある。しかしながら、この方法を用いた場合、画像の輪郭部分や補正を行いたくないテクスチャー部分に画像障害（ハロ、バンディング）が出ることがある。
【０００５】
本発明は、このような問題点に鑑みてなされたものであり、ドキュメント内の画像を従来よりも適切に補正できるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置は、画像データを含むドキュメントデータの画素値を補正する画像処理装置であって、前記ドキュメントデータに基づいて出力されるドキュメントの観察条件をユーザによる操作に基づいて取得する取得手段と、前記観察条件を用いて、前記補正を行うためのローパスフィルタを生成するフィルタ生成手段と、前記ローパスフィルタを用いて、前記ドキュメントデータに対する低周波画像データを生成する低周波データ生成手段と、前記ドキュメントデータにおける画像データを含む領域の画素値を、前記低周波画像データを用いて補正する補正手段とを有することを特徴とする。
【０００７】
本発明の画像処理方法は、画像データを含むドキュメントデータの画素値を補正する画像処理方法であって、前記ドキュメントデータに基づいて出力されるドキュメントの観察条件をユーザによる操作に基づいて取得する取得ステップと、前記観察条件を用いて、前記補正を行うためのローパスフィルタを生成するフィルタ生成ステップと、前記ローパスフィルタを用いて、前記ドキュメントデータに対する低周波画像データを生成する低周波データ生成ステップと、前記ドキュメントデータにおける画像データを含む領域の画素値を、前記低周波画像データを用いて補正する補正ステップとを有することを特徴とする。
【０００８】
本発明のコンピュータプログラムは、画像データを含むドキュメントデータの画素値を補正することをコンピュータに実行させるためのコンピュータプログラムであって、前記ドキュメントデータに基づいて出力されるドキュメントの観察条件をユーザによる操作に基づいて取得する取得ステップと、前記観察条件を用いて、前記補正を行うためのローパスフィルタを生成するフィルタ生成ステップと、前記ローパスフィルタを用いて、前記ドキュメントデータに対する低周波画像データを生成する低周波データ生成ステップと、前記ドキュメントデータにおける画像データを含む領域の画素値を、前記低周波画像データを用いて補正する補正ステップとをコンピュータに実行させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、実際の観察条件に基づくローパスフィルタを用いて低周波画像データを生成し、生成した低周波画像データを用いてドキュメント内の画像を含む領域を補正するようにした。したがって、ドキュメントを展開するときの見えを考慮して補正することができる。よって、ドキュメント内の画像を従来よりも適切に補正することができる。
【発明を実施するための最良の形態】
【００１０】
以下に、図面を参照しながら、本発明の一実施形態について説明する。
図１は、画像処理装置１００及びその周辺機器の構成の一例を示すブロック図である。図１において、１０１はＣＰＵ、１０２はメインメモリ、１０３はＳＣＳＩ（Small Computer System Interface）インタフェース（ＳＣＳＩ Ｉ／Ｆ）である。また、１０４はネットワークインタフェース（ネットワークＩ／Ｆ）、１０５はＨＤＤ（Hard Disk Drive）、１０６はグラフィックアクセラレータ、１０７はディスプレイ、１０８はプリンタである。また、１０９はキーボード／マウスコントローラ、１１０はキーボード、１１１はマウス、１１２はＰＣＩ（Peripheral Components Interconnect）バス、１１３はローカルエリアネットワークである。
【００１１】
次に、画像処理装置１００における画像補正動作について述べる。まず、ＨＤＤ１０５に格納されている画像補正アプリケーションが、ユーザの指示を受けたＯＳプログラムに基づき、ＣＰＵ１０１によって起動される。続いてユーザの指示による画像補正アプリケーション内の処理に従って、後述の画像補正を行い、画像補正を完了する。
【００１２】
図２は、前記画像補正アプリケーションによって行われる処理の概要の一例を説明するフローチャートである。本実施形態では、観察条件取得処理、低周波画像作成処理、補正領域取得処理、補正係数算出処理、及び画像補正処理の５つの処理を主として行って画像補正を実施する。
【００１３】
まず、ステップＳ２０１では、ＣＰＵ１０１は、初期化動作を行い、後述の観察条件指定用ＵＩをディスプレイ１０７に表示させる。
次に、ステップＳ２０２では、ＣＰＵ１０１は、ステップＳ２０１で表示された観察条件指定用ＵＩにてユーザにより設定された、ドキュメントの観察条件（環境条件）をメインメモリ１０２に格納する。
このように本実施形態では、図２のステップＳ２０３の処理を実行することにより、取得手段の一例が実現される。
次に、ステップＳ２０３では、ＣＰＵ１０１は、ステップ２０２にて取得された、ドキュメントの観察条件を用いて、後述の処理によりＬＰＦ（ローパスフィルタ）を生成する。
【００１４】
次に、ステップＳ２０４では、ＣＰＵ１０１は、ステップＳ２０３にて生成したＬＰＦを用いて低周波画像データを生成し、後述の補正対象領域指定用ＵＩをディスプレイ１０７に表示させる。
次に、ステップＳ２０５では、ＣＰＵ１０１は、ステップＳ２０４で表示された補正対象領域指定用ＵＩにてユーザにより設定された指定領域（ドキュメントの補正対象領域）をメインメモリ１０２に格納する。
次に、ステップＳ２０６では、ＣＰＵ１０１は、ステップＳ２０５にて設定された指定領域と、ステップＳ２０４にて生成された低周波画像データと用いて、後述の処理により補正係数を算出する。
次に、ステップ２０７では、ＣＰＵ１０１は、ステップＳ２０６にて算出した補正係数を用いて、ステップＳ２０５にて設定された指定領域に対する画像補正を行う。
【００１５】
図３は、図２のステップＳ２０１で表示される観察条件指定用ＵＩのダイアログウィンドウの一例を示す図である。
図３において、３０１、３０２は補正条件を設定するテキストボックスであり、それぞれ印字サイズ（ドキュメントの印字サイズ）、観察距離（ドキュメントを観察する際の当該ドキュメントから観察者までの距離）に対応している。３０３は終了ボタンであり、この終了ボタン３０３がユーザによって押下されると、ＣＰＵ１０１は、各テキストボックス３０１、３０２に設定されている内容を観察条件としてメインメモリ１０２に保持し、補正を実施する。
【００１６】
図４は、図２のステップＳ２０１で表示される観察条件指定用ＵＩの設定動作の一例を説明する図である。
図４において、ステート４０１では、観察条件指定用ＵＩの初期設定値を読み出し、読み出した初期設定値を用いて観察条件指定用ＵＩを表示するといった初期化動作が行われる。
次に、ステート４０２では、図３に示したダイアログウィンドウに対するユーザの操作判断を待つ状態となる。ここで、テキストボックス３０１が変更されるとステート４０３へ移行し、テキストボックス３０２が変更されるとステート４０４へ移行し、終了ボタン３０３が押下されるとステート４０５へ移行する。ステート４０３では、テキストボックス３０１に入力された印字サイズが設定され、ステート４０４では、テキストボックス３０２に入力された観察距離が設定され、ステート４０５では、ステップＳ２０２以降の処理が開始される。
【００１７】
図５は、図２のステップＳ２０３におけるＬＰＦ生成処理の一例を詳細に説明するフローチャートである。
まず、ステップＳ５０１では、ＣＰＵ１０１は、メモリの確保等の初期化動作を行う。
次に、ステップＳ５０２では、ＣＰＵ１０１は、ステップＳ２０２にて取得された観察条件から、印字サイズ及び観察距離を取得する。
次に、ステップＳ５０３では、ＣＰＵ１０１は、以下の式（１）により、フィルタ影響範囲を算出する。ここで、フィルタ影響範囲の一辺の長さをＸとし、観察距離をＤとする。
【００１８】
【数１】
2010134704.tif 000003
【００１９】
次に、ステップＳ５０４では、ＣＰＵ１０１は、以下の式（２）より、ＬＰＦのフィルタサイズを算出する。ここで、算出するフィルタサイズをＮ'とし、印字サイズに対応した横方向の長さをＬとし、画像の横方向の画素数をＮとする。尚、ここでは、横向き印刷が行われる場合を例に挙げて説明する。
【００２０】
【数２】
2010134704.tif 000004
【００２１】
以上のように本実施形態では、例えば、図２のステップＳ２０３（図５のフローチャート）の処理を行うことによりフィルタ生成手段の一例が実現される。
次に、図６のフローチャートを参照しながら、図２のステップＳ２０４における低周波画像の生成処理の一例を詳細に説明する。
まず、ステップＳ６０１では、ＣＰＵ１０１は、初期化動作を行う。
次に、ステップＳ６０２では、ＣＰＵ１０１は、図２のステップＳ２０３（図５のフローチャート）にて生成されたＬＰＦのフィルタサイズＮ'を取得する。
次に、ステップＳ６０３では、ＣＰＵ１０１は、画素の縦位置を表す変数ｉと、横位置を表す変数ｊをそれぞれ０に設定する。また、フィルタ演算の対象範囲となる縦位置をＰ１、Ｐ２、横位置をＳ１、Ｓ２とし、画像の横のピクセル数をcol、縦のピクセル数をrowとする。
次に、ステップＳ６０４では、ＣＰＵ１０１は、画素の横位置を表す変数ｊがＮ'／２より小さければ、フィルタ演算の対象範囲となる横位置Ｓ１に"０"を代入し、そうでなければ、横位置Ｓ１に"ｊ−Ｎ'／２"を代入する。
次に、ステップＳ６０５では、ＣＰＵ１０１は、"ｊ＋Ｎ'／２"が、画像の横のピクセル数colより小さければ、フィルタ演算の対象範囲となる横位置Ｓ２に"ｊ＋Ｎ'／２"を代入し、そうでなければ、縦位置Ｓ２に"col"を代入する。
【００２２】
次に、ステップＳ６０６では、ＣＰＵ１０１は、画素の縦位置を表す変数ｉがＮ'／２より小さければ、フィルタ演算の対象範囲となる縦位置Ｐ１に"０"を代入し、そうでなければ、縦位置Ｐ１に"ｉ−Ｎ'／２"を代入する。
次に、ステップＳ６０７では、ＣＰＵ１０１は、"ｉ＋Ｎ'／２"が、画像の縦のピクセル数rowより小さければ、フィルタ演算の対象範囲となる縦位置Ｐ２に"ｉ＋Ｎ'／２"を代入し、そうでなければ、縦位置Ｐ２に"row"を代入する。
次に、ステップＳ６０８では、ＣＰＵ１０１は、以下の式（３）により、(P1、S1)、(P1、S2)、(P2、S1)、(P2、S2)の４点に囲まれた領域のＲＧＢ値について周辺の影響（画素値）を考慮した信号値（画素値）を算出する。そして、ＣＰＵ１０１は、その信号値をメインメモリ１０２に格納する。
【００２３】
【数３】
2010134704.tif 000005
【００２４】
次に、ステップＳ６０９では、ＣＰＵ１０１は、画素の横位置を表す変数ｊに"１"を加える。
次に、ステップＳ６１０では、ＣＰＵ１０１は、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きいか否かを判定する。この判定の結果、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくない場合には、ステップＳ６０４に戻る。そして、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなるまでステップＳ６０４〜Ｓ６１０を繰り返し行う。そして、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなると、ステップＳ６１１に進む。
【００２５】
次に、ステップＳ６１１では、ＣＰＵ１０１は、画素の横位置を表す変数ｊに"０"を代入すると共に、画素の縦位置を表す変数ｉに"１"を加える。
次に、ステップＳ６１２では、ＣＰＵ１０１は、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きいか否かを判定する。この判定の結果、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくない場合には、ステップＳ６０４に戻る。そして、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなるまでステップＳ６０４〜Ｓ６１２を繰り返し行う。そして、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなると、図２のステップＳ２０５に進む。
以上のように本実施形態では、例えば、ステップＳ２０４（図６のフローチャート）の処理を行うことにより低周波データ生成手段の一例が実現される。
【００２６】
次に、図７のフローチャートを参照しながら、図２のステップＳ２０５における指定領域（補正対象領域）の取得処理の一例を詳細に説明する。
まず、ステップＳ７０１では、ＣＰＵ１０１は、初期化動作を行い、後述の補正対象領域指定用ＵＩをディスプレイ１０７表示させる。
次に、ステップＳ７０２では、ＣＰＵ１０１は、ステップＳ７０１で表示された補正対象領域指定用ＵＩにてユーザにより設定された、補正対象領域の座標を取得する。
【００２７】
図８は、図２のステップＳ２０５で表示される補正対象領域指定用  ＵＩのダイアログウィンドウの一例を示す図である。
図８において、８０１は、ドキュメントの画像を表示するウィンドウである。８０２は領域確定ボタンである。８０３は領域追加ボタンである。８０４は領域削除ボタンである。８０５は指定領域表示リストである。８０６は終了ボタンであり、この終了ボタン８０６がユーザによって押下されると、ＣＰＵ１０１は、補正対象領域指定用ＵＩのダイアログウィンドウ８００に対して行われた各設定をメインメモリ１０２に保持し、領域指定を実施する。
【００２８】
図９は、図２のステップＳ２０５で表示される補正対象領域指定用ＵＩの設定動作の一例を説明する図である。
図９において、ステート９０１では、補正対象領域指定用ＵＩの初期設定値を読み出し、読み出した初期設定値を用いて補正対象領域指定用ＵＩを表示するといった初期化動作が行われる。
次に、ステート９０２では、図８に示したダイアログウィンドウに対するユーザの操作判断を待つ状態となる。ここで、ユーザが補正対象領域を指定するとステート９０３へ移行し、領域確定ボタン８０２が押下されるとステート９０４へ移行し、領域追加ボタン８０３が押下されるとステート９０５へ移行する。また、領域削除ボタン８０４が押下されるとステート９０６へ移行し、指定領域表示リスト８０５の項目が選択されるとステート９０７へ移行し、終了ボタン８０６が押下されるとステート９０８へ移行する。
【００２９】
ステート９０３では、ウィンドウ８０１に対してユーザにより補正対象領域が指定される。ステート９０７では、指定領域表示リスト８０５の中からユーザにより選択された項目が補正対象領域として指定される。ステート９０４では、補正対象領域が確定される。ステート９０５では、補正対象領域の追加が可能になる。ステート９０６では、補正対象領域が削除される。
【００３０】
次に、図１０のフローチャートを参照しながら、図２のステップＳ２０６における補正係数の算出処理の一例を詳細に説明する。
まず、ステップＳ１００１では、ＣＰＵ１０１は、初期化動作を行う。
次に、ステップＳ１００２では、ＣＰＵ１０１は、入力されたドキュメントの画像と、ステップＳ２０４にて生成された低周波画像とを取得する。
次に、ステップＳ１００３では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊに"０"を代入し、縦位置を表す変数ｉに"０"を代入する。
次に、ステップＳ１００４では、ＣＰＵ１０１は、以下の式（４）により、入力されたドキュメントの画像の(Rin＿ij、Gin＿ij、Bin＿ij)の輝度値Ｙinを算出する。
【００３１】
【数４】
2010134704.tif 000006
【００３２】
次に、ステップＳ１００５では、ＣＰＵ１０１は、式（４）により、低周波画像の(Rlow＿ij、Glow＿ij、Blow＿ij)の輝度値Ｙlowを算出する。
次に、ステップＳ１００６では、ＣＰＵ１０１は、式（５）により、第１補正係数αを計算する。
【００３３】
【数５】
2010134704.tif 000007
【００３４】
次に、ステップＳ１００７では、ＣＰＵ１０１は、式（４）により、後述の処理にて算出される画素値(Rtmp＿ij、Gtmp＿ij、Btmp＿ij)の輝度値Ｙtmpを算出する。
次に、ステップＳ１００８では、ＣＰＵ１０１は、以下の式（６）により第２補正係数βを計算する。
【００３５】
【数６】
2010134704.tif 000008
【００３６】
次に、ステップＳ１００９では、ＣＰＵ１０１は、第３補正係数ｋを、以下の式（７）により算出する。
【００３７】
【数７】
2010134704.tif 000009
【００３８】
次に、ステップＳ１０１０では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊに"１"を加える。
次に、ステップＳ１０１１では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きいか否かを判定する。この判定の結果、画像内の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくない場合には、ステップＳ１００４に戻る。そして、画像内の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなるまでステップＳ１００４〜Ｓ１０１１を繰り返し行う。そして、画像内の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなると、ステップＳ１０１２に進む。
【００３９】
次に、ステップＳ１０１２では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊに"０"を代入すると共に、画像内の縦位置を表す変数ｉに"１"を加える。
次に、ステップＳ１０１３では、ＣＰＵ１０１は、画像内の縦位置を表す変数ｉが、画像内の縦のピクセル数rowよりも大きいか否かを判定する。この判定の結果、画像内の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくない場合には、ステップＳ１００４に戻る。そして、画像内の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなるまでステップＳ１００４〜Ｓ１０１３を繰り返し行う。そして、画像内の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなると、図２のステップＳ２０７に進む。
【００４０】
次に、図１１のフローチャートを参照しながら、図１０のステップＳ１００７で用いられる画素値(Rtmp＿ij、Gtmp＿ij、Btmp＿ij)の算出処理の一例を詳細に説明する。
まず、ステップＳ１１０１では、ＣＰＵ１０１は、初期化動作を行う。
次に、ステップＳ１１０２では、ＣＰＵ１０１は、図２のステップＳ２０５にて指定された補正対象領域の座標(col0、row0)、(col0、row1) (col1、row0)、(col1、row1)を取得する。
次に、ステップＳ１１０３では、ＣＰＵ１０１は、画素の縦位置を表す変数ｉにcol0を設定し、横位置を表す変数ｊにrow0を設定する。また、フィルタ演算の対象範囲となる縦位置をＰ１、Ｐ２とし、横位置をＳ１、Ｓ２とする。
【００４１】
次に、ステップＳ１１０４では、ＣＰＵ１０１は、画素の横位置を表す変数ｊが、"col0＋Ｎ'／２"より小さければ、フィルタ演算の対象範囲となる横位置Ｓ１に"col0"を代入し、そうでなければ、横位置Ｓ１に"ｊ−Ｎ'/２"を代入する。
ステップＳ１１０５では、ＣＰＵ１０１は、"ｊ＋Ｎ'／２がcol1より小さければ、フィルタ演算の対象範囲となる横位置Ｓ２に"ｊ＋Ｎ／２"を代入し、そうでなければ、横位置Ｓ２にcol1を代入する。
次に、ステップＳ１１０６では、ＣＰＵ１０１は、画素の縦位置を表す変数ｉが"row0＋Ｎ'／２"より小さければ、フィルタ演算の対象範囲となる縦位置Ｐ１にrow0を代入し、そうでなければ、縦位置Ｐ１に"ｉ−Ｎ'／２"を代入する。
【００４２】
次に、ステップＳ１１０７では、ＣＰＵ１０１は、"ｉ＋Ｎ'／２"がrow1より小さければ、フィルタ演算の対象範囲となる縦位置Ｐ２に"ｉ＋Ｎ'／２"を代入し、そうでなければ、縦位置Ｐ２にrow1を代入する。
次に、ステップＳ１１０８では、ＣＰＵ１０１は、前述した式（３）により、(P1、S1)、(P1、S2)、(P2、S1)、(P2、S2)の４点に囲まれた領域のＲＧＢ値について周辺の影響（画素値）を考慮した信号値（画素値）を算出する。そして、ＣＰＵ１０１は、その信号値をメインメモリ１０２に格納する。
次に、ステップＳ１１０９では、ＣＰＵ１０１は、画素の横位置を表す変数ｊに"１"を加える。
【００４３】
次に、ステップＳ１１１０では、ＣＰＵ１０１は、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きいか否かを判定する。この判定の結果、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくない場合には、ステップＳ１１０４に戻る。そして、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなるまでステップＳ１１０４〜Ｓ１１１０を繰り返し行う。そして、画素の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなると、ステップＳ１１１１に進む。
次に、ステップＳ１１１１では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊに"０"を代入すると共に、画素の縦位置を表す変数ｉに"１"を加える。
【００４４】
次に、ステップＳ１１１２では、ＣＰＵ１０１は、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きいか否かを判定する。この判定の結果、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくない場合には、ステップＳ１１０４に戻る。そして、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなるまでステップＳ１１０４〜Ｓ１１１２を繰り返し行う。そして、画素の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなると、図１１のフローチャートによる処理を終了する。
【００４５】
次に、図１２のフローチャートを参照しながら、図２のステップＳ２０７における画像補正処理の一例を詳細に説明する。
まず、ステップＳ１２０１では、ＣＰＵ１０１は、初期化動作を行う。
次に、ステップＳ１２０２では、ＣＰＵ１０１は、図２のステップＳ２０６（図１０のステップＳ１００９）にて算出した第３補正係数ｋを取得する。
次に、ステップＳ１２０３では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊに０を代入し、縦位置を表す変数ｉに０を代入する。ここで、画像の横のピクセル数をcol、縦のピクセル数をrowとする。また、ステップＳ２０５にて指定された補正対象領域の座標を(col0、row0)、(col0、row1) (col1、row0)、(col1、row1)とする。
次に、ステップＳ１２０４では、ＣＰＵ１０１は、以下の式（８）の不等式を満たすか否かを判定する。この判定の結果、以下の式（８）の不等式を満たしている場合にはステップＳ１２０５に進み、満たしていない場合にはステップＳ１２０６に進む。
【００４６】
【数８】
2010134704.tif 000010
【００４７】
次に、ステップＳ１２０５では、ＣＰＵ１０１は、以下の式（９）により補正画素値を算出する。
【００４８】
【数９】
2010134704.tif 000011
【００４９】
このように本実施形態では、例えば、第３補正係数と指定領域内の画素値とを乗算することにより、指定領域内の画素値が補正されるようにしている。
次に、ステップＳ１２０６では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊに１を加える。
次に、ステップＳ１２０７では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊが画像の横のピクセル数colより大きいか否かを判定する。この判定の結果、画像内の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくない場合には、ステップＳ１２０４に戻る。そして、画像内の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなるまでステップＳ１２０４〜Ｓ１２０７を繰り返し行う。そして、画像内の横位置を表す変数ｊが、画像の横のピクセル数colよりも大きくなると、ステップＳ１２０８に進む。
【００５０】
次に、ステップＳ１２０８では、ＣＰＵ１０１は、画像内の横位置を表す変数ｊに"０"を代入すると共に、画像内の縦位置を表す変数ｉに"１"を加える。
次に、ステップＳ１２０９では、ＣＰＵ１０１は、画像内の縦位置を表す変数ｉが、画像内の縦のピクセル数rowよりも大きいか否かを判定する。この判定の結果、画像内の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくない場合には、ステップＳ１２０４に戻る。そして、画像内の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなるまでステップＳ１２０４〜Ｓ１２０９を繰り返し行う。そして、画像内の縦位置を表す変数ｉが、画像の縦のピクセル数rowよりも大きくなると、処理を終了する。
以上のように本実施形態では、例えば、図２のステップＳ２０６、Ｓ２０７（図１０〜図１２のフローチャート）の処理を行うことにより補正手段の一例が実現される。
【００５１】
以上のように本実施形態では、画像領域を含むドキュメントの実際の観察条件（視距離、印字サイズ）に基づくＬＰＦを用いて低周波画像を生成する。そして、画像領域を含むドキュメントデータのうち、ユーザにより指定された補正対象領域の画素値を、生成した低周波画像を用いて補正する。したがって、フィルタの適用対象となる領域の周辺の情報（画素値）を反映した低周波画像を生成することができ、ドキュメントを展開したときの見えを考慮して画像を補正することができる。また、指定した領域のみを補正するため、ハロ等の画像障害を抑制し、必要のない部分への補正を行わないようにすることができる。よって、ＨＤＲ（High Dynamic Range）の画像の再現を従来よりも適切に行うことができる。
【００５２】
以下に、本実施形態の変形例を示す。
＜ローパスフィルタ＞
前記実施形態では、フィルタサイズに１０度視野を用いているが、２度視野或いはその他の視覚に対応したフィルタサイズのＬＰＦを用いてもよい。
＜周辺の影響を考慮した信号値＞
前記実施形態では、ＬＰＦとして平均値フィルタを用いているが、ガウシアン並びにガボア等のフィルタをＬＰＦとして用いてもよい。
【００５３】
＜補正係数の算出＞
前記実施形態では、補正係数の算出に輝度の指数を用いているが、任意の均等色空間での明るさの値や、輝度比等を用いて補正係数を算出することも可能である。
＜観察条件＞
前記実施形態では、観察条件に印字サイズや視距離を用いているが、これらの代わりに、又はこれらに加えて、画像解像度や表示・出力デバイスの解像度、並びに照明条件（ドキュメントを観察する際の照明条件）等を観察条件として用いることが可能である。
【００５４】
（本発明の他の実施形態）
前述した本発明の実施形態における画像処理装置を構成する各手段、並びに画像処理方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００５５】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００５６】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図２、図５〜図７、図１０〜図１２に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００５７】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００５８】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００５９】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００６０】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００６１】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００６２】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００６３】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００６４】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００６５】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００６６】
【図１】画像処理装置及びその周辺機器の構成の一例を示すブロック図である。
【図２】画像補正アプリケーションによって行われる処理の概要の一例を説明するフローチャートである。
【図３】観察条件指定用ＵＩのダイアログウィンドウの一例を示す図である。
【図４】観察条件指定用ＵＩの設定動作の一例を説明する図である。
【図５】図２のステップＳ２０３におけるＬＰＦ生成処理の一例を詳細に説明するフローチャートである。
【図６】図２のステップＳ２０４における低周波画像の生成処理の一例を詳細に説明するフローチャートである。
【図７】、図２のステップＳ２０５における指定領域（補正対象領域）の取得処理の一例を詳細に説明するフローチャートである。
【図８】補正対象領域指定用ＵＩのダイアログウィンドウの一例を示す図である。
【図９】補正対象領域指定用ＵＩの設定動作の一例を説明する図である。
【図１０】図２のステップＳ２０６における補正係数の算出処理の一例を詳細に説明するフローチャートである。
【図１１】図１０のステップＳ１００７で用いられる画素値の算出処理の一例を詳細に説明するフローチャートである。
【図１２】図２のステップＳ２０７における画像補正処理の一例を詳細に説明するフローチャートである。
【図１】
2010134704.tif 000012
【図２】
2010134704.tif 000013
【図３】
2010134704.tif 000014
【図４】
2010134704.tif 000015
【図５】
2010134704.tif 000016
【図６】
2010134704.tif 000017
【図７】
2010134704.tif 000018
【図８】
2010134704.tif 000019
【図９】
2010134704.tif 000020
【図１０】
2010134704.tif 000021
【図１１】
2010134704.tif 000022
【図１２】
2010134704.tif 000023