本明細書及び添付図面の記載により、少なくとも以下の事項が明らかとなる。
(A)画像を構成する画素のデータに基づき、前記画素の各色の濃度値に対する前記画素の数の分布を表わす各色別のヒストグラムのデータを生成するヒストグラムデータ生成部と、
(B)前記ヒストグラムデータ生成部により生成された前記各色別のヒストグラムのデータに基づき、前記各色別のヒストグラムにより表される領域をそれぞれ前記濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得する属性情報取得部と、
(C)前記3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、前記第1小領域よりも前記濃度値が小さい小領域を前記3つ以上の小領域の中から少なくとも1つ第2小領域として選出して、前記属性情報取得部により取得された前記属性情報に基づき、前記第1小領域に関する属性情報についての各色別の目標値と、前記第2小領域に関する属性情報についての各色共通の目標値とを取得する目標値取得部と、
(D)前記第1小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色別の目標値になり、かつ前記第2小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色共通の目標値になるように、前記画像に対して補正処理を施す補正処理部と、
(E)を備えたことを特徴とする画像補正装置。
このような画像補正装置にあっては、画像を構成する画素のデータに基づき、画素の各色の濃度値に対する画素の数の分布を表わす各色別のヒストグラムのデータを生成して、このデータに基づき、各色別のヒストグラムにより表される領域をそれぞれ濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得し、3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、第1小領域よりも濃度値が小さい小領域を3つ以上の小領域の中から少なくとも1つ第2小領域として選出して、取得された属性情報に基づき、第1小領域に関する属性情報についての各色別の目標値と、第2小領域に関する属性情報についての各色共通の目標値とを取得し、第1小領域の各色の属性情報がそれぞれ、取得された各色別の目標値になり、かつ第2小領域の各色の属性情報がそれぞれ、取得された各色共通の目標値になるように、画像に対して補正処理を施すことで、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対して適切な補正処理を施すことができる。
かかる画像補正装置にあっては、前記各色別のヒストグラムのデータとして、レッド、グリーンおよびブルーの各色のヒストグラムのデータが前記ヒストグラムデータ生成部により生成されても良い。このように各色別のヒストグラムデータとして、レッド、グリーンおよびブルーの各色のヒストグラムデータが生成されれば、画像を構成する画素のデータとして、レッド、グリーンおよびブルーの各色の濃度値のデータを有している場合に、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対して適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記3つ以上の小領域には、相互に面積の等しい2つ以上の小領域が含まれても良い。このように3つ以上の小領域には、相互に面積の等しい2つ以上の小領域が含まれていれば、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記3つ以上の小領域には、前記画素の数が相互に等しい2つ以上の小領域が含まれても良い。このように3つ以上の小領域に、画素の数が相互に等しい2つ以上の小領域が含まれていれば、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記3つ以上の小領域には、前記画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域が含まれ、前記属性情報取得部は、前記画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域から少なくとも1つの小領域を選出して、当該小領域に関する前記属性情報を取得し、前記目標値取得部は、前記画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域から前記第1小領域および前記第2小領域を選出しても良い。このように3つ以上の小領域に、画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域が含まれ、属性情報取得部が、画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域から少なくとも1つの小領域を選出して、当該小領域に関する属性情報を取得し、目標値取得部が、画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域から第1小領域および第2小領域を選出することで、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記第1小領域が、前記ヒストグラムの中間調の領域に位置していても良い。このように第1小領域がヒストグラムの中間調の領域に位置していれば、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記第2小領域が、前記ヒストグラムのシャドウの領域に位置していても良い。このように第2小領域がヒストグラムのシャドウの領域に位置していれば、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記属性情報取得部は、前記属性情報として、前記少なくとも1つの小領域についてそれぞれ前記濃度値の平均値を各色別に取得しても良い。このように属性情報取得部が、属性情報として、少なくとも1つの小領域についてそれぞれ濃度値の平均値を各色別に取得すれば、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記目標値取得部は、前記属性情報取得部により取得された各色別の前記濃度値の平均値に基づき、前記少なくとも1つの小領域についてそれぞれ輝度に関する情報を取得して、当該輝度に関する情報に基づき前記各色別の目標値および前記各色共通の目標値を取得しても良い。このように目標値取得部が、属性情報取得部により取得された各色別の濃度値の平均値に基づき、少なくとも1つの小領域についてそれぞれ輝度に関する情報を取得して、当該輝度に関する情報に基づき各色別の目標値および各色共通の目標値を取得することで、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記目標値取得部は、前記輝度に関する情報として、前記少なくとも1つの小領域について画素の輝度の平均値を取得しても良い。このように目標値取得部が、輝度に関する情報として、少なくとも1つの小領域について画素の輝度の平均値を取得すれば、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記目標値取得部は、前記少なくとも1つの小領域について取得した前記輝度の平均値のうちの少なくともいずれか1つと、前記画像の全体の輝度の平均値とを加算して得られた値に基づき、前記各色別の目標値および前記各色共通の目標値を取得しても良い。このように目標値取得部が、少なくとも1つの小領域について取得した輝度の平均値のうちの少なくともいずれか1つと、画像の全体の輝度の平均値とを加算して得られた値に基づき、各色別の目標値および各色共通の目標値を取得すれば、夕焼けまたは朝焼けなどの色バランスが崩れた画像に対してより適切な補正処理を施すことができる。
また、かかる画像補正装置にあっては、前記補正処理部は、前記補正処理を前記画像に対して施す際に、前記画像を構成する各画素の濃度値を変換しても良い。このように補正処理部が、補正処理を画像に対して施す際に、画像を構成する各画素の濃度値を変換すれば、補正処理を簡単に施すことができる。
また、かかる画像補正装置にあっては、前記補正処理部は、前記画像に対して前記補正処理を施すために、変換前の濃度値と、変換後の濃度値との対応関係に関する情報を取得しても良い。このような情報を補正処理部が取得すれば、補正処理を簡単に施すことができる。
また、かかる画像補正装置にあっては、前記画像について夕焼けまたは朝焼けの画像であるか否かを判定する判定部を備えても良い。このような判定部を備えれば、画像について、夕焼けまたは朝焼けなどの色バランスが崩れた画像であるか否かを判定することができる。
また、かかる画像補正装置にあっては、前記補正処理部は、前記判定部により前記画像について夕焼けまたは朝焼けの画像であると判定された場合に、前記画像に対して前記補正処理を施しても良い。このように判定部により画像について夕焼けまたは朝焼けの画像であると判定された場合に、画像に対して補正処理を施せば、夕焼けまたは朝焼けの画像に対して適切な補正処理を施すことができる。
(A)画像を構成する画素のデータに基づき、前記画素の各色の濃度値に対する前記画素の数の分布を表わす各色別のヒストグラムのデータを生成するヒストグラムデータ生成部と、
(B)前記ヒストグラムデータ生成部により生成された前記各色別のヒストグラムのデータに基づき、前記各色別のヒストグラムにより表される領域をそれぞれ前記濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得する属性情報取得部と、
(C)前記3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、前記第1小領域よりも前記濃度値が小さい小領域を前記3つ以上の小領域の中から少なくとも1つ第2小領域として選出して、前記属性情報取得部により取得された前記属性情報に基づき、前記第1小領域に関する属性情報についての各色別の目標値と、前記第2小領域に関する属性情報についての各色共通の目標値とを取得する目標値取得部と、
(D)前記第1小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色別の目標値になり、かつ前記第2小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色共通の目標値になるように、前記画像に対して補正処理を施す補正処理部と、
(E)を備え、
(F)前記各色別のヒストグラムのデータとして、レッド、グリーンおよびブルーの各色のヒストグラムのデータが前記ヒストグラムデータ生成部により生成され、
(G)前記3つ以上の小領域には、相互に面積の等しい2つ以上の小領域が含まれ、
(H)前記3つ以上の小領域には、前記画素の数が相互に等しい2つ以上の小領域が含まれ、
(I)前記3つ以上の小領域には、前記画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域が含まれ、前記属性情報取得部は、前記画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域から少なくとも1つの小領域を選出して、当該小領域に関する前記属性情報を取得し、前記目標値取得部は、前記画素の数および面積のうちの少なくともいずれか一方が相互に等しい2つ以上の小領域から前記第1小領域および前記第2小領域を選出し、
(J)前記第1小領域が、前記ヒストグラムの中間調の領域に位置しているとともに、前記第2小領域が、前記ヒストグラムのシャドウの領域に位置しており、
(K)前記属性情報取得部は、前記属性情報として、前記少なくとも1つの小領域についてそれぞれ前記濃度値の平均値を各色別に取得し、前記目標値取得部は、前記属性情報取得部により取得された各色別の前記濃度値の平均値に基づき、前記少なくとも1つの小領域についてそれぞれ輝度に関する情報を取得して、当該輝度に関する情報に基づき前記各色別の目標値および前記各色共通の目標値を取得し、
(L)前記目標値取得部は、前記輝度に関する情報として、前記少なくとも1つの小領域について画素の輝度の平均値を取得し、
(M)前記目標値取得部は、前記少なくとも1つの小領域について取得した前記輝度の平均値のうちの少なくともいずれか1つと、前記画像の全体の輝度の平均値とを加算して得られた値に基づき、前記各色別の目標値および前記各色共通の目標値を取得し、
(N)前記補正処理部は、前記補正処理を前記画像に対して施す際に、前記画像を構成する各画素の濃度値を変換し、
(O)前記補正処理部は、前記画像に対して前記補正処理を施すために、変換前の濃度値と、変換後の濃度値との対応関係に関する情報を取得し、
(P)前記画像について夕焼けまたは朝焼けの画像であるか否かを判定する判定部を備え、
(Q)前記補正処理部は、前記判定部により前記画像について夕焼けまたは朝焼けの画像であると判定された場合に、前記画像に対して前記補正処理を施すことを特徴とする画像補正装置。
(A)画像を構成する画素のデータに基づき、前記画素の各色の濃度値に対する前記画素の数の分布を表わす各色別のヒストグラムのデータを生成するステップと、
(B)生成した前記各色別のヒストグラムのデータに基づき、前記各色別のヒストグラムにより表される領域をそれぞれ前記濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得するステップと、
(C)前記3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、前記第1小領域よりも前記濃度値が小さい小領域を前記3つ以上の小領域の中から少なくとも1つ第2小領域として選出するステップと、
(D)取得した前記属性情報に基づき、前記第1小領域に関する属性情報についての各色別の目標値と、前記第2小領域に関する属性情報についての各色共通の目標値とを取得するステップと、
(E)前記第1小領域の各色の前記属性情報がそれぞれ、取得した前記各色別の目標値になり、かつ前記第2小領域の各色の前記属性情報がそれぞれ、取得した前記各色共通の目標値になるように、前記画像に対して補正処理を施すステップと、
(F)を有することを特徴とする画像補正方法。
(A)画像補正装置にて実行される画像補正プログラムであって、
(B)画像を構成する画素のデータに基づき、前記画素の各色の濃度値に対する前記画素の数の分布を表わす各色別のヒストグラムのデータを生成するステップと、
(C)生成した前記各色別のヒストグラムのデータに基づき、前記各色別のヒストグラムにより表される領域をそれぞれ前記濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得するステップと、
(D)前記3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、前記第1小領域よりも前記濃度値が小さい小領域を前記3つ以上の小領域の中から少なくとも1つ第2小領域として選出するステップと、
(E)取得した前記属性情報に基づき、前記第1小領域に関する属性情報についての各色別の目標値と、前記第2小領域に関する属性情報についての各色共通の目標値とを取得するステップと、
(F)前記第1小領域の各色の前記属性情報がそれぞれ、取得した前記各色別の目標値になり、かつ前記第2小領域の各色の前記属性情報がそれぞれ、取得した前記各色共通の目標値になるように、前記画像に対して補正処理を施すステップと、
(G)を実行することを特徴とする画像補正プログラム。
(A)原稿から画像を読み取る画像読み取り部と、
(B)前記画像読み取り部により読み取られた前記画像を構成する画素のデータに基づき、前記画素の各色の濃度値に対する前記画素の数の分布を表わす各色別のヒストグラムのデータを生成するヒストグラムデータ生成部と、
(C)前記ヒストグラムデータ生成部により生成された前記各色別のヒストグラムのデータに基づき、前記各色別のヒストグラムにより表される領域をそれぞれ前記濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得する属性情報取得部と、
(D)前記3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、前記第1小領域よりも前記濃度値が小さい小領域を前記3つ以上の小領域の中から少なくとも1つ第2小領域として選出して、前記属性情報取得部により取得された前記属性情報に基づき、前記第1小領域に関する属性情報についての各色別の目標値と、前記第2小領域に関する属性情報についての各色共通の目標値とを取得する目標値取得部と、
(E)前記第1小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色別の目標値になり、かつ前記第2小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色共通の目標値になるように、前記画像に対して補正処理を施す補正処理部と、
(F)を備えたことを特徴とする画像読み取り装置。
(A)原稿から画像を読み取るステップと、
(B)読み取った前記画像を構成する画素のデータに基づき、前記画素の各色の濃度値に対する前記画素の数の分布を表わす各色別のヒストグラムのデータを生成するステップと、
(C)生成した前記各色別のヒストグラムのデータに基づき、前記各色別のヒストグラムにより表される領域をそれぞれ前記濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得するステップと、
(D)前記3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、前記第1小領域よりも前記濃度値が小さい小領域を前記3つ以上の小領域の中から少なくとも1つ第2小領域として選出するステップと、
(E)取得した前記属性情報に基づき、前記第1小領域に関する属性情報についての各色別の目標値と、前記第2小領域に関する属性情報についての各色共通の目標値とを取得するステップと、
(F)前記第1小領域の各色の前記属性情報がそれぞれ、取得した前記各色別の目標値になり、かつ前記第2小領域の各色の前記属性情報がそれぞれ、取得した前記各色共通の目標値になるように、前記画像に対して補正処理を施すステップと、
(G)を有することを特徴とする画像読み取り方法。
(A)媒体に画像を印刷する印刷部と、
(B)前記印刷部により前記画像が印刷される前に、前記画像を構成する画素のデータに基づき、前記画素の各色の濃度値に対する前記画素の数の分布を表わす各色別のヒストグラムのデータを生成するヒストグラムデータ生成部と、
(C)前記ヒストグラムデータ生成部により生成された前記各色別のヒストグラムのデータに基づき、前記各色別のヒストグラムにより表される領域をそれぞれ前記濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を各色別に選出して、当該小領域に関する属性情報を各色別に取得する属性情報取得部と、
(D)前記3つ以上の小領域の中から、他の少なくとも1つの小領域よりも前記濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、前記第1小領域よりも前記濃度値が小さい小領域を前記3つ以上の小領域の中から少なくとも1つ第2小領域として選出して、前記属性情報取得部により取得された前記属性情報に基づき、前記第1小領域に関する属性情報についての各色別の目標値と、前記第2小領域に関する属性情報についての各色共通の目標値とを取得する目標値取得部と、
(E)前記第1小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色別の目標値になり、かつ前記第2小領域の各色の前記属性情報がそれぞれ、前記目標値取得部により取得された前記各色共通の目標値になるように、前記画像に対して補正処理を施す補正処理部と、
(F)を備えたことを特徴とする印刷装置。
===画像読み取りシステム等の概要===
以下に本発明に係る画像判定装置について画像読み取りシステムに適用した場合を例にして説明する。図1〜図4は、画像判定装置が適用された画像読み取りシステムの一実施形態について説明したものである。図1は、画像読み取りシステムの一実施形態を説明したものである。図2は、画像読み取り装置の内部構成の一例を説明する図である。図3は、画像読み取り装置のシステム構成の一例を説明する図である。図4は、コンピュータ装置のシステム構成を説明する図である。
この画像読み取りシステム2は、図1に示すように、画像読み取り装置10と、この画像読み取り装置10に有線または無線等により通信可能に接続されたコンピュータ装置20とを有している。画像読み取り装置10は、図1に示すように、一般にイメージスキャナと呼ばれる装置であり、原稿台12と、この原稿台12の上面部を開閉する原稿台カバー14とを備えている。原稿台12には、画像が読み取られる原稿15がセットされる。また、原稿台カバー14は、原稿台12の後端部にヒンジ部18を介して開閉自在に設けられている。
一方、コンピュータ装置20は、例えば、図1に示すように、コンピュータ本体22と、表示装置24と、入力装置26とを備えている。コンピュータ本体22は、パーソナルコンピュータなどをはじめとする各種コンピュータにより構成されている。ここでは、コンピュータ本体22は、FDドライブ装置28やCD−ROMドライブ装置30などの読み取り装置32を内部に備えている。この他に、コンピュータ本体22は、例えば、MO(Magnet Optical)ディスクドライブ装置やDVDドライブ装置などを備えても良い。また、表示装置24は、CRTディスプレイやプラズマディスプレイ、液晶ディスプレイ等など、各種表示装置により構成される。入力装置26は、キーボード34やマウス36などにより構成される。
<画像読み取り装置>
画像読み取り装置10の原稿台12の内部には、図2に示すように、キャリッジ40と、このキャリッジ40を原稿台12に対して所定の間隔を保ちつつ図中矢印A方向に沿って平行に移動させる駆動機構42と、このキャリッジ40を支持しつつその移動を案内するガイド44とが設けられている。
キャリッジ40には、原稿台12を介して原稿15に対し光を照射する光源としての露光ランプ46と、原稿15により反射された反射光が入射するレンズ48と、このレンズ48を通じてキャリッジ40の内部に取り込まれた反射光を受光するイメージセンサ50とが設けられている。イメージセンサ50は、光信号を電気信号に変換するフォトダイオード等の光電変換素子が列状に配置されたリニアCCDセンサ等により構成されている。イメージセンサ50により読み取られた画像のデータは、制御部52に出力される。
また、駆動機構42は、キャリッジ40に接続されたタイミングベルト54と、このタイミングベルト54が掛け渡された一対のプーリ55、56と、一方のプーリ55を回転駆動する駆動モータ58とを備えている。駆動モータ58は、制御部52からの制御信号によって駆動制御される。
制御部52は、図3に示すように、コントローラ60と、モータ制御部62と、ランプ制御部64と、センサ制御部66と、AFE(Analog Front End)部68と、デジタル処理回路70と、インターフェイス回路72とを備えている。さらに、AFE(Analog Front End)部68は、アナログ信号処理回路74と、A/D変換回路76とを備えている。
コントローラ60は、コンピュータ本体22からの命令等に基づき、モータ制御部62やランプ制御部64、センサ制御部66、AFE(Analog Front End)部68、デジタル処理回路70、インターフェイス回路72を制御する。モータ制御部62は、コントローラ60からの命令により、キャリッジ40を移動させるための駆動モータ58の駆動制御を行う。また、ランプ制御部64は、露光ランプ46の発光を制御する。また、センサ制御部66は、イメージセンサ50の制御を行う。
また、AFE(Analog Front End)部68のアナログ信号処理回路74は、イメージセンサ50により読み取られた画像のアナログ信号に対して信号処理を行う。また、AFE(Analog Front End)部68のA/D変換回路76は、アナログ信号処理回路74により信号処理された画像の信号をデジタル信号へとA/D変換する。
デジタル処理回路70は、AFE(Analog Front End)部68のA/D変換回路76から送られてきたデジタル信号に対してデジタル信号処理を施す。ここでは、具体的にシェーディング補正等の補正処理をはじめ、各種画像処理などが施される。デジタル信号処理が施されたデジタル信号は、原稿15から読み取られた画像のデータ(画像データ)としてインターフェイス回路72により外部、即ちここでは当該画像読み取り装置10が接続されたコンピュータ本体22へと出力される。インターフェイス回路72は、この他に、コンピュータ本体22から画像読み取り装置10への命令(コマンド)等を受信するようになっている。
<コンピュータ本体>
コンピュータ本体22は、図4に示すように、CPU80と、メモリ82と、HDD(ハードディスクドライブ装置)84と、操作入力部86と、表示制御部88と、外部通信部90と、バス92とを備えている。この他に、コンピュータ本体22は、先に説明したCD−ROMドライブ装置30とFDドライブ装置28を備えている。CPU80と、メモリ82と、HDD(ハードディスクドライブ装置)84と、CD−ROMドライブ装置30と、FDドライブ装置28と、操作入力部86と、表示制御部88と、外部通信部90とは、バス92を介して相互に通信可能に接続されている。
CPU80は、コンピュータ本体22の全体の制御を行う。メモリ82は、CPU80により実行されるプログラムや、当該プログラムが使用する作業データ等の各種データを記憶するためのものである。HDD(ハードディスクドライブ装置)84は、CPU80にて実行されるオペーレーティングシステム(Operating System:OS)をはじめ、各種アプリケーションプログラムやドライバ等の各種プログラム、その他、画像データなどの各種データが格納されている。操作入力部86は、キーボード34やマウス36等の入力装置26に接続されて、これら入力装置26を通じてユーザにより入力された情報を取得する。また、表示制御部88は、CPU80からの命令に基づき、表示装置24の画面に表示される画像等を制御する。また、外部通信部90は、コンピュータ本体22の外部に接続された画像読み取り装置10をはじめとする各種周辺機器との間で通信を行う。
CPU80は、HDD(ハードディスクドライブ装置)84からプログラムを読み出して、オペーレーティングシステム(Operating System:OS)の下にて各種プログラムを実行する。ここで実行されるプログラムには、各種アプリケーションプログラムをはじめ、画像読み取り装置10や操作入力部86、表示制御部88等を制御するための各種ドライバが含まれている。
画像読み取り装置10を制御するためのドライバは、スキャナドライバと一般的に呼ばれている。このスキャナドライバは、インターネット等の各種通信回線をはじめ、CD−ROM、フロッピーディスク(FD)などの各種記憶媒体等を通じて、コンピュータ本体22にインストールされたプログラムである。このスキャナドライバがコンピュータ本体22にインストールされることによって、コンピュータ本体22は、画像読み取り装置10を制御する制御装置として機能する。
===スキャナドライバ===
次にスキャナドライバのユーザインターフェイスの一例について説明する。図5は、このユーザインターフェイスのメインのダイアログボックス100を示したものである。このユーザインターフェイスは、コンピュータ本体22のCPU80が表示制御部88を通じて表示装置24の表示画面に表示する。ユーザは、表示装置24の表示画面に表示されたユーザインターフェイスのダイアログボックス100を見ながら、キーボード34やマウス36等の入力装置26を通じて、スキャナドライバの各種の設定を行うことができる。
このメインのダイアログボックス100には、『モード選択欄』102と、『設定保存欄』104と、『原稿設定欄』106と、『出力設定欄』108と、『調整欄』110とが設けられている。『モード選択欄』102では、ユーザは、複数種類のモードの中から1つのモードを選択することができるようになっている。ここでは、「プロフェッショナルモード」が選択されている。また、『設定保存欄』104では、ユーザは、「保存ボタン」または「削除ボタン」をクリックすることで、現在の設定を保存したり削除したりすることができる。
また、『原稿設定欄』106では、ユーザは、「原稿種」112や「読み込み装置」114、「自動露出」116の各設定を行うことができる。「原稿種」112では、セットした原稿の種類を選択することができる。例えば、「反射原稿」や「フィルム」等の選択が可能である。また、「読込装置」114では、例えば、「原稿台」等の選択が可能である。また、「自動露出」116では、読み取る原稿の種類に適した露出設定を行うことができる。例えば、「写真向き」や「書類向き」等の選択が可能である。
また、『出力設定欄』108では、ユーザは、画像出力に関する種々の設定を行うことができる。具体的には、この『出力設定欄』108では、出力画像の「イメージタイプ」118や、読み込み時の「解像度」120、読み込み時の「原稿サイズ」122、「出力サイズ」124の各設定が可能である。「イメージタイプ」118では、読み込み画像の色数を、カラー、グレースケール、およびモノクロの3種類の中から選択することができる。「解像度」120では、読み込み画像の解像度を設定することができる。「原稿サイズ」122では、読み込み画像のサイズを設定することができる。
スキャナドライバは、このダイアログボックス100の下部の「スキャンボタン」126がユーザによりクリックされると、このダイアログボックス100を通じてユーザにより設定された情報に基づき、外部の画像読み取り装置10を制御して、画像読み取り装置10にセットされた原稿から画像を読み込む。これにより読み込まれた画像のデータは、コンピュータ本体へと送られてくる。そして、このダイアログボックス100の下部の「プレビューボタン」127がユーザによりクリックされると、スキャナドライバは、画像読み取り装置10により読み取った画像を表示するプレビューウィンドウを表示装置24の表示画面に表示する。
この他に、このスキャナドライバには、画像読み取り装置10により読み取った画像を調整する機能を有している。読み取った画像の調整は、メインのダイアログボックス100の『調整欄』110を通じて行う。この『調整欄』110には、画像読み取り装置10により読み取った画像を調整するために、4つのボタンと、5つのチェックボックスとが設けられている。4つのボタン128A、128B、128C、128Dはそれぞれ、自動露出のボタン128Aと、ヒストグラム調整のボタン128Bと、濃度補正のボタン128Cと、イメージ調整のボタン128Dとである。また、5つのチェックボックス130A、130B、130C、130D、130Eはそれぞれ、アンシャープマスクフィルタのチェックボックス130Aと、モアレ除去フィルタのチェックボックス130Bと、退色復元のチェックボックス130Cと、ホコリ除去のチェックボックス130Dと、逆光補正のチェックボックス130Eとである。
自動露出のボタン128Aは、露出を自動調整したいときにクリックされるボタンである。また、ヒストグラム調整のボタン128Bは、画像の明暗を調整したりしたい場合にクリックされるボタンである。このヒストグラム調整のボタン128Bがクリックされると、ヒストグラム調整のダイアログボックスが呼び出される。また、濃度補正のボタン128Cは、画像の濃度のバランスを補正したい場合にクリックされるボタンである。この濃度補正のボタン128Cがクリックされると、濃度補正のダイアログボックスが呼び出される。また、イメージ調整のボタン128Dは、画像の明るさ・コントラスト・彩度や、カラーバランスを調整したい場合にクリックされるボタンである。このイメージ調整のボタン128Dがクリックされると、イメージ調整のダイアログボックスが呼び出される。
一方、アンシャープマスクフィルタのチェックボックス130Aは、アンシャープマスクフィルタの使用可否を指示するためのチェックボックスであり、画像をシャープにしたい場合にチェックする。また、モアレ除去フィルタのチェックボックス130Bは、印刷物のスキャンで発生するモアレ(網目状の陰影)を除去するフィルタの使用可否を指示するためのチェックボックスであり、モアレが目立つ場合にチェックする。また、退色復元のチェックボックス130Cは、色あせた写真の色を復元するときにチェックする。また、ホコリ除去のチェックボックス130Dは、フィルムスキャン時にフィルム上のホコリを軽減するときにチェックする。また、逆光補正のチェックボックス130Eは、読み取った画像に対して逆光補正を施したいときにチェックする。この逆光補正については後で詳しく説明する。
===画像調整===
次に画像調整を行うヒストグラム調整、濃度補正、およびイメージ調整について説明する。図6〜図9は、ヒストグラム調整、濃度補正、およびイメージ調整についてそれぞれ説明したものである。図6は、ヒストグラム調整のダイアログボックスを示したものである。図7は、ヒストグラム調整の具体的な調整概要について説明したものである。図8は、濃度補正のダイアログボックスを示したものである。図9は、イメージ調整のダイアログボックスを示したものである。
<ヒストグラム調整>
「ヒストグラム調整」では、画像の明暗等を調整することによって、読み取った画像の見栄えの向上を図る。ヒストグラム調整のダイアログボックス131には、図6に示すように、編集対象となる画像のヒストグラムが表示されるヒストグラム表示欄132と、ヒストグラムにより調整をした結果を表わすトーンカーブが表示されるトーンカーブ表示欄134と、色かぶりを取り除くためのグレーバランスを調整するためのグレーバランス調整欄136とが設けられている。ここで、「ヒストグラム」とは、画像全体の明るさと色の分布を示したものであり、画像の黒から白までのデータ分布(ピクセル数)をグラフで表したものである。
ヒストグラム表示欄132には、表示するヒストグラムの種類(チャンネル(色))を選択するためのチャンネル欄138が設けられている。このチャンネル欄138では、RGB(レッド、グリーン、ブルー)全色、R(レッド)のみ、G(グリーン)のみ、B(ブルー)のみの4種類から選択することができる。RGB(レッド、グリーン、ブルー)全色を調整したい場合には、このチャンネル欄138の1番上のスイッチを選択すると、右側にRGB(レッド、グリーン、ブルー)全色のヒストグラムが表示される。また、R(レッド)のみを調整したい場合には、このチャンネル欄138の上から2番目のスイッチを選択すると、右側にR(レッド)のみのヒストグラムが表示される。また、G(グリーン)のみを調整したい場合には、このチャンネル欄138の上から3番目のスイッチを選択すると、右側にG(グリーン)のみのヒストグラムが表示される。また、B(ブルー)のみを調整したい場合には、このチャンネル欄138の上から4番目のスイッチを選択すると、右側にB(ブルー)のみのヒストグラムが表示される。
そして、表示されたヒストグラムを調整する場合には、表示されたヒストグラムの下側に設けられた3つのスライダー140A、140B、140Cを使って調整を行う。3つのスライダー140A、140B、140Cは、それぞれシャドウを調整するスライダー140Aと、ガンマを調整するスライダー140Bと、ハイライトを調整するスライダー140Cとである。シャドウを調整するスライダー140Aは、黒色の三角印『▲』で表されている。ガンマを調整するスライダー140Bは、灰色の三角印で表されている。ハイライトを調整するスライダー140Cは、白色の三角印『△』で表されている。これら3つのスライダー140A、140B、140Cを使って調整を行う場合には、これら3つのスライダー140A、140B、140Cをそれぞれ個別に左右方向に移動させる。具体的には、シャドウを調整するスライダー140Aについては、ヒストグラムの山の左端よりもやや右側に位置するように移動させる。また、ハイライトを調整するスライダー140Cについては、ヒストグラムの山の右端よりもやや左側に位置するように移動させる。ガンマを調整するスライダー140Bについては、シャドウを調整するスライダー140Aと、ハイライトを調整するスライダー140Cとの間にて左右に移動させて中間部分の明暗が適切になるように調整をする。すると、編集対象となる画像の全体の明暗のバランスが良くなり、画像の見栄えの向上を図ることができる。
この他に、ヒストグラム表示欄132には、3つのスライダー140A、140B、140Cの位置をそれぞれ個別に直接、数値にて特定するための数値入力欄142A、142B、142Cが設けられている。数値入力欄142Aには、シャドウ入力値が入力される。また、数値入力欄142Bには、ガンマ値が入力される。また、数値入力欄142Cには、ハイライト入力値が入力される。これにより、各数値入力欄142A、142B、142Cに直接、数値を入力して、シャドウ入力値、ハイライト入力値およびガンマ値を簡単に特定することができる。
また、これら3つの数値入力欄142A、142B、142Cの右隣りには、それぞれスポイトボタン143A、143B、143Cが設けられている。これらスポイトボタン143A、143B、143Cは、当該ヒストグラム調整のダイアログボックスとは別に表示されるプレビュー画面にて表示された編集対象の画像上から直接ポイントを指示するためのボタンである。3つの数値入力欄142A、142B、142Cには、これらスポイトボタン143A、143B、143Cを利用してプレビュー画面の編集対象の画像上から指示されたポイント(画素)に対応する数値が直接入力される。
さらに、これらシャドウ入力値およびハイライト入力値が入力される2つの数値入力欄142A、142Cの下には、それぞれ2つの数値入力欄142D、142Eが設けられている。左側の数値入力欄142Dには、シャドウ入力値に対応するシャドウ出力値が入力される。また、右側の数値入力欄142Eには、ハイライト入力値に対応するハイライト出力値が入力される。
なお、これらスライダー140A、140B、140Cや、数値入力欄142A、142B、142C、142D、142Eを用いた調整については、RGB(レッド、グリーン、ブルー)全色、R(レッド)のみ、G(グリーン)のみ、B(ブルー)のみの4種類についてそれぞれ可能である。
図7は、このヒストグラム調整について詳しく説明したものである。このヒストグラム調整では、スライダー140A、140B、140Cまたは数値入力欄142A、142B、142C、142D、142Eを通じて設定されたシャドウ入力値α01、シャドウ出力値α03、ハイライト入力値α02、ハイライト出力値α04、およびガンマ値α05に基づき、同図に示すような入力データと出力データとの対応関係を表すトーンカーブが規定される。すなわち、ここで規定されるトーンカーブは、設定されたシャドウ入力値α01およびシャドウ出力値α03により規定するポイントT1(シャドウ点ともいう)と、設定されたハイライト入力値α02およびハイライト出力値α04により規定されるポイントT2(ハイライト点ともいう)とを通過するように形成される。さらに、トーンカーブは、設定されたガンマ値α05に応じて、これらポイントT1及びT2の間を結ぶ直線のどちらか一方の側に膨らむように形成される。このようにして設定されたシャドウ入力値α01、シャドウ出力値α03、ハイライト入力値α02、ハイライト出力値α04、およびガンマ値α05に基づき、入力データと出力データとの対応関係を表すトーンカーブが規定される。なお、トーンカーブは、R(レッド)、G(グリーン)およびB(ブルー)の各色についてそれぞれ規定される。
このようにして規定されたトーンカーブは、図6に示すように、トーンカーブ表示欄134に表示される。トーンカーブ表示欄134には、ヒストグラム表示欄132にて行われた調整結果に応じたトーンカーブが表示される。さらに、このトーンカーブ表示欄134では、トーンカーブについてより細かな調整が行えるように、ポイントT1(シャドウ点)またはポイントT2(ハイライト点)よりも外側の階調を調整することができる。具体的には、トーンカーブの左側下部と右側上部とにそれぞれ設けられた端部カーブ形状変更ボタン144A、144Bをクリックして、表示されるプルダウンメニューから希望する端部カーブ形状を選択するようになっている。ここでは、例えば、「ブースト」、「ノーマル」および「ソフト」の3種類から端部カーブ形状を選択することができるようになっている。ここで、「ブースト」は、白地の部分を真っ白にしたり、黒地の部分を真っ黒にしたりしてムラを除去したい場合に選択する。また、「ノーマル」は、ハイライト部分やシャドウ部分をそのまま表現する場合に選択する。また、「ソフト」は、真っ白の部分を本来の白地に戻したり、真っ黒の部分を本来の黒地に戻したりする場合に選択する。
また、グレーバランス調整欄136においては、グレーバランスを調整するためのスライダー145が設けられている。このスライダー145を左右に移動させることによって、グレーバランスを調整して、色かぶりを除去することができる。
<濃度補正>
「濃度補正」は、画像の濃淡の表現を部分的に変更する際に用いる調整である。具体的には、この「濃度補正」では、トーンカーブを調整することによって、読み取った画像の見栄えの向上を図る。つまり、シャドウ(最暗部)、ミッドトーン(中間調)、ハイライト(最明部)へと変化していく濃度の曲線(トーンカーブ)を調整することで、画像全体の明るさとコントラストをバランスよく仕上げることができる。このために、濃度補正のダイアログボックス150には、図8に示すように、トーンカーブ表示部152と、このトーンカーブ表示部152に表示するトーンカーブの種類(チャンネル(色))を選択するためのチャンネル欄154が設けられている。
このチャンネル欄154では、RGB(レッド、グリーン、ブルー)全色、R(レッド)のみ、G(グリーン)のみ、B(ブルー)のみの4種類から選択することができる。RGB(レッド、グリーン、ブルー)全色を調整したい場合には、このチャンネル欄154の1番上のスイッチを選択すると、右側にRGB(レッド、グリーン、ブルー)全色のトーンカーブが表示される。また、R(レッド)のみを調整したい場合には、このチャンネル欄154の上から2番目のスイッチを選択すると、右側にR(レッド)のみのトーンカーブが表示される。また、G(グリーン)のみを調整したい場合には、このチャンネル欄154の上から3番目のスイッチを選択すると、右側にG(グリーン)のみのトーンカーブが表示される。また、B(ブルー)のみを調整したい場合には、このチャンネル欄154の上から4番目のスイッチを選択すると、右側にB(ブルー)のみのトーンカーブが表示される。
トーンカーブ表示部152には、横軸を入力値とし、縦軸を出力値としたトーンカーブが表示される。入力値に対して出力値が変化しないように設定した場合には、トーンカーブは、図中、ラインL1として示すように直線となる。
そして、トーンカーブを調整する場合には、トーンカーブ表示部152に表示されたトーンカーブ上に任意のポイントを設定し、このポイントを上下左右の各方向にずらしながら、トーンカーブを調整する。本実施形態では、トーンカーブ表示部152に表示されたトーンカーブ上に3つのポイントP1、P2、P3を任意に設定し、これら3つのポイントP1、P2、P3をそれぞれ基準線L1より上下左右の各方向に移動させてずらす。これによって、トーンカーブ表示部152上に、ユーザが所望するトーンカーブを形成するようになっている。なお、3つのポイントP1、P2、P3の各座標については、それぞれトーンカーブ表示部152の左側に設けられた2つの数値入力欄156A、156Bを通じて設定することもできる。ここでは、上方の数値入力欄156Aに入力値を入力し、下方の数値入力欄156Bに出力値を入力することで、各ポイントP1、P2、P3の各座標について設定することができる。
このようなトーンカーブの調整については、RGB(レッド、グリーン、ブルー)全色、R(レッド)のみ、G(グリーン)のみ、B(ブルー)のみの4種類についてそれぞれ可能である。トーンカーブの設定については、濃度補正のダイアログボックス150の上部に設けられた濃度補正設定保存欄158を通じて保存しておくことができる。
<イメージ調整>
「イメージ調整」には、図9のイメージ調整のダイアログボックス160に示すように、(1)明るさの調整と、(2)コントラストの調整と、(3)彩度の調整と、(4)カラーバランスの調整との4種類の調整がある。さらに、『(4)カラーバランスの調整』には、「シアン(C)−レッド(R)」の間の調整と、「マゼンダ(M)−グリーン(G)」の間の調整と、「イエロー(Y)−ブルー(B)」の間の調整との3種類の調整がある。
(1)明るさの調整
『(1)明るさの調整』は、画像が明る過ぎたり暗すぎたりした場合に行う。『(1)明るさの調整』は、スライダー162Aを左右に移動させたり、また、スライダー162Aの右側に設けられた数値入力欄164Aに直接、数値を入力することにより行うことができる。
(2)コントラストの調整
『(2)コントラストの調整』は、明暗をはっきりさせたり、逆に明暗の差を小さくする場合に行う。『(2)コントラストの調整』は、スライダー162Bを左右に移動させたり、また、スライダー162Bの右側に設けられた数値入力欄164Bに直接、数値を入力することにより行うことができる。
(3)彩度の調整
『(3)彩度の調整』は、色味を鮮やかにしたい場合に行う。『(3)彩度の調整』は、スライダー162Cを左右に移動させたり、また、スライダー162Cの右側に設けられた数値入力欄164Cに直接、数値を入力することにより行うことができる。
(4)カラーバランスの調整
『(4)カラーバランスの調整』は、画像が赤みや青み等を帯びている場合に行う。『(4)カラーバランスの調整』は、各スライダー162D、162E、162Fを左右に移動させたり、また、各スライダー162D、162E、162Fの右側にそれぞれ設けられた数値入力欄164D、164E、164Fに直接、数値を入力することにより行うことができる。これによって、画像を適切な色合いに調整することができる。具体的には、「シアン(C)−レッド(R)」の間の調整用のスライダー162Dを左右に移動させることにより、シアンおよびレッド(R)の強弱を調整することができる。また、「マゼンダ(M)−グリーン(G)」の間の調整用のスライダー162Eを左右に移動させることにより、マゼンダ(M)およびグリーン(G)の強弱を調整することができる。また、「イエロー(Y)−ブルー(B)」の間の調整用のスライダー162Fを左右に移動させることにより、イエロー(Y)およびブルー(B)の強弱を調整することができる。
ここで、『(1)明るさの調整』および『(4)カラーバランスの調整』は、レッド(R)、グリーン(G)およびブルー(B)の3色全てまたは各色について濃淡を全体的にシフトさせる変換を行う処理である。また、『(2)コントラストの調整』は、レッド(R)、グリーン(G)およびブルー(B)の3色全てについて濃淡の変化を強めたり弱めたりする変換を行う処理である。
一方、『(3)彩度の調整』は、例えば、次のような変換式(1)〜(3)を利用して、レッド(R)、グリーン(G)およびブルー(B)の各色のデータをそれぞれ変換する処理である。ここでは、レッド(R)、グリーン(G)およびブルー(B)の各色の入力データをそれぞれ『R』、『G』、『B』にて示している。また、レッド(R)、グリーン(G)およびブルー(B)の各色の出力データをそれぞれ『R’』、『G’』、『B’』にて示している。
R’=S11×R+S12×G+S13×B ……………(1)
G’=S21×R+S22×G+S23×B ……………(2)
B’=S31×R+S32×G+S33×B ……………(3)
ここで、S11、S12、S13、S21、S22、S23、S31、S32、S33は、設定された彩度の値に応じて設定される係数である。そして、彩度を高める場合は、S11、S22、S33に『1』より大きな値が設定され、他方、S12、S13、S21、S23、S31、S32に負の値が設定される。このようにして『(3)彩度の調整』は、実行される。
<設定データ>
図10A〜図10Cは、これらヒストグラム調整、濃度補正、およびイメージ調整によりそれぞれ設定されたデータについて説明したものである。図10Aは、ヒストグラム調整により設定されるデータについて説明したものである。図10Bは、濃度補正により設定されるデータについて説明したものである。図10Cは、イメージ調整により設定されるデータについて説明したものである。
ヒストグラム調整の場合には、図10Aに示すように、R(レッド)、G(グリーン)およびB(ブルー)の各色のシャドウ入力値α11、α21、α31と、シャドウ出力値α13、α23、α33と、ハイライト入力値α12、α22、α32と、ハイライト出力値α14、α24、α34と、ガンマ値α15、α25、α35とがデータとして設定される。この他に、ここでは、トーンカーブの端部形状として「下端部形状」および「上端部形状」に関するデータα41、α42と、グレーバランス調整における調整値α51とがデータとして設定される。スキャナドライバは、これらのデータα11、α21、α31、α13、α12、α22、α32、α23、α33、α14、α24、α34、α15、α25、α35、α41、α42、α51を設定データとして記憶する。なお、これらの設定データα11、α21、α31、α13、α23、α33、α12、α22、α32、α14、α24、α34、α15、α25、α35、α41、α42、α51は、例えば、図6にて説明したヒストグラム調整のダイアログボックス131を通じてユーザにより設定される場合の他に、スキャナドライバによって演算等により自動的に設定される場合がある。スキャナドライバは、記憶した設定データα11、α21、α31、α13、α23、α33、α12、α22、α32、α14、α24、α34、α15、α25、α35、α41、α42、α51に基づき、入力画像に対して画像調整を施す。
また、濃度補正の場合には、図10Bに示すように、R(レッド)、G(グリーン)およびB(ブルー)の各色についてそれぞれトーンカーブ上に設定された複数のポイントP1、P2、P3…………の入力座標β11、β13、β21、β23、β31、β33…………および出力座標β12、β14、β22、β24、β32、β34…………がデータとして設定される。スキャナドライバは、これらポイントP1、P2、P3…………の入力座標β11、β13、β21、β23、β31、β33…………および出力座標β12、β14、β22、β24、β32、β34…………を設定データとして記憶する。なお、これらの設定データβ11、β13、β21、β23、β31、β33…………、β12、β14、β22、β24、β32、β34…………は、例えば、図8にて説明した濃度補正のダイアログボックス150を通じてユーザにより設定される場合の他に、スキャナドライバによって演算等により自動的に設定される場合がある。スキャナドライバは、記憶した設定データβ11、β13、β21、β23、β31、β33…………、β12、β14、β22、β24、β32、β34…………に基づき、濃度補正を実行する。
また、イメージ調整の場合には、図10Cに示すように、『(1)明るさの調整』の設定値γ1と、『(2)コントラストの調整』の設定値γ2と、『(3)彩度の調整』の設定値γ3と、『(4)カラーバランスの調整』の設定値γ4、γ5、γ6とが設定される。『(4)カラーバランスの調整』の設定としては、「シアン(C)−レッド(R)」の間の設定値γ4と、「マゼンダ(M)−グリーン(G)」の間の設定値γ5と、「イエロー(Y)−ブルー(B)」の間の設定値γ6との3種類ある。スキャナドライバは、これらの設定値γ1、γ2、γ3、γ4、γ5、γ6を設定データとして記憶する。なお、これらの設定データγ1、γ2、γ3、γ4、γ5、γ6は、例えば、図9にて説明したイメージ調整のダイアログボックス160を通じてユーザにより設定される場合の他に、スキャナドライバによって演算等により自動的に設定される場合がある。スキャナドライバは、記憶した設定データγ1、γ2、γ3、γ4、γ5、γ6に基づき、イメージ調整を実行する。
===調整手順===
これらヒストグラム調整、濃度補正およびイメージ調整により設定されたデータに基づき、入力画像、即ちここでは、画像読み取り装置10により読み取られた画像を調整する手順の一例について説明する。図11は、この手順の一例について示したものである。
スキャナドライバは、入力画像、即ちここでは、画像読み取り装置10により読み取られた画像に対して、ヒストグラム調整を施す(S002)。このヒストグラム調整では、スキャナドライバは、R(レッド)、G(グリーン)およびB(ブルー)の各色についてそれぞれ規定されたトーンカーブに基づき、R(レッド)、G(グリーン)およびB(ブルー)の各色についてそれぞれ入力画像の各画素のデータRin、Gin、Binを変換して出力する。ここで、スキャナドライバは、図6にて説明したヒストグラム調整のダイアログボックス131を通じてユーザにより設定されたり、また自ら自動的に設定したR(レッド)、G(グリーン)およびB(ブルー)の各色のシャドウ入力値α11、α21、α31やシャドウ出力値α13、α23、α33、ハイライト入力値α12、α22、α32、ハイライト出力値α14、α24、α34、ガンマ値α15、α25、α35、またこの他にトーンカーブの端部形状のデータα41、α42、グレーバランス調整の調整値α51などを参照してこれらのデータに基づきヒストグラム調整を実行する。これにより、スキャナドライバは、入力画像の各画素のデータRin、Gin、Bin(入力データ)を出力データRout1、Gout1、Bout1に変換して出力する。
このようにしてヒストグラム調整を行った後、スキャナドライバは、次にステップS004へと進み、ヒストグラム調整が施された画像のデータに対してイメージ調整を施す(S004)。ここでは、スキャナドライバは、イメージ調整として、(1)明るさの調整と、(2)コントラストの調整と、(3)カラーバランスの調整とを施す。すなわち、スキャナドライバは、『(1)明るさの調整』の設定値γ1と、『(2)コントラストの調整』の設定値γ2と、『(4)カラーバランスの調整』の設定値γ4、γ5、γ6とに基づいて、それぞれ調整を施す。これにより、スキャナドライバは、ヒストグラム調整による出力データRout1、Gout1、Bout1を出力データRout2、Gout2、Bout2に変換して出力する。
そして、このようにイメージ調整((3)彩度の調整を除く)を行った後、次に、スキャナドライバは、ステップS006へと進み、イメージ調整が施された画像のデータに対して濃度補正を施す(S006)。この濃度補正では、スキャナドライバは、R(レッド)、G(グリーン)およびB(ブルー)の各色についてそれぞれ調整されたトーンカーブに基づき、R(レッド)、G(グリーン)およびB(ブルー)の各色についてそれぞれ入力画像の各画素のデータを変換して出力する。すなわち、ここでは、スキャナドライバは、R(レッド)、G(グリーン)およびB(ブルー)の各色についてトーンカーブ上に設定された複数のポイントP1、P2、P3…………の入力座標β11、β13、β21、β23、β31、β33…………および出力座標β12、β14、β22、β24、β32、β34…………の設定データを参照して、これらの設定データに基づき形成されるトーンカーブに基づき、濃度補正を実行する。これにより、スキャナドライバは、イメージ調整((3)彩度の調整を除く)による出力データRout2、Gout2、Bout2を出力データRout3、Gout3、Bout3に変換して出力する。
このようにして濃度補正を行った後、スキャナドライバは、次にステップS008へと進み、濃度補正が施された画像のデータに対してイメージ調整として『(3)彩度の調整』を施す(S008)。ここで、スキャナドライバは、『(3)彩度の調整』の設定値γ3に基づき、調整を施す。これにより、スキャナドライバは、濃度補正による出力データRout3、Gout3、Bout3を出力データRout4、Gout4、Bout4に変換して出力する。
このようにしてイメージ調整として『(3)彩度の調整』を行った後、次に、スキャナドライバは、『(3)彩度の調整』が施された画像のデータに対して、色変換処理を施す(S010)。この色変換処理とは、各種出力機器(ここでは、表示装置をはじめ、各種プリンタ等)で扱う上で適切なデータに変換するための処理である。具体的には、例えば、次のような変換式(4)〜(6)により実施する。
R’=A11×R+A12×G+A13×B ……………(4)
G’=A21×R+A22×G+A23×B ……………(5)
B’=A31×R+A32×G+A33×B ……………(6)
ここで、変換前のレッド(R)、グリーン(G)およびブルー(B)の各色の入力データをそれぞれ『R』、『G』、『B』により示している。また、変換後のレッド(R)、グリーン(G)およびブルー(B)の各色の出力データをそれぞれ『R’』、『G’』、『B’』により示している。また、A11、A12、A13、A21、A22、A23、A31、A32、A33は、各種出力機器(表示装置24やプリンタ等)の特性に応じて適宜設定される係数である。
このようにしてスキャナドライバは、『(3)彩度の調整』が施された画像のデータに対して各種出力機器の特性に応じた色変換処理を施す。これにより、スキャナドライバは、イメージ調整((3)彩度の調整)による出力データRout4、Gout4、Bout4を出力データRout5、Gout5、Bout5に変換して出力する。そして、スキャナドライバは、このようにして色変換処理を実行した後、色変換処理が施された画像を出力画像として出力する。
なお、ここでは、最終段階にて色変換処理を実行する場合を例にして説明したが、この色変換処理については必要に応じて実行するものとする。
===プレスキャン===
図12は、画像読み取り装置10による画像読み取り手順の一例について説明したものである。画像読み取り装置10により画像を読み取る際に、プレスキャンを実行する場合がある。このプレスキャンとは、例えば、高解像度にて画像を読み取る場合等において、最初から高解像度にて画像を読み取る動作を実行するのではなく、高解像度にて画像を読み取る動作(本スキャン)を実行する前、一度、例えば、低解像度にて画像を読み取ることをいう。
プレスキャンは、同図に示すように、最初に実行される(S050)。スキャナドライバは、このプレスキャン動作によってプレスキャン画像(プレ画像)を取得する(S052)。次にスキャナドライバは、取得したプレスキャン画像(プレ画像)に対して自動調整等を施す。ここで、スキャナドライバは、取得したプレスキャン画像(プレ画像)に対して、ヒストグラム調整や濃度補正、イメージ調整等における適切な調整値等を求めて、自動的に補正する(S054)。ここで自動的に補正された画像は、例えば、表示装置24等に表示される。
ユーザは、このようにして表示装置24等に表示されたプレスキャン画像(プレ画像)を見ながら、各種調整(補正)を実行する(S056)。ここでは、ユーザは、図6のヒストグラム調整のダイアログボックス131や、図8の濃度補正のダイアログボックス150、図9のイメージ調整のダイアログボックス160等を通じて各種調整(補正)を実行する。
このようにしてユーザにより各種調整(補正)が行われた後、本スキャンを実行する。この本スキャンでは、画像読み取り装置10によって原稿15から画像が高解像度にて読み取られる(S058)。そして、スキャナドライバは、このようにして本スキャンにより取得された高解像度の画像に対してユーザ等により設定されたデータに基づき、ヒストグラム調整や濃度補正、イメージ調整等の各種調整(補正)を実行する。これにより、各種調整(補正)が施された本画像を取得する(S060)。
===従来の問題点及び解決方法===
<従来の問題点>
これらヒストグラム調整や濃度補正、イメージ調整等によって、画像読み取り装置により読み取った画像に対して各種調整(補正)が自動的に行われた場合であっても、例えば、夕焼けや朝焼けなどの色バランスが崩れた画像については、十分な補正処理を実行することはできなかった。また、これらヒストグラム調整や濃度補正、イメージ調整等を通じてユーザが、例えば、夕焼けや朝焼けなどの色バランスが崩れた画像に対して十分な調整(補正)を施すのはきわめて難しかった。
そこで、このような夕焼けや朝焼けなどの色バランスが崩れた画像に対しても、十分な調整(補正)を施すことができるようにするために、このような画像のための補正機能を備える必要があった。
<解決方法>
このようなことから、本実施形態では、例えば、夕焼けや朝焼けなどの色バランスが崩れた画像に対して適切な補正処理を実行するために、次のような補正方法を実施する。以下にここで行われる補正方法について詳しく説明する。
===画像の補正===
本実施形態で行われる、夕焼けまたは朝焼けの画像の補正方法について詳しく説明する。なお、本実施形態では、夕焼けまたは朝焼けの画像に対する補正処理は、スキャナドライバにより行われる。このことから、スキャナドライバは、「画像補正プログラム」に相当する。また、スキャナドライバが実行されるコンピュータ装置20は、「画像補正装置」に相当する。
図13は、ここで実施される画像の補正方法について説明したものである。スキャナドライバは、まず、画像読み取り装置10により読み取った画像のデータに基づき、ヒストグラムのデータを生成する(S102)。なお、このことから、スキャナドライバは、「ヒストグラムデータ生成部」に相当する。ここで生成されるヒストグラムとは、画像読み取り装置10により読み取った画像を構成する各画素の濃度値に対する画素の数の分布を表したグラフである。ヒストグラムの横軸には、画素の濃度値が設定され、またヒストグラムの縦軸には、画素の数が設定される。このヒストグラムには、グラフの横軸の濃度値ごとにそれぞれ画素の数を表す長方形状の棒グラフ等が形成される。ここで形成される棒グラフ等が横方向に相互につなぎ合わされて、全体がある形状を持つ領域を有するグラフを形成している。
スキャナドライバは、このようにしてヒストグラムのデータを生成した後、次に、生成したヒストグラムのデータに基づき、ヒストグラムにより表される領域を画素の濃度値の大きさ別に3つ以上の小領域に区分する(S104)。ここで区分される小領域の個数は、4つであっても良く、もちろん5つ以上であっても構わない。また、区分される小領域の面積は、相互にほぼ等しくなるように設定されていても良く、また相互に等しくならないように設定されていても良い。もちろん、区分された小領域のうちの一部の2つ以上の小領域の面積が相互にほぼ等しくなるように設定されていても良い。また、区分される小領域における画素の数は、相互にほぼ等しくなるように設定されていても良く、また相互に等しくならないように設定されていても良い。もちろん、区分された2つ以上の小領域のうちの一部の2つ以上の小領域における画素の数が相互にほぼ等しくなるように設定されていても良い。
スキャナドライバは、このようにしてヒストグラムにより表される領域を3つ以上の小領域に区分した後、次に、区分した3つ以上の小領域の中から少なくとも1つの小領域を選出する(S106)。ここでスキャナドライバが選出する小領域は、2つであってもよく、また3つ以上であっても構わない。もちろん、ここでスキャナドライバは、全ての小領域を選出しても構わない。なお、ここでスキャナドライバにより選出される小領域としては、画像読み取り装置10により読み取った画像に対してスキャナドライバが、夕焼けまたは朝焼けの画像のための補正処理を施すにあたって必要な情報を取り出すことができる小領域が望ましい。
このようにしてヒストグラムにより表される領域を区分して得られた2つ以上の小領域の中から少なくとも1つの小領域を選出した後、スキャナドライバは、次に、選出した小領域から属性情報を取得する(S108)。なお、ここでスキャナドライバは、「属性情報取得部」に相当する。
ここでスキャナドライバが取得する属性情報とは、スキャナドライバが選出した小領域が持っている性質や特徴に関する情報のことである。ここでスキャナドライバが取得する属性情報としては、例えば、スキャナドライバが選出した小領域を占める画素の濃度値の平均値や、スキャナドライバが選出した小領域を占める画素の濃度値の上限値または下限値、さらに、スキャナドライバが選出した小領域に隣接する小領域との間の境界線に対応する濃度値、この他に、スキャナドライバが選出した小領域の面積の大きさ等、様々な属性情報がある。スキャナドライバは、これらの各種属性情報の中から少なくとも1種類の属性情報を取得する。すなわち、スキャナドライバは、これらの各種属性情報の中から1種類の属性情報を取得しても良く、また複数種類の属性情報を取得しても良い。
スキャナドライバは、ヒストグラムにより表される領域を区分して得られた3つ以上の小領域の中から選出した小領域についてそれぞれ個別に属性情報を取得してもよく、また選出した小領域の中の2つ以上の小領域に関する属性情報を取得してもよい。このようにしてスキャナドライバは、画像読み取り装置10により読み取った画像に対してスキャナドライバが、夕焼けまたは朝焼けの画像のための補正処理を施すために必要な情報を取得する。
そして、スキャナドライバは、ヒストグラムにより表される領域を区分して得られた3つ以上の小領域の中から選出した小領域について属性情報を取得した後、次に、取得した属性情報に基づき、目標値を取得する(S110)。なお、ここでスキャナドライバは、「目標値取得部」に相当する。この目標値は、区分して得られた3つ以上の小領域の中から選出された第1小領域および第2小領域に関する属性情報についての目標値である。第1小領域としては、他の少なくとも1つの小領域よりも濃度値が小さい小領域が選出される。第2小領域としては、第1小領域よりも濃度値が小さい小領域が選出される。目標値は、このような第1小領域に関する属性情報および第2小領域に関する属性情報についての目標値となる。第1小領域に関する属性情報についての目標値は、各色別の目標値である。また、第2小領域に関する属性情報についての目標値は、各色共通の目標値である。
スキャナドライバが取得した属性情報に基づき目標値を取得する方法としては、様々な方法がある。具体的には、例えば、取得した属性情報から輝度に関する情報を取得して、その輝度に関する情報に基づき、目標値を取得する方法がある。このように輝度に関する情報を取得すれば、簡単に目標値を取得することができる。この輝度に関する情報を取得する方法としては、レッド(R)、グリーン(G)およびブルー(B)の各色の濃度値から簡単に取得することができる。
このようにして目標値を取得した後、スキャナドライバは、次に、取得した各色共通の目標値に基づき、画像に対して補正処理を施す(S112)。なお、ここでスキャナドライバは、「補正処理部」に相当する。スキャナドライバは、第1小領域に関する各色の属性情報がそれぞれ、取得した各色別の目標値になるように、また、第2小領域に関する各色の属性情報がそれぞれ、取得した各色共通の目標値になるように、画像に対して補正処理を施す。スキャナドライバが実行する補正処理としては、各種補正処理を採用することができる。具体的には、例えば、スキャナドライバが、前述した「濃度補正」により補正処理を施す場合には、第1小領域に関する各色の属性情報がそれぞれ、取得した各色別の目標値になるように、また、第2小領域に関する各色の属性情報がそれぞれ、取得した各色共通の目標値になるように、「濃度補正」におけるトーンカーブを調整する。このために、スキャナドライバは、「濃度補正」におけるトーンカーブを調整するための任意のポイントを設定したりする。この他に、スキャナドライバは、画像読み取り装置10により読み取られた画像に対して既に実施されている各種調整(補正)のパラメータを変更することによって補正処理を行う。
ここでスキャナドライバが補正処理を施す画像にあっては、既にヒストグラム調整や濃度補正、イメージ調整等の各種調整(補正)が施された画像であっても良く、また、画像読み取り装置10により読み取られた画像であっても良い。このようにしてスキャナドライバは、画像読み取り装置10により読み取られた画像に対して、夕焼けまたは朝焼けの画像のための補正処理を施す。これにより、夕焼けまたは朝焼けの画像について画質改善を図ることができる。その後、スキャナドライバは、処理を速やかに終了する。
なお、これらのことから、このスキャナドライバは、「画像補正プログラム」に相当する。
===実際の処理への適用===
本実施形態では、このような夕焼けまたは朝焼けの画像の補正は、各種画像の判定処理や他の画像の補正処理とともに、図5にて説明したユーザインターフェイスのメインのダイアログボックス100において「逆光補正のチェックボックス130E」がユーザによりチェックされたときに実行される。
スキャナドライバが処理の対象とするのは、前述したヒストグラム調整や濃度補正、イメージ調整等によって自動的にまたはユーザにより調整(補正)が行われた画像である。スキャナドライバは、画像読み取り装置10により読み取った画像に対して各種判定処理を行った後、その判定結果に応じて画像に対して補正処理を施すようになっている。
ここでスキャナドライバが実行する判定処理としては、次のような処理である。
(1)逆光画像であるか否かの判定処理
(2)中間調の色バランスが崩れた画像であるか否かの判定処理
(3)夕焼けまたは朝焼けの画像であるか否かの判定処理
また、スキャナドライバが実行する補正処理としては、次のような処理である。
(4)通常の逆光画像に対する補正処理
(5)中間調の色バランスが崩れた逆光画像のための補正処理
(6)夕焼けまたは朝焼けの逆光画像のための補正処理
図14は、本実施形態においてスキャナドライバが実行する処理の手順を説明するフローチャートを示したものである。スキャナドライバは、まず、画像読み取り装置10により読み取った画像について、逆光画像か否かを判定する(S202)。ここで、画像読み取り装置10により読み取った画像が、逆光画像ではないと判定した場合には、スキャナドライバは、次にステップS210へと進み、画像読み取り装置10により読み取った画像に対して、「通常の逆光画像の補正処理」を実行する(S210)。なお、本実施形態では、ここで実行される「通常の逆光画像の補正処理」は、逆光画像ではない画像に対して実行しても大きな影響がないような補正処理となっている。つまり、画像読み取り装置10により読み取った画像が逆光画像ではない場合に、当該画像に対して「通常の逆光画像の補正処理」を実行しても、あまり大きな悪影響は生じないようになっている。スキャナドライバは、ステップS210にて画像読み取り装置10により読み取った画像に対して「通常の逆光画像の補正処理」を実行した後、処理を速やかに終了する。
一方、ステップS202においてスキャナドライバが、画像読み取り装置10により読み取った画像について逆光画像であると判定した場合には、次にスキャナドライバは、ステップS204へと進む。ここで、スキャナドライバは、画像読み取り装置10により読み取った画像について、中間調の色バランスが崩れた画像であるか否かの判定を行う(S204)。ここで、スキャナドライバは、画像読み取り装置10により読み取った画像について、中間調の色バランスが崩れた画像であると判定した場合には、次にステップS212へと進み、画像読み取り装置10により読み取った画像に対して、「中間調の色バランスが崩れた逆光画像のための補正処理」を実行する(S212)。この「中間調の色バランスが崩れた逆光画像のための補正処理」は、前述した「通常の逆光画像の補正処理」とは異なる処理であり、中間調の色バランスが崩れた逆光画像の画質改善を図るべく実行される。このようにして画像読み取り装置10により読み取った画像に対して、「中間調の色バランスが崩れた逆光画像のための補正処理」を実行した後、スキャナドライバは、処理を速やかに終了する。
他方、ステップS204においてスキャナドライバが、画像読み取り装置10により読み取った画像について、中間調の色バランスが崩れた画像ではないと判定した場合には、次にステップS206へと進む。そして、スキャナドライバは、ここで次に、画像読み取り装置10により読み取った画像について、夕焼けまたは朝焼けの画像であるか否かの判定処理を実行する(S206)。なお、このことから、スキャナドライバは、「判定部」に相当する。ここで、スキャナドライバは、画像読み取り装置10により読み取った画像について、夕焼けまたは朝焼けの画像であると判定した場合には、次にステップS208へと進み、画像読み取り装置10により読み取った画像に対して、「夕焼けまたは朝焼けの逆光画像のための補正処理」を実行する(S208)。この「夕焼けまたは朝焼けの逆光画像のための補正処理」は、前述した「通常の逆光画像の補正処理」や「中間調の色バランスが崩れた逆光画像のための補正処理」とは異なる処理である。この補正処理は、夕焼けまたは朝焼けの逆光画像の画質改善を図るべく実行される。このようにして画像読み取り装置10により読み取った画像に対して、「夕焼けまたは朝焼けの逆光画像のための補正処理」を実行した後、スキャナドライバは、処理を速やかに終了する。
一方、ステップS206においてスキャナドライバが、画像読み取り装置10により読み取った画像について、夕焼けまたは朝焼けの画像ではないと判定した場合には、スキャナドライバは、次にステップS210へと進み、画像読み取り装置10により読み取った画像に対して、「通常の逆光画像の補正処理」を実行する(S210)。これは、画像読み取り装置10により読み取った画像について、中間調の色バランスが崩れた画像でも、夕焼けまたは朝焼けの画像でもないと判定したことにより、画像読み取り装置10により読み取った画像に対して、「通常の逆光画像」であると判断したためである。このため、スキャナドライバは、画像読み取り装置10により読み取った画像に対して、「通常の逆光画像の補正処理」を施す。このようにしてスキャナドライバは、画像読み取り装置10により読み取った画像に対して、「通常の逆光画像の補正処理」を実行した後、処理を速やかに終了する。
以上のような手順にて、本実施形態にかかるスキャナドライバは、画像読み取り装置10により読み取った画像に対して、各種画像判定処理と各種画像補正処理とを実行する。以下に、ここでスキャナドライバにより実行される各種画像判定処理と各種画像補正処理とについてそれぞれ個別に詳しく説明する。
===逆光画像の判定===
スキャナドライバは、図5にて説明したユーザインターフェイスのメインのダイアログボックス100において「逆光補正のチェックボックス130E」がユーザによりチェックされると、図14にて説明したように、最初に、画像読み取り装置10により読み取った画像について、「逆光画像であるか否かの判定処理」を行う。以下に、ここで行われる「逆光画像であるか否かの判定処理」について詳しく説明する。
<判定手順>
図15は、ここでスキャナドライバにより行われる「逆光画像であるか否かの判定処理」の判定手順の一例について説明したものである。画像読み取り装置10により読み取った画像のデータに基づき、ヒストグラムのデータを生成する(S302)。ここで生成されるヒストグラムは、先に説明したヒストグラムと同じものである。つまり、このヒストグラムは、画像読み取り装置10により読み取った画像を構成する各画素の濃度値に対する画素の数の分布を表したグラフである。
スキャナドライバは、このようにしてヒストグラムのデータを生成した後、次に、生成したヒストグラムのデータに基づき、ヒストグラムにより表される領域を画素の濃度値の大きさ別に3つ以上の小領域に区分する(S304)。ここで区分される小領域の個数は、4つであっても良く、もちろん5つ以上であっても構わない。また、区分される小領域の面積は、相互にほぼ等しくなるように設定されていても良く、また相互に等しくならないように設定されていても良い。もちろん、区分された3つ以上の小領域のうちの一部の小領域、即ち2つ以上の小領域の面積が相互にほぼ等しくなるように設定されていても良い。また、区分される小領域における画素の数は、相互にほぼ等しくなるように設定されていても良く、また相互に等しくならないように設定されていても良い。もちろん、区分された3つ以上の小領域のうちの一部の小領域、即ち2つ以上の小領域における画素の数が相互にほぼ等しくなるように設定されていても良い。
スキャナドライバは、このようにしてヒストグラムにより表される領域を3つ以上の小領域に区分した後、次に、区分した3つ以上の小領域の中から第1小領域と第2小領域とを選出する(S306)。ここで、第1小領域とは、区分された3つ以上の小領域の中から選出される少なくとも1つの小領域のことである。この第1小領域は、画像読み取り装置10により読み取った画像から必要な情報を取得し、逆光画像か否かを判定するために選出する。第1小領域として選出される小領域の数は、1つであってもよく、また2つであってもよく、さらには3つ以上であっても良い。
また、第2小領域については、第1小領域の場合と同様に、区分された3つ以上の小領域の中から選出される少なくとも1つの小領域のことである。ただし、ここでは、第2小領域として、第1小領域よりも濃度値が大きくかつ第1小領域に隣接していない小領域が選出される。これは、第1小領域が2つ以上あった場合についても同様である。すなわち、第1小領域が2つ以上あった場合でも、これら2つ以上の第1小領域に対してそれぞれ第2小領域が相隣接しておらず、かつこれら2つ以上の第1小領域よりも第2小領域の濃度値が大きくなっている。なお、第2小領域が2つ以上あった場合についても同様である。すなわち、これら2以上の第2小領域が共に1つまたは2つ以上の第1小領域に対してそれぞれ個別に相隣接しておらず、かつこれら1つまたは2つ以上の第1小領域に対して各第2小領域の濃度値が大きくなっているのである。第2小領域として選出される小領域の個数は、1つであってもよく、また2つであってもよく、さらには3つ以上であっても良い。また、この第2小領域は、第1小領域の場合と同様に、画像読み取り装置10により読み取った画像から必要な情報を取得し、逆光画像か否かを判定するために選出する。
このようにして第1小領域および第2小領域を、3つ以上の小領域の中から選出した後、スキャナドライバは、次に、これら第1小領域および第2小領域についてそれぞれ個別に属性情報を取得する(S308)。ここで属性情報とは、第1小領域または第2小領域が持っている性質や特徴のことである。ここでスキャナドライバが取得する属性情報としては、第1小領域または第2小領域を占める画素の濃度値の平均値や、第1小領域または第2小領域を占める画素の濃度値の上限値または下限値、さらに、隣接する小領域との間の境界線に対応する濃度値、この他に、第1小領域または第2小領域の面積の大きさ等、様々な属性情報がある。スキャナドライバは、これらの各種属性情報のうちの1種類の属性情報を取得してもよく、また複数種類の属性情報を取得しても良い。スキャナドライバは、画像読み取り装置10により読み取った画像が逆光画像か否かを判定するにあたって必要な情報を第1小領域および第2小領域からそれぞれ属性情報として取得する。
そして、スキャナドライバは、このようにして第1小領域および第2小領域からそれぞれ取得した属性情報に基づき、画像読み取り装置10により読み取った画像が逆光画像か否かを判定する(S310)。ここで、スキャナドライバは、例えば、第1小領域から取得した属性情報と、第2小領域から取得した属性情報とを比較して、その比較結果に基づき、画像読み取り装置10により読み取った画像が逆光画像か否かを判定しても良い。具体的には、スキャナドライバは、第1小領域から属性情報として取得した値と、第2小領域から属性情報として取得した値との差分を求め、この差分に基づき、例えば、この差分が所定値を超えたか否かなどをチェックすることによって、画像読み取り装置10により読み取った画像が逆光画像か否かを判定する。これにより、スキャナドライバは、画像読み取り装置10により読み取った画像が逆光画像か否かの判定処理を終了する。
<ヒストグラムの生成>
図16は、スキャナドライバにより生成されるヒストグラムの一例について説明したものである。本実施形態では、画像読み取り装置10により読み取られた画像を構成する各画素のデータが、レッド(R)、グリーン(G)およびブルー(B)の3色の濃度値のデータにより構成されている。このため、本実施形態では、ヒストグラムがレッド(R)、グリーン(G)およびブルー(B)の各色別に生成される。すなわち、画像を構成する各画素のレッド(R)の濃度値に基づき生成されたヒストグラムと、画像を構成する各画素のグリーン(G)の濃度値に基づき生成されたヒストグラムと、画像を構成する各画素のブルー(B)の濃度値に基づき生成されたヒストグラムとの3種類のヒストグラムが生成される。スキャナドライバは、このようにして生成したレッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムのデータに基づき、逆光画像か否かの判定を行う。
<小領域への区分>
次にスキャナドライバは、このようにして生成したレッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムのデータに基づき、各色のヒストグラムにより表される領域をそれぞれ3つ以上の小領域に区分する処理を実行する。ここで、スキャナドライバは、各色のヒストグラムにより表される領域を濃度値の大きさ別に区分する。これにより、3つ以上の小領域は、図16に示すように、各色のヒストグラムの縦軸の方向に沿ってある濃度値に対応して設けられた境界ラインによって区分され、各色のヒストグラムの横軸の方向に沿って並んで配置される。
本実施形態では、スキャナドライバは、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域を、図16に示すように、それぞれ4つの小領域Ry1、Ry2、Ry3、Ry4に区分する。ただし、ここで区分される4つの小領域Ry1、Ry2、Ry3、Ry4のうち、3つの小領域Ry1、Ry2、Ry3は、相互に面積がほぼ等しくなるように設定されている。つまり、これら3つの小領域Ry1、Ry2、Ry3は相互に画素の数がほぼ等しくなっている。
ここでは、これら3つの小領域Ry1、Ry2、Ry3の面積がそれぞれ画像を構成する画素の総数に対してほぼ33%ずつ占めるようになっている。すなわち、小領域Ry1は、濃度値が最も小さい側に位置しているから、判定対象となる画像を構成する画素のうち、濃度値が小さい画素から順に、「0〜33%」分の画素により形成されている。また、小領域Ry2は、小領域Ry1に次いで2番目に濃度値が小さい側に位置しているから、判定対象となる画像を構成する画素のうち、小領域Ry1に含まれる画素の次の画素から順に、「34〜66%」分の画素により形成されている。また、小領域Ry3は、小領域Ry2に次いで3番目に濃度値が小さい側に位置しているから、判定対象となる画像を構成する画素のうち、小領域Ry2に含まれる画素の次の画素から順に、「67〜99%」分の画素により形成されている。これらのことから、小領域Ry1は、シャドウの領域に位置していることになる。また、小領域Ry2は、中間調の領域に位置している。また、小領域Ry3は、ハイライトの領域に位置している。
一方、小領域Ry4は、3つの小領域Ry1、Ry2、Ry3とは、占める面積(画素数)が異なるように設定されている。ここでは、小領域Ry4は、小領域Ry3に次いで4番目に濃度値が小さい側に位置し、かつ濃度値が最も大きい側に位置しているから、判定対象となる画像を構成する画素のうち、残り1%分の画素により形成されている。
<小領域の選出>
このようにしてレッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域をそれぞれ4つの小領域Ry1、Ry2、Ry3、Ry4に区分した後、スキャナドライバは、次に、これら区分した4つの小領域Ry1、Ry2、Ry3、Ry4の中から、第1小領域および第2小領域を選出する処理を各色別に実行する。ここで、第1小領域は、区分した4つの小領域Ry1、Ry2、Ry3、Ry4の中から選出される少なくとも1つの小領域のことであって、第2小領域とは隣接しておらず、かつ第2小領域よりも濃度値が小さいという条件を満たす小領域である。また、第2小領域は、区分した4つの小領域Ry1、Ry2、Ry3、Ry4の中から選出される少なくとも1つの小領域のことであって、第1小領域とは隣接しておらず、かつ第1小領域よりも濃度値が大きいという条件を満たす小領域である。
本実施形態では、スキャナドライバは、第1小領域として、4つの小領域Ry1、Ry2、Ry3、Ry4の中から小領域Ry1を各色につき選出する(図16参照)。また、本実施形態では、スキャナドライバは、第2小領域として、4つの小領域Ry1、Ry2、Ry3、Ry4の中から小領域Ry3を各色につき選出する(図16参照)。このように第1小領域および第2小領域が選出されたのは、次の理由からである。すなわち、本実施形態では、4つの小領域Ry1、Ry2、Ry3、Ry4のうち、3つの小領域Ry1、Ry2、Ry3が相互に面積(画素数)がほぼ等しくなるようにそれぞれ画素総数に対して33%ずつに設定されている。つまり、3つの小領域Ry1、Ry2、Ry3は、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにより表される領域に対してそれぞれほぼ1/3ずつ占有するように設定されている。これら3つの小領域Ry1、Ry2、Ry3の中から第1小領域および第2小領域を選出するとなると、相隣接しないという要件から第1小領域として小領域Ry1を選出し、かつ第2小領域として小領域Ry3を選出するという選択肢しかないことになる。
なお、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにより表される領域がこのような方法以外の方法に区分された場合には、他の手法によって第1小領域および第2小領域を選出しても良い。
<属性情報の取得>
このようにして4つの小領域Ry1、Ry2、Ry3、Ry4の中から第1小領域として小領域Ry1を各色別に選出し、かつ第2小領域として小領域Ry3を各色別に選出した後、スキャナドライバは、次に、これら第1小領域として選出した小領域Ry1および第2小領域として選出した小領域Ry3からそれぞれ属性情報を各色別に取得する。本実施形態では、属性情報として、小領域Ry1の上限値St1および小領域Ry3の上限値St3を各色につき取得する。なお、各色の小領域Ry1の上限値St1は、隣接する小領域Ry2との間の境界線に対応する濃度値でもある。また、各色の小領域Ry3の上限値St3についても同様に、隣接する小領域Ry4との間の境界線に対応する濃度値でもある。また、各色の小領域Ry1の上限値St1については、「33%基準点」とも呼ぶこととする。また、各色の小領域Ry3の上限値St3については、「99%基準点」とも呼ぶこととする。なお、各色の小領域Ry2の上限値St2については、「66%基準点」とも呼ぶこととする。
ここで、小領域Ry1および小領域Ry3の属性情報として、各上限値St1、St3を取得したのは、次の理由からである。すなわち、これら小領域Ry1の上限値St1および小領域Ry3の上限値St3は、他の属性情報に比べて、画像が逆光画像か否かを判定する上で的確な判定を行うことができるからである。つまり、小領域Ry1および小領域Ry3の上限値St1、St3は、小領域Ry1および小領域Ry3の他の属性情報に比べて、画像が逆光画像か否かを判定する上で重要な判定要素となり得るのである。
例えば、第1小領域として選出した小領域Ry1および第2小領域として選出した小領域Ry3の属性情報として、小領域Ry1を占める画素の濃度値の平均値Av1と、小領域Ry3を占める画素の濃度値の平均値Av3を取得した場合、これらの平均値Av1、Av3の違いは、小領域Ry1および小領域Ry3の上限値St1、St3の違いに比べて非常に小さいものとなってしまう。このようなことから、画像読み取り装置10により読み取った画像が逆光画像か否かの判定にあたっては、小領域Ry1および小領域Ry3の属性情報として、これら小領域Ry1の上限値St1および小領域Ry3の上限値St3を各色につき取得するのが好ましいのである。
<判定>
このようにしてレッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域をそれぞれ4つの小領域Ry1、Ry2、Ry3、Ry4に区分して、その中から第1小領域として選出した小領域Ry1と、その中から第2小領域として選出した小領域Ry3との各属性情報として、小領域Ry1の上限値St1および小領域Ry3の上限値St3を各色別に取得した後、スキャナドライバは、次に、ここで取得した各色別の小領域Ry1の上限値St1および各色別の小領域Ry3の上限値St3に基づき、画像読み取り装置10により読み取った画像が逆光画像か否かの判定処理を実行する。
ここで、本実施形態では、スキャナドライバは、まず、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムについてそれぞれ得られた小領域Ry1の上限値St1および小領域Ry3の上限値St3から、それぞれ輝度に換算した場合の値を求める演算を行う。この演算では、レッド(R)、グリーン(G)およびブルー(B)の各色の濃度値から実際の輝度値に変換するために利用されている式を利用する。この演算式の一例を次の式(7)に示す。
実際の輝度値=1/5×R+3/5×G+1/5×B …………(7)
なお、ここで、『R』は、画素のレッド(R)の成分の濃度値を示す。『G』は、画素のグリーン(G)の成分の濃度値を示す。『B』は、画素のブルー(B)の成分の濃度値を示す。また、この式(7)では、レッド(R)、グリーン(G)およびブルー(B)の各色の比率が、「1:3:1」の場合を例にして示したが、これ以外の比率に設定されても良い。
スキャナドライバは、このような式(7)を利用して、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムについてそれぞれ得られた小領域Ry1の上限値St1から、実際の輝度値に対応した値St10を取得する。なお、この値St10は、実際の輝度値に対応する「33%基準点」とする。また、スキャナドライバは、式(7)により、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムについてそれぞれ得られた小領域Ry3の上限値St3から、実際の輝度値に対応した値St30を取得する。なお、この値St30は、実際の輝度値に対応する「99%基準点」とする。
その後、スキャナドライバは、RGB各色のヒストグラムの小領域Ry1の上限値St1から求められた実際の輝度値St10(「33%基準点」)と、RGB各色のヒストグラムの小領域Ry3の上限値St3から求められた実際の輝度値St30(「99%基準点」)との差分ΔStを求める。ここでは、スキャナドライバは、RGB各色のヒストグラムの小領域Ry3の上限値St3から求められた実際の輝度値St30(「99%基準点」)から、RGB各色のヒストグラムの小領域Ry1の上限値St1から求められた実際の輝度値St10(「33%基準点」)を減算する演算を実行する。
そして、スキャナドライバは、このようにして求めた差分ΔStと、所定のしきい値ΔStkとを比較して、求めた差分ΔStが所定のしきい値ΔStk以上であった場合には、画像読み取り装置10により読み取った画像については逆光画像であると判定する。一方、スキャナドライバは、求めた差分ΔStと、所定のしきい値ΔStkとを比較して、求めた差分ΔStが所定のしきい値ΔStkに達していなかった場合には、画像読み取り装置10により読み取った画像については逆光画像ではないと判定する。なお、ここで所定のしきい値ΔStkは、逆光画像か否かを判定する上で適切に設定される値である。この所定のしきい値ΔStkは、予め実施されるシミュレーション等による解析結果や経験則などに基づき適宜設定される。
図17Aおよび図17Bは、スキャナドライバによる逆光画像か否かを判定する方法について説明したものである。図17Aは、判定対象となる画像が逆光画像ではないとスキャナドライバが判定する場合について説明したものである。図17Bは、判定対象となる画像が逆光画像であるとスキャナドライバが判定する場合について説明したものである。
画像読み取り装置10により読み取った画像が逆光画像ではない場合には、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される濃度値に対する画素の分布状況がほぼ均一になる。このことから、画像読み取り装置10により読み取った画像が逆光画像ではない場合には、図17Aに示すように、「33%基準点」となる値St10と、「66%基準点」となる値St20と、「99%基準点」となる値St30とは、緩やかな傾斜にて小さな増加率にて順次増加することになる。なお、ここで、「66%基準点」となる値St20は、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムの小領域Ry2の上限値St2から、前述した式(7)を利用して実際の輝度値に換算したときの値である。このため、「33%基準点」となる値St10と、「99%基準点」となる値St30との差分ΔStaは、所定のしきい値ΔStkよりも小さな値となる。
一方、画像読み取り装置10により読み取った画像が逆光画像である場合には、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される濃度値に対する画素の分布状況に偏りがある。このことから、画像読み取り装置10により読み取った画像が逆光画像である場合には、図17Bに示すように、「33%基準点」となる値St10と、「66%基準点」となる値St20と、「99%基準点」となる値St30とは、アンバランスな関係となる。これによって、「33%基準点」となる値St10が小さすぎたり、また「99%基準点」となる値St30が大きすぎたりすることになる。このことから、「33%基準点」となる値St10から「99%基準点」となる値St30にかけて傾斜が急となり、増加率が大きくなる。このため、「33%基準点」となる値St10と、「99%基準点」となる値St30との差分ΔStbは、所定のしきい値ΔStkよりも大きな値となる。
このような方法によりスキャナドライバによって、判定対象となる画像、即ちここでは、画像読み取り装置10により読み取った画像が逆光画像であるか否かを判定することによって、逆光画像か否かをより的確に判定することができる。具体的には、例えば、一般的な逆光画像をはじめ、中間調等の色バランスが崩れた逆光画像や、夕焼けまたは朝焼けを背景とした逆光画像などについても、スムーズに逆光画像であると判定することができる。
===中間調の色バランスが崩れた画像の判定===
次に、「中間調の色バランスが崩れた画像であるか否かの判定」について説明する。「中間調の色バランスが崩れた画像であるか否かの判定」については、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムを用いて、これらRGB各色のヒストグラムにおいて区分されて得られた4つの小領域Ry1、Ry2、Ry3、Ry4の中から2つ以上の小領域を選出して、選出した小領域についてそれぞれ属性情報を取得し、その属性情報に基づき、「中間調の色バランスが崩れた画像であるか否かの判定」を行う。以下にその方法について詳しく説明する。
<中間調の色バランスが崩れた画像の特性>
図18A〜図18Cは、中間調の色バランスが崩れた画像のRGB各色のヒストグラムの一例をそれぞれ示したものである。図18Aは、レッド(R)のヒストグラムを示したものである。図18Bは、グリーン(G)のヒストグラムを示したものである。図18Cは、ブルー(B)のヒストグラムを示したものである。
中間調の色バランスが崩れた画像は、レッド(R)、グリーン(G)およびブルー(B)のうちのいずれか1色が、他の色とは異なる中間調の特性を有している。つまり、具体的には、例えば、ブルー(B)の中間調の特性が異なる場合には、図18A〜図18Cに示すように、ブルー(B)の中間調の領域が、他のレッド(R)やグリーン(G)の中間調の領域に比べて位置が異なっている。これによって、ブルー(B)の中間調の領域の属性、即ち、例えば、上限値や下限値、平均値などが、他のレッド(R)やグリーン(G)の中間調の領域の属性と異なることになる。このことから、RGB各色のヒストグラムの中間調の属性を調べることによって、中間調の色バランスが崩れた画像であるか否かを簡単に調べることができる。
<小領域の選出>
図19は、「中間調の色バランスが崩れた画像であるか否かの判定」における小領域の選出について説明したものである。ここでは、同図に示すように、「逆光画像の判定」において生成したヒストグラムを区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3の中から、第1小領域および第2小領域を選出する。第1小領域は、これら3つの小領域Ry1、Ry2、Ry3の中の少なくとも1つの小領域よりも濃度値が大きく、かつこれら3つの小領域Ry1、Ry2、Ry3の中の他の少なくとも1つの小領域よりも濃度値が小さい小領域である。本実施形態では、第1小領域として小領域Ry2が選出される。
一方、第2小領域は、第1小領域を除く他の小領域から選出される小領域である。本実施形態では、第2小領域として小領域Ry3が選出される。ここで、第2小領域として、小領域Ry3を選出したのは、小領域Ry1よりも属性情報として信頼性が高い場合があるからである。例えば、ネガフィルム等から画像を読み取った場合には、シャドウの領域、即ち小領域Ry1の属性情報としての信頼性が低くなる場合があるからである。第2小領域として小領域Ry3を選出すれば、読み取った画像がどのようなタイプであっても、信頼性の高い属性情報を取得することができる。なお、第2小領域としては、小領域Ry3の他に、小領域Ry1が選出されても良い。
このような第1小領域および第2小領域の選出は、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにおいて各色別にそれぞれ行われる。
<属性情報の取得>
このようにしてスキャナドライバは、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにおいてそれぞれ第1小領域および第2小領域の選出を行った後、次に、これら第1小領域および第2小領域についてそれぞれ各色別に属性情報を取得する。本実施形態では、スキャナドライバは、属性情報として、第1小領域(小領域Ry2)の上限値St2(「66%基準点」ともいう)と、第2小領域(小領域Ry3)の上限値St3(「99%基準点」ともいう)とを各色につきそれぞれ取得する。
ここで、第1小領域(小領域Ry2)および第2小領域(小領域Ry3)の上限値St2、St3を属性情報として取得したのは、これら第1小領域(小領域Ry2)の上限値St2および第2小領域(小領域Ry3)の上限値St3が、他の属性情報に比べて、中間調の色バランスが崩れた画像であるか否かの判定にあたって、的確な判定を行うことができるからである。
レッド(R)のヒストグラムの第1小領域(小領域Ry2)および第2小領域(小領域Ry3)の上限値をそれぞれ『Str2』、『Str3』とする。また、グリーン(G)のヒストグラムの第1小領域(小領域Ry2)および第2小領域(小領域Ry3)の上限値をそれぞれ『Stg2』、『Stg3』とする。また、ブルー(B)のヒストグラムの第1小領域(小領域Ry2)および第2小領域(小領域Ry3)の上限値をそれぞれ『Stb2』、『Stb3』とする。
<判定>
このようにしてスキャナドライバは、第1小領域(小領域Ry2)および第2小領域(小領域Ry3)からそれぞれ各色別に属性情報を取得した後、ここで取得した属性情報に基づき、画像読み取り装置10により読み取った画像が、中間調の色バランスが崩れた画像であるか否かの判定を行う。具体的には、次のようにして判定を実施する。
図20Aおよび図20Bは、スキャナドライバによる中間調の色バランスが崩れた画像であるか否かを判定する方法について説明したものである。図20Aは、中間調の色バランスが崩れた画像であると判定される場合について説明したものである。図20Bは、中間調の色バランスが崩れた画像ではないと判定される場合について説明したものである。
ここでは、第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の関係が、Str2>Stg2>Stb2の場合を例にして説明する。また、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の関係が、Str3>Stg3>Stb3の場合を例にして説明する。
中間調の色バランスが崩れた画像である場合には、図20Aに示すように、中間調、即ちここでは、第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』のバラツキが、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』のバラツキに比べて非常に大きくなる。このことから、これら第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHs1と、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHs2とをそれぞれ求め、これら2つの差分ΔHs1、ΔHs2を比較することで、中間調の色バランスが崩れた画像であるか否かを簡単に判定することができる。
ここでは、第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の関係が、Str2>Stg2>Stb2であることから、第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHs1は、レッド(R)の上限値『Str2』と、ブルー(B)の上限値『Stb2』との差分から求めることができる。また、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHs2についても同様に、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の関係が、Str3>Stg3>Stb3であることから、レッド(R)の上限値『Str3』と、ブルー(B)の上限値『Stb3』との差分から求めることができる。
一方、中間調の色バランスが崩れた画像ではない場合には、図20Bに示すように、中間調、即ちここでは、第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』のバラツキが、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』のバラツキに比べて非常に大きくなるようなことはない。したがって、これら第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHs1と、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHs2との差が、あまり大きくなることはない。このことから、中間調の色バランスが崩れた画像ではないと簡単に判定することができる。
第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHs1と、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHs2との比較は、例えば、差分ΔHs1と差分ΔHs2との差分、即ち、差分ΔHs1から差分ΔHs2を減算して得られた値が、所定のしきい値「Ks」以上であるか否かを調べることで、簡単に行うことができる。すなわち、下記の関係式(8)を充足するか否かをチェックすることで、簡単に中間調の色バランスが崩れた画像であるか否かを判定することができる。
ΔHs1−ΔHs2≧Ks ………………(8)
このような方法によりスキャナドライバによって判定することによって、判定対象となる画像、即ちここでは、画像読み取り装置10により読み取った画像が、中間調の色バランスが崩れた画像であるか否かを的確に判定することができる。
<処理の流れ>
図21は、スキャナドライバによる判定処理の流れについて説明したものである。スキャナドライバは、同図に示すように、まず、第1小領域(小領域Ry2)および第2小領域(小領域Ry3)に関する属性情報として、第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』と、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』とを取得する(S402)。次に、スキャナドライバは、得られた上限値『Str2』、『Stg2』、『Stb2』、『Str3』、『Stg3』、『Stb3』に基づき、第1小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHs1と、第2小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHs2とをそれぞれ求める(S404)。そして、次に、スキャナドライバは、得られた2つの差分ΔHs1、ΔHs2を比較する(S406)。そして、その比較の結果、これら2つの差分ΔHs1、ΔHs2の差、即ちΔHs1−ΔHs2が所定のしきい値「Ks」以上であるか否かをチェックする(S408)。ここで、ΔHs1−ΔHs2が所定のしきい値「Ks」以上であった場合には、スキャナドライバは、中間調の色バランスが崩れた画像であると判定する(S410)。一方、ΔHs1−ΔHs2が所定のしきい値「Ks」以上でなかった場合には、スキャナドライバは、中間調の色バランスが崩れた画像ではないと判定する(S412)。このようにして中間調の色バランスが崩れた画像であるか否かの判定を行った後、スキャナドライバは、速やかに処理を終了する。
===夕焼け・朝焼けの画像の判定===
次に、「夕焼けまたは朝焼けの画像であるか否かの判定」について説明する。「夕焼けまたは朝焼けの画像であるか否かの判定」については、「中間調の色バランスが崩れた画像であるか否かの判定」の場合と同様に、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムを用いて、これらRGB各色のヒストグラムにおいて区分されて得られた4つの小領域Ry1、Ry2、Ry3、Ry4の中から2つ以上の小領域を選出して、選出した小領域についてそれぞれ属性情報を取得し、その属性情報に基づき、「夕焼けまたは朝焼けの画像であるか否かの判定」を行う。以下にその方法について詳しく説明する。
<夕焼けまたは朝焼けの画像の特性>
図22A〜図22Cは、夕焼けまたは朝焼けの画像のRGB各色のヒストグラムの一例をそれぞれ示したものである。図22Aは、レッド(R)のヒストグラムの一例を示したものである。図22Bは、グリーン(G)のヒストグラムの一例を示したものである。図22Cは、ブルー(B)のヒストグラムの一例を示したものである。
夕焼けまたは朝焼けの画像は、レッド(R)、グリーン(G)およびブルー(B)のうちのいずれか1色のハイライトの特性が、他の色と異なっている。特に、例えば、夕焼けの画像の場合には、レッド(R)のハイライトの領域の特性が他の色と異なっていることが多い。また、朝焼けの画像の場合には、ブルー(B)のハイライトの特性が他の色と異なっていることが多い。具体的には、例えば、夕焼けの画像の場合には、図22A〜図22Cに示すように、レッド(R)のハイライトの領域の濃度値が、他のグリーン(G)やブルー(B)に比べて大幅に大きくなっている。これによって、レッド(R)のハイライトの領域の属性、即ち、例えば、上限値や下限値、平均値などが、他のブルー(B)やグリーン(G)のハイライトの領域の属性と異なることになる。また、朝焼けの画像についても同様に、例えば、ブルー(B)のハイライトの領域の属性が、他のレッド(R)やグリーン(G)のハイライトの領域の属性と異なることになる。このことから、RGB各色のヒストグラムのハイライトの領域の属性を調べることによって、夕焼けまたは朝焼けの画像であるか否かを簡単に調べることができる。
<小領域の選出>
図23は、「夕焼けまたは朝焼けの画像であるか否かの判定」における小領域の選出について説明したものである。ここでは、同図に示すように、「逆光画像の判定」において生成したヒストグラムを区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3の中から、第1小領域および第2小領域を選出する。第1小領域は、先にも説明したように、他の少なくとも1つの小領域よりも濃度値が大きい小領域である。本実施形態では、第1小領域として小領域Ry3が選出される。一方、第2小領域は、先にも説明したように、第1小領域よりも濃度値が小さい小領域である。本実施形態では、第2小領域として小領域Ry2が選出される。なお、第2小領域としては、小領域Ry2の他に、小領域Ry1が選出されても良い。また、このような第1小領域および第2小領域の選出は、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにおいて各色別にそれぞれ行われる。
<属性情報>
このようにしてスキャナドライバは、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにおいてそれぞれ第1小領域および第2小領域の選出を行った後、次に、これら第1小領域および第2小領域についてそれぞれ各色別に属性情報を取得する。本実施形態では、スキャナドライバは、属性情報として、第1小領域(小領域Ry3)の上限値St3(「99%基準点」ともいう)と、第2小領域(小領域Ry2)の上限値St2(「66%基準点」ともいう)とを各色につきそれぞれ取得する。レッド(R)のヒストグラムの第1小領域(小領域Ry3)および第2小領域(小領域Ry2)の上限値をそれぞれ『Str3』、『Str2』とする。また、グリーン(G)のヒストグラムの第1小領域(小領域Ry3)および第2小領域(小領域Ry2)の上限値をそれぞれ『Stg3』、『Stg2』とする。また、ブルー(B)のヒストグラムの第1小領域(小領域Ry3)および第2小領域(小領域Ry2)の上限値をそれぞれ『Stb3』、『Stb2』とする。
<判定>
このようにしてスキャナドライバは、第1小領域(小領域Ry3)および第2小領域(小領域Ry2)からそれぞれ各色別に属性情報を取得した後、ここで取得した属性情報に基づき、画像読み取り装置10により読み取った画像が、夕焼けまたは朝焼けの画像であるか否かの判定を行う。具体的には、次のようにして判定を実施する。
図24Aおよび図24Bは、スキャナドライバによる夕焼けまたは朝焼けの画像であるか否かを判定する方法について説明したものである。図24Aは、夕焼けまたは朝焼けの画像であると判定される場合について説明したものである。図24Bは、夕焼けまたは朝焼けの画像ではないと判定される場合について説明したものである。
ここでは、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の関係が、Str3>Stb3>Stg3の場合を例にして説明する。また、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の関係が、Str2>Stb2>Stg2の場合を例にして説明する。
夕焼けまたは朝焼けの画像である場合には、図24Aに示すように、ハイライト、即ちここでは、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』のうち、特定の色の上限値が他の色の上限値に比べて非常に大きくなる。すなわち、夕焼けの画像の場合には、例えば、レッド(R)の第1小領域(小領域Ry3)の上限値『Str3』が、他の色の上限値、即ちここでは、ブルー(B)やグリーン(G)の上限値『Stg3』、『Stb3』に比べて非常に大きくなる。また、朝焼けの画像の場合には、例えば、ブルー(B)の第1小領域(小領域Ry3)の上限値『Stb3』が、他の色の上限値、即ちここでは、レッド(R)やグリーン(G)の上限値『Str3』、『Stg3』に比べて非常に大きくなる。一方、中間調、即ちここでは、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』には、特定の色に偏るような性質はみられない。
このことから、これら第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHt1と、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHt2とをそれぞれ求め、これら2つの差分ΔHt1、ΔHt2を比較することで、夕焼けまたは朝焼けの画像であるか否かを簡単に判定することができる。
ここでは、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の関係が、Str3>Stb3>Stg3であることから、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHt1は、レッド(R)の上限値『Str3』と、グリーン(G)の上限値『Stg3』との差分から求めることができる。また、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHt2は、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の関係が、Str2>Stb2>Stg2であるから、レッド(R)の上限値『Str2』と、グリーン(G)の上限値『Stg2』との差分から求めることができる。
一方、夕焼けまたは朝焼けの画像ではない場合には、図24Bに示すように、ハイライト、即ちここでは、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』のうち、特定の色の上限値が他の色の上限値に比べて非常に大きくなるようなことはない。したがって、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHt1と、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHt2との差が、あまり大きくなることはない。このことから、夕焼けまたは朝焼けの画像ではないと簡単に判定することができる。
第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHt1と、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHt2との比較は、例えば、差分ΔHt1と差分ΔHt2との差分、即ち、差分ΔHt1から差分ΔHt2を減算して得られた値が、所定のしきい値「Kt」以上であるか否かを調べることで、簡単に行うことができる。すなわち、下記の関係式(9)を充足するか否かをチェックすることで、簡単に夕焼けまたは朝焼けの画像であるか否かを判定することができる。
ΔHt1−ΔHt2≧Kt ………………(9)
このような方法によりスキャナドライバによって判定することによって、判定対象となる画像、即ちここでは、画像読み取り装置10により読み取った画像が、夕焼けまたは朝焼けの画像であるか否かを的確に判定することができる。
<処理の流れ>
図25は、スキャナドライバによる判定処理の流れについて説明したものである。スキャナドライバは、同図に示すように、まず、第1小領域(小領域Ry3)および第2小領域(小領域Ry2)に関する属性情報として、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』と、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』とを取得する(S452)。次に、スキャナドライバは、得られた上限値『Str2』、『Stg2』、『Stb2』、『Str3』、『Stg3』、『Stb3』に基づき、第1小領域(小領域Ry3)の各色の上限値『Str3』、『Stg3』、『Stb3』の間の最大の差分ΔHt1と、第2小領域(小領域Ry2)の各色の上限値『Str2』、『Stg2』、『Stb2』の間の最大の差分ΔHt2とをそれぞれ求める(S454)。そして、次に、スキャナドライバは、得られた2つの差分ΔHt1、ΔHt2を比較する(S456)。そして、その比較の結果、これら2つの差分ΔHt1、ΔHt2の差、即ちΔHt1−ΔHt2が所定のしきい値「Kt」以上であるか否かをチェックする(S458)。ここで、ΔHt1−ΔHt2が所定のしきい値「Kt」以上であった場合には、スキャナドライバは、夕焼けまたは朝焼けの画像であると判定する(S460)。一方、ΔHt1−ΔHt2が所定のしきい値「Kt」以上でなかった場合には、スキャナドライバは、夕焼けまたは朝焼けの画像ではないと判定する(S462)。このようにして夕焼けまたは朝焼けの画像であるか否かの判定を行った後、スキャナドライバは、速やかに処理を終了する。
===通常の逆光画像の補正===
次に、「通常の逆光画像に対する補正処理」について説明する。この補正処理は、「逆光画像であるか否かの判定処理」において逆光画像ではないと判定された場合、および「夕焼けまたは朝焼けの画像であるか否かの判定処理」において夕焼けまたは朝焼けの画像ではないと判定された場合に実行される。
この補正処理は、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムを用いて実施される。すなわち、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムにおいて区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得して、その取得した属性情報に基づき、画像に対して補正処理を施す。以下にその補正方法について詳しく説明する。
<属性情報の取得>
スキャナドライバは、まず、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムにおいて区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得する。ここで、属性情報としては、RGB各色のヒストグラムから3つの小領域Ry1、Ry2、Ry3を占める画素の濃度値の平均値をそれぞれ取得する。ここで、レッド(R)のヒストグラムの小領域Ry1を占める画素の濃度値の平均値を『AVr1』とし、またその小領域Ry2を占める画素の濃度値の平均値を『AVr2』とし、またその小領域Ry3を占める画素の濃度値の平均値を『AVr3』とする。また、グリーン(G)のヒストグラムの小領域Ry1を占める画素の濃度値の平均値を『AVg1』とし、またその小領域Ry2を占める画素の濃度値の平均値を『AVg2』とし、またその小領域Ry3を占める画素の濃度値の平均値を『AVg3』とする。また、ブルー(B)のヒストグラムの小領域Ry1を占める画素の濃度値の平均値を『AVb1』とし、またその小領域Ry2を占める画素の濃度値の平均値を『AVb2』とし、またその小領域Ry3を占める画素の濃度値の平均値を『AVb3』とする。
<補正情報の生成>
その後、スキャナドライバは、ここで取得した平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、画像読み取り装置10により読み取った画像に対して逆光補正処理を施すための補正情報を生成する。以下に本実施形態における補正情報の生成方法について説明する。
(1)輝度に関する情報の取得
本実施形態では、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムから得られた3つの小領域Ry1、Ry2、Ry3を占める画素の各色別の濃度値の平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、スキャナドライバは、3つの小領域Ry1、Ry2、Ry3についてそれぞれ各領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を取得する。ここで、スキャナドライバは、例えば、次の式(10)〜(12)等を用いることによって、小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を取得する。
Yav1=1/5×AVr1+3/5×AVg1+1/5×AVb1 ………(10)
Yav2=1/5×AVr2+3/5×AVg2+1/5×AVb2 ………(11)
Yav3=1/5×AVr3+3/5×AVg3+1/5×AVb3 ………(12)
なお、ここでは、式(10)〜(12)について、レッド(R)、グリーン(G)およびブルー(B)の各色の比率が、「1:3:1」の場合を例にして示したが、これ以外の比率に設定されても良い。
スキャナドライバは、このようにして3つの小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を取得する。そして、スキャナドライバは、このようにして取得した3つの小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3から、画像読み取り装置10により読み取った画像の全体の輝度の平均値Yav0を求める。本実施形態では、3つの小領域Ry1、Ry2、Ry3が、画像全体の99%を占めていることから、3つの小領域Ry1、Ry2、Ry3にそれぞれ対応する輝度の平均値Yav1、Yav2、Yav3の平均値を画像の全体の輝度の平均値Yav0とする。したがって、本実施形態では、画像読み取り装置10により読み取った画像の全体の輝度の平均値Yav0は、例えば、次の式(13)により求めることができる。
Yav0=(Yav1+Yav2+Yav3)/3 ………………(13)
このようにしてスキャナドライバは、画像読み取り装置10により読み取った画像の全体の輝度の平均値Yav0を取得する。
(2)目標値の取得
スキャナドライバは、このように3つの小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を取得し、さらに画像読み取り装置10により読み取った画像の全体の輝度の平均値Yav0を取得した後、目標値を取得する。この目標値は、画像読み取り装置10により読み取られた画像に対して逆光補正処理を施すために取得される値であり、その逆光補正処理の概要を決定する上で指標となる値である。本実施形態では、この目標値として、2つの目標値Ym1、Ym2が取得される。1つの目標値Ym1は、小領域Ry1に対応して取得されるもので、小領域Ry1を占める画素の輝度の平均値の目標値を示す。また、もう1つの目標値Ym2は、小領域Ry2に対応して取得されるもので、小領域Ry2を占める画素の輝度の平均値の目標値を示す。
次に、これら2つの目標値Ym1、Ym2を取得する方法について説明する。図26は、2つの目標値Ym1、Ym2を取得する方法の一例について説明したものである。
本実施形態では、スキャナドライバは、これら2つの目標値Ym1、Ym2を、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とに基づき取得する。詳しくは、スキャナドライバは、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して、これにより得られた加算値Saddに基づき、2つの目標値Ym1、Ym2を取得する。加算値Saddから2つの目標値Ym1、Ym2を取得するにあたっては、同図に示すような2つの関係式(A)、(B)を用いる。
同図に示す2つの関係式(A)、(B)は、横軸を加算値とし、縦軸を目標値として形成されたグラフ上に表されている。関係式(A)は、小領域Ry1に対応する目標値Ym1を取得するためのものである。また、関係式(B)は、小領域Ry2に対応する目標値Ym2を取得するためのものである。
スキャナドライバが、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して、加算値Saddを取得したとする。すると、スキャナドライバは、この加算値Saddに基づき、関係式(A)からこの加算値Saddに対応する目標値Ym1を取得する。また、スキャナドライバは、この加算値Saddに基づき、関係式(B)からこの加算値Saddに対応する目標値Ym2を取得する。このようにスキャナドライバは、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して得られた加算値Saddから、2つの目標値、即ち、小領域Ry1を占める画素の輝度の平均値の目標値Ym1と、小領域Ry2を占める画素の輝度の平均値の目標値Ym2とを簡単に取得することができる。
なお、ここで、スキャナドライバが、加算値Saddに基づき、2つの目標値Ym1、Ym2を取得した理由について説明する。平均値Yav1が取得される小領域Ry1は、各色別に生成したヒストグラムを区分して得られた4つの小領域の中で最も濃度値が小さい小領域である。このため、この小領域Ry1から取得される平均値Yav1の大きさは、画像の逆光度合いに応じて大きく変化することになる。しかしながら、小領域Ry1から取得される平均値Yav1だけでは、逆光画像か否か判断することはできない。それは、画像全体が暗い画像であっても、小領域Ry1から取得される平均値Yav1が小さいからである。この場合には、画像全体の輝度を高める必要がある。逆光画像のように一部の画素の輝度だけを高めるだけでは十分な補正効果が得られないからである。
そこで、画像の全体の輝度の平均値Yav0も考慮すべく、小領域Ry1を占める画素の輝度の平均値Yav1に、画像の全体の輝度の平均値Yav0を加算して加算値Saddを取得するのである。この加算値Saddは、画像の逆光度合いを調べる上で、非常に適切な値となる。つまり、この加算値Saddが非常に小さい場合には、小領域Ry1を占める画素の輝度の平均値Yav1だけが小さいのではなく、画像の全体の輝度の平均値Yav0も小さく、全体が暗い画像であると判断することができる。これによって、画像全体の輝度を高めるように補正をすることができる。
一方、この加算値Saddがそれほど小さくない場合には、画像の全体の輝度の平均値Yav0はそれほど小さくなく、小領域Ry1を占める画素の輝度の平均値Yav1が小さいことから、逆光画像であると判断することができる。これによって、画像全体の輝度ではなく一部の画素の輝度を高めるように補正をすることができる。
前述した2つの関係式(A)、(B)は、このような加算値Saddの大きさに応じて2つの目標値Ym1、Ym2が規定されるように、それぞれ設定される。すなわち、2つの関係式(A)、(B)は、加算値Saddが非常に小さい場合、即ち画像全体の輝度が低く、暗い画像であると判断される場合には、画像全体の輝度を高めるように補正をすべく、小領域Ry1を占める画素の輝度の平均値の目標値Ym1と、小領域Ry2を占める画素の輝度の平均値の目標値Ym2とがそれぞれ非常に大きな値になるように設定される。また、加算値Saddがそれほど小さくない場合、即ち画像が逆光画像であると判断される場合には、2つの関係式(A)、(B)は、小領域Ry1を占める画素の輝度の平均値の目標値Ym1と、小領域Ry2を占める画素の輝度の平均値の目標値Ym2とがそれぞれあまり大きな値にならないように設定される。これによって、本実施形態の「通常の逆光画像に対する補正処理」は、画像読み取り装置10により読み取られた画像が逆光画像ではなく、全体的に輝度が低く暗い画像であった場合についても、適切な補正を実行することができる。
これら2つの関係式(A)、(B)は、例えば、次のように設定することができる。すなわち、加算値Saddが取り得る最小値を『Smin』とし、加算値Saddが取り得る最大値を『Smax』とすると、これら最小値『Smin』および最大値『Smax』にそれぞれ対応する最大目標値および最小目標値を設定する。ここで、関係式(A)に対応する最大目標値を『Ymax1』とし、最小目標値を『Ymin1』とする。また、関係式(B)に対応する最大目標値を『Ymax2』とし、最小目標値を『Ymin2』とする。なお、これら加算値Saddの最小値『Smin』および最大値『Smax』、関係式(A)の最大目標値『Ymax1』および最小目標値『Ymin1』、並びに関係式(B)の最大目標値『Ymax2』および最小目標値『Ymin2』は、経験則等により適宜設定される。
このことから、関係式(A)は、例えば、同図に示すように、加算値Saddの最小値『Smin』と、関係式(A)の最大目標値『Ymax1』とにより規定されるポイントPm1と、加算値Saddの最大値『Smax』と、関係式(A)の最小目標値『Ymin1』とにより規定されるポイントPm3とを結ぶ直線として簡単に設定することができる。また、関係式(B)は、例えば、同図に示すように、加算値Saddの最小値『Smin』と、関係式(B)の最大目標値『Ymax2』とにより規定されるポイントPm2と、加算値Saddの最大値『Smax』と、関係式(B)の最小目標値『Ymin2』とにより規定されるポイントPm4とを結ぶ直線として簡単に設定することができる。
ここで、加算値Saddの最大値『Smax』に対応する関係式(A)の最小目標値『Ymin1』および関係式(B)の最小目標値『Ymin2』がそれぞれ非常に小さい値に設定されている。このことから、加算値Saddが大きすぎる場合には、小領域Ry1を占める画素の輝度の平均値の目標値Ym1と、小領域Ry2を占める画素の輝度の平均値の目標値Ym2とを標準的な値よりも十分に小さい値に設定することができる。これによって、画像全体の輝度が高い場合、即ち画像全体が明るい場合などについても、その画像に対して補正を施すことができる。つまり、本実施形態では、画像が逆光画像か否かを判定しなくても、即ち画像が逆光画像か否かに関わらず、画像に対して適宜な逆光補正処理を実行することができる。このことから、本実施形態では、「逆光画像であるか否かの判定処理」において逆光画像ではないと判定された場合であっても、「通常の逆光画像に対する補正処理」を施すことができる。
このようにしてスキャナドライバは、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とに基づき、関係式(A)、(B)から、小領域Ry1を占める画素の輝度の平均値の目標値Ym1と、小領域Ry2を占める画素の輝度の平均値の目標値Ym2とを簡単に取得することができる。
なお、本実施形態では、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して得られた加算値Saddに基づき、2つの目標値Ym1、Ym2を簡単に取得するために、関係式(A)および(B)には、直線、即ち線形関数が用いられていたが、ここで用いられる関係式(A)および(B)にあっては、必ずしもこのような線形関数が用いられる必要はない。すなわち、関係式(A)および(B)には、非線形関数が用いられても良い。
また、本実施形態では、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して、これにより得られた加算値Saddに基づき、目標値Ym1、Ym2を取得していたが、目標値Ym1、Ym2を取得するのにあたっては、必ずしもこのような加算値Saddを求める必要はない。すなわち、小領域Ry1を占める画素の輝度の平均値Yav1のみに基づき、目標値を取得しても良く、また、小領域Ry2を占める画素の輝度の平均値Yav2に基づき、目標値を取得しても良い。
また、本実施形態では、加算値Saddに基づき、2つの目標値Ym1、Ym2を取得していたが、必ずしもこのように2つの目標値Ym1、Ym2を取得する必要はなく、目標値の数は、1つであっても良く、また3つ以上であっても良い。
(3)補正情報の生成
スキャナドライバは、このようにして取得した2つの目標値Ym1、Ym2に基づき、補正情報を生成する。この補正情報は、画像読み取り装置10により読み取られた画像に対してスキャナドライバが逆光補正処理を施すための情報である。本実施形態では、スキャナドライバが逆光補正処理として前述した「濃度補正」を実行する。このことから、本実施形態では、スキャナドライバが、補正情報として、「濃度補正」における設定情報を生成する。以下に「濃度補正」における設定情報の生成方法について詳しく説明する。
図27は、補正情報として、「濃度補正」における設定情報の生成方法について説明したものである。ここでは、「濃度補正」のトーンカーブTcを調整することによって、画像読み取り装置10により読み取られた画像に対してスキャナドライバが逆光補正処理を施す。
なお、本実施形態では、「濃度補正」のトーンカーブTcとして、図8にて説明した、RGB(レッド、グリーン、ブルー)全色に対応するトーンカーブTcを調整するものとする。
このため、スキャナドライバは、補正情報として、同図に示すように、2つの目標値Ym1、Ym2に基づき、そのトーンカーブTcが通過する任意の3つのポイントPs1、Ps2、Ps3を設定する。そして、スキャナドライバは、これら3つのポイントPs1、Ps2、Ps3を通過するようにトーンカーブTcを調整する。なお、本実施形態では、ポイントPs1は、小領域Ry1に対応して設定される。また、ポイントPs2は、小領域Ry2に対応して設定される。また、ポイントPs3は、小領域Ry3に対応して設定される。また、本実施形態では、ポイントPs1の入力値を『X1』とし、その出力値を『Y1』とする。また、ポイントPs2の入力値を『X2』とし、その出力値を『Y2』とする。また、ポイントPs3の入力値を『X3』とし、その出力値を『Y3』とする。
ここで、3つのポイントPs1、Ps2、Ps3の入力値『X1』、『X2』、『X3』については、入力値が取り得る値、即ち本実施形態では、『0』〜『255』の範囲内の適宜な値に設定されれば良い。しかし、バランスが良いトーンカーブTcを形成するためには、次のように設定するのが好ましい。すなわち、これら3つのポイントPs1、Ps2、Ps3が均等にバランス良く配置されるために、入力値が取り得る値の範囲、即ち『0』〜『255』を3つに区分して各区分の内にそれぞれ、入力値『X1』、『X2』、『X3』が配置されるようにする。すなわち、入力値『X1』は、『0』〜『84』の範囲内に設定する。また、入力値『X2』は、『85』〜『169』の範囲内に設定する。また、入力値『X3』は、『170』〜『255』の範囲内に設定する。
さらに、例えば、入力値『X1』、『X2』、『X3』を各区分内のほぼ中央に位置するように設定すると好ましい。具体的には、本実施形態では、ポイントPs1の入力値『X1』を『42』に設定する。また、ポイントPs2の入力値『X2』を『127』に設定する。また、ポイントPs3の入力値『X3』を『212』に設定する。
一方、これら3つのポイントPs1、Ps2、Ps3の出力値『Y1』、『Y2』、『Y3』については、本実施形態では、次にように設定する。すなわち、ポイントPs1の出力値『Y1』およびポイントPs2の出力値『Y2』は、2つの目標値Ym1、Ym2に基づき設定される。一方、ポイントPs3の出力値『Y3』は、ポイントPs2と、ポイントPs0とに基づき設定される。ここで、ポイントPs0は、入力値を『255』とし、出力値を『255』として設定されたポイントである。ポイントPs3は、これらポイントPs2と、ポイントPs0との間を結んで設定される直線のほぼ真上に位置するように設定される。すなわち、ポイントPs3の入力値として『X3』が得られると、この入力値『X3』からこれに対応するポイントを、ポイントPs2とポイントPs0とを結ぶ直線上から探し出してポイントPs3として設定することができる。ポイントPs3の出力値『Y3』は、入力値『X3』に対応する出力値として、ポイントPs2とポイントPs0とを結ぶ直線から求めることができる。
ここで、ポイントPs1およびポイントPs2の出力値『Y1』、『Y2』の求め方について説明する。まず、ポイントPs1の出力値『Y1』の求め方について説明する。ポイントPs1は、小領域Ry1に対応して設定されるものである。補正後のヒストグラムの小領域Ry1を占める画素の輝度の平均値Yav1が目標値Ym1になるように、ポイントPs1の出力値『Y1』を設定する。具体的には、次のようにして行う。すなわち、入力値『X1』に対して「濃度補正」を施さなかった場合に得られる出力値を『Yt1』とする。つまり、この出力値『Yt1』は、入力値『X1』と同じ値となる。なお、図27においては、入力値『X1』に対して「濃度補正」を施さなかった場合のポイントを「Pt1」として示している。この出力値『Yt1』に対するポイントPs1の出力値『Y1』の差分ΔYp1を求める。この差分ΔYp1は、次のようにして求めることができる。
図28Aは、本実施形態にかかる差分ΔYp1の求める方法について説明したものである。この差分ΔYp1は、本実施形態では、スキャナドライバが求める。スキャナドライバは、まず、同図に示すように、入力値『X1』からこれに対応する出力値『Yt1』を取得する(S502)。なお、この出力値『Yt1』は、ここでは、入力値『X1』と同じ値である。次に、スキャナドライバは、差分ΔYp1を初期値、ここでは『0』に設定する(S504)。そして、スキャナドライバは、差分ΔYp1に対して『1』だけ加算した値を、新たなΔYp1として設定する(S506)。すなわち、ΔYp1が『0』であった場合には、新たなΔYp1は、『1』だけ加算されて『1』となる。
そして次に、スキャナドライバは、先に取得した出力値『Yt1』にΔYp1を加算した値をポイントPs1の出力値『Y1』として設定する(S508)。そして、このポイントPs1により設定されるトーンカーブTcに基づき「濃度補正」を実行した場合の補正後の画像のデータを取得する(S510)。なお、ここでは、このときに、図11にて説明したように、「濃度補正」の他に、「ヒストグラム調整」や「イメージ調整」等の各種調整(補正)の内容についても反映されるものとする。
このようにして補正を行った後、スキャナドライバは、この補正によって得られた画像のデータに基づき、ヒストグラムを生成する(S512)。なお、ここでは、スキャナドライバは、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムの作成を行う。次に、スキャナドライバは、このようにして作成したヒストグラムについて小領域への区分を行う(S514)。すなわち、スキャナドライバは、ここでは、前述したように、ヒストグラムにより表される領域を4つの小領域Ry1、Ry2、Ry3、Ry4に区分する。
そして、スキャナドライバは、このようにして区分により得られた4つの領域Ry1、Ry2、Ry3、Ry4の中から、小領域Ry1に関する属性情報を取得する。なお、ここで、スキャナドライバは、小領域Ry1に関する属性情報として、レッド(R)、グリーン(G)及びブルー(B)の各色の濃度値の平均値AVr1、AVg1、AVb1を取得する。そして、スキャナドライバは、取得した各色の濃度値の平均値AVr1、AVg1、AVb1に基づき、小領域Ry1を占める画素の輝度の平均値Yav1を求める(S516)。ここで、スキャナドライバは、例えば、式(7)等により、平均値Yav1を求める。
その後、スキャナドライバは、求めた平均値Yav1と、先に取得した目標値Ym1とを比較する(S518)。ここでは、スキャナドライバは、求めた平均値Yav1が、目標値Ym1以上となったか否かをチェックする。そして、求めた平均値Yav1が目標値Ym1以上となっていなかった場合には、スキャナドライバは、ステップS506へと戻り、再び、差分ΔYp1に対して『1』だけ加算して新たなΔYp1を取得する(S506)。そして、再度、ポイントPs1の出力値『Y1』を取得して(S508)、これに基づき画像の補正を行った後(S510)、ヒストグラムを生成して(S512)、小領域に区分し(S514)、小領域Ry1を占める画素の輝度の平均値Yav1を求める(S516)。その後、求めた平均値Yav1と、目標値Ym1とを比較し、再び、求めた平均値Yav1が目標値Ym1に達しているか否かをチェックする(S518)。スキャナドライバは、求めた平均値Yav1が目標値Ym1に達するまで、このような処理(S506〜S518)を繰り返し行う。すなわち、差分ΔYp1は、求めた平均値Yav1が目標値Ym1に達するまで、順次『1』ずつ加算されて増えることになる。
そして、求めた平均値Yav1が目標値Ym1に達した場合には、スキャナドライバは、ここで得られた差分ΔYp1に基づき、ポイントPs1の出力値『Y1』を設定する(S520)。すなわち、ここでスキャナドライバは、出力値『Yt1』に差分ΔYp1を加算して得られた値をポイントPs1の出力値『Y1』として設定する。
このようにしてスキャナドライバは、補正後のヒストグラムの小領域Ry1を占める画素の輝度の平均値Yav1が目標値Ym1になるようなポイントPs1の出力値『Y1』を設定する。なお、ポイントPs1の出力値『Y1』が出力値『Yt1』よりも小さい値に設定される場合には、スキャナドライバは、ステップS518において、平均値Yav1が目標値Ym1よりも下回ったか否かをチェックすると良い。
一方、ポイントPs2の出力値『Y2』についても、ポイントPs1の出力値『Y1』の場合と同様に設定する。つまり、ポイントPs2は、小領域Ry2に対応して設定されるものである。ポイントPs1の場合と同様に、補正後のヒストグラムの小領域Ry2を占める画素の輝度の平均値Yav2が目標値Ym2になるように、ポイントPs2の出力値『Y2』を設定する。要するに、入力値『X2』に対して「濃度補正」を施さなかった場合に得られる出力値を『Yt2』とすると、この出力値『Yt2』に対するポイントPs2の出力値『Y2』の差分ΔYp2を求める。なお、図27においては、入力値『X2』に対して「濃度補正」を施さなかった場合のポイントを「Pt2」として示している。
図28Bは、本実施形態にかかる差分ΔYp2の求める方法について説明したものである。なお、この差分ΔYp2についても、ポイントPs1の場合と同様に、スキャナドライバが求める。スキャナドライバは、まず、同図に示すように、入力値『X2』からこれに対応する出力値『Yt2』を取得する(S552)。なお、この出力値『Yt2』は、ここでは、入力値『X2』と同じ値となる。次に、スキャナドライバは、差分ΔYp2を初期値、ここでは『0』に設定する(S554)。そして、スキャナドライバは、差分ΔYp2に対して『1』だけ加算した値を、新たなΔYp2として設定する(S556)。
そして次に、スキャナドライバは、先に取得した出力値『Yt2』にΔYp2を加算した値をポイントPs2の出力値『Y2』として設定する(S558)。そして、このポイントPs2により設定されるトーンカーブTcに基づき「濃度補正」を実行した場合の補正後の画像のデータを取得する(S560)。なお、ここでは、このときに、図11にて説明したように、「濃度補正」の他に、「ヒストグラム調整」や「イメージ調整」等の各種調整(補正)の内容についても反映されるものとする。また、ここでは、スキャナドライバは、ポイントPs1の設定内容を反映させても反映させなくてもどちらでも構わない。
このようにして補正を行った後、スキャナドライバは、この補正によって得られた画像のデータに基づき、ヒストグラムを生成する(S562)。なお、ここでスキャナドライバは、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムの作成を行う。次に、スキャナドライバは、このようにして作成したヒストグラムについて4つの小領域Ry1、Ry2、Ry3、Ry4に区分する(S564)。
そして、スキャナドライバは、このようにして区分により得られた4つの領域Ry1、Ry2、Ry3、Ry4の中から、小領域Ry2に関する属性情報を取得する。なお、ここで、スキャナドライバは、小領域Ry2に関する属性情報として、レッド(R)、グリーン(G)及びブルー(B)の各色の濃度値の平均値AVr2、AVg2、AVb2を取得する。そして、スキャナドライバは、取得した各色の濃度値の平均値AVr2、AVg2、AVb2に基づき、小領域Ry2を占める画素の輝度の平均値Yav2を求める(S566)。ここで、スキャナドライバは、例えば、式(8)等により、平均値Yav2を求める。
その後、スキャナドライバは、求めた平均値Yav2と、先に取得した目標値Ym2とを比較する(S568)。ここで、求めた平均値Yav2が目標値Ym2に達していなかった場合には、スキャナドライバは、ステップS556へと戻り、再び、『1』加算して新たなΔYp2を取得して(S556)、ポイントPs2の出力値『Y2』を取得して(S558)、これに基づき画像の補正を行う(S560)。そして、スキャナドライバは、補正後の画像のヒストグラムを生成して(S562)、4つの小領域に区分し(S564)、平均値Yav2を再び取得する(S566)。その後、取得した平均値Yav2と、目標値Ym2とを比較し、再び、求めた平均値Yav2が目標値Ym2に達しているか否かをチェックする(S568)。スキャナドライバは、求めた平均値Yav2が目標値Ym2に達するまで、このような処理(S556〜S568)を繰り返し行う。すなわち、差分ΔYp2は、求めた平均値Yav2が目標値Ym2に達するまで、順次『1』ずつ加算されて増えることになる。
そして、スキャナドライバは、求めた平均値Yav2が目標値Ym2に達した場合には、ここで得られた差分ΔYp2に基づき、ポイントPs2の出力値『Y2』を設定する(S570)。すなわち、ここでスキャナドライバは、出力値『Yt2』に差分ΔYp2を加算して得られた値をポイントPs2の出力値『Y2』として設定する。
このようにしてスキャナドライバは、補正後のヒストグラムの小領域Ry2を占める画素の輝度の平均値Yav2が目標値Ym2になるようなポイントPs2の出力値『Y2』を設定する。なお、ポイントPs2の出力値『Y2』が出力値『Yt2』よりも小さい値に設定される場合には、スキャナドライバは、ステップS568において、平均値Yav2が目標値Ym2以下となったか否かをチェックすると良い。
なお、ポイントPs3の出力値『Y3』は、先に説明したように、入力値『X3』に対応する出力値として、ポイントPs2とポイントPs0とを結ぶ直線から求めることができる。
(4)入力値X1、X2、X3の他の設定方法
前述した3つのポイントPs1、Ps2、Ps3の各入力値『X1』、『X2』、『X3』の他の設定方法としては、次のような方法がある。すなわち、例えば、小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を考慮して設定しても良い。つまり、これら3つのポイントPs1、Ps2、Ps3の入力値『X1』、『X2』、『X3』を小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3に反映させる。具体的には、次のような設定方法がある。
図29A〜図29Cは、3つの小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を反映して、3つの入力値『X1』、『X2』、『X3』を設定する場合の一例を説明したものである。図29Aは、ポイントPs1の入力値『X1』の設定方法を説明したものである。図29Bは、ポイントPs2の入力値『X2』の設定方法を説明したものである。図29Cは、ポイントPs3の入力値『X3』の設定方法を説明したものである。
ポイントPs1の入力値『X1』を設定する場合には、図29Aに示すように、入力値『X1』が設定される『0』〜『84』の範囲内に、所定の対象範囲『a1』〜『b1』を設定する。この所定の対象範囲『a1』〜『b1』は、『0』〜『84』の間のほぼ中央に設定される。『a1』および『b1』は、それぞれ『0』〜『84』の間の適当な値に設定される。このようにして設定された所定の対象範囲『a1』〜『b1』を256等分して、『0』〜『255』の値を割り振り、小領域Ry1を占める画素の輝度の平均値Yav1が対応するポイントPk1を特定する。そして、このポイントPk1に対応する、『0』〜『84』の間の値を求める。この求めた値をポイントPs1の入力値『X1』として設定する。
また、ポイントPs2の入力値『X2』を設定する場合には、図29Bに示すように、入力値『X2』が設定される『85』〜『169』の範囲内に、所定の対象範囲『a2』〜『b2』を設定する。この所定の対象範囲『a2』〜『b2』は、『85』〜『169』の間のほぼ中央に設定される。『a2』および『b2』は、それぞれ『85』〜『169』の間の適当な値に設定される。このようにして設定された所定の対象範囲『a2』〜『b2』を256等分して、『0』〜『255』の値を割り振り、小領域Ry2を占める画素の輝度の平均値Yav2が対応するポイントPk2を特定する。そして、このポイントPk2に対応する、『85』〜『169』の間の値を求める。この求めた値をポイントPs2の入力値『X2』として設定する。
また、ポイントPs3の入力値『X3』を設定する場合には、図29Cに示すように、入力値『X3』が設定される『170』〜『255』の範囲内に、所定の対象範囲『a3』〜『b3』を設定する。この所定の対象範囲『a3』〜『b3』は、『170』〜『255』の間のほぼ中央に設定される。『a3』および『b3』は、それぞれ『170』〜『255』の間の適当な値に設定される。このようにして設定された所定の対象範囲『a3』〜『b3』を256等分して、『0』〜『255』の値を割り振り、小領域Ry3を占める画素の輝度の平均値Yav3が対応するポイントPk3を特定する。そして、このポイントPk3に対応する、『170』〜『255』の間の値を求める。この求めた値をポイントPs3の入力値『X3』として設定する。
このように小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を反映して、3つのポイントPs1、Ps2、Ps3の各入力値『X1』、『X2』、『X3』を設定する際に、所定の対象範囲『a1』〜『b1』、『a2』〜『b2』、『a3』〜『b3』を設定するのは、次の理由からである。すなわち、小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3をそのまま、入力値『X1』、『X2』、『X3』として設定した場合には、入力値『X1』、『X2』、『X3』が取り得る値の範囲が広くなり、このため、調整されるトーンカーブTcに大きな影響を与えてしまう虞があるからである。
つまり、例えば、小領域Ry1を占める画素の輝度の平均値Yav1が非常に小さかったとする。当該平均値Yav1をそのままポイントPs1の入力値『X1』として設定して、図27上のトーンカーブTcにおいてポイントPs1を設定した場合、ポイントPs1の位置が図中左側へと移動して縦軸に接近するため、トーンカーブTcの立上りが非常に急峻となってしまう。また、小領域Ry1を占める画素の輝度の平均値Yav1が非常に大きかった場合には、ポイントPs1の位置が図中右側へと移動してポイントPs2に接近するため、トーンカーブTcの形状が歪んでしまう虞がある。この点に関しては、ポイントPs2、Ps3の場合についても同様である。
そこで、ポイントPs1、Ps2、Ps3の位置が相互に接近し過ぎないようにするために、所定の対象範囲を規定する各値、即ち『a1』、『b1』、『a2』、『b2』、『a3』、『b3』をそれぞれ適宜な値に設定することで、トーンカーブTcの形状が歪にならないようにすることができる。
このようにしてスキャナドライバは、取得した2つの目標値Ym1、Ym2に基づき、補正情報として、「濃度補正」におけるトーンカーブTcを調整するための3つのポイントPs1、Ps2、Ps3を設定するための情報を生成する。
なお、本実施形態では、補正情報として3つのポイントPs1、Ps2、Ps3が設定されていたが、必ずしもこのように補正情報として3つのポイントPs1、Ps2、Ps3が設定されなくても良い。すなわち、補正情報として設定されるポイントの数としては、1つまたは2つであってもよく、さらに、4つ以上であっても構わない。設定されるポイントの数としては、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域を区分して得られる小領域の数に応じて適宜設定しても良く、また、属性情報を取得するために選出される小領域の数に応じて適宜設定しても良い。
また、補正情報として設定される3つのポイントPs1、Ps2、Ps3にあっては、入力値が取り得る値の範囲、即ち本実施形態では『0』〜『255』を3つに区分して各区分の内にそれぞれ配置されるようにしなくても良い。
また、本実施形態では、逆光補正処理として「濃度補正」が実行される関係により、補正情報として、「濃度補正」におけるトーンカーブTcを調整する3つのポイントPs1、Ps2、Ps3の設定情報を生成していたが、必ずしもこのような設定情報を補正情報として生成する必要はない。すなわち、逆光補正処理として実行される処理に応じて適切な情報を補正情報として生成すれば良い。
<逆光補正処理>
そして、スキャナドライバは、このようにして補正情報として生成した、「濃度補正」におけるトーンカーブTcを調整するための3つのポイントPs1、Ps2、Ps3に関する情報に基づき、画像読み取り装置10により読み取られた画像に対して逆光補正処理を施す。具体的には、図11にて説明した調整手順における「濃度補正」において、補正情報として生成された3つのポイントPs1、Ps2、Ps3に関する情報に基づき調整されたトーンカーブTcに基づき、画像読み取り装置10により読み取られた画像を構成する各画素のデータの各色の濃度値を変換する。これによって、スキャナドライバは、画像読み取り装置10により読み取られた画像に対して逆光補正処理を施す。
なお、ここで逆光補正処理が施される画像は、図11に示す調整手順に従って、既にヒストグラム調整やイメージ調整((3)彩度の調整を除く)等が施された画像である。スキャナドライバは、このようにして既にヒストグラム調整やイメージ調整((3)彩度の調整を除く)等が施された画像に対して「濃度補正」により逆光補正処理を施す。
===中間調の色バランスが崩れた逆光画像の補正===
次に、「中間調の色バランスが崩れた逆光画像のための補正処理」について説明する。この補正処理は、「中間調の色バランスが崩れた画像であるか否かの判定処理」において中間調の色バランスが崩れた画像であると判定された場合に実施される。
この補正処理は、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムを用いて補正処理を実施する。すなわち、「通常の逆光画像に対する補正処理」の場合と同様に、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムにおいて区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得して、その取得した属性情報に基づき、「中間調の色バランスが崩れた逆光画像のための補正処理」を実施するための補正情報を生成して、この補正情報に基づき画像に対して補正処理を施す。以下にその補正方法について詳しく説明する。
<属性情報の取得>
スキャナドライバは、まず、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムにおいて区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得する。ここで、属性情報としては、「通常の逆光画像の補正」の場合と同様に、RGB各色のヒストグラムから3つの小領域Ry1、Ry2、Ry3を占める画素の濃度値の平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3をそれぞれ取得する。
<補正情報の生成>
その後、スキャナドライバは、取得した平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、中間調の色バランスが崩れた逆光画像に対して補正処理を施すための補正情報を生成する。以下に本実施形態における補正情報の生成方法について説明する。
(1)輝度に関する情報の取得
ここで、スキャナドライバは、「通常の逆光画像の補正」の場合と同様に、取得した平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、3つの小領域Ry1、Ry2、Ry3についてそれぞれ各領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を取得する。このとき、スキャナドライバは、例えば、先の式(10)〜(12)等を用いる。また、スキャナドライバは、取得した輝度の平均値Yav1、Yav2、Yav3に基づき、画像読み取り装置10により読み取った画像の全体の輝度の平均値Yav0を求める。このとき、スキャナドライバは、例えば、先の式(13)等を用いる。
(2)目標値の取得
次に、スキャナドライバは、取得した3つの小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3と、画像の全体の輝度の平均値Yav0とに基づき、目標値を取得する。この目標値は、中間調の色バランスが崩れた逆光画像に対して補正処理を実行するために取得される値であり、その補正処理の概要を決定する上で指標となる値である。本実施形態では、中間調の色バランスが崩れた逆光画像を補正するために、この目標値として、2つの目標値Ym1、Ym2が取得される。これらのうち、目標値Ym1は、小領域Ry1に対応して取得されたものである。また、目標値Ym2は、小領域Ry2に対応して取得されたものである。
これら2つの目標値Ym1、Ym2は、「通常の逆光画像の補正」の場合と同様に、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して得られた加算値Saddに基づき、図26に示す関係式(A)、(B)により取得される。すなわち、目標値Ym1は、関係式(A)から加算値Saddに対応する値として取得される。また、目標値Ym2は、関係式(B)から加算値Saddに対応する値として取得される。
(3)補正情報の生成
スキャナドライバは、このようにして取得した2つの目標値Ym1、Ym2に基づき、補正情報を生成する。この補正情報は、中間調の色バランスが崩れた逆光画像に対して適切な補正処理を施すための情報である。本実施形態では、スキャナドライバが、中間調の色バランスが崩れた逆光画像に対する補正処理として、「通常の逆光画像の補正」の場合と同様に、前述した「濃度補正」を実行する。このことから、本実施形態では、スキャナドライバが、補正情報として、「濃度補正」における設定情報を生成する。以下にこの設定情報の生成方法について詳しく説明する。
スキャナドライバは、中間調の色バランスが崩れた逆光画像に対して「濃度補正」を実行するために、図8にて説明した、レッド(R)、グリーン(G)およびブルー(B)の各色のトーンカーブTcr、Tcg、Tcbをそれぞれ個別に調整する。ここで、スキャナドライバは、レッド(R)、グリーン(G)およびブルー(B)の各色のトーンカーブTcr、Tcg、Tcbをそれぞれ、取得した2つの目標値Ym1、Ym2に基づき調整する。2つの目標値Ym1、Ym2は、RGB各色のトーンカーブTcr、Tcg、Tcbを調整するにあたって、各色共通の目標値として用いられる。2つの目標値Ym1、Ym2に基づき、RGB各色のトーンカーブTcr、Tcg、Tcbを調整する方法としては、図27にて説明した「通常の逆光画像の補正」の場合と同様な方法を採用する。
図30は、レッド(R)のトーンカーブTcrを2つの目標値Ym1、Ym2に基づき調整する方法について説明したものである。ここでは、レッド(R)のトーンカーブTcrの調整方法を例にして説明する。
スキャナドライバは、補正情報として、同図に示すように、2つの目標値Ym1、Ym2に基づき、そのトーンカーブTcrが通過する3つのポイントPr1、Pr2、Pr3を設定する。ポイントPr1は、小領域Ry1に対応して設定され、ポイントPr2は、小領域Ry2に対応して設定され、ポイントPr3は、小領域Ry3に対応して設定される。ポイントPr1、Pr2、Pr3の入力値をそれぞれ『Xr1』、『Xr2』、『Xr3』とする。また、ポイントPr1、Pr2、Pr3の出力値をそれぞれ『Yr1』、『Yr2』、『Yr3』とする。ここで、ポイントPr1、Pr2、Pr3の入力値『Xr1』、『Xr2』、『Xr3』は、図27にて説明したポイントPs1、Ps2、Ps3の入力値『X1』、『X2』、『X3』と同じ方法により設定する。
一方、ポイントPr1、Pr2の出力値『Yr1』、『Yr2』は、2つの目標値Ym1、Ym2に基づき設定する。また、ポイントPr3の出力値『Yr3』は、ポイントPr2と、ポイントPr0とを結ぶ直線上に設定される。ポイントPr0は、入力値を『255』とし、出力値を『255』としたポイントである。ポイントPr0の入力値『Xr3』が決定されれば、出力値『Yr3』を求めることができる。
ポイントPr1、Pr2の出力値『Yr1』、『Yr2』は、「通常の逆光画像の補正」の場合と同様な方法により求める。すなわち、例えば、ポイントPr1の出力値『Yr1』の場合には、補正後のレッド(R)のヒストグラムの小領域Ry1を占める画素の濃度値の平均値AVr1が目標値Ym1になるように、ポイントPr1の出力値『Yr1』を設定する。具体的には、入力値『Xr1』に対して「濃度補正」を施さなかった場合に得られる出力値『Yrt1』(入力値『Xr1』と同じ値)として、この出力値『Yrt1』に対するポイントPr1の出力値『Yr1』の差分ΔYrp1を求める。
図31Aは、この差分ΔYrp1を求める方法について説明したものである。スキャナドライバは、まず、同図に示すように、入力値『Xr1』から出力値『Yrt1』を取得する(S602)。次に、差分ΔYrp1を初期値『0』に設定する(S604)。そして、差分ΔYrp1に対して『1』だけ加算した値を、新たなΔYrp1として設定する(S606)。次に、先に取得した出力値『Yrt1』にΔYrp1を加算した値をポイントPr1の出力値『Yr1』として設定して(S608)、このポイントPr1により設定されるトーンカーブTcrに基づき「濃度補正」を実行した場合の補正後の画像のデータを取得する(S610)。なお、ここでは、このときに、図11にて説明したように、「濃度補正」の他に、「ヒストグラム調整」や「イメージ調整」等の各種調整(補正)の内容についても反映されるものとする。
このようにして補正を行った後、この補正によって得られた画像のデータに基づき、レッド(R)のヒストグラムを生成する(S612)。そして、作成したレッド(R)のヒストグラムについて小領域への区分を行う(S614)。ここでヒストグラムは、4つの小領域Ry1、Ry2、Ry3、Ry4に区分される。そして、小領域Ry1に関する属性情報として濃度値の平均値AVr1を取得する(S616)。その後、求めた平均値AVr1と、先に取得した目標値Ym1とを比較し(S618)、求めた平均値AVr1が、目標値Ym1以上となったか否かをチェックする。そして、求めた平均値AVr1が目標値Ym1以上となっていない場合には、ステップS606へと戻り、再び、差分ΔYrp1に対して『1』だけ加算して新たなΔYrp1を取得する(S606)。スキャナドライバは、求めた平均値AVr1が目標値Ym1に達するまで、このような処理(S606〜S618)を繰り返し行う。すなわち、差分ΔYrp1は、求めた平均値AVr1が目標値Ym1に達するまで、順次『1』ずつ加算されて増えることになる。
そして、求めた平均値AVr1が目標値Ym1に達した場合には、スキャナドライバは、ここで得られた差分ΔYrp1に基づき、ポイントPr1の出力値『Yr1』を設定する(S620)。このようにして補正後のレッド(R)のヒストグラムの小領域Ry1を占める画素の濃度値の平均値AVr1が目標値Ym1になるように、ポイントPr1の出力値『Yr1』を設定する。なお、ポイントPr1の出力値『Yr1』が出力値『Yrt1』よりも小さい値に設定される場合には、ステップS618において、平均値AVr1が目標値Ym1よりも下回ったか否かをチェックすると良い。
一方、ポイントPr2の出力値『Yr2』についても同様な方法により、補正後のレッド(R)のヒストグラムの小領域Ry2を占める画素の濃度値の平均値AVr2が目標値Ym2になるように、ポイントPr2の出力値『Yr2』を設定する。なお、ポイントPr2の出力値『Yr2』の設定手順を図31Bに示す。
スキャナドライバは、このような方法により、レッド(R)を除く他のグリーン(G)、ブルー(B)のトーンカーブTcg、Tcbについても、2つの目標値Ym1、Ym2に基づき調整をする。
<補正処理>
そして、スキャナドライバは、このようにして補正情報に基づき調整された、「濃度補正」における各色別のトーンカーブTcr、Tcg、Tcbに基づき、画像読み取り装置10により読み取られた画像に対して、中間調の色バランスが崩れた逆光画像のための補正処理を施す。具体的には、図11にて説明した調整手順における「濃度補正」において、補正情報に基づき調整された「濃度補正」における各色別のトーンカーブTcr、Tcg、Tcbに基づき、画像読み取り装置10により読み取られた画像を構成する各画素のデータの各色の濃度値を変換する。これによって、スキャナドライバは、画像読み取り装置10により読み取られた画像に対して中間調の色バランスが崩れた逆光画像のための補正処理を施す。
なお、ここで中間調の色バランスが崩れた逆光画像のための補正処理が施される画像は、図11に示す調整手順に従って、既にヒストグラム調整やイメージ調整((3)彩度の調整を除く)等が施された画像である。スキャナドライバは、このようにして既にヒストグラム調整やイメージ調整((3)彩度の調整を除く)等が施された画像に対して「濃度補正」により中間調の色バランスが崩れた逆光画像のための補正処理を施す。
図32Aおよび図32Bは、中間調の色バランスが崩れた逆光画像の補正処理前と補正処理後のRGB各色の平均値を示したものである。図32Aは、補正処理前のRGB各色の平均値を示している。図32Bは、補正処理後のRGB各色の平均値を示している。
補正処理前には、図32Aに示すように、3つの小領域Ry1、Ry2、Ry3を占める画素のRGB各色の濃度値の平均値は、小領域Ry2、即ち中間調の領域において、他の小領域Ry1、Ry3に比べてバラツキが大きくなっている。
一方、補正処理後には、図32Bに示すように、RGB各色の小領域Ry1の平均値AVr1、AVg1、AVb1が、各色共通の目標値Ym1になるように、それぞれ設定される。このことから、RGB各色の小領域Ry1の平均値AVr1、AVg1、AVb1は、共にほぼ同じ値に設定される。また、RGB各色の小領域Ry2についても同様に、RGB各色の小領域Ry2の平均値AVr2、AVg2、AVb2が、各色共通の目標値Ym2になるようにそれぞれ設定される。このことから、RGB各色の小領域Ry2の平均値AVr2、AVg2、AVb2は、共にほぼ同じ値に設定される。
図33は、この補正処理において生成されるRGB各色のトーンカーブTcr、Tcg、Tcbの一例を説明したものである。RGB各色のトーンカーブTcr、Tcg、Tcbは、同図に示すように、それぞれ異なる形状に形成される。これは、RGB各色のトーンカーブTcr、Tcg、Tcbを形成するために設定される任意のポイント(例えば、レッド(R)のトーンカーブTcrの場合、ポイントPr1、Pr2、Pr3など)が、RGB各色毎にそれぞれ個別に設定されるからである。このようにRGB各色のトーンカーブTcr、Tcg、Tcbがそれぞれ個別に形成されることで、中間調の色バランスが崩れた逆光画像に対して適切な補正処理を施すことができる。
図34Aおよび図34Bは、補正処理前と補正処理後のRGB各色のヒストグラムの一例を示したものである。図34Aは、補正処理前のRGB各色のヒストグラムを示したものである。図34Bは、補正処理後のRGB各色のヒストグラムを示したものである。
補正処理前は、図34Aに示すように、レッド(R)およびグリーン(G)のヒストグラムは、大幅な相違はなく、ほぼ等しい特性を有しているのに対して、ブルー(B)のヒストグラムは、レッド(R)およびグリーン(G)のヒストグラムに対して形状が大幅に相違し、異なる特性を有している。一方、補正処理後は、図34Bに示すように、ブルー(B)のヒストグラムは改善されて、レッド(R)やグリーン(G)のヒストグラムとほぼ同じ特性を有するようになる。
===夕焼け・朝焼けの逆光画像の補正===
次に、「夕焼けまたは朝焼けの逆光画像のための補正処理」について説明する。この補正処理は、「夕焼けまたは朝焼けの画像であるか否かの判定処理」において、夕焼けまたは朝焼けの画像であると判定された場合に実施される。
この補正処理は、図13にて説明した手順にて実施される。ただし、ここで、スキャナドライバは、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムを用いて実施する。すなわち、「通常の逆光画像に対する補正処理」や「中間調の色バランスが崩れた逆光画像のための補正処理」の場合と同様に、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムにおいて区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得して、その取得した属性情報に基づき、画像に対して補正処理を施す。以下にその補正方法について詳しく説明する。
<属性情報の取得>
スキャナドライバは、まず、先の「逆光画像の判定」にて生成したRGB各色のヒストグラムにおいて区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4のうちの3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得する。ここで、属性情報としては、「通常の逆光画像の補正」の場合と同様に、RGB各色のヒストグラムから3つの小領域Ry1、Ry2、Ry3を占める画素の濃度値の平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3をそれぞれ取得する。
<補正情報の生成>
その後、スキャナドライバは、取得した平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、夕焼けまたは朝焼けの逆光画像に対して補正処理を施すための補正情報を生成する。以下に本実施形態における補正情報の生成方法について説明する。
(1)輝度に関する情報の取得
ここで、スキャナドライバは、「通常の逆光画像の補正」の場合および「中間調の色バランスが崩れた逆光画像の補正処理」の場合と同様に、取得した平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、3つの小領域Ry1、Ry2、Ry3についてそれぞれ各領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を取得する。このとき、スキャナドライバは、例えば、先の式(10)〜(12)等を用いる。また、スキャナドライバは、取得した輝度の平均値Yav1、Yav2、Yav3に基づき、画像読み取り装置10により読み取った画像の全体の輝度の平均値Yav0を求める。このとき、スキャナドライバは、例えば、先の式(13)等を用いる。
(2)目標値の取得
次に、スキャナドライバは、取得した3つの小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3と、画像の全体の輝度の平均値Yav0とに基づき、目標値を取得する。この目標値は、夕焼けまたは朝焼けの逆光画像に対して補正処理を実行するために取得される値であり、その補正処理の概要を決定する上で指標となる値である。本実施形態では、夕焼けまたは朝焼けの逆光画像を補正するために、この目標値として、2つの目標値Ym1、Ym2が取得される。これらのうち、目標値Ym1は、小領域Ry1に対応して取得されたものである。また、目標値Ym2は、小領域Ry2に対応して取得されたものである。なお、ここで、小領域Ry1は、「第2小領域」に相当する。また、小領域Ry2は、「第1小領域」に相当する。
これら2つの目標値Ym1、Ym2は、「通常の逆光画像の補正」の場合や「中間調の色バランスが崩れた逆光画像の補正処理」の場合と同様に、小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して得られた加算値Saddに基づき、図26に示す関係式(A)、(B)により取得される。すなわち、目標値Ym1は、関係式(A)から加算値Saddに対応する値として取得される。また、目標値Ym2は、関係式(B)から加算値Saddに対応する値として取得される。
(3)補正情報の生成
スキャナドライバは、このようにして取得した2つの目標値Ym1、Ym2に基づき、補正情報を生成する。この補正情報は、夕焼けまたは朝焼けの逆光画像に対して適切な補正処理を施すための情報である。本実施形態では、スキャナドライバが、夕焼けまたは朝焼けの逆光画像に対する補正処理として、「通常の逆光画像の補正」の場合や「中間調の色バランスが崩れた逆光画像の補正処理」の場合と同様に、前述した「濃度補正」を実行する。このことから、本実施形態では、スキャナドライバが、補正情報として、「濃度補正」における設定情報を生成する。以下にこの設定情報の生成方法について詳しく説明する。
スキャナドライバは、夕焼けまたは朝焼けの逆光画像に対して「濃度補正」を実行するために、「中間調の色バランスが崩れた逆光画像の補正処理」の場合と同様に、図8にて説明した、レッド(R)、グリーン(G)およびブルー(B)の各色のトーンカーブTcr、Tcg、Tcbをそれぞれ個別に調整する。ここで、スキャナドライバは、レッド(R)、グリーン(G)およびブルー(B)の各色のトーンカーブTcr、Tcg、Tcbをそれぞれ、取得した2つの目標値Ym1、Ym2に基づき調整する。2つの目標値Ym1、Ym2に基づき、RGB各色のトーンカーブTcr、Tcg、Tcbを調整する方法としては、図30にて説明した「中間調の色バランスが崩れた逆光画像の補正処理」の場合と同様な方法を採用する。
ただし、ここで行われるRGB各色のトーンカーブTcr、Tcg、Tcbの調整方法にあっては、前述した「中間調の色バランスが崩れた逆光画像の補正処理」の場合とは、一部調整方法が異なる。すなわち、前述した「中間調の色バランスが崩れた逆光画像の補正処理」の場合では、2つの目標値Ym1、Ym2が、RGB各色のトーンカーブTcr、Tcg、Tcbを調整するにあたって、各色共通の目標値として用いられていた。しかし、ここで行われる補正処理では、2つの目標値Ym1、Ym2のうち、目標値Ym1については、各色共通の目標値として用いられるものの、目標値Ym2については、レッド(R)、グリーン(G)およびブルー(B)の各色共通の目標値としてではなく、いずれか1色のみの目標値として用いる。他の色の目標値は、この目標値Ym2に基づきそれぞれ個別に求めた別の目標値を用いる。すなわち、各色別の目標値が用いられる。ここで、目標値Ym2がそのまま用いられる色は、小領域Ry2を占める画素の濃度値の平均値が最も大きい色に設定される。その他の色については、小領域Ry2を占める画素の濃度値の平均値に応じて、目標値Ym2に基づきそれぞれ個別に目標値が設定される。
具体的に、レッド(R)のトーンカーブTcrの調整方法を例にして説明する。スキャナドライバは、補正情報として、図30に示すように、2つの目標値Ym1、Ym2に基づき、そのトーンカーブTcrが通過する3つのポイントPr1、Pr2、Pr3を設定する。ポイントPr1は、小領域Ry1に対応して設定され、ポイントPr2は、小領域Ry2に対応して設定され、ポイントPr3は、小領域Ry3に対応して設定される。ポイントPr1、Pr2、Pr3の入力値をそれぞれ『Xr1』、『Xr2』、『Xr3』とし、ポイントPr1、Pr2、Pr3の出力値をそれぞれ『Yr1』、『Yr2』、『Yr3』とする。ここで、ポイントPr1、Pr2、Pr3の入力値『Xr1』、『Xr2』、『Xr3』は、図27にて説明したポイントPs1、Ps2、Ps3の入力値『X1』、『X2』、『X3』と同じ方法により設定する。
一方、ポイントPr1、Pr2の出力値『Yr1』、『Yr2』は、2つの目標値Ym1、Ym2に基づき設定する。また、ポイントPr3の出力値『Yr3』は、ポイントPr2と、ポイントPr0とを結ぶ直線上に設定される。ポイントPr0は、入力値を『255』とし、出力値を『255』としたポイントである。ポイントPr0の入力値『Xr3』が決定されれば、出力値『Yr3』を求めることができる。
ポイントPr1、Pr2の出力値『Yr1』、『Yr2』は、「中間調の色バランスが崩れた逆光画像の補正」の場合と同様な方法により求める。ただし、ここでポイントPr2の出力値『Yr2』については、レッド(R)、グリーン(G)およびブルー(B)の各色に応じてそれぞれ設定方法が異なる。つまり、レッド(R)、グリーン(G)およびブルー(B)のいずれか1色については、目標値Ym2がそのまま用いられるものの、その他の色については、この目標値Ym2に基づきそれぞれ個別に得られた別の目標値が用いられる。
ここで、補正対象となる画像が、図22A〜図22Cに示すようなヒストグラムの特性を有する夕焼けの画像であったとする。この場合、小領域Ry2を占める画素の濃度値の平均値が最も高い色は、レッド(R)となる。このことから、目標値Ym2がそのまま用いられる色は、レッド(R)に設定される。一方、その他の色、即ち、グリーン(G)やブルー(B)については、目標値Ym2に基づき、小領域Ry2を占める画素の濃度値の平均値に応じて、それぞれ個別に目標値が設定される。ここで設定されるグリーン(G)の目標値を『Mg2』とし、ブルー(B)の目標値を『Mb2』とすると、これらの目標値『Mg2』、『Mb2』は、次のような関係式(14)、(15)により求めることができる。
Mg2=Ym2×AVg2/AVr2 ………………(14)
Mb2=Ym2×AVb2/AVr2 ………………(15)
これらの関係式(14)、(15)は、補正後のRGB各色の小領域Ry2を占める画素の濃度値の平均値の比率が、補正前の比率とほぼ同じになるように設定するためのものである。このような関係式(14)、(15)を用いて目標値『Mg2』、『Mb2』を取得すれば、補正後の中間調領域において補正前の色バランスの保持を図ることができる。
これによって、レッド(R)については、補正後のレッド(R)のヒストグラムの小領域Ry2を占める画素の濃度値の平均値AVr2が目標値Ym2になるように、ポイントPr2の出力値『Yr2』が設定される。
一方、グリーン(G)およびブルー(B)については、次のように設定される。図35は、グリーン(G)のトーンカーブTcgの調整方法について説明したものである。図36は、ブルー(B)のトーンカーブTcbの調整方法について説明したものである。グリーン(G)のトーンカーブTcgを調整するためのポイントを、図35に示すように、Pg1、Pg2、Pg3とし、ブルー(B)のトーンカーブTcbを調整するためのポイントを、図36に示すように、Pb1、Pb2、Pb3とする。グリーン(G)のポイントPg1の出力値を『Yg1』とし、ポイントPg2の出力値を『Yg2』とし、ポイントPg3の出力値を『Yg3』とする。また、ブルー(B)のポイントPb1の出力値を『Yb1』とし、ポイントPb2の出力値を『Yb2』とし、ポイントPb3の出力値を『Yb3』とする。
グリーン(G)のポイントPg2については、補正後のグリーン(G)のヒストグラムの小領域Ry2を占める画素の濃度値の平均値AVg2が目標値Mg2になるように、ポイントPg2の出力値『Yg2』が設定される。また、ブルー(B)のポイントPb2については、補正後のブルー(B)のヒストグラムの小領域Ry2を占める画素の濃度値の平均値AVb2が目標値Mb2になるように、ポイントPb2の出力値『Yb2』が設定される。
なお、ポイントPr1、Pg1、Pb1の出力値『Yr1』、『Yg1』、『Yb1』については、目標値Ym1がRGB各色共通の目標値として用いられる。すなわち、補正後のレッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムの小領域Ry1を占める画素の濃度値の平均値AVr1、AVg1、AVb1がそれぞれ目標値Ym1になるように、RGB各色のポイントPr1、Pg1、Pb1の出力値『Yr1』、『Yg1』、『Yb1』は設定される。
レッド(R)、グリーン(G)およびブルー(B)の各色のトーンカーブTcr、Tcg、TcbのポイントPr1、Pg1、Pb1の出力値『Yr1』、『Yg1』、『Yb1』を求める方法としては、図31Aにて説明した方法を用いることができる。また、レッド(R)のトーンカーブTcrのポイントPr2の出力値『Yr2』を求める方法としては、図31Bにて説明した方法を用いることができる。
一方、グリーン(G)およびブルー(B)のトーンカーブTcg、TcbのポイントPg2、Pb2の出力値『Yg2』、『Yb2』を求める方法としては、次のような方法となる。図37Aは、グリーン(G)のトーンカーブTcgのポイントPg2の出力値『Yg2』を取得する方法の一例を示したものである。図37Bは、ブルー(B)のトーンカーブTcbのポイントPb2の出力値『Yb2』を取得する方法の一例を示したものである。これら図37Aおよび図37Bに示す方法にあっては、前述した図31Aおよび図31Bに示す方法と同様な方法により、ポイントPg2の出力値『Yg2』と、ポイントPb2の出力値『Yb2』とを取得する。ただし、ここでは、グリーン(G)のポイントPg2の出力値『Yg2』は、図37Aの中のステップS718に示すように、目標値Mg2に基づき設定される。また、ブルー(B)のポイントPb2の出力値『Yb2』は、図37Bの中のステップS768に示すように、目標値Mb2に基づき設定される。
<補正処理>
そして、スキャナドライバは、このようにして補正情報として生成した、「濃度補正」における各色のトーンカーブTcr、Tcg、Tcbを調整するための各色3つのポイントPr1、Pr2、Pr3、Pg1、Pg2、Pg3、Pb1、Pb2、Pb3に関する情報に基づき、画像読み取り装置10により読み取られた画像に対して、夕焼けまたは朝焼けの逆光画像のための補正処理を施す。具体的には、図11にて説明した調整手順における「濃度補正」において、補正情報として生成された各色3つのポイントPr1、Pr2、Pr3、Pg1、Pg2、Pg3、Pb1、Pb2、Pb3に関する情報に基づき調整されたトーンカーブTcr、Tcg、Tcbに基づき、画像読み取り装置10により読み取られた画像を構成する各画素のデータの各色の濃度値を変換する。これによって、スキャナドライバは、画像読み取り装置10により読み取られた画像に対して夕焼けまたは朝焼けの逆光画像のための補正処理を施す。
なお、ここで夕焼けまたは朝焼けの逆光画像のための補正処理が施される画像は、図11に示す調整手順に従って、既にヒストグラム調整やイメージ調整((3)彩度の調整を除く)等が施された画像である。スキャナドライバは、このようにして既にヒストグラム調整やイメージ調整((3)彩度の調整を除く)等が施された画像に対して「濃度補正」により夕焼けまたは朝焼けの逆光画像のための補正処理を施す。
図38Aおよび図38Bは、夕焼けまたは朝焼けの逆光画像の補正処理前と補正処理後のRGB各色の平均値を示したものである。図38Aは、補正処理前のRGB各色の平均値を示している。図38Bは、補正処理後のRGB各色の平均値を示している。
補正処理前には、図38Aに示すように、3つの小領域Ry1、Ry2、Ry3を占める画素のRGB各色の濃度値の平均値は、小領域Ry3、即ちハイライトの領域において、特定の色(レッド(R))が大きくなっている。一方、小領域Ry1、Ry2、即ちシャドウの領域および中間調の領域では、RGB各色の濃度値の平均値が非常に小さくなっている。
一方、補正処理後には、図38Bに示すように、RGB各色の小領域Ry1の平均値AVr1、AVg1、AVb1が、各色共通の目標値Ym1になるように、それぞれ設定される。このことから、RGB各色の小領域Ry1の平均値AVr1、AVg1、AVb1は、共にほぼ同じ値に設定されて、シャドウの領域の画質が改善される。
また、RGB各色の小領域Ry2については、補正前のRGB各色の平均値の比率が保持されるように、RGB各色の小領域Ry2の平均値AVr2、AVg2、AVb2が、各色個別の目標値Ym2、Mg2、Mb2になるようにそれぞれ設定される。このことから、RGB各色の小領域Ry2の平均値AVr2、AVg2、AVb2は、補正前の比率を保持されたまま、中間調の領域の画質が改善される。
図39は、この補正処理において生成されるRGB各色のトーンカーブTcr、Tcg、Tcbの一例を説明したものである。RGB各色のトーンカーブTcr、Tcg、Tcbは、同図に示すように、それぞれ異なる形状に形成される。これは、RGB各色のトーンカーブTcr、Tcg、Tcbを形成するために設定される任意のポイント(例えば、レッド(R)のトーンカーブTcrの場合、ポイントPr1、Pr2、Pr3など)が、RGB各色毎にそれぞれ個別に設定されるからである。そして、ここでは、同図に示すように、シャドウの領域の他に、中間調の領域やハイライトの領域にも十分に補正が施されるように、RGB各色のトーンカーブTcr、Tcg、Tcbが形成されている。このようにRGB各色のトーンカーブTcr、Tcg、Tcbが形成されていることで、夕焼けまたは朝焼けの逆光画像に対して適切な補正処理を施すことができる。
図40Aおよび図40Bは、補正処理前と補正処理後のRGB各色のヒストグラムの一例を示したものである。図40Aは、補正処理前のRGB各色のヒストグラムを示したものである。図40Bは、補正処理後のRGB各色のヒストグラムを示したものである。
補正処理前は、図40Aに示すように、シャドウの領域と、ハイライトの領域とに画素が偏った典型的な逆光画像の特性を有している。一方、補正処理後は、図40Bに示すように、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムは、シャドウの領域から、中間調の領域、ハイライトの領域にかけて全体的に明るくなるように改善されている。
===その他応用例===
ここでは、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域をそれぞれ4つの小領域Ry1、Ry2、Ry3、Ry4に区分していたが、必ずしもこのように4つの小領域Ry1、Ry2、Ry3、Ry4に区分する必要はない。つまり、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域は、少なくとも3つ以上の小領域に区分されれば良く、3つの小領域に区分されても良く、また5つ以上の小領域に区分されても良い。
また、ここでは、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域を区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4に、相互に面積がほぼ等しく、また相互に画素数がほぼ等しい3つの小領域Ry1、Ry2、Ry3が含まれていたが、必ずしもこのように面積や画素数が相互にほぼ等しい小領域が設けられる必要はない。また、必ずしもこのように面積または画素数が相互にほぼ等しい小領域が3つ設けられる場合には限られず、2つであっても良く、また4つ以上であっても良い。
また、ここでは、「夕焼けまたは朝焼けの逆光画像の補正処理」において、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域を区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4の中から、属性情報を取得するために、3つの小領域Ry1、Ry2、Ry3が選出されていたが、必ずしもこのように選出される場合には限られない。つまり、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムにより表される領域を区分して得られた2つ以上の小領域の中からは、少なくとも1つの小領域を選出すれば良く、3つの小領域Ry1、Ry2、Ry3のうちのいずれか1つのみを選出しても良い。また、ここで説明した方法以外の方法により小領域が区分された場合には、他の手法により小領域を選出しても良い。
また、ここでは、「夕焼けまたは朝焼けの逆光画像の補正処理」において、小領域Ry1、Ry2、Ry3からそれぞれ属性情報として、各色別に小領域Ry1、Ry2、Ry3を占める画素の濃度値の平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3を取得していたが、必ずしもこのような属性情報を取得しなくても良い。すなわち、選出した小領域から取得する属性情報としては、どのような属性情報であっても良く、例えば、選出した小領域Ry1、Ry2、Ry3を占める画素の濃度値の上限値または下限値や、選出された小領域Ry1、Ry2、Ry3の面積の大きさ等であっても良い。なお、選出した小領域から取得する属性情報としては、「夕焼けまたは朝焼けの逆光画像の補正処理」を行う上で有力となる情報が望ましい。
また、ここでは、「夕焼けまたは朝焼けの逆光画像の補正処理」において、小領域Ry1、Ry2、Ry3からそれぞれ属性情報として取得した、各色別に小領域Ry1、Ry2、Ry3を占める画素の濃度値の平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、輝度に関する情報を取得し、さらにその輝度に関する情報に基づき2つの目標値Ym1、Ym2を取得して、それらの目標値Ym1、Ym2に基づき補正処理を実行していたが、ここで行われる補正処理にあっては、必ずしもこのような方法により実行されなくても構わない。つまり、3つの小領域Ry1、Ry2、Ry3から取得した属性情報に基づき目標値を取得して、他の方法により補正処理が実行されても良い。
また、ここでは、「夕焼けまたは朝焼けの逆光画像の補正処理」として、「濃度補正」においてトーンカーブTcr、Tcg、Tcbを調整することにより実施していたが、必ずしもこのような方法により補正処理が施される必要はない。すなわち、夕焼けまたは朝焼けの逆光画像に対する補正処理であれば、どのような補正処理が実行されても構わない。
===まとめ===
以上、本実施形態にあっては、画像読み取り装置10により読み取られた画像を構成する各画素のデータに基づき、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムを生成して、これらのヒストグラムにより表される領域をそれぞれ4つの小領域Ry1、Ry2、Ry3、Ry4に区分して、これら4つの小領域Ry1、Ry2、Ry3、Ry4の中から3つの小領域Ry1、Ry2、Ry3を各色別に選出して、これら3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得して、これらの属性情報に基づき、目標値Ym1、Ym2を取得して、その目標値に基づき、画像読み取り装置10により読み取られた画像に対して「夕焼けまたは朝焼けの逆光画像の補正処理」を施すから、画像読み取り装置10により読み取られた画像が夕焼けまたは朝焼けの画像である場合に、適切な補正処理を施すことができる。
また、「夕焼けまたは朝焼けの逆光画像の補正処理」において、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにより表される領域をそれぞれ区分して得られた4つの小領域Ry1、Ry2、Ry3、Ry4の中に、相互に面積および画素数がほぼ等しい3つの小領域Ry1、Ry2、Ry3が設けられ、これら3つの小領域Ry1、Ry2、Ry3からそれぞれ属性情報を取得することで、画像読み取り装置10により読み取られた画像が夕焼けまたは朝焼けの画像である場合に、適切な補正処理を施すことができる。
また、「夕焼けまたは朝焼けの逆光画像の補正処理」において、属性情報として、選出された3つの小領域Ry1、Ry2、Ry3を占める画素の各色の濃度値の平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3を取得することで、画像読み取り装置10により読み取られた画像が夕焼けまたは朝焼けの画像である場合に、より適切な補正処理を施すことができる。
また、「夕焼けまたは朝焼けの逆光画像の補正処理」において、選出された3つの小領域Ry1、Ry2、Ry3を占める画素の各色の濃度値の平均値AVr1、AVr2、AVr3、AVg1、AVg2、AVg3、AVb1、AVb2、AVb3に基づき、3つの小領域Ry1、Ry2、Ry3を占める画素の輝度の平均値Yav1、Yav2、Yav3を取得することで、画像読み取り装置10により読み取られた画像が夕焼けまたは朝焼けの画像である場合に、より適切な補正処理を施すことができる。
また、「夕焼けまたは朝焼けの逆光画像の補正処理」において、取得した小領域Ry1を占める画素の輝度の平均値Yav1と、画像の全体の輝度の平均値Yav0とを加算して加算値Saddを取得することで、より適切な目標値を取得することができる。これによって、画像読み取り装置10により読み取られた画像が夕焼けまたは朝焼けの画像である場合に、より適切な補正処理を施すことができる。
また、「夕焼けまたは朝焼けの逆光画像の補正処理」として、「濃度補正」を実行することで、画像読み取り装置10により読み取られた画像に対して簡単に「夕焼けまたは朝焼けの逆光画像の補正処理」を施すことができる。
===印刷装置への適用===
このような画像読み取り装置10にあっては、印刷装置に搭載されても良い。図41は、このような画像読み取り装置10を備えた印刷装置220の構成例を説明したものである。この印刷装置220は、原稿から画像を読み取って画像データを生成するスキャナ機能と、ホストコンピュータ248から送られてきた印刷データに基づき印刷用紙等の各種媒体に印刷を施すプリンタ機能と、原稿から読み取った画像を媒体に印刷して複写するローカルコピー機能とを備えた複合装置である。この印刷装置220は、原稿から画像を読み取るスキャナ部222(スキャナ制御部238を含め、ここでいう「画像読み取り装置10」に相当する)と、印刷用紙等の媒体Sに印刷を施すプリンタ部224とを備えている。
さらにこの印刷装置220の制御部226には、同図に示すように、CPU228と、メモリ230と、外部通信インターフェイス232と、操作入力インターフェイス234と、表示制御部236と、スキャナ制御部238と、画像処理部240と、プリンタ制御部242と、カードインターフェイス244と、これらを相互に接続するバス246とを備えている。
CPU228は、この印刷装置220全体の制御を司る。メモリ230は、CPU228により実行されるプログラムやそのプログラムで使用されるデータ等が格納される。外部通信インターフェイス232は、ホストコンピュータ248との間で有線または無線等により通信を行う。操作入力インターフェイス234は、操作ボタン250等を通じてユーザから操作入力を受け付ける。表示制御部236は、液晶ディスプレイ252等の表示部を制御する。
一方、スキャナ制御部238は、スキャナ部222を制御して原稿から画像を読み取る読み取り動作を実行する。画像処理部240は、スキャナ部222により原稿から読み取られた画像をプリンタ部224にて媒体に印刷するために、スキャナ部222から出力された画像のデータをプリンタ部224にて印刷処理を実行するためのデータに変換する役割を果たす。プリンタ制御部242は、プリンタ部224を制御する。また、カードインターフェイス244は、カードリーダー部254にセットされた各種メモリカードから、当該メモリカードに格納された画像データを読み込む処理等を行う。
そして、この印刷装置220は、スキャナ機能時には、スキャナ部222により原稿から読み取った画像のデータをホストコンピュータ248に出力する。また、プリンタ機能時には、この印刷装置220は、ホストコンピュータ248から送られてきた印刷データに基づき、プリンタ部224によって各種媒体に印刷を施す。また、ローカルコピー機能時には、この印刷装置220は、スキャナ部222により原稿から読み取った画像をプリンタ部224によって各種媒体に印刷して複写する。
===その他の実施の形態===
以上、本発明について画像読み取りシステムの一実施形態を例にして説明したが、上記の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更または改良され得るとともに、本発明には、その等価物が含まれることは言うまでもない。特に、以下に述べる実施形態であっても、本発明に含まれるものである。
<画像について>
前述した実施の形態では、画像として、画像読み取り装置10により読み取られた画像を例にして説明したが、ここでいう「画像」としては、どのような画像であっても良い。例えば、具体的には、デジタルカメラ等により撮影された画像などであっても良い。また、画像の形式としては、どのようなタイプであっても良く、例えば、JPEG形式やビットマップ形式、YUV形式等の各種形式により表現される画像であっても良い。
<濃度値について>
前述した実施の形態では、「濃度値」として、256階調にて表現される濃度値、即ち例えば「0」〜「255」の値を取り得る濃度値を例にして説明したが、ここでいう「濃度値」にあっては、このような濃度値には限らない。すなわち、ここでいう「濃度値」にあっては、画像を構成する各画素の濃淡を表現するためのデータであればどのような濃度値であっても良い。なお、この「濃度値」には、YUV形式等により表される輝度の濃度値も含まれる。
<ヒストグラムについて>
前述した実施の形態では、「ヒストグラムのデータ」として、レッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムのデータが生成されていたが、ここでいう「ヒストグラムのデータ」にあっては、必ずしもこれらレッド(R)、グリーン(G)およびブルー(B)の3色のヒストグラムのデータが生成される場合には限られない。つまり、少なくとも2種類以上の異なる色のヒストグラムのデータが「ヒストグラムのデータ」として生成されても良い。
<ヒストグラムデータ生成部について>
前述した実施の形態では、「ヒストグラムデータ生成部」として、スキャナドライバが、画像、即ちここでは画像読み取り装置10により読み取られた画像を構成する画素のデータに基づき、ヒストグラムのデータを生成していたが、ここでいう「ヒストグラムデータ生成部」にあっては、必ずしもこのようなスキャナドライバである必要はない。つまり、ここでいう「ヒストグラムデータ生成部」にあっては、判定対象となる画像を構成する画素のデータに基づき、ヒストグラムのデータを生成するのであれば、どのようなタイプの「ヒストグラムデータ生成部」であっても構わない。
<属性情報取得部について>
前述した実施の形態では、「属性情報取得部」として、スキャナドライバが、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにより表される領域を濃度値の大きさ別に3つ以上の小領域に区分して、これら3つ以上の小領域の中から少なくとも1つの小領域を選出して、この選出した小領域から属性情報を取得していたが、ここでいう「属性情報取得部」にあっては、必ずしもこのようなスキャナドライバである必要はない。つまり、ここでいう「属性情報取得部」にあっては、前述したような手法により属性情報を取得するのであれば、どのようなタイプの「属性情報取得部」であっても構わない。
<目標値取得部について>
前述した実施の形態では、「目標値取得部」として、スキャナドライバが、レッド(R)、グリーン(G)およびブルー(B)の各色のヒストグラムにより表される領域を濃度値の大きさ別に区分して得られた3つ以上の小領域から、他の少なくとも1つの小領域よりも濃度値が小さい小領域を少なくとも1つ第1小領域として各色別に選出するとともに、第1小領域よりも濃度値が小さい小領域を3つ以上の小領域の中から少なくとも1つ第2小領域として選出して、取得した属性情報に基づき、第1小領域に関する属性情報についての各色別の目標値と、第2小領域に関する属性情報についての各色共通の目標値とを取得していたが、ここでいう「目標値取得部」にあっては、必ずしもこのようなスキャナドライバである必要はない。つまり、ここでいう「目標値取得部」にあっては、前述したスキャナドライバに限られず、どのようなタイプのものであっても構わない。
<画像補正装置について>
前述した実施の形態では、「画像補正装置」として、画像読み取り装置10に読み取られた画像について夕焼けまたは朝焼けの逆光画像に対して補正処理をする装置を例にして説明したが、ここでいう「画像補正装置」にあっては、このような画像読み取り装置10に読み取られた画像に対して補正処理をする装置には限られない。すなわち、画像の種類は問われず、各種画像について補正処理をする装置であれば、どのようなタイプの装置も、ここでいう「画像補正装置」に含まれる。
<画像補正プログラムについて>
前述した実施の形態では、「画像補正プログラム」として、スキャナドライバが画像読み取り装置10に有線または無線等により通信可能に接続されたコンピュータ装置20において実行されていたが、ここでいう「画像補正プログラム」にあっては、このようなスキャナドライバには限られない。すなわち、ここでいう「画像補正プログラム」にあっては、夕焼けまたは朝焼けの逆光画像に対して補正処理を施すプログラムであれば、どのようなプログラムであっても良い。
<画像読み取り装置について>
前述した実施の形態では、「画像読み取り装置」として、画像を読み取るイメージセンサ50が、原稿台12にセットされた原稿15に対して相対的に移動するキャリッジ40に設けられた画像読み取り装置を例にして説明したが、ここでいう「画像読み取り装置」にあっては、必ずしもこのようなタイプの「画像読み取り装置」には限られない。つまり、原稿から画像を読み取る装置であれば、どのようなタイプの装置もここでいう「画像読み取り装置」に含まれる。すなわち、ここでいう「画像読み取り装置」にあっては、原稿15が画像を読み取るイメージセンサ50に対して相対的に移動して原稿15から画像を読み取るような画像読み取り装置も含まれる。
<印刷装置について>
前述した実施の形態では、「印刷装置」として、原稿15から画像を読み取って画像データを生成する画像読み取り部(スキャナ部222)と、媒体に対して印刷を施す印刷部(プリンタ部224)とを備えた「複合装置」の場合を例にして説明したが、ここでいう「印刷装置」にあっては、必ずしもこのように画像読み取り部(スキャナ部222(スキャナ制御部238や画像処理部240等も含む))を備えている必要はない。すなわち、ここでいう「印刷装置」としては、媒体に対して印刷を施す印刷部を少なくとも備えていれば良い。