(57)【特許請求の範囲】
【請求項１】
原稿を撮影することによって影成分を示す画像を含む入力画像を取得する取得ステップと、
前記入力画像のうち、前記原稿が撮影された撮影環境に依存する前記影成分を示す画像を推定する推定ステップと、
前記入力画像の注目画素の画素値と、前記注目画素と同一座標にある前記影成分を示す画像の画素値との差分値を算出する算出ステップと、
前記入力画像の前記注目画素における前記差分値に応じた補正率に基づいて算出された係数と、前記注目画素の画素値の積に基づき、前記注目画素における影成分を除去するために前記入力画像の前記注目画素の画素値を補正する補正ステップとを有することを特徴とする画像処理方法。
【請求項２】
原稿を撮影することによって影成分を示す画像を含む入力画像を取得する取得ステップと、
前記入力画像のうち、前記原稿が撮影された撮影環境に依存する前記影成分を示す画像を推定する推定ステップと、
前記入力画像の注目画素の画素値と、前記注目画素と同一座標にある前記影成分を示す画像の画素値との差分値を算出する算出ステップと、
前記入力画像の前記注目画素における前記差分値に応じた補正率と、前記注目画素の画素値の積に、前記注目画素における影成分を除去するために前記入力画像の前記注目画素の画素値を補正する補正ステップとを有することを特徴とする画像処理方法。
【請求項３】
前記差分値が大きいほど前記補正率が低くなることを特徴とする請求項１または２に記載の画像処理方法。
【請求項４】
前記算出ステップは、前記入力画像の前記注目画素の赤成分と前記注目画素と同一座標にある前記影成分を示す画像の画素の赤成分との差分値と、前記入力画像の前記注目画素の緑成分と前記注目画素と同一座標にある前記影成分を示す画像の画素の緑成分との差分値と、前記入力画像の前記注目画素の青成分と前記注目画素と同一座標にある前記影成分を示す画像の画素の青成分との差分値とを算出することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理方法。
【請求項５】
前記補正ステップは、前記算出ステップにおいて算出された赤成分と緑成分と青成分の差分値の中で、差分値が最大である色成分の差分値に応じた補正率に基づいて算出された係数と、前記注目画素の当該色成分の画素値の積に基づき、前記入力画像における前記注目画素の画素値を補正することを特徴とする請求項４に記載の情報処理方法。
【請求項６】
前記補正ステップは、前記影成分が白になるように前記入力画像の前記注目画素の画素値を補正することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理方法。
【請求項７】
前記補正ステップは、さらに、前記入力画像の明るさに応じた補正率に基づき、前記注目画素の画素値を補正することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理方法。
【請求項８】
前記入力画像の明るさが小さいほど前記補正率が低くなることを特徴とする請求項７に記載の情報処理方法。
【請求項９】
前記入力画像の画素値は、撮影環境における影成分を含むことを特徴とする請求項１または２に記載の情報処理方法。
【請求項１０】
原稿を撮影することによって影成分を示す画像を含む入力画像を取得する取得手段と、前記入力画像のうち、前記原稿が撮影された撮影環境に依存する前記影成分を示す画像を推定する推定手段と、
前記入力画像の注目画素の画素値と、前記注目画素と同一座標にある前記影成分を示す画像の画素値との差分値を算出する算出手段と、
前記入力画像の前記注目画素における前記差分値に応じた補正率に基づいて算出された係数と、前記注目画素の画素値の積に基づき、前記注目画素における影成分を除去するために前記入力画像の前記注目画素の画素値を補正する補正手段とを有することを特徴とする情報処理装置。
【請求項１１】
コンピュータに、請求項１から９のいずれか一項に記載の画像処理方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮影された画像に写り込んだ影を除去するための技術に関する。
【背景技術】
【０００２】
近年、スマートフォンやタブレットＰＣといった高度な情報処理機能を持つ携帯端末が普及してきている。これらの携帯端末は、カメラを備え、撮影機能を有している。このような携帯端末のカメラ機能を用いて紙媒体の原稿を撮影し、携帯端末のメモリ上に画像データとして保存することが行われるようになってきた。それに伴い、撮影した画像データをプリンタへ送信してプリントするといったように、原稿を複写するために携帯端末とプリンタを組み合わせて使用する機会が増えてきた。このように、ユーザがスキャナ機能とプリント機能を備えた複合機を持っていなくても、携帯端末とプリンタがあれば、原稿の複写ができるようになってきている。
【０００３】
携帯端末のカメラ機能を用いて原稿の撮影を行う場合、周囲の物体や撮影者の影が原稿に写り込み、影が写り込んだ原稿を撮影することで、撮影画像に影が写りこむことがある。写り込んだ影による撮影画像上の明るさのムラ全般のことを以降「影」と表記することとする。画像に影がある状態では、撮影された原稿の可読性は低く、プリントした際の画質も低下する。
【０００４】
カメラによって原稿を撮影した際の影を補正する技術として、特許文献１がある。特許文献１では、撮影した画像内の影成分を推定し、その推定した影成分情報にもとづき、撮影した画像から影成分を除去する。特許文献１の方法は、撮影した画像から影成分を補正する際、撮影画像に含まれる彩度と明度が小さい領域を文字として検出し、文字は補正量を少なくすることで、文字が明るく補正されることを抑制している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−９５００２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法では、文字として検出されなかった領域にあるオブジェクトに対しては、オブジェクトの色を考慮することなく影成分を除去する補正が行われるため、影成分を除去する補正が多くかかりオブジェクトの色が明るくなってしまう。
【課題を解決するための手段】
【０００７】
本発明の画像処理方法は、原稿を撮影することによって影成分を示す画像を含む入力画像を取得する取得ステップと、前記入力画像のうち、前記原稿が撮影された撮影環境に依存する前記影成分を示す画像を推定する推定ステップと、前記入力画像の注目画素の画素値と、前記注目画素と同一座標にある前記影成分を示す画像の画素値との差分値を算出する算出ステップと、前記入力画像の前記注目画素における前記差分値に応じた補正率に基づいて算出された係数と、前記注目画素の画素値の積に基づき、前記注目画素における影成分を除去するために前記入力画像の前記注目画素の画素値を補正する補正ステップとを有することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、撮影した画像から影成分を補正する際、撮影した画像に含まれるオブジェクトに写り込んだ影成分の過補正を防ぐことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施形態としてのシステム構成図
【図２】携帯端末１０１の外観の例
【図３】携帯端末１０１の構成図の例
【図４】プリンタ１０３の構成図の例
【図５】本発明における処理の例を示す図
【図６】実施例１の全体フローチャート
【図７】実施例１の縮小画像補正処理のフローチャート
【図８】補正率調整ＬＵＴの例
【図９】実施例１における特異値画素の補正処理の例
【図１０】実施例２の処理のフローチャート
【図１１】実施例２における補正率調整ＬＵＴの例
【図１２】実施例３の処理のフローチャート
【図１３】実施例３におけるゲイン調整値を示すグラフの例
【発明を実施するための形態】
【００１０】
〔実施例１〕
以下、本発明を実施するための形態について図面を用いて説明する。
【００１１】
図１に本実施例で利用するシステムの全体構成を示す。無線ルータ１０２、プリンタ１０３が、ＬＡＮ１１０に接続されている。携帯端末１０１は無線ルータ１０２およびＬＡＮ１１０を介して、プリンタ１０３に接続することができる。なお、本実施例では、情報処理装置として、携帯端末１０１を例に挙げて説明するが、情報処理装置は、ＰＣ（パーソナルコンピュータ）、プリンタ、複写機などでもよい。ただし、複写機では、カメラの代わりに、スキャナを用いて原稿をスキャンすることで画像を取得する。
【００１２】
＜携帯端末の構成＞
図２は、本実施例で利用する携帯端末１０１の外観を示す。携帯端末１０１は様々な種類が存在するが、図２（ａ）は、携帯端末１０１の表面である。表面には、タッチパネルディスプレイ２０１、操作ボタン２０２を持つ。タッチパネルディスプレイ２０１は、詳細には、操作に必要な情報やボタン、画像などを表示するための表示装置と、人体の指などで触れることにより位置入力をする装置とが組み合わされた装置である。図２（ｂ）は携帯端末１０１の裏面である。裏面には撮影部２０３が配置されている。なお、本実施例は撮影部２０３を含むカメラ機能を持つ端末装置ならば利用が可能である。すわなち、適用されるのはカメラ機能を持ったスマートフォンや携帯電話でも、通信機能を持ったデジタルカメラでも構わない。また、原稿を非接触に撮影可能な書画カメラにも適用可能である。
【００１３】
図３は、携帯端末１０１の内部の構成を示す図である。但し、この構成図は本実施例を実施するための構成の一例である。図３において、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３がデータバス３１１を介してプログラムやデータを送受信する。また、データバス３１１には、記憶部３０４、データ送受信部３０５、撮像部３０６、表示部３０７、操作部３０８、画像処理部３０９、モーションセンサ３１０が接続される。記憶部３０４、データ送受信部３０５、撮像部３０６、表示部３０７、操作部３０８、画像処理部３０９、モーションセンサ３１０は、ＣＰＵ３０１、ＲＡＭ３０２、ＲＯＭ３０３と併せて、互いにプログラムやデータの送受信を行っている。
【００１４】
記憶部３０４は、フラッシュメモリであり、画像データや各種プログラムを格納する。データ送受信部３０５は、無線ＬＡＮコントローラを有し、無線ルータ１０２を介して、プリンタ１０３とのデータの送受信を実現する。撮像部３０６は、前述のカメラ２０３であり、原稿の撮影を行って撮影画像を取得する。取得された撮影画像のデータは、記憶部３０４やＲＡＭ３０２を介して、画像処理部３０９やＣＰＵ３０１で処理される。処理された画像データは、ＣＰＵ３０１により、表示部３０７での表示、記憶部３０４への保存、データ送受信部３０５を介した外部への送信等の後処理が施される。
【００１５】
表示部３０７は、前述のタッチパネルディスプレイ２０１を構成するディスプレイであり、カメラ機能を用いて原稿を撮影する際のライブビューによる表示のほか、本実施例の画像処理結果の表示、処理過程の通知や操作に必要な情報などを表示する。操作部３０８は、前述のタッチパネルディスプレイ２０１を構成するタッチパネルや操作ボタン２０２であり、ユーザからの操作を受け付けて各部へ該操作の情報を送信する。モーションセンサ３１０は、３軸加速度センサ、電子コンパス、３軸角速度センサを搭載しており、公知の技術を利用することにより、携帯端末１０１の姿勢や移動を検知することが可能である。
【００１６】
なお、ＣＰＵ３０１がＲＯＭ３０３や記憶部３０４が保持するプログラムを実行することで、これらの携帯端末１０１内の構成要素の制御を行う。
【００１７】
＜プリンタの構成＞
図４は本実施例で用いるプリンタ１０３の構成を説明する図である。プリンタ１０３は、コントローラ部４００、操作部４０９、外部メモリ４１０、プリンタ部４１１からなる。コントローラ部４００は、ＣＰＵ４０５は制御プログラム等に基づいて、システムバス４０８に接続されるプリンタＩ／Ｆ部４０４を介し、プリンタ部４１１に画像信号を出力する。なお、制御プログラムはＲＯＭ４０７や外部メモリ４１０に記憶される。また、このＲＯＭ４０７は、ＣＰＵ４０５の制御プログラム等を記憶する。ＣＰＵ４０５は、ネットワークＩ／Ｆ部４０１およびＬＡＮ１１０を介して、携帯端末１０１との通信処理が可能となっている。これにより、プリンタ内の情報や、携帯端末１０１で撮影された画像データなどを携帯端末１０１と送受信可能に構成されている。ＲＡＭ４０６は、ＣＰＵ４０５の主メモリ、ワークエリア等として機能する。
【００１８】
携帯端末１０１から送信された処理済みの撮影画像データは、ネットワークＩ／Ｆ部４０１を介してコントローラ部４００へ送られる。続いてＰＤＬ（ページ記述言語）データ処理部４０２が、ＰＤＬ解釈、レンダリングを行って、画像処理部４０３がプリント出力用画像処理を行い、プリンタ部４１１が処理済み画像データをプリントする。
【００１９】
＜処理の流れの詳細説明＞
図６（ａ）、（ｂ）、（ｃ）は本実施例における入力画像を補正する処理を説明するフローチャートである。図６（ａ）、（ｂ）、（ｃ）の処理は、携帯端末１０１（情報処理装置）で実行される。図６（ａ）、（ｂ）、（ｃ）の処理を実行するプログラムをＲＯＭ３０３に格納しておき、ＣＰＵ３０１が前記格納されたプログラムをＲＡＭ３０２に読み出して実行することで、図６（ａ）、（ｂ）、（ｃ）のフローチャートが実行される。
【００２０】
図６（ａ）は入力画像の補正処理の全体の流れを表している。携帯端末１０１を用いて撮影部２０３を含むカメラ機能によって原稿を撮影した画像や、記憶部３０４に保存されている画像、または外部装置から受信した画像などを入力画像として取得すると処理が開始される。入力画像は原稿画像が含まれていることが前提となる。入力画像に原稿以外の背景領域が含まれている場合は、原稿領域を検出し、検出した原稿領域が矩形領域になるように射影変換を行ったものを入力画像とすればよい。図５（ａ）は、入力画像の例である。文字列の背景に影があることが分かる。
【００２１】
ステップＳ６１０で画像処理部３０９が入力画像を処理して、入力画像に写り込んでいる撮影環境における影の成分を推定する。この影推定処理の詳細は図６（ｂ）および図７のフローチャートにより後述する。図５（ｂ）は、入力画像図５（ａ）から推定された影の成分の例である。文字領域以外の影成分だけが推定されていることが分かる。
【００２２】
次に推定された影成分情報を利用して、ステップＳ６２０で画像処理部３０９が入力画像から影成分を除去する処理を実施する。この影除去処理の詳細は図６（ｃ）のフローチャートにより後述する。図５（ｃ）は、入力画像図５（ａ）から推定された影成分情報（図５（ｂ））を利用して、影成分を除去した例である。正確に影成分が推定されているので、影が問題なく除去されていることが分かる。
【００２３】
図６（ｂ）は影推定処理を説明するフローチャートである。
【００２４】
まず、ステップＳ６１１で画像処理部３０９が入力画像を複数のブロックに分割する。その際、１ブロックの形状や１ブロックに含まれる入力画素数に制限は無いが、例えば１ブロックは縦横同数の入力画素を含む正方形とし、縦横の分割数をそれぞれ８から６４程度となるよう決定する。分割数は固定でも、入力画像の条件に従って可変としてもよい。
【００２５】
次にステップＳ６１２で画像処理部３０９が、分割後の各ブロックの代表画素値を算出する。代表画素値はＲＧＢ信号（Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅの３チャンネルで表される画像データ）の画素値となる。代表画素値は、ブロックに含まれる複数の入力画素のうち輝度値の高い画素を選択し、それらを利用して決定する。ここでの輝度値は、例えば、ＲＧＢ色空間をＹＣｂＣｒ色空間に変換した際のＹ信号である。輝度値としては、Ｌ＊ａ＊ｂ＊色空間のＬ信号やＹＵＶ色空間のＹ信号を利用してもよい。ここで、原稿の余白領域である、原稿の中で白紙の下地がそのまま残っている領域のことを紙白領域と呼称することとする。代表画素値は、ブロック内に紙白領域が含まれている場合には、影成分の推定値となる。紙白領域は白（８ｂｉｔ信号であればＲ＝２５５、Ｇ＝２５５、Ｂ＝２５５）であることが理想的な領域である。カメラで原稿を撮影した入力画像は、その紙白領域に影成分が載ることにより白では無くなっている。つまり、紙白領域の画素値は影成分と考えられる。紙白以外の領域は影が載ることにより、紙白領域よりも暗くなっている。よって、紙白領域がブロック内にある場合は、ブロック内の比較的輝度値の高い領域が紙白領域と推定され、その領域から代表画素値を算出することは、そのブロックの影成分を推定していることになる。ブロック内に、紙白領域がない場合には、代表画素値は最も明るいオブジェクト領域に影が載った際の画素値となる。
【００２６】
各ブロックの代表画素値の算出方法としては、例えば、入力画素各々の輝度値を算出し、ブロック内での最大輝度値をもつ画素の値を代表画素値とする方法がある。また、ブロック内で輝度値の高いほうから既定数画素を選択しそれらの画素値の平均値を算出して代表画素値とする方法などがある。また、ブロック内最大輝度値から既定範囲内の輝度値を持つ画素のみを選択する、または、輝度値ヒストグラムを利用して画素を選択することにより、それらの画素値の平均値を算出し代表画素値とする方法もある。ブロック内の影成分の推定方法としては、計算量が多くなるが、ブロック内のＲＧＢ信号をクラスタリングして、各々のクラスタ代表値を算出して、もっとも輝度値の高いクラスタ代表値を代表画素値とする方法も考えられる。
【００２７】
このようにして全ブロックの代表画素値を求めた結果を受けて、ステップＳ６１３で、画像処理部３０９が各ブロックの代表画素値のみで構成されるＲＧＢ画像を生成する。各ブロックの代表画素値のみで構成される画像は、入力画像を前述の分割数で規定される画素数を持つ画像に縮小したものであり、この後続く影推定処理の起点画像となる。次にステップＳ７００で画像処理部３０９が、前記起点画像である縮小画像から影成分のみを残すための補正処理を実施する。この縮小画像補正処理の詳細は図７を用いて後述する。次に、ステップＳ６１４で画像処理部３０９が補正処理済みの縮小画像を拡大することで入力画像と同一サイズの影マップを生成し、影推定処理が終了する。
【００２８】
図６（ｃ）は前記影マップを利用して入力画像から影を除去する処理を説明するフローチャートである。
【００２９】
ステップＳ６２１で画像処理部３０９が入力画像の明るさ成分として代表輝度値を算出する。代表輝度値の決定方法は、前記縮小画像の各画素から算出した輝度値の平均値または中央値とする。なお、代表輝度値は、画像の下地の推定値であるため、入力画像よりもオブジェクトの影響が少ない縮小画像から算出するほうが高精度に求めることができ、演算量も少なくて済む。
【００３０】
ステップＳ６２２で画像処理部３０９が、記憶部３０４に保持しているテーブルを参照し、前記代表輝度値に対応する補正率Ａを決定する。この補正率Ａは画像全体に一律に適用される数値である。代表輝度値が暗い場合は、原稿のオブジェクトや下地の影響で、影成分以上に暗く、原稿の紙白領域が存在しない、または、少ないことが想定さる。そのような場合には、下地や原稿のオブジェクトの画素値が影成分の推定値として利用されてしまい、影成分の推定精度が低下し、影成分（影マップ）が暗く推定される。そのような場合に、補正をそのまま行うと、過補正になってしまうため、代表輝度値が暗い場合には補正率を下げる。こうすることにより、過補正を防ぐことが可能となる。
【００３１】
図８（ａ）は、ステップＳ６２２で参照されるテーブルを、グラフに表した例を示す。グラフ縦軸の補正率は、影除去処理における推定影成分の適用率を示しており、例えば入力画像の代表輝度値が３２すなわち非常に暗い入力画像であった場合には補正率０％であるので、前記影マップの状態によらず補正（影除去）は一切行わないことを表している。このように、代表輝度値が非常に暗い場合は、推定した影成分（影マップ）が暗い下地の影成分も含んでいる可能性が高く、影除去補正を行わないことにより、暗い下地が白になるような補正がかかることを防ぐことができる。
【００３２】
次に、ステップＳ６２３で、画像処理部３０９が入力画像に含まれる注目画素の値と前記注目画素と同一座標にある前記影マップの画素の値との差分を、入力画像の各画素に対して算出する。本実施例では、差分算出時の入力画像と影マップの形式としてＲＧＢ画像を想定しているため、Ｒ、Ｇ、Ｂチャンネルごとの差分を求める。例えば、入力画像のある座標（注目画素）の画素値が（Ｒｉｎ（赤成分）、Ｇｉｎ（緑成分）、Ｂｉｎ（青成分））、前記座標と同一の座標にある影マップの画素値が（Ｒｍａｐ（赤成分）、Ｇｍａｐ（緑成分）、Ｂｍａｐ（青成分））であるとする。求められる差分は｜Ｒｉｎ−Ｒｍａｐ｜、｜Ｇｉｎ−Ｇｍａｐ｜、｜Ｂｉｎ−Ｂｍａｐ｜である。ここで｜＊｜は絶対値を表す。使用する差分値は１つであるため、例えば、ここでは、Ｒ、Ｇ、Ｂの差分値のうち最大値を選択し、選択された差分値を、この画素の差分値とする。差分値の求め方としては、計算量が多くなるが、入力画像と影マップのＲＧＢ値をＬ＊ａ＊ｂ＊に変換して、各画素において色差ΔＥを求めても良い。
【００３３】
次にステップＳ６２４で、画像処理部３０９が記憶部３０４に保持しているテーブルを参照し、差分値に対応する補正率Ｂをこの画素における補正率Ｂと決定する。この補正率Ｂは、画素毎に求められた差分値に応じて、画素毎にそれぞれ適用される数値である。図８（ｂ）にここで参照されるテーブルをグラフに表した例を示す。図８（ａ）同様、グラフ縦軸の補正率は影除去処理における推定影成分の適用率を示している。例えばある画素における入力画像と影マップの差分値が１２８である場合には補正率８０％である。入力画像と影マップの差分値が１２８の場合、入力画像の画素値が、推定された影の画素値と大きく異なるため、原稿上の何らかのオブジェクト上の画素であると推測される。そのため推定された影成分をそのまま補正するとオブジェクトの色が損なわれる可能性が高い。よって、影成分の補正率を８０％にしている。同様に、例えば、入力画像における画素と影マップにおける対応する画素との差分値が０である場合、補正率は１００％にしている。この場合、入力画像の画素値と対応する推定された影の画素値の差分が無い、すなわち原稿上の紙白部分の画素であると推測されるため、影成分の補正率を１００％にしている。
【００３４】
なお、図８（ｂ）は、入力画像の画素値と対応する影マップの画素値の差分値が大きいほど、補正率は小さくなっている関係を示しているが、差分値が大きくなるほど、線形に補正率が小さくなる関係を示す直線でもよい。
【００３５】
ステップＳ６２５で画像処理部３０９は入力画像、影マップ、補正率Ａ、補正率Ｂを使って、入力画像の各画素の影成分を除去する（白にする）補正を行う。影成分を除去する補正は、入力画像の各画素の補正率と、影マップの画素値を用いて、入力画像の画素値を補正する。入力画像に含まれる画素ｋにおける補正率を考慮した影マップの画素値は、１つのチャンネルにつき８ｂｉｔの画像データに対して算出する場合、下記の式（１）と式（２）で表される。
【００３６】
【数１】
0006584179.tif 000002
これを利用してある画素ｋの画素値は下式のように変換される。
【００３７】
【数２】
0006584179.tif 000003
上記式の処理により、Ｒ’ｍａｐ（ｋ）、Ｇ’ｍａｐ（ｋ）、Ｂ’ｍａｐ（ｋ）より明るい画素値が２５５になるため、入力画像の各画素に対して上記の処理を行うと影除去済みの画像が出力される。
【００３８】
図７は縮小画像補正処理（Ｓ７００）の詳細を説明するフローチャートである。
【００３９】
ステップＳ７０１では画像処理部３０９が、縮小画像の画素の中で、第１の色範囲に入る画素値を持つ画素の有無を判断する。第１の色範囲とは、白紙を様々な条件下で撮影した場合に得られる画素値として想定される色の範囲である。つまり、紙白部分と想定される色の範囲である。その色範囲の設定方法として例えば、ＹＣｂＣｒ色空間を利用する場合は無彩色を表す（Ｃｂ，Ｃｒ）＝（０，０）からある閾値で定義される一定の距離以内を第１の色範囲とする。ステップＳ７０１での判断では第１の色範囲に入る画素（無彩色から閾値距離以内にあるＣｂ、Ｃｒ値を持つ画素）が１つでもあればＹｅｓ、無い場合にはＮｏと判断する。
【００４０】
ステップＳ７０２では画像処理部３０９が縮小画像から色成分代表値を算出する。色成分代表値とは、白紙を撮影した場合に得られる色成分値を入力画像から推定した値を意味する。この値は、影の色成分であり、この後の影除去処理により白に変換されるべき色である。上記第１の色範囲内の画素値を利用して算出するが、ここでは第１の色範囲内の色成分値の平均を色成分代表値として定義する。
【００４１】
続いてステップＳ７０４では、ステップＳ７０２で算出された色成分代表値を基準に、縮小画像の画素値が、第１の閾値以上離れた色成分値を持つ画素の割合を算出する。ここでは入力画像中の紙白領域ではない領域の割合を求めていることになる。色成分の距離はＣｂ、Ｃｒ空間における距離を用いればよい。
【００４２】
ステップＳ７０５で、ステップＳ７０４で算出された割合が第２の閾値以上であるか否かを画像処理部３０９が判定する。判定の結果Ｎｏである、すなわち入力画像中の紙白領域が一定割合を超えている場合には、白紙をベースとする原稿が撮影されて得られた画像が入力画像であると推測できるため、画像処理部３０９は入力画像の基本色を白と決定する（Ｓ７０６）。判定の結果Ｙｅｓである、入力画像中の紙白領域が一定以上の場合には、撮影された原稿が色紙や有彩色のオブジェクトが広範囲に存在するなど、白紙がベースの原稿ではないと推測できるため、画像処理部３０９が基本色は白ではないと決定する（Ｓ７０７）。
【００４３】
ここで一旦ステップＳ７０１の判断がＮｏの場合に戻る。ステップＳ７０３では画像処理部３０９が色成分代表値を無彩色（（Ｃｂ，Ｃｒ）＝（０，０））と定義する。これは、白紙を撮影した場合に得られる色成分値を入力画像から推定することができないため、影除去処理による色成分の変換は行わないためである。また、このとき入力画像に紙白領域はないため、ステップＳ７０７で画像処理部３０９が基本色は白ではないと決定する。
【００４４】
次に、ステップＳ７０８では、画像処理部３０９が縮小画像の全画素について色成分値を参照し、ステップＳ７０２で算出した色成分代表値から所定の閾値（第３の閾値）よりも大きい色成分値をもつ画素を、特異画素と判定する。特異画素とは縮小画像内で紙白領域以外を表す画素のことであり、この後、周囲の紙白領域と推定される画素を利用して値が置換されるべき画素である。ここでは、色成分値が代表値から大きく離れている、すなわち白紙とは明らかに色が異なる領域が、特異画素として特定されることを意味する。
【００４５】
ステップＳ７０９では、この時点での縮小画像の平均輝度値を画像処理部３０９が算出する。
【００４６】
ステップＳ７１０で、画像処理部３０９が縮小画像の全画素について輝度成分値を参照し、ステップＳ７０９で算出された平均輝度値から、第４の閾値以上に輝度値が離れた画素について、エッジを構成する画素であるか否かを判断する。エッジを構成する画素であるか否かの判断方法は、公知のいかなるエッジ判定手法を適用しても良い。ただし、ここでのエッジ画素は周囲の画素より暗いためにエッジと判定（暗エッジ判定）される画素（暗エッジ）である。周囲より明るいためにエッジ画素判定（明エッジ判定）される画素（明エッジ）については無視をする。これは紙白領域である可能性が低い領域は紙白領域よりも暗いことが想定されるからである。平均輝度値から第４の閾値以上離れた輝度値でありかつ暗エッジ画素であると判断された画素は特異画素と判定される。ステップＳ７１０における特異画素は、平均輝度と差異があり、周囲の画素と輝度値が異なるエッジ画素であり、紙白領域である可能性が低い画素である。これは、紙白領域は平均輝度との差分が小さい可能性が高く、影成分しか存在しないため急激な輝度変化がない可能性が高い領域であるためである。なお、第４の閾値を０として、エッジだけに基づいて、特異画素を判定するようにしてもよい。
【００４７】
ステップＳ７１１で、画像処理部３０９がステップＳ７０８およびステップＳ７１０で特異画素と判定された画素があるか否かを判断し、Ｙｅｓすなわち特異画素が存在する場合にはステップＳ７１２に進む。
【００４８】
ステップＳ７１２では、画像処理部３０９が特異画素の輝度値を周辺画素から求めた輝度値に置換する処理を行う。この処理は、紙白領域ではないと判定された特異画素を、紙白領域と推測される周辺画素から算出した輝度値で置換することを意味している。実際の処理として、隣接する複数の画素のうち、処理対象画素よりも所定以上輝度が明るくかつ特異画素では無い画素を選択し、それらの画素群の輝度値の平均値を算出して、処理対象画素の輝度値として決定する方法などが適用される。選択される隣接画素が存在しない場合には未置換の特異画素が残るため、この処理を未置換の特異画素が無くなるまで繰り返す（ステップＳ７１３）。なお、条件によっては特異画素が無くならない場合があるため、そのような場合は一定回数ループしたら、隣接する画素すべての輝度値の平均値を処理対象画素の輝度値にするなど特異画素が無くなるように置換条件を変更すればよい。
【００４９】
ここまでの処理で、色が白紙とは明らかに異なる領域と、エッジ領域の画素の輝度値の置換が完了するが、比較的大きな面積を占めるオブジェクトが含まれていた場合には、その外周のみが置換されて内部が残されているためステップＳ７０９に戻る。ステップＳ７０９、Ｓ７１０では再度エッジ部の特異画素判定を行い、ステップＳ７１２でその特異画素の輝度値の置換処理が行われる。これを繰り返すことで、オブジェクトの領域に相当する画素が、周囲の紙白領域の情報で置換される。ステップＳ７１０における特異画素判定は、置換すべき特異画素が無くなるとステップＳ７１１でＮｏと判断され、ステップＳ７１４へと進む。なお特異画素が一定数を下回った場合に、ステップＳ７１１でＮｏと判断するようにしてもよい。
【００５０】
また、既に特異画素判定がされた画素領域のうち紙白領域の可能性が高い領域については、ステップＳ７１０における特異値画素判定の対象外とすることにより、処理の高速化を図ってもよい。紙白領域の可能性が高い領域というのは、置換した結果の輝度値が平均輝度値から一定の範囲内になったような正しい置換が行われた可能性が高い領域である。この処理には、処理の高速化だけではなく、ノイズ画素の影響による影推定の誤差が、繰り返し処理のために広範囲に広がるのを防ぐ効果もある。
【００５１】
この処理フローの例を図９に示す。図９（ａ）はステップＳ７０９への最初に入力される画像である。矩形のオブジェクト領域があり、この領域では画素値が正しい影成分の推定値となっていない。色がついていない部分は紙白領域であり、正しい影成分が推定されている。ステップＳ７０９およびステップＳ７１０で特異値判定された結果が、図９（ｂ）である。斜線部が特異画素と判定された部分であり、矩形領域のエッジ部分が特異画素として判定されている。ステップＳ７１２において、この特異画素を周囲の紙白領域の画素で置換した結果が図９（ｃ）である。矩形のオブジェクト領域は残っているものの、矩形領域の大きさが減少していることが分かる。図９（ｃ）は、ステップＳ７０９への２回目の入力となる。２回目のステップＳ７０９およびステップＳ７１０で特異値判定された結果が、図９（ｄ）である。続いて、２回目のステップＳ７１２において、この特異画素を周囲の紙白領域の画素で置換した結果が図９（ｅ）である。さらに、矩形領域が減少していることが分かる。図９（ｅ）は、ステップＳ７０９への３回目の入力となる。３回目のステップＳ７０９およびステップＳ７１０で特異値判定された結果が、図９（ｆ）である。続いて、３回目のステップＳ７１２において、この特異画素を周囲の紙白領域の画素で置換した結果が図９（ｇ）である。矩形領域が消滅していることが分かる。図９（ｇ）はステップＳ７０９への４回目の入力となるがステップＳ７０９およびステップＳ７１０で特異値判定がされず、ステップＳ７１１で特異画素数が０と判定され、ステップＳ７１４へ分岐し、繰り返し処理が終了する。このような繰り返し処理により、大きなオブジェクト領域があっても、問題なく周囲の画素で置換が可能であることが分かる。
【００５２】
ステップＳ７１４では画像処理部３０９が、基本色情報に基づいて輝度成分のゲイン調整値を決定する。例えば、基本色が白である場合、紙白領域が多いため、影推定を入力画像に基づいて高精度で行うことができる。ただし、推定した影成分はブロックごとの代表値であるため、ブロック内には、より暗い影がある可能性もある。そのため、影の輝度成分分布に従った影除去を強めに（より明るくするように）実施するためのゲイン調整値に決定する。基本色が白でない場合には、紙白領域が存在しない、もしくは少ないために、影推定精度が低く、推定した影成分に下地やオブジェクト色が含まれている可能性が高い。そのために、推定された影成分をそのまま除去してしまうと過補正になってしまう。そこで、影の輝度成分分布に従った影除去を弱めに実施して過度の変換を防止するためのゲイン調整値に決定する。ステップＳ７１５で画像処理部３０９が、縮小画像に含まれるすべての画素について、ステップＳ７１４で決定されたゲイン調整値を輝度値に乗算することにより、全画素の輝度成分値を変換する。
【００５３】
次にステップＳ７１６で画像処理部３０９が全画素の色成分値を一律にステップＳ７０２またはステップＳ７０３で決定された色成分代表値に置換する。
【００５４】
以上の処理により、縮小画像からオブジェクトの要素を除去して、影成分の分布に変換された画像が生成される。なお、最終的に生成される画像は、ＲＧＢ画像となる。途中の処理において輝度成分や色成分の修正・置換があるため、図７のフロー処理を行う際には、一旦、ＹＣｂＣｒ画像に変換して、そのＹＣｂＣｒ画像に対して処理を行って、最後にＲＧＢ画像に変換してもよい。または、各ステップで画素単位にＲＧＢ値からＹＣｂＣｒ値を計算し、ＹＣｂＣｒ値が修正された場合には、その値をＲＧＢ値に戻すようにしてもよい。
【００５５】
実施例１によれば、入力画像と影成分画像（影マップ）との対応する画素の値の差分値が大きいほど影成分を除去する補正量を小さくするため、撮影した画像に含まれるオブジェクトに写り込んだ影成分の過補正を防ぐことができる。
【００５６】
〔実施例２〕
実施例１では、影マップと入力画像との画素の差分値に応じた補正量調整により、影除去時の過補正を防止する方法を説明した。実施例１の影除去では、入力画像の影を適切に明るくする処理を行っている。それに対して本実施例ではさらに、入力画像に含まれる原稿上の黒い文字の可読性を高めるために、無彩色付近の色成分を有する画素値の補正率を調整し、入力画素値よりも暗く変換する方法を説明する。なお、実施例１と共通の構成については説明を省略する。
【００５７】
図１０は本実施例の処理の流れを説明するフローチャートで、実施例１における影除去処理（図６（ｃ））に代わる処理である。
【００５８】
まず、ステップＳ１００１で画像処理部３０９がＲＧＢ入力画像をＬ＊ａ＊ｂ＊画像に変換する。ステップＳ１００２で画像処理部３０９が入力画像の代表輝度値を算出する。ここではステップＳ１００１でＬ＊ａ＊ｂ＊に変換した結果から算出しても構わないが、実施例１と同様に縮小画像から算出しても構わない。ステップＳ１００３で画像処理部３０９が、ステップＳ１００２で算出された代表輝度値に対応する補正率Ａを決定する。これは実施例１と同様で例えば図８（ａ）のグラフで表されるテーブルに基づいて決められる。
【００５９】
ステップＳ１００４で画像処理部３０９がＲＧＢ影マップをＬ＊ａ＊ｂ＊画像に変換する。ステップＳ１００５以降は画素ごとの処理であり、未処理画素が無くなるまで繰り返される。ステップＳ１００５で画像処理部３０９は未処理画素の有無を判断し、未処理画素が無ければ処理を終了し、未処理画素が有れば、以降の未処理画素の変換処理に進む。
【００６０】
ステップＳ１００６で画像処理部３０９が、入力画像のある座標における画素値（Ｌｉｎ，ａｉｎ、ｂｉｎ）と、前記座標と同一座標にある影マップ画像の画素値（Ｌｍａｐ，ａｍａｐ，ｂｍａｐ）との色差ΔＥを下記の式（３）により算出する。
【００６１】
【数３】
0006584179.tif 000004
ステップＳ１００７で画像処理部３０９が、処理対象の画素値から彩度Ｃ＊を、下記の式（４）により算出する。
【００６２】
【数４】
0006584179.tif 000005
ステップＳ１００８で画像処理部３０９が、ステップＳ１００６およびステップＳ１００７で算出された色差ΔＥと彩度Ｃ＊とに基づいて、補正率Ｂを決定する。補正率Ｂは実施例１で示した図８（ｂ）を基準とし、処理対象画素の彩度Ｃ＊に応じたオフセット値で調整される。図１１（ａ）は彩度Ｃ＊とオフセット値との関係をグラフに表したものである。彩度Ｃ＊が低いほど（無彩色に近いほど）マイナスのオフセット値が多い、つまり補正率を低下させる調整を行うことを示している。図１１（ｂ）は３種類の彩度に対応する補正率Ｂを表したグラフである。「通常時の画素別補正率」は図８（ｂ）と同様であり、彩度Ｃ＊の値が充分大きい場合に適用される補正率である。「無彩色に近い画素に適用する画素別補正率」は彩度Ｃ＊＝１６の場合に適用される補正率を表している。「無彩色の画素に適用する画素別補正率」は彩度Ｃ＊＝０つまり無彩色の場合に適用される補正率である。
【００６３】
ステップＳ１００９で画像処理部３０９が、ステップＳ１００３とステップＳ１００８で決定された補正率を利用してダイナミックレンジ補正を行う。ここで、処理対象画素が無彩色であり、かつ、補正率Ｂがマイナスである場合、入力画素値よりも出力画素値のほうが小さく（濃く）補正される理由を説明する。実施例１での変換式のうちＲチャンネルのみを例にすると、画素ｋにおける補正率適用後の影マップの値は、
【００６４】
【数５】
0006584179.tif 000006
であるが、Ｂ（ｋ）がマイナスであるためＲ’ｍａｐ（ｋ）は必ず２５５よりも大きな値となる。この値を使って入力画像の画素ｋの画素値を、
【００６５】
【数６】
0006584179.tif 000007
式（６）で算出すると、Ｒｏｕｔ（ｋ）＜Ｒｉｎ（ｋ）となり、入力画素値よりも出力画素値のほうが濃い変換となる。
【００６６】
以上のような処理を行うことにより、入力画素値の彩度に応じて補正量を調整できるため、原稿上の黒い文字などの過補正を防ぎ、可読性を損なうことのない影除去処理を行うことができる。
【００６７】
〔実施例３〕
実施例１では、縮小画像の輝度成分の特異画素を補正した後に行う、影除去の強さを調整するためのゲイン調整値として既定の２つの係数を持ち、基本色が白であるか否かでそれらの係数を使い分けていた。本実施例ではゲイン調整値の設定をより細かく行うことで影を除去する精度を向上する方法を説明する。なお、実施例１と共通の構成については説明を省略する。
【００６８】
図１２は本実施例の処理の流れを説明するフローチャートで、実施例１における基本色情報に基づいてゲイン調整値を決定する処理（Ｓ７１４）に相当する。Ｓ７１４以外の処理については、図７のフローチャートの処理と同様である。
【００６９】
ゲイン調整値とは、Ｓ７１３までに縮小画像の輝度値を操作することで求めた影の分布を表す画像（輝度成分分布画像）の明るさを調整する値である。ゲイン調整値が１であれば、輝度成分分布画像は変化しない。ゲイン調整値を１未満とした場合、輝度成分分布画像は暗くなり、その後の影除去処理でゲイン調整値が１のときと比較して、入力画像が明るく変換される。ゲイン調整値を１より大きい値とした場合には輝度成分分布画像は明るくなり、その後の影成分処理でゲイン調整値が１のときと比較して入力画像が暗く変換される。
【００７０】
ステップＳ１２０１で画像処理部３０９が基本色情報を参照、基本色情報に従って処理を分岐する。基本色が白である場合、ステップＳ１２０２に進み画像処理部３０９が通常用ゲイン調整値をセットする。通常用ゲイン調整値は、白紙を撮影したときの影に相当する画像が正しく推定されていると仮定して、調整しないすなわちゲイン調整値＝１と定義された値である。ただし、ここで推定されている影成分はブロック単位で求めた値であるため、ブロック内に存在し得る、より暗い影にも対応するため１よりごく小さい値、例えば０．９５が適用される。
【００７１】
基本色が白ではなく、かつ色成分代表値が算出されていない場合にはステップＳ１２０４に進み、画像処理部３０９が無白領域用ゲイン調整値をセットする。無白領域用ゲイン調整値は、入力画像に原稿上の白い領域と推測される領域が存在しない場合に適用する値である。白領域が存在しないため、ここまでに生成された輝度成分分布画像には本来影として除去してはならない色に対応する輝度成分が含まれている。しかし撮影時に生じた影による輝度成分と除去してはならない色に対応する輝度成分を分離することは困難であるため、既定のゲイン調整値により輝度成分分布画像を調整して影除去の強度を弱める。この既定ゲイン調整値として、例えば１．１０を適用する。
【００７２】
基本色が白ではなく、かつ色成分代表値が算出されている場合にはステップＳ１２０３に進み、画像処理部３０９が少白領域用ゲイン調整値をセットする。このとき、入力画像に原稿上の白い領域と推測される領域がわずかに存在するため、その場所における影による輝度成分の推定精度は高い。しかし、その他の多くの領域では本来影として除去してはならない色に対応する輝度成分が含まれている。そのため無白領域用ゲイン調整値に固定する方法もあるが、わずかに存在する白い領域の輝度成分情報を利用してゲイン調整値を入力画像の画素値に応じて変化させることで、より適切な影除去強度の調整を行う。
【００７３】
図１３はこのときのゲイン調整値を示すグラフである。Ｌｗは上記のわずかな白い領域の輝度成分情報から算出した輝度成分の代表値であり、例えば白い領域と判断された画素の輝度成分平均値などで定義する。より詳細には図７ステップＳ７０１で利用した第１の色範囲内かつ白紙を撮影したときの通常の影の濃さと考えられる輝度値を満たす画素の輝度値の平均値で定義する。これに対しＬｃは白い領域外から算出した輝度成分の代表値である。例えば、上記第１の色範囲外の画素の輝度値を利用するが、その中で明るい側から既定割合（例えば３０％）の画素数分のみの画素の輝度値を選択しそれらの平均値をこの代表値と定義する。白領域の代表値Ｌｗより明るい画素は、その場所の影を正しく推定できていると仮定し、ゲイン調整値は通常用と同等の０．９５とする。白領域外の代表値Ｌｃより暗いい画素は、影ではない色に対応する輝度成分が含まれていると仮定できるため、無白領域用と同等の１．１０を適用することができる。または、場所が異なるもののわずかに存在する白領域の代表値Ｌｗが求められているため、ＬｃをＬｗ相当まで明るく調整するために、ゲイン調整値をＬｗ／Ｌｃと定義してもよい。ＬｃからＬｗの間の輝度値を持つ画素は、その値に応じてゲイン調整値を０．９５からＬｗ／Ｌｃの間で変化させる。図１３の例では線形に変化させていて、例えば輝度値Ｌｘの場合のゲイン調整値Ｇｘは下記の式（７）で求められる。
【００７４】
【数７】
0006584179.tif 000008
以上のように、入力画像に白領域が多く含まれている場合、白領域が少ない場合、白領域が無い場合に分けて、推定された影成分の明るさを調整することにより、その後の影成分を除去する強度を適切に調整できる。その結果、入力画像から撮影時に生じた影の除去精度が向上する。
【００７５】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0006584179.tif 000009
【図２】
0006584179.tif 000010
【図３】
0006584179.tif 000011
【図４】
0006584179.tif 000012
【図５】
0006584179.tif 000013
【図６】
0006584179.tif 000014
【図７】
0006584179.tif 000015
【図８】
0006584179.tif 000016
【図９】
0006584179.tif 000017
【図１０】
0006584179.tif 000018
【図１１】
0006584179.tif 000019
【図１２】
0006584179.tif 000020
【図１３】
0006584179.tif 000021