以下に本発明の実施の形態を説明するが、出願当初の請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、出願当初の請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、出願当初の請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の出願当初の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の画像処理方法は、複数の入力画像から出力画像を推定する画像処理方法において、1画素につき所定のn個の画素値を有する画像を撮像する撮像手段が撮像した前記複数の入力画像どうしの位置関係を検出する検出ステップ(例えば、図2のステップS3)と、前記検出ステップの処理により検出された前記位置関係に基づき、前記出力画像の画素位置毎に前記複数の入力画像から考慮すべき観測画素成分を特定し、該特定された観測画素成分に基づき、1画素につき(n+1)個以上の画素値を有する前記出力画像を推定する画像推定ステップ(例えば、図2のステップS4)とを含むことを特徴とする。
請求項8に記載の画像処理方法は、前記撮像手段は、前記複数の入力画像を、適正露出未満で撮像し、前記複数の入力画像それぞれの画素値のゲインアップを行う露出補正ステップ(例えば、図2のステップS2)をさらに含むことを特徴とする。
請求項9に記載の画像処理方法は、前記画像推定ステップは、前記複数の入力画像それぞれの各画素に対して、前記検出ステップの処理により検出された前記位置関係に応じた前記各画素の補正位置を求め、前記各画素の補正位置を中心とする所定の領域内の前記出力画像の光の積分値と、前記各画素の画素値との差が、所定の誤差の範囲内であるという光量積分条件式(例えば、式(20)で表される光量積分条件式)を生成する光量積分条件式生成ステップ(例えば、図6のステップS11)と、前記光量積分条件式を演算する演算ステップ(例えば、図6のステップS14)とを有することを特徴とする。
請求項23に記載の画像処理装置は、複数の入力画像から出力画像を推定する画像処理装置(例えば、図1のデジタルカメラ1)において、1画素につき所定のn個の画素値を有する前記複数の入力画像を撮像する撮像手段(例えば、図1の撮像素子4)と、前記複数の入力画像どうしの位置関係を検出する検出手段(例えば、図4の動き検出回路23)と、前記検出手段により検出された前記位置関係に基づき、前記出力画像の画素位置毎に前記複数の入力画像から考慮すべき観測画素成分を特定し、該特定された観測画素成分に基づき、1画素につき(n+1)個以上の画素値を有する前記出力画像を推定する画像推定手段(例えば、図4の演算回路24)とを備えることを特徴とする。
請求項24に記載のプログラムの各ステップの具体例も、請求項1に記載の画像処理方法の各ステップの発明の実施の形態における具体例と同様である。
(第1実施の形態)
図1は、本発明を適用したデジタル(スチル)カメラ1の一実施の形態の構成例を示すブロック図である。
図1のデジタルカメラ1は、レンズ2、絞り3、撮像素子4、相関2重サンプリング回路5、A/D(Analog/Digital)コンバータ6、信号処理回路7、タイミングジェネレータ8、D/A(Digital/Analog)コンバータ9、ビデオエンコーダ10、モニタ11、コーデック(CODEC)12、メモリ13、バス14、CPU(Central Processing Unit)15、および入力デバイス16で構成される。また、A/Dコンバータ6は、シフト回路21を、信号処理回路7は、フレームメモリ22をそれぞれ有している。
図示せぬ被写体からの光は、レンズ2、絞り3等の光学系を通過して、撮像素子4に入射される。CCDやCMOS等で構成される単板センサの撮像素子4は、所定の画素(撮像素子)数を有している。
撮像素子4は、タイミングジェネレータ8から供給される露光タイミング信号に従い、所定の間隔で、所定の時間(シャッタ時間)だけ、入射される被写体の光を受光する。そして、撮像素子4は、撮像面上の各受光素子に到達した受光量を光電変換により電気信号に変換し、その電気信号に変換された画像信号を相関2重サンプリング回路5に供給する。撮像素子4は、単板センサとなっているので、相関2重サンプリング回路5に供給する電気信号は、1画素につきR信号、G信号、B信号のうちのいずれか1個の色信号(データ)である。
ここで、カメラブレが発生していても、より鮮明な画像を出力するために、撮像素子4は、適正露出におけるシャッタ速度(シャッタ時間(露出時間))よりも高速に(短いシャッタ時間で)複数枚(以下では、N枚とする)撮像するものとする。従って、撮像素子4で撮像されたN枚の画像(入力画像)は、適正露出で撮像された画像より、暗いもの(適正露出未満で撮像されたもの)となっており、適正露出で撮像された画像のMk分の1(=1/Mk)(k=1乃至N)の明るさであるとする。なお、Mkの値は、例えば、シャッタ速度により決定される。
相関2重サンプリング回路5は、撮像素子4から供給される画像信号(電気信号)のノイズ成分を、相関2重サンプリングにより除去し、A/Dコンバータ6に供給する。A/Dコンバータ6は、相関2重サンプリング回路5から供給される、ノイズ除去された被写体の画像信号をA/D変換、即ち、サンプリングして量子化する。その後、シフト回路21が、適正露出以下の暗い画像であるA/D変換後のデジタル画像を、例えば、n'ビットシフトすることなどによってMk倍することにより、適正露出と同一の明るさ(値)の画像信号に変換し(ゲインアップし)、信号処理回路7に供給する。
相関2重サンプリング回路5では、画像信号のノイズ成分が除去されるが、ノイズ成分のすべてが完全に除去されるわけではない。従って、相関2重サンプリング回路5で除去されないノイズ成分も存在する。この場合、相関2重サンプリング回路5で除去されないノイズ成分は、画像信号の真値に対する誤差となり、シフト回路21において、画像信号とともにMk倍されることになる。従って、誤差は、シフト回路21におけるゲインアップの量に依存すると言える。ここで、相関2重サンプリング回路5で除去されないノイズ成分のノイズ量をEとする。このノイズ量Eとしては、撮像素子4の特性に応じて、例えば、考えられる最大値を採用することができる。ここで、A/Dコンバータ6から信号処理回路7に供給される画像信号には、ノイズ量EのMk倍(E×Mk)程度のノイズが含まれる。また、例えば、Mk=8とすると、シフト回路21では、n'=3として、k枚目の撮像画像が3ビットシフトされることにより、撮像画像が適正露出の場合と同一の明るさにされる。
Mk倍の明るさに変換され、適正露出と同一の明るさにゲインアップされた、A/Dコンバータ6から供給されるN枚の撮像画像の画像信号は、信号処理回路7のフレームメモリ22に一時的に格納(記憶)される。
信号処理回路7は、予め設定された各種のプログラムに従い、フレームメモリ22に記憶されている適正露出と同一の明るさにゲインアップされたN枚の撮像画像の画像信号に所定の処理を施す。
即ち、信号処理回路7は、N枚の撮像画像のうち、1枚目の撮像画像を基準画像、2乃至N枚目の撮像画像それぞれをターゲット画像とし、ターゲット画像が基準画像に対して、どのような位置ズレを起こしているか、基準画像とターゲット画像との位置ズレのズレ量(位置関係)を検出する。そして、信号処理回路7は、そのズレ量に基づいて、カメラブレが補正された1枚の鮮明な画像(出力画像)としての、1画素につきG信号、R信号、B信号のすべてを有する出力画像を求め、その求めた出力画像の画像信号を、D/Aコンバータ9またはコーデック12、あるいは、その両方に供給する。信号処理回路7は、DSP(Digial Signal Processor)等で構成することができる。なお、以下においては、特に断りがない場合においても、A/Dコンバータ6より後段で処理される画像信号は、適正露出と同一の明るさにゲインアップされたものであるとする。
タイミングジェネレータ8は、所定の間隔でN枚の画像の撮像が行われるように、露光(露出)タイミング信号を、撮像素子4、相関2重サンプリング回路5、A/Dコンバータ6、および信号処理回路7に供給する。この間隔は、例えば、被写体の明るさなどに合わせて、ユーザが変更することができるようになっている。ユーザが間隔を変更する場合、入力デバイス16をユーザが操作することによりCPU15で決定される間隔の変更値が、CPU15よりバス14を介して、タイミングジェネレータ8に供給される。
D/Aコンバータ9は、信号処理回路7から供給された出力画像の画像信号をD/A変換し、ビデオエンコーダ10に供給する。ビデオエンコーダ10は、D/Aコンバータ9から供給された画像信号(アナログ信号)を、モニタ11で表示することができるビデオ信号に変換し、モニタ11に供給する。モニタ11は、デジタルカメラ1のファインダ等の役割を果たすもので、LCDやCRTなどで構成され、ビデオエンコーダ10から供給されるビデオ信号を表示する。これにより、モニタ11では、鮮明な画像が表示される。
コーデック12は、信号処理回路7から供給された出力画像の画像信号を、JPEG(Joint Photographic Experts Group)方式、MPEG(Moving Picture Experts Group)方式や、DV(Digital Video)方式などの所定の方式に従って符号化し、メモリ13に供給する。
メモリ13は、フラッシュメモリなどの半導体メモリで構成され、コーデック12から供給される符号化された画像信号を一時的または永久的に記憶(記録)する。なお、メモリ13の代わりに、磁気ディスク、光(磁気)ディスク等の記録媒体を用いることができる。メモリ13またはメモリ13の代わりに用いる記録媒体は、デジタルカメラ1に対して着脱可能とすることができる。なお、デジタルカメラ1に内蔵される記録媒体と、デジタルカメラ1に着脱可能な記録媒体の両方を設けるようにすることも可能である。
CPU15は、バス14を介して各部に制御信号を供給し、各種の処理を制御する。例えば、ユーザの操作に応じて入力デバイス16から供給される撮像開始の信号に従い、被写体を撮像し、その画像をメモリ13に記憶するように、各部に制御信号を供給する。
入力デバイス16は、デジタルカメラ1本体にあるレリーズボタンなどの操作ボタン類を有している。ユーザが操作ボタンを操作することにより発生する各種の信号が、バス14を介してCPU15に供給され、CPU15は、入力デバイス16からバス14を介して供給される各種の信号に従う処理を実行するように各部を制御する。なお、入力デバイス16の1以上の操作ボタンは、モニタ11に表示することが可能である。モニタ11に表示された操作ボタンの操作は、例えば、モニタ11上に透明なタブレットを設け、そのタブレットにより検出するようにすることができる。
図2のフローチャートを参照して、デジタルカメラ1の撮像処理について説明する。
初めに、ステップS1において、撮像素子4は、被写体を撮像する。即ち、撮像素子4は、1回のレリーズボタン(シャッタボタン)押下による撮影において、タイミングジェネレータ8から供給される露光タイミング信号に従い、所定の間隔でN回連続して、入射される被写体の光を受光することにより、N回の高速撮像を行う。従って、1回の撮影において、N枚の撮像画像が得られ、各撮像画像は、適正露出以下の暗い画像となる。受光された被写体の光は、光電変換され、相関2重サンプリング回路5においてノイズ成分が除去された後、A/Dコンバータ6に供給される。そして、ステップS2に進む。
ステップS2において、A/Dコンバータ6は、相関2重サンプリング回路5から供給される、ノイズ除去された被写体の画像信号をデジタル変換する。その後、シフト回路21が、適正露出以下の暗い画像を、n'ビットシフトして適正露出と同じ明るさ(値)の画像信号に変換し(ゲインアップし)、信号処理回路7に供給して、ステップS3に進む。
ステップS3において、信号処理回路7は、1枚目の画像を基準画像とするとともに、2枚目以降の各画像をターゲット画像として、ターゲット画像(2乃至N枚目の画像)が基準画像に対して、どのような位置ずれを起こしているか、即ち、基準画像に対するターゲット画像の位置ズレのズレ量(動き量)を検出して、ステップS4に進む。
ステップS4において、信号処理回路7は、N枚の撮像画像と、ステップS3で検出された基準画像に対するターゲット画像の位置ズレのズレ量に基づいて、画像推定処理を行い、ステップS5に進む。画像推定処理の詳細は後述するが、この処理により、信号処理回路7は、カメラブレが補正された1枚の鮮明な画像(出力画像)としての1画素がG信号、R信号、B信号のすべてを有する出力画像を求め、その求めた出力画像の画像信号を、D/Aコンバータ9またはコーデック12、あるいは、その両方に供給する。
ステップS5では、モニタ11が出力画像を表示し、フラッシュメモリ等のメモリ13に出力画像を記録して、処理を終了する。即ち、ステップS5では、ステップS4で信号処理回路7からD/Aコンバータ9に供給された画像信号がアナログ信号に変換され、ビデオエンコーダ10に供給される。さらに、ステップS5では、ビデオエンコーダ10は、D/Aコンバータ9から供給された画像信号のアナログ信号を、モニタ11に表示することができるビデオ信号に変換し、モニタ11に供給する。そして、ステップS5において、モニタ11は、ビデオエンコーダ10から供給されたビデオ信号に基づいて、画像を表示して、処理を終了する。また、ステップS5では、ステップS4で信号処理回路7からコーデック12に供給された画像信号に対し、JPEGやMPEG等の所定の符号化が施され、フラッシュメモリ等のメモリ13に記録され、処理を終了する。
図3は、撮像素子4の画素の配列を示している。なお、図3では、撮像素子4のうちの左上の一部分の画素(横方向6画素、縦方向4画素の計24画素)を示しているが、それ以外の部分の画素も同様に配置されているものとする。
ここで、図3において、撮像素子4の左上の角を原点として、横(右)方向をX方向、縦(下)方向をY方向とするX−Y座標系を設定する。また、1画素の縦および横方向の長さ(幅)をそれぞれ1とする。この場合、左からi番目で、上からj番目の画素の位置(中心位置)は、(i−0.5、j−0.5)と表すことができる。
図3において、撮像素子4の画素の配列は、いわゆる、ベイヤー配列となっている。
即ち、G信号を取り出すことのできる画素としては、原点からX方向に1番目で、Y方向に1番目の画素である画素G00、原点からX方向に3番目で、Y方向に1番目の画素である画素G02、原点からX方向に5番目で、Y方向に1番目の画素である画素G04、原点からX方向に2番目で、Y方向に2番目の画素である画素G11、以下、同様に、画素G13、画素G15、画素G20、画素G22,画素G24、画素G31、画素G33、画素G35が配置されている。
また、R信号を取り出すことのできる画素としては、原点からX方向に2番目で、Y方向に1番目の画素である画素R01、原点からX方向に4番目で、Y方向に1番目の画素である画素R03、原点からX方向に6番目で、Y方向に1番目の画素である画素R05、原点からX方向に2番目で、Y方向に3番目の画素である画素R21、以下、同様に、画素R23、画素R25が配置されている。
さらに、B信号を取り出すことのできる画素としては、原点からX方向に1番目で、Y方向に2番目の画素である画素B10、原点からX方向に3番目で、Y方向に2番目の画素である画素B12、原点からX方向に5番目で、Y方向に2番目の画素である画素B14、原点からX方向に1番目で、Y方向に4番目の画素である画素B30、以下、同様に、画素B32、画素B34が配置されている。
ここで、撮像素子4のX−Y座標系における所定の位置(x,y)(x,yは実数)について、カメラブレがない1枚の鮮明な画像のG信号、R信号、B信号を、それぞれLg(x,y),Lr(x,y),Lb(x,y)とする。さらに、左からi番目で、上からj番目である「i番目、j番目の画素」について、カメラブレがない1枚の鮮明な画像のG信号、R信号、B信号を、それぞれLg(i,j),Lr(i,j),Lb(i,j)とする。即ち、Lg(x,y),Lr(x,y),Lb(x,y)(Lg(i,j),Lr(i,j),Lb(i,j))それぞれは、所定の位置(x,y)(「i番目、j番目の画素」)における、カメラブレや、ノイズのない、真の緑色、赤色、青色の光量(データ)を表す。従って、以下においては、Lg(x,y),Lr(x,y),Lb(x,y)(Lg(i,j),Lr(i,j),Lb(i,j))それぞれを真の緑色の光量Lg(x,y)(Lg(i,j))、真の赤色の光量Lr(x,y)(Lr(i,j))、真の青色の光量Lb(x,y)(Lb(i,j))と称する。なお、x=i−0.5,y=j−0.5である場合、Lg(x,y)=Lg(i,j),Lr(x,y)=Lr(i,j),Lb(x,y)=Lb(i,j)である。
また、本実施の形態においては、撮像素子4の画素の配列は、ベイヤー配列であるものとするが、画素の配列は、ベイヤー配列に限定されるものではなく、その他の配列でもよい。
次に、G信号、R信号、B信号それぞれの画素について使用する変数ig,jg,ir,jr,ib,jbを定義する。
変数ig,jgそれぞれは、G信号を取り出すことのできる画素についての、X方向の位置i、Y方向の位置jを表す。即ち、変数ig,jgの組み合わせは、G信号を取り出すことのできる、変数i,jの組み合わせと等しい。ベイヤー配列の場合には、その配列の性質から、変数iとjとの差(i−j)が偶数であるという条件を満たす変数ig,jgということができる。なお、当然ながら、変数igとjgとの差(ig−jg)も偶数となる。従って、「ig番目,jg番目の画素」とは、G信号を取り出すことのできる画素である。なお、ベイヤー配列以外の配列の場合には、その配列の性質に応じた変数ig,jgの条件となる。
変数ir,jrそれぞれは、R信号を取り出すことのできる画素についての、X方向の位置i、Y方向の位置jを表す。即ち、変数ir,jrの組み合わせは、R信号を取り出すことのできる、変数i,jの組み合わせと等しい。ベイヤー配列の場合には、その配列の性質から、変数iが偶数、かつ変数iとjとの差(i−j)が奇数であるという条件を満たす変数ir,jrということができる。なお、当然ながら、変数irとjrとの差(ir−jr)も奇数となる。従って、「ir番目,jr番目の画素」とは、R信号を取り出すことのできる画素である。なお、ベイヤー配列以外の配列の場合には、その配列の性質に応じた変数ir,jrの条件となる。
変数ib,jbそれぞれは、B信号を取り出すことのできる画素についての、X方向の位置i、Y方向の位置jを表す。即ち、変数ib,jbの組み合わせは、B信号を取り出すことのできる、変数i,jの組み合わせと等しい。ベイヤー配列の場合には、その配列の性質から、変数iが奇数、かつ変数iとjとの差(i−j)が奇数であるという条件を満たす変数ib,jbということができる。なお、当然ながら、変数ibとjbとの差(ib−jb)も奇数となる。従って、「ib番目,jb番目の画素」とは、B信号を取り出すことのできる画素である。なお、ベイヤー配列以外の配列の場合には、その配列の性質に応じた変数ib,jbの条件となる。
次に、図3に示した撮像素子4の各画素で受光して得られる色信号(G信号、R信号、B信号)の値(画素値)について定義する。
上述したように、撮像素子4では、N枚の画像が撮像される。従って、撮像素子4の1つの画素についてN個の画素値が得られる。そこで、k枚目(k=1乃至N)の「ig番目,jg番目の画素」で得られる画素値をGobs(k,ig,jg)、k枚目(k=1乃至N)の「ir番目,jr番目の画素」で得られる画素値をRobs(k,ir,jr)、k枚目(k=1乃至N)の「ib番目,jb番目の画素」で得られる画素値をBobs(k,ib,jb)とする。例えば、1枚目の画素G00で得られる画素値は、Gobs(1,1,1)で表され、2枚目のG04で得られる画素値は、Gobs(2,5,1)で表される。なお、以下において、特に断りがない場合、kは、1乃至Nの整数を表すものとする。
逆に言うと、画素値Gobs(k,ig,jg)、Robs(k,ir,jr)、Bobs(k,ib,jb)をもつ画素は、それぞれ、画素G(jg−1)(ig−1)、R(jr−1)(ir−1)、B(jb−1)(ib−1)である。
図4は、図1の信号処理回路7の一部分についての詳細な構成例を示している。
信号処理回路7は、フレームメモリ22、動き検出回路23、演算回路24、コントローラ25で構成されている。また、フレームメモリ22は、フレームメモリ22−1乃至22−N、動き検出回路23は、動き検出回路23−1乃至23−(N−1)で構成されている。
上述したように、A/Dコンバータ6からN枚の撮像画像がフレームメモリ22に供給される。フレームメモリ22−1は、A/Dコンバータ6から供給される1枚目の撮像画像を記憶(格納)する。フレームメモリ22−2は、A/Dコンバータ6から供給される2枚目の撮像画像を記憶する。以下同様にして、フレームメモリ22−kは、A/Dコンバータ6から供給されるk枚目の撮像画像をフレームメモリ22−kに記憶する(k=3乃至N)。
フレームメモリ22−1は、所定のタイミングにおいて、記憶している1枚目の撮像画像を演算回路24と動き検出回路23−1乃至23−(N−1)に供給する。フレームメモリ22−2は、所定のタイミングにおいて、記憶している2枚目の撮像画像を演算回路24と動き検出回路23−1に供給する。以下、同様にして、フレームメモリ22−kは、所定のタイミングにおいて、記憶しているk枚目の撮像画像を演算回路24と動き検出回路23−(k−1)に供給する。
動き検出回路23は、2枚の撮像画像どうしの位置関係を検出する。即ち、動き検出回路23は、1枚目の撮像画像を基準画像とするとともに、2枚目以降の各撮像画像をターゲット画像として、ターゲット画像(2乃至N枚目の画像)が基準画像に対して、どのような位置ずれを起こしているか、基準画像に対するターゲット画像の位置ズレのズレ量(動き量)を検出する。なお、このズレ量は、例えば、手ブレにより生じるものである。
動き検出回路23−1には、基準画像としての1枚目の撮像画像がフレームメモリ22−1から、ターゲット画像としての2枚目の撮像画像がフレームメモリ22−2から、それぞれ供給される。
動き検出回路23−1は、2枚目の撮像画像の各画素(あるいは、画面全体を複数のブロックに分割したときの各ブロック)が、1枚目の撮像画像のどの位置に対応しているかを検出し、1枚目の撮像画像と2枚目の撮像画像との位置関係が次式(1)で表されるような、回転角度θ2、スケールS2、平行移動量(T2x,T2y)で構成される変換パラメータ(θ2,T2x,T2y,S2)を求め、演算回路24に供給する。
式(1)は、いわゆるアフィン変換の式であり、式(1)において、(X2,Y2)は2枚目の撮像画像の画素の位置であり、(X1(2),Y1(2))は1枚目の撮像画像上の位置である。下付きの(2)は、2枚目の撮像画像のある位置が位置変換されたことを表している。
この変換パラメータ(θ2,T2x,T2y,S2)は、2枚目の撮像画像上の位置(X2,Y2)が、1枚目の撮像画像上の位置(X1,Y1)に対して、例えば、手持ち撮影のため、角度θ2だけ回転し、被写体方向にデジタルカメラ1が移動したために画像がS2倍だけ拡大(S2<1のときは、縮小)され、被写体に対して平行方向に(T2x,T2y)だけずれたことを意味する。なお、通常手ブレの場合には、撮像素子4の面と平行な横方向のブレ(揺れ)の影響が大きく、デジタルカメラ1から被写体の方向に対するブレ(揺れ)は少ないので、デジタルカメラ1から被写体の方向に対しては影響がないとして、S2=1と近似してもよい。
また、動き検出回路23−2には、基準画像としての1枚目の撮像画像がフレームメモリ22−1から、ターゲット画像としての3枚目の撮像画像がフレームメモリ22−3から、それぞれ供給される。
動き検出回路23−2は、3枚目の撮像画像の各画素(あるいは、画面全体を複数のブロックに分割したときの各ブロック)が、1枚目の撮像画像のどの位置に対応しているかを検出し、1枚目の撮像画像と3枚目の撮像画像との位置関係が次式(2)で表されるような、回転角度θ3、スケールS3、平行移動量(T3x,T3y)で構成される変換パラメータ(θ3,T3x,T3y,S3)を求め、演算回路24に供給する。
式(2)は、いわゆるアフィン変換の式であり、式(2)において、(X3,Y3)は3枚目の撮像画像の画素の位置であり、(X1(3),Y1(3))は1枚目の撮像画像上の位置である。下付きの(3)は、3枚目の撮像画像のある位置が位置変換されたことを表している。
この変換パラメータ(θ3、T3x、T3y、S3)は、3枚目の撮像画像上の位置(X3,Y3)が、1枚目の撮像画像上の位置(X1,Y1)に対して、手持ち撮影のため、角度θ3だけ回転し、被写体方向にデジタルカメラ1が移動したために画像がS3倍だけ拡大(S3<1のときは、縮小)され、被写体に対して平行方向に(T3x,T3y)だけずれたことを意味する。なお、通常手ブレの場合には、撮像素子4の面と平行な横方向のブレ(揺れ)の影響が大きく、デジタルカメラ1から被写体の方向に対するブレ(揺れ)は少ないので、デジタルカメラ1から被写体の方向に対しては影響がないとして、S3=1と近似してもよい。
以下同様に、動き検出回路23−(k−1)には、基準画像としての1枚目の撮像画像がフレームメモリ22−1から、ターゲット画像としてのk枚目の撮像画像がフレームメモリ22−kから、それぞれ供給される。
動き検出回路23−(k−1)は、k枚目の撮像画像の各画素(あるいは、画面全体を複数のブロックに分割したときの各ブロック)が、1枚目の撮像画像のどの位置に対応しているかを検出し、1枚目の撮像画像とk枚目の撮像画像との位置関係が次式(3)で表されるような、回転角度θk、スケールSk、平行移動量(Tkx,Tky)で構成される変換パラメータ(θk,Tkx,Tky,Sk)を求め、演算回路24に供給する。
式(3)は、いわゆるアフィン変換の式であり、式(3)において、(Xk,Yk)はk枚目の撮像画像の画素の位置であり、(X1(k),Y1(k))は、1枚目の撮像画像上の位置である。下付きの(k)は、k枚目の画像のある位置が位置変換されたことを表している。
この変換パラメータ(θk,Tkx,Tky,Sk)は、k枚目の撮像画像上の位置(Xk,Yk)が、1枚目の撮像画像上の位置(X1,Y1)に対して、手持ち撮影のため、角度θkだけ回転し、被写体方向にデジタルカメラ1が移動したために画像がSk倍だけ拡大(Sk<1のときは、縮小)され、被写体に対して平行方向に(Tkx,Tky)だけずれたことを意味する。なお、通常手ブレの場合には、撮像素子4の面と平行な横方向のブレ(揺れ)の影響が大きく、デジタルカメラ1から被写体の方向に対するブレ(揺れ)は少ないので、デジタルカメラ1から被写体の方向に対しては影響がないとして、Sk=1と近似してもよい。
変換パラメータ(θk,Tkx,Tky,Sk)は、上述のように、1枚目の撮像画像を基準とする、k枚目の撮像画像の位置関係から求める他、デジタルカメラ1に加速度センサを設け、その加速度センサの出力から、いわば、メカニカル的に求めるようにすることもできる。
演算回路24には、フレームメモリ22−1乃至22−NからN枚の撮像画像が供給される。また、演算回路24には、動き検出回路23−1乃至23−(N−1)から1枚目の撮像画像とk枚目の撮像画像との位置関係を表す変換パラメータ(θk,Tkx,Tky,Sk)が供給される。
演算回路24は、動き検出回路23−1乃至23−(N−1)から供給される2乃至N枚目の撮像画像の、1枚目の撮像画像に対する位置関係に基づき、後述する画像推定処理を行うことにより、カメラブレを補正した1枚の鮮明な出力画像の画像信号(G信号、R信号、B信号)を推定し、D/Aコンバータ9またはコーデック12に供給する。A/Dコンバータ6から信号処理回路7に供給されるN枚の撮像画像それぞれは、1画素がG信号、R信号、B信号のうちのいずれか1つを有する信号であるのに対して、演算回路24が推定する画像信号は、1画素につきG信号、R信号、B信号の3個の色信号を有する信号(データ)である。
コントローラ25は、CPU15の制御に従い、信号処理回路7内のフレームメモリ22−1乃至22−N、動き検出回路23−1乃至23−(N−1)、演算回路24等の制御を行う。なお、CPU15(図1)が、コントローラ25に代わって、信号処理回路7内のフレームメモリ22−1乃至22−N、動き検出回路23−1乃至23−(N−1)、演算回路24等の制御を行うようにすることができ、この場合には、コントローラ25を省略することができる。
なお、ベイヤー配列等を使った単板センサでは、G信号の画素数に対して、R信号やB信号の画素数が少なくなっている。そのため、信号処理回路7で得られる出力画像におけるR信号やB信号は、G信号に較べて誤差が大となる場合がある。そのような場合には、演算回路24の後段に、輝度信号はそのままで、色差信号に対してのみ高周波成分の帯域を制限するローパスフィルタを配置することにより、ノイズを除去することができる。
また、演算回路24を、連続撮像している最中に、撮像画像を順次取り込みながら処理が可能なリアルタイム処理を行う高速演算回路とすることにより、フレームメモリ22−1乃至22−N、および動き検出回路23−1乃至23−(N−1)の数を少なく構成することができる。これにより、信号処理回路7の規模を小さくすることが可能となる。
次に、上述した信号処理回路7における、画像推定処理の第1実施の形態について説明する。
なお、例えば、撮像素子4の各画素(の受光部)の直上には、不図示のオンチップレンズが配置されているものとする。オンチップレンズは、そのオンチップレンズ内に入射した被写体の光すべてを1点に収束する。従って、オンチップレンズの直下にある画素は、オンチップレンズ内に入射した被写体の光すべてを積分値として受光することができる。これにより、各画素の検出感度が良くなるという効果が得られる。
従って、撮像素子4の各画素で受光されるデータ(受光量)は、その画素の、ある1点に入射される被写体の光の値ではなく(即ち、ポイントサンプリングされたデータではなく)、ある有限の面積を持った面(受光面)に入射される被写体の光の積分値である。
第1実施の形態では、このオンチップレンズの特性を正確に定式化することにより、画像推定処理として鮮明な画像(出力画像)を求める。なお、従来では、各画素のデータは、ポイントサンプリングされたデータとして考えることが一般的であった。しかしながら、本来は、上述したように、実際の撮像素子4の各画素の受光量は、ある面積を持った面に入射した光の値(積分値)となるため、正確な画像を推定(復元)しているとは言い難かった。
初めに、フレームメモリ22−1に記憶されている1枚目の画像について、各画素で得られる画素値とオンチップレンズにより入射される光との関係を定式化する。
例えば、図3の一番左上の「1番目,1番目の画素」である画素G00については、その画素値Gobs(1,1,1)と、真の緑色の光量Lg(x,y)との関係は、次式(4)のように表すことができる。
単板センサである受光素子4の一番左上の画素G00には、入射される光のうち、緑色の成分のみを透過するように、緑色のフィルタが装着されている。画素G00が受光する光は、オンチップレンズの効果のため、図3の座標系において(0,0),(0,1),(1,0),および(1,1)で囲まれる矩形領域に入射する光となる。即ち、(0,0),(0,1),(1,0),および(1,1)で囲まれる矩形領域に入射される被写体の光の全ては、「1番目、1番目の画素」であるG00で受光される。
式(4)の左辺は、1枚目の撮像画像の座標系の位置(x,y)における(入射する)真の緑色の光量Lg(x,y)を、(0,0),(0,1),(1,0),および(1,1)で囲まれる矩形領域、即ち、0≦x<1および0≦y<1で積分したものである。また、式(4)の右辺は、そのとき1枚目の「1番目、1番目の画素」で得られる(観測される)画素値Gobs(1,1,1)である。式(4)は、1枚目の撮像時における画素G00の受光面に入射する真の緑色の光量Lg(x,y)の、その受光面での積分値が、画素G00で観測される画素値Gobs(1,1,1)に等しいことを表している。
なお、オンチップレンズの性能によっては、各画素の周辺部(いわゆる、「はじ」の部分)に入射される被写体の光を収束させることができない場合もある。その場合、式(4)の左辺で積分される範囲を、例えば、ひとまわり小さくして、例えば(0.1,0.1),(0.1,0.9),(0.9,0.1),および(0.9,0.9)で囲まれる矩形領域とすればよい。
また、デジタルカメラでは、単板センサの欠点である偽色を回避するために、オプティカルローパスフィルタを各画素の前に組み込んでいるものが多く、その場合、1画素の矩形領域よりも少し広範囲の光が画素に入力される。そのときには、式(4)の左辺で積分される範囲を、反対に、ひとまわり大きい矩形領域とすればよい。
次に、図3において画素G00の右隣にある、「2番目,1番目の画素」である画素R01について考える。
「2番目,1番目の画素」である画素R01については、その画素値Robs(1,2,1)と、真の緑色の光量Lg(x,y)との関係は、次式(5)のように表すことができる。
単板センサである受光素子4の一番左上の画素R01には、入射される光のうち、赤色の成分のみを透過するように、赤色のフィルタが装着されている。画素R01が受光する光は、オンチップレンズの効果のため、図3の座標系において(1,0),(1,1),(2,0),および(2,1)で囲まれる矩形領域に入射する光となる。即ち、(1,0),(1,1),(2,0),および(2,1)で囲まれる矩形領域に入射される被写体の光の全ては、「2番目、1番目の画素」であるR01で受光される。
式(5)の左辺は、1枚目の撮像画像の座標系の位置(x,y)における(入射する)真の赤色の光量Lr(x,y)を、(1,0),(1,1),(2,0),および(2,1)で囲まれる矩形領域、即ち、1≦x<2および0≦y<1で積分したものである。また、式(5)の右辺は、そのとき1枚目の「2番目、1番目の画素」で得られる(観測される)画素値Robs(1,2,1)である。式(5)は、1枚目の撮像時における画素R01の受光面に入射する真の赤色の光量Lr(x,y)の、その受光面での積分値が、画素R01で観測される画素値Robs(1,2,1)に等しいことを表している。
なお、オンチップレンズの性能によっては、各画素の周辺部(いわゆる、「はじ」の部分)に入射される被写体の光を収束させることができない場合もある。その場合、式(5)の左辺で積分される範囲を、例えば、ひとまわり小さくして、例えば(1.1,0.1),(1.1,0.9),(1.9,0.1),および(1.9,0.9)で囲まれる矩形領域とすればよい。
また、デジタルカメラでは、単板センサの欠点である偽色を回避するために、オプティカルローパスフィルタを各画素の前に組み込んでいるものが多く、その場合、1画素の矩形領域よりも少し広範囲の光が画素に入力される。そのときには、式(5)の左辺で積分される範囲を、反対に、ひとまわり大きい矩形領域とすればよい。
1枚目の撮像画像のその他の画素についても同様に式をたてることができる。
即ち、図3において「ig番目、jg番目の画素」である画素G(jg−1)(ig−1)については、その画素値Gobs(1,ig,jg)と、真の緑色の光量Lg(x,y)との関係は、式(6)のように表すことができる。
式(6)は、真の緑色の光量Lg(x,y)を、図3の座標系において(ig−1,jg−1),(ig−1,jg),(ig,jg−1),および(ig,jg)で囲まれる矩形領域、即ち、1枚目の撮像画像の座標系のig−1≦x<igおよびjg−1≦y<jgで積分したものが、画素値Gobs(1,ig,jg)であることを表している。
また、図3において「ir番目、jr番目の画素」であるR(jr−1)(ir−1)については、その画素値Robs(1,ir,jr)と、真の赤色の光量Lr(x,y)との関係は、式(7)のように表すことができる。
式(7)は、真の赤色の光量Lr(x,y)を、図3の座標系において(ir−1,jr−1),(ir−1,jr),(ir,jr−1),および(ir,jr)で囲まれる矩形領域、即ち、1枚目の撮像画像の座標系のir−1≦x<irおよびjr−1≦y<jrで積分したものが、画素値Robs(1,ir,jr)であることを表している。
さらに、図3において「ib番目、jb番目の画素」である画素B(jb−1)(ib−1)については、その画素値Bobs(1,ib,jb)と、真の青色の光量Lb(x,y)との関係は、式(8)のように表すことができる。
式(8)は、真の青色の光量Lb(x,y)を、図3の座標系において(ib−1,jb−1),(ib−1,jb),(ib,jb−1),および(ib,jb)で囲まれる矩形領域、即ち、1枚目の撮像画像の座標系のib−1≦x<ibおよびjb−1≦y<jbで積分したものが、画素値Bobs(1,ib,jb)であることを表している。
なお、実際には、上述したように、画像信号(観測される画素値)には、ノイズ量Eも含まれており、さらに、そのノイズ量EはMk倍にゲインアップされている。そこで、(E×Mk)のノイズ成分を式(6),(7),(8)に考慮すると、それぞれ、式(9),(10),(11)で表される光量積分条件式が得られる。
ここで、|x|は、xの絶対値を表す。
式(9)は、光量Lg(x,y)の積分値と、観測される画素値Gobs(1,ig,jg)との差が、想定し得るノイズ量の最大値M1×E以下であることを表している。式(10)および式(11)も同様である。
以下の説明では、k枚目の撮像画像のことをk枚目画像とも称することにする。
次に、フレームメモリ22−2に記憶されている2枚目画像について、1枚目画像と同様に、各画素で得られる(観測される)画素値とオンチップレンズにより入射される光との関係を定式化する。
2枚目以降の撮像画像の座標系は、動き検出回路23により検出された変換パラメータ(θk,Tkx,Tky,Sk)(k=2乃至N)を用いて1枚目の撮像画像の座標系に変換される。
2枚目画像の「1番目,1番目の画素」である画素G00については、その画素値Gobs(2,1,1)と、緑色の光量Lg(x,y)との関係は、次式(12)のように表すことができる。
受光素子4の一番左上の画素G00は、入射される光のうち、緑色の成分のみを吸収するように、緑色のフィルタが装着されている。画素G00が受光する光は、オンチップレンズの効果のため、2枚目画像の座標系において(0,0),(0,1),(1,0),および(1,1)で囲まれる矩形領域に入射する光となる。
その2枚目画像の座標系における位置(0,0),(0,1),(1,0),および(1,1)を、変換パラメータ(θ2,T2x,T2y,S2)を用いて1枚目画像の座標系に変換した位置が、(0(2),0(2)),(0(2),1(2)),(1(2),0(2)),および(1(2),1(2))である。従って、(0(2),0(2)),(0(2),1(2)),(1(2),0(2)),および(1(2),1(2))で囲まれる矩形領域に入射される被写体の光の全ては、2枚目の撮像時に「1番目、1番目の画素」である画素G00で受光される。なお、2枚目画像の位置(x,y)を1枚目の画像の座標に変換した位置をP(2,x,y)とも書くことにする。
式(12)の左辺は、真の緑色の光量Lg(x,y)を、P(2,0,0),P(2,0,1),P(2,1,0),およびP(2,1,1)で囲まれる矩形領域、即ち、1枚目座標系において、(0(2),0(2)),(0(2),1(2)),(1(2),0(2)),および(1(2),1(2))で囲まれる矩形領域で積分したものである。また、式(12)の右辺は、そのとき2枚目画像の「1番目、1番目の画素」で得られる画素値Gobs(2,1,1)である。式(12)は、2枚目の画素G00で観測される画素値Gobs(2,1,1)が、1枚目の撮像時における座標系において、(0(2),0(2)),(0(2),1(2)),(1(2),0(2)),および(1(2),1(2))で囲まれる矩形領域の範囲に入射する真の緑色の光量Lg(x,y)の積分値に等しいことを表す。式(12)において、∫∫dxdyは、(0(2),0(2)),(0(2),1(2)),(1(2),0(2)),および(1(2),1(2))で囲まれる矩形領域の積分を表すものとする。式(13)以降も同様である。
なお、オンチップレンズの性能によっては、各画素の周辺部(いわゆる、「はじ」の部分)に入射される被写体の光を収束させることができない場合もある。その場合、式(12)の左辺で積分される範囲を、上述した1枚目の画像の場合と同様に、ひとまわり小さい矩形領域とすればよい。
また、デジタルカメラでは、単板センサの欠点である偽色を回避するために、オプティカルローパスフィルタを各画素の前に組み込んでいるものが多く、その場合、1画素の矩形領域よりも少し広範囲の光が画素に入力される。そのときには、式(12)の左辺で積分される範囲を、反対に、ひとまわり大きい矩形領域とすればよい。
次に、2枚目画像の画素G00の右隣となる、「2番目,1番目の画素」である画素R01について考える。
2枚目画像の「2番目,1番目の画素」である画素R01については、その画素値Robs(2,2,1)と、真の赤色の光量Lr(x,y)との関係は、次式(13)のように表すことができる。
受光素子4の一番左上の画素R01は、入射される光のうち、赤色の成分のみを吸収するように、赤色のフィルタが装着されている。画素R01が受光する部分は、オンチップレンズの効果のため、2枚目画像の座標系において(1,0),(1,1),(2,0),および(2,1)で囲まれる矩形領域に入射する光となる。
その2枚目画像の座標系における位置(1,0),(1,1),(2,0),および(2,1)を、変換パラメータ(θ2,T2x,T2y,S2)を用いて1枚目画像の座標系に変換した位置が、(1(2),0(2)),(1(2),1(2)),(2(2),0(2)),および(2(2),1(2))である。従って、(1(2),0(2)),(1(2),1(2)),(2(2),0(2)),および(2(2),1(2))で囲まれる矩形領域に入射される被写体の光の全ては、2枚目の撮像時に「2番目、1番目の画素」であるR01で受光される。
式(13)の左辺は、真の赤色の光量Lr(x,y)を、P(2,1,0),P(2,1,1),P(2,2,0),およびP(2,2,1)で囲まれる矩形領域、即ち、1枚目座標系において、(1(2),0(2)),(1(2),1(2)),(2(2),0(2)),および(2(2),1(2))で囲まれる矩形領域で積分したものである。また、式(13)の右辺は、そのとき2枚目の「2番目、1番目の画素」で得られる画素値Robs(2,2,1)である。式(13)は、2枚目の画素R01で観測される画素値Robs(2,2,1)が、1枚目の撮像時における座標系において、(1(2),0(2)),(1(2),1(2)),(2(2),0(2)),および(2(2),1(2))で囲まれる矩形領域の範囲に入射する真の赤色の光量Lr(x,y)の積分値に等しいことを表す。
なお、オンチップレンズの性能によっては、各画素の周辺部(いわゆる、「はじ」の部分)に入射される被写体の光を収束させることができない場合もある。その場合、式(13)の左辺で積分される範囲を、例えば、ひとまわり小さい矩形領域とすればよい。
また、デジタルカメラでは、単板センサの欠点である偽色を回避するために、オプティカルローパスフィルタを各画素の前に組み込んでいるものが多く、その場合、1画素の矩形領域よりも少し広範囲の光が画素に入力される。そのときには、式(13)の左辺で積分される範囲を、反対に、ひとまわり大きい矩形領域とすればよい。
2枚目画像のその他の画素についても同様に式をたてることができる。
即ち、2枚目画像の「ig番目、jg番目の画素」であるG(jg−1)(ig−1)については、その画素値Gobs(2,ig,jg)と、真の緑色の光量Lg(x,y)との関係は、式(14)のように表すことができる。
式(14)は、真の緑色の光量Lg(x,y)を、2枚目画像の座標系において(ig−1,jg−1),(ig−1,jg),(ig,jg−1),および(ig,jg)で囲まれる矩形領域、即ち、1枚目画像の座標系において、(ig−1(2),jg−1(2)),(ig−1(2),jg(2)),(ig(2),jg−1(2)),および(ig(2),jg(2))で囲まれる矩形領域で積分したものが、画素値Gobs(2,ig,jg)であることを表している。
また、2枚目画像の「ir番目、jr番目の画素」であるR(jr−1)(ir−1)については、その画素値Robs(2,ir,jr)と、真の赤色の光量Lr(x,y)との関係は、式(15)のように表すことができる。
式(15)は、真の赤色の光量Lr(x,y)を、2枚目画像の座標系において(ir−1,jr−1),(ir−1,jr),(ir,jr−1),および(ir,jr)で囲まれる矩形領域、即ち、1枚目画像の座標系において、(ir−1(2),jr−1(2)),(ir−1(2),jr(2)),(ir(2),jr−1(2)),および(ir(2),jr(2))で囲まれる矩形領域で積分したものが、画素値Robs(2,ir,jr)であることを表している。
さらに、2枚目画像の「ib番目、jb番目の画素」であるB(jb−1)(ib−1)については、その画素値Bobs(2,ib,jb)と、真の青色の光量Lb(x,y)との関係は、式(16)のように表すことができる。
式(16)は、真の青色の光量Lb(x,y)を、2枚目画像の座標系において(ib−1,jb−1),(ib−1,jb),(ib,jb−1),および(ib,jb)で囲まれる矩形領域、即ち、1枚目画像の座標系において、(ib−1(2),jb−1(2)),(ib−1(2),jb(2)),(ib(2),jb−1(2)),および(ib(2),jb(2))で囲まれる矩形領域で積分したものが、画素値Bobs(2,ib,jb)であることを表している。
なお、実際には、上述したように、画像信号(観測される画素値)には、ノイズ量Eも含まれており、さらに、そのノイズ量EはMk倍にゲインアップされている。(E×Mk)のノイズ成分を式(14),(15),(16)に考慮すると、それぞれ、式(17),(18),(19)で表される光量積分条件式が得られる。
ここで、|x|は、xの絶対値を表す。
式(17)は、光量Lg(x,y)の積分値と、観測される画素値Gobs(2,ig,jg)との差が、想定し得るノイズ量の最大値M2×E以下であることを表している。式(18)および式(19)も同様である。
図5を参照して、2枚目画像の位置(x,y)と、その位置(x,y)を1枚目画像の座標に変換した位置P(2,x,y)との関係について説明する。
図5左側は、2枚目画像の座標系における、所定の4点(i−1,j−1),(i−1,j),(i,j−1),および(i,j)で囲まれる矩形領域のある画素31を示している。
図5右側は、左側の画素31を1枚目画像の座標系に変換した後の画素31'を示している。従って、図5左側の画素31と図5右側の画素31'は、同じ被写体(の一部)が映っている(例えば、ある風景)。
ここでは、2枚目以降の撮像画像の各画素の画素値が、基準画像である1枚目の画像の撮像時の光(被写体からの光)の積分値として得られるとして、その積分値を得るときの積分範囲を、1枚目の座標系を基準として設定する。これにより、手ブレにより位置ズレが生じていた1乃至N枚目の撮像画像の、いわば位置合わせ(1枚目の撮像画像を基準とした位置合わせ)が行われる。
2枚目画像の座標系における位置(i−1,j−1)は、変換パラメ−タ(θ2,T2x,T2y,S2)により変換することで、1枚目画像の座標系での位置P(2,i−1,j−1)とすることができる。また、2枚目画像の座標系における位置(i−1,j)は、変換パラメ−タ(θ2,T2x,T2y,S2)により変換することで、1枚目画像の座標系での位置P(2,i−1,j)とすることができる。同様に、2枚目画像の座標系における位置(i,j−1)と(i,j)も、変換パラメ−タ(θ2,T2x,T2y,S2)により変換することで、1枚目画像の座標系での位置P(2,i,j−1)とP(2,i,j)と、それぞれすることができる。なお、X座標軸またはY座標軸が、単にXまたはYと表されている場合には、1枚目画像の座標系におけるX座標軸またはY座標軸を表すものとする。
上述した2枚目画像と同様に、k枚目画像(k=3乃至N)の座標系における位置(i−1,j−1),(i−1,j),(i,j−1),および(i,j)も、変換パラメータ(θk,Tkx,Tky,Sk)により変換することで、1枚目画像の座標系での位置P(k,i−1,j−1),P(k,i−1,j),P(k,i,j−1),およびP(k,i,j)と、それぞれすることができる。
そして、k枚目画像(k=3乃至N)について、Mk倍にゲインアップされたノイズ量Eを考慮すると、式(17)乃至式(19)と同様の式(20)乃至(22)で表される光量積分条件式が得られる。
式(20)は、真の緑色の光量Lg(x,y)を、P(k,ig−1,jg−1),P(k,ig−1,jg),P(k,ig,jg−1),およびP(k,ig,jg)で囲まれる矩形領域、即ち、1枚目座標系において、(ig−1(k),jg−1(k)),(ig−1(k),jg(k)),(ig(k),jg−1(k)),および(ig(k),jg(k))で囲まれる矩形領域で積分したものと、k枚目画像の「ig番目、jg番目の画素」で得られる画素値Gobs(k,ig,jg)とが、Mk倍にゲインアップされたノイズ量E(誤差)を考慮して等しいこと、即ち、真の緑色の光量Lg(x,y)の積分値と、観測される画素値Gobs(k,ig,jg)との差(絶対値)が、想定し得るノイズ量の最大値以下であることを表している。ここで、|x|は、xの絶対値を表す。
式(21)は、真の赤色の光量Lr(x,y)を、P(k,ir−1,jr−1),P(k,ir−1,jr),P(k,ir,jr−1),およびP(k,ir,jr)で囲まれる矩形領域、即ち、1枚目座標系において、(ir−1(k),jr−1(k)),(ir−1(k),jr(k)),(ir(k),jr−1(k)),および(ir(k),jr(k))で囲まれる矩形領域で積分したものと、k枚目画像の「ir番目、jr番目の画素」で得られる画素値Robs(k,ir,jr)とが、Mk倍にゲインアップされたノイズ量E(誤差)を考慮して等しいこと、即ち、真の赤色の光量Lr(x,y)の積分値と、観測される画素値Robs(k,ir,jr)との差(絶対値)が、想定し得るノイズ量の最大値以下であることを表している。ここで、|x|は、xの絶対値を表す。
式(22)は、真の青色の光量Lb(x,y)を、P(k,ib−1,jb−1),P(k,ib−1,jb),P(k,ib,jb−1),およびP(k,ib,jb)で囲まれる矩形領域、即ち、1枚目座標系において、(ib−1(k),jb−1(k)),(ib−1(k),jb(k)),(ib(k),jb−1(k)),および(ib(k),jb(k))で囲まれる矩形領域で積分したものと、k枚目画像の「ib番目、jb番目の画素」で得られる画素値Bobs(k,ib,jb)とが、Mk倍にゲインアップされたノイズ量E(誤差)を考慮して等しいこと、即ち、真の青色の光量Lb(x,y)の積分値と、観測される画素値Bobs(k,ib,jb)との差(絶対値)が、想定し得るノイズ量の最大値以下であることを表している。ここで、|x|は、xの絶対値を表す。
次に、図6のフローチャートを参照して、図2のステップS4における画像推定処理の第1実施の形態について説明する。
初めに、ステップS11において、演算回路24は、1枚目画像の各画素の画素値Gobs(1,ig,jg)から、すべての(ig,jg)に対する式(9)で表される光量積分条件式を、Robs(1,ir,jr)から、すべての(ir,jr)に対する式(10)で表される光量積分条件式を、Bobs(1,ib,jb)から、すべての(ib,jb)に対する式(11)で表される光量積分条件式を生成し、ステップS12に進む。
ステップS12において、演算回路24は、2枚目画像の各画素の画素値Gobs(2,ig,jg)から、すべての(ig,jg)に対する式(17)で表される光量積分条件式を、Robs(2,ir,jr)から、すべての(ir,jr)に対する式(18)で表される光量積分条件式を、Bobs(2,ib,jb)から、すべての(ib,jb)に対する式(19)で表される光量積分条件式を生成し、ステップS13に進む。ここで、演算回路24は、2枚目画像の位置を1枚目画像の位置に変換するため、動き検出回路23−1から供給される変換パラメータ(θ2,T2x,T2y,S2)を使用する。
ステップS13において、演算回路24は、k枚目画像(k=3乃至N)の各画素の画素値Gobs(k,ig,jg)から、すべての(ig,jg)に対する式(20)で表される光量積分条件式を、Robs(k,ir,jr)から、すべての(ir,jr)に対する式(21)で表される光量積分条件式を、Bobs(k,ib,jb)から、すべての(ib,jb)に対する式(22)で表される光量積分条件式を生成し、ステップS14に進む。ここで、演算回路24は、k枚目画像の位置を1枚目画像の位置に変換するため、動き検出回路23−(k−1)から供給される変換パラメータ(θk,Tkx,Tky,Sk)を使用する。
ステップS14において、演算回路24は、ステップS11乃至S13で求めた式(9),(10),(11),(17),(18),(19),(20),(21),および(22)の光量積分条件式を満たす解を演算することにより、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を推定して処理を戻る。ここで得られる真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)(の推定値)が、求めるべき1枚の鮮明な画像の画像信号(G信号、R信号、B信号)として、D/Aコンバータ9またはコーデック12に供給される。
なお、ステップS14における、全ての光量積分条件式を満たす解、即ち、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を求める解法としては、複数の条件を満たす画像データを求める解法を用いる。かかる解法としては、例えば、Projection Onto Convex Setsの解法(POCS法)などがある。POCS法は、凸射影の繰り返しによって拘束条件に合う最適解を推定する方法であり、例えば、論文「D. C. Youla and H. Webb, “Image Restoration by the Method of Convex Projections: part 1 theory”, IEEE Trans. Med. Image., vol. 1 No. 2, pp81-94, Oct. 1982」などに記載されているので、その説明を省略する。また、POCS法を使い複数枚の低解像度動画像から高解像度の静止画を作成する方法が特開平8-263639に記載されている。この従来技術の方法では、動きベクトルを使った一画素或いは半画素等の特定精度での動き補正が基本であり、各画素の値を推定する際に考慮される画素の数は、該特定精度によって定まる固定的なものが用いられているものと考えられる。これに対し、本実施の形態では、アナログ的な手法による動き補正を適用することができ、各画素の値を推定する際に考慮される画素の数は、ブレの状況によって任意に適応的に変化し得るように構成されている。
図7のフローチャートを参照して、図2のステップS4における画像推定処理の第1実施の形態について再度説明する。
初めに、ステップS21において、演算回路24は、内部に保持する画像の枚数をカウントする変数kを1にセットしてステップS22に進む。
ステップS22において、演算回路24は、k枚目画像の各画素の画素値Gobs(k,ig,jg)から、すべての(ig,jg)に対して式(20)で表される光量積分条件式を生成し、ステップS23に進む。
ステップS23において、演算回路24は、k枚目画像の各画素の画素値Robs(k,ir,jr)から、すべての(ir,jr)に対して式(21)で表される光量積分条件式を生成し、ステップS24に進む。
ステップS24において、演算回路24は、k枚目画像の各画素の画素値Bobs(k,ib,jb)から、すべての(ib,jb)に対して式(22)で表される光量積分条件式を生成し、ステップS25に進む。
なお、ステップS22乃至S24において、光量積分条件式を生成するにあたっては、必要に応じて、動き検出回路23−1乃至23−(N−1)から供給される変換パラメータが用いられる。
ステップS25において、演算回路24は、内部の変数kがフレームメモリ22−1乃至22−Nから供給される画像の枚数Nと等しいか否かを判定する。変数kが画像の枚数Nと等しくないと判定された場合、演算回路24は、ステップS26に進み、変数kを1だけインクリメントした後、ステップS22に戻る。そして、ステップS22乃至S25の処理が繰り返される。
一方、変数kが画像の枚数Nと等しいと判定された場合、ステップS27に進み、演算回路24は、ステップS22乃至S24で求めたk=1乃至Nの式(20),(21),および(22)の光量積分条件式を演算することにより、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を推定して処理を戻る。ここで得られる真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)が、求めるべき1枚の鮮明な画像の画像信号(G信号、R信号、B信号)として、D/Aコンバータ9またはコーデック12に供給される。
なお、ここで得られる真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)の画像信号は、アナログ信号である。即ち、Lg(x,y),Lr(x,y),Lb(x,y)は、(x,y)の関数として求められるが、変数x,yは、上述したように整数ではなく、実数であり、小数部分も含んでいる。その小数部分の桁数は、演算する装置の精度にもよるが、一般的には、2進数表現で2桁から3桁程度と考えられる。従って、このように実数(x,y)を引数とする関数であるLg(x,y),Lr(x,y),Lb(x,y)については、必要に応じて、再度(x,y)として整数の位置のみサンプリングし直すリサンプリングを行い、デジタル画像信号に変換してD/Aコンバータ9またはコーデック12に供給するようにすることができる。
また、高速シャッタによるN枚の撮像時間の間に被写体が動いている場合、その動いている部分の、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)は、時間とともに変化することとなるので、上述の方法では、正しい解を得ることが困難なことがあり得る。
そこで、被写体が動いている部分については、例外処理として、単純な重ね合わせで処理することができる。即ち、N枚の各画像は、ベイヤー配列のデータ(1画素につきR信号、G信号、B信号のうちのいずれか1個のみのデータ)であるが、このデータから1画素につきR信号、G信号、B信号の3つの信号を復元するデモザイキング処理を行う。さらに、デモザイキング処理後のN枚の画像を、回転、拡大または縮小、あるいは平行移動などを行って位置合わせを行い、平均化する。デモザイキング処理の手法としては、従来の方法を含む任意の方法を採用することができる。
以上のように、第1実施の形態では、各画素の直上にあるオンチップレンズの効果を加味した処理を行うことにより、カメラブレを補正した鮮明な画像を推定することができる。
(第2実施の形態)
次に、信号処理回路7における、画像推定処理の第2実施の形態について説明する。
第2実施の形態は、第1実施の形態における、k=1乃至Nとする式(20)乃至式(22)で表される光量積分条件式の他に、R信号、G信号、B信号どうしの相関に関する色相関の条件を付加して、それらすべての条件式を満たす真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を求めるものである。
画像の局所的な部分に着目すれば、撮像素子4に入射される被写体の光と等価な真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)には、色どうしの相関(色相関)がある。従って、光量積分条件式である式(20)乃至式(22)に加えて、色相関の条件をさらに付加することにより、より正確な解、即ち、より本来の光に忠実で鮮明な画像を求める(推定する)ことができる。
図8と図9を参照して、具体的な色相関の条件を求める方法について説明する。図8と図9では、緑色と赤色の色相関の条件を考える。
図8左下側のk'枚目画像のig番目、jg番目の、ある緑色の画素G(jg−1)(ig−1)と、図8右下側のk”枚目画像のir番目、jr番目の、ある赤色の画素R(jr−1)(ir−1)に注目する。
演算回路24は、k'枚目画像の緑色の画素G(jg−1)(ig−1)とk”枚目画像の赤色の画素R(jr−1)(ir−1)の位置を、第1実施の形態で説明したように、変換パラメータ(θk',Tk'x,Tk'y,Sk')と変換パラメータ(θk”,Tk”x,Tk”y,Sk”)によりそれぞれ変換することで、図8上側の1枚目画像の座標系における位置を求める。なお、k'やk”が1の場合も含み、その場合には、(θ1,T1x,T1y,S1)=(0,0,0,1)と考える。
そして、演算回路24は、1枚目画像の座標系に変換されたk'枚目の緑色の画素G(jg−1)(ig−1)と1枚目画像の座標系に変換されたk”枚目の赤色の画素R(jr−1)(ir−1)との距離を計算する。さらに、演算回路24は、その距離が、同一の位置とみなす許容値(判定値)delta(例えば、0.25画素)以内であるかどうかを判定する。
例えば、画素G(jg−1)(ig−1)と画素R(jr−1)(ir−1)の位置を、位置(ig,jg)と位置(ir,jr)で、それぞれ考えることとして、k'枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)を点Gcと、k”枚目画像の座標系における画素R(jg−1)(ig−1)の位置(ir,jr)を点Rcと、1枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)をGc(k')と、1枚目画像の座標系における画素R(jg−1)(ig−1)の位置(ir,jr)をRc(k”)と、それぞれ表すこととすると、点Gc(k')と点Rc(k”)との距離が許容値delta以内であるかを表す式(23)は、次のように書ける。
式(23)を距離の条件式と称する。ここで、Dis[Gc(k'),Rc(k”)]は、点Gc(k')と点Rc(k”)との間の距離を表す。また、点Gc(k')と点Rc(k”)で表される位置は、位置(ig,jg)と位置(ir,jr)を、式(1)乃至(3)と同様に、変換パラメータ(θk',Tk'x,Tk'y,Sk')と(θk”,Tk”x,Tk”y,Sk”)でそれぞれアフィン変換したものである。
演算回路24は、k'枚目の緑色の画素G(jg−1)(ig−1)とk”枚目の赤色の画素R(jr−1)(ir−1)とが、ある許容範囲deltaのマージンを考えたときに同一位置にあるとみなすことができる画素があるかどうかを、1枚目画像の座標系における、ある位置(x,y)を中心とする(x±dX,y±dY)の近傍領域、つまり、(x−dX,y−dY),(x−dX,y+dY),(x+dX,y−dY),および(x+dX,y+dY)で囲まれる領域について求める。ここで、dXとdYは、それぞれ、近傍領域を設定する所定の値で、例えば、2画素分のX方向とY方向の長さなどとすることができる。
逆に言うと、演算回路24は、1枚目画像の座標系における、ある位置(x,y)を中心とする(x±dX,y±dY)の近傍領域、つまり、(x−dX,y−dY),(x−dX,y+dY),(x+dX,y−dY),および(x+dX,y+dY)で囲まれる領域において、上述の式(23)を満たす(k',ig,jg)と(k”,ir,jr)を求める。
そして、演算回路24は、求められた(k',ig,jg)と(k”,ir,jr)とに対応する画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)とを得る。
演算回路24は、k',k”それぞれを1乃至Nとしたすべての組み合わせについて、上述の式(23)を満たす(k',ig,jg)と(k”,ir,jr)とを求める。
一般的には、複数の(k',ig,jg)と(k”,ir,jr)との組み合わせが検出されるので、演算回路24は、検出された(k',ig,jg)と(k”,ir,jr)とに対応する画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)とを、図9に示すように、横軸をG信号(Gobs(k',ig,jg))、縦軸をR信号(Robs(k”,ir,jr))とするGR空間にプロットする。
図9は、GR空間にプロットされた、同一位置にあるとみなすことができる画素の画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)とを模式的に表した図である。
図9のバツ印が、演算回路24により検出された(k',ig,jg)と(k”,ir,jr)とに対応する画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)との組を表している。
従って、位置(x,y)の近傍領域においては、求めるべき真の緑色の光量Lg(x,y)、および真の赤色の光量Lr(x,y)には、図9に示したような相関があると考えられる。
そこで、第2の実施の形態においては、第1実施の形態における式(20)乃至式(22)で表される光量積分条件式の他に、さらに、図9に示した緑色と赤色に相関があることを条件として付加する。
即ち、演算回路24は、演算回路24により式(23)の距離の条件式を満たす画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)との組で表される、図9のGR空間にプロットされた複数の点について、主成分分析を行う。
そして、演算回路24は、主成分分析の分析結果である主成分(第1主成分)の方向(図9の太線の矢印で示される方向)と直交する成分(例えば、第2主成分)についての分散を求める。さらに、演算回路24は、位置(x,y)については、GR空間において主成分の方向と直交する成分の分散の幅を持つ帯状の中に、真の緑色の光量Lg(x,y)、および真の赤色の光量Lr(x,y)で表される点が存在するという条件式を、色相関の条件として設定する。
以上の色相関の条件を、緑色と青色についても考える。
演算回路24は、図8に示した緑色と赤色の画素の場合と同様に、k'枚目の緑色の画素G(jg−1)(ig−1)とk”'枚目の青色の画素B(jb−1)(ib−1)の位置を、第1実施の形態で説明したように、変換パラメータ(θk',Tk'x,Tk'y,Sk')と変換パラメータ(θk”',Tk”'x,Tk”'y,Sk”')とによりそれぞれ変換することで、1枚目画像の座標系における位置を求める。
そして、演算回路24は、1枚目画像の座標系に変換されたk'枚目の緑色の画素G(jg−1)(ig−1)と1枚目画像の座標系に変換されたk”'枚目の青色の画素B(jb−1)(ib−1)との距離を計算する。さらに、演算回路24は、その距離が、同一の位置とみなす許容値(判定値)delta以内であるかどうかを、図8の場合と同様に判定する。
例えば、画素G(jg−1)(ig−1)と画素B(jb−1)(ib−1)の位置を、位置(ig,jg)と位置(ib,jb)で、それぞれ考えることとして、k'枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)を点Gcと、k”'枚目画像の座標系における画素B(jb−1)(ib−1)の位置(ib,jb)を点Bcと、1枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)をGc(k')と、1枚目画像の座標系における画素B(jb−1)(ib−1)の位置(ib,jb)をBc(k”')と、それぞれ表すこととすると、点Gc(k')と点Bc(k”')との距離が許容値delta以内であるかを表す式(24)は、次のように書ける。
式(24)を距離の条件式と称する。ここで、Dis[Gc(k'),Bc(k”')]は、点Gc(k')と点Bc(k”')との間の距離を表す。また、点Gc(k')と点Bc(k”')で表される位置は、位置(ig,jg)と(ib,jb)を、式(1)乃至(3)と同様に、変換パラメータ(θk',Tk'x,Tk'y,Sk')と(θk”',Tk”'x,Tk”'y,Sk”')でそれぞれアフィン変換したものである。
演算回路24は、k'枚目の緑色の画素G(jg−1)(ig−1)とk”'枚目の青色の画素B(jb−1)(ib−1)とが、ある許容範囲deltaのマージンを考えたときに同一位置にあるとみなすことができる画素があるかどうかを、1枚目画像の座標系における、ある位置(x,y)を中心とする(x±dX,y±dY)の近傍領域、つまり、(x−dX,y−dY),(x−dX,y+dY),(x+dX,y−dY),および(x+dX,y+dY)で囲まれる領域について求める。ここで、dX,dYは、それぞれ、近傍領域を設定する所定の値で、例えば、2画素分のX方向とY方向の長さなどとすることができる。
逆に言うと、演算回路24は、1枚目画像の座標系における、ある位置(x,y)を中心とする(x±dX,y±dY)の近傍領域、つまり、(x−dX,y−dY),(x−dX,y+dY),(x+dX,y−dY),および(x+dX,y+dY)で囲まれる領域において、上述の式(24)を満たす(k',ig,jg)と(k”',ib,jb)を求める。
そして、演算回路24は、求められた(k',ig,jg)と(k”',ib,jb)とに対応する画素値Gobs(k',ig,jg)と画素値Bobs(k”',ib,jb)とを得る。
演算回路24は、k',k”'それぞれを1乃至Nとしたすべての組み合わせについて、上述の式(24)を満たす(k',ig,jg)と(k”,ib,jb)とを求める。
一般的には、複数の(k',ig,jg)と(k”',ib,jb)との組み合わせが検出されるので、演算回路24は、検出された(k',ig,jg)と(k”',ib,jb)とに対応する画素値Gobs(k',ig,jg)と画素値Bobs(k”',ib,jb)を、横軸をG信号(Gobs(k',ig,jg))、縦軸をB信号(Bobs(k”',ib,jb))とするようなGB空間にプロットする。
そこで、第2の実施の形態においては、第1実施の形態における式(20)乃至式(22)で表される光量積分条件式の他に、さらに、図9の緑色と赤色における場合と同様の色相関が、緑色と青色にもあることを条件として付加する。
即ち、演算回路24は、GB空間にプロットされた複数の点である、演算回路24により検出された画素値Gobs(k',ig,jg)と画素値Bobs(k”',ib,jb)との各組について、主成分分析を行う。
そして、演算回路24は、主成分分析の分析結果である主成分(第1主成分)の方向と直交する成分(例えば、第2主成分)についての分散を求める。さらに、演算回路24は、位置(x,y)については、GB空間において主成分の方向と直交する成分の分散の幅を持つ帯状の中に、真の緑色の光量Lg(x,y)、および真の青色の光量Lb(x,y)で表される点が存在するという条件式を、色相関の条件として設定する。
従って、演算回路24において、最終的に得られる真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、および真の青色の光量Lb(x,y)は、位置(x,y)の真の緑色の光量Lg(x,y)、および真の赤色の光量Lr(x,y)で表される点が、GR空間において、主成分の方向と直交する成分の分散の幅を持つ帯状の中に存在し、かつ、位置(x,y)の真の緑色の光量Lg(x,y)、および真の青色の光量Lb(x,y)で表される点が、GB空間において、主成分の方向と直交する成分の分散の幅を持つ帯状の中に存在するものに制限(制約)される。
なお、本実施の形態では、上述のGR、GB空間の2つの色相関の条件のみ付加することとするが、同様にして、R信号とB信号との(RB空間の)色相関の条件についても付加するようにしてもよい。
光量積分条件式と色相関の条件式との両方を満たす真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を求める方法としては、例えば、第1実施の形態と同様に、POCS法等を採用することができる。
色相関の条件を付加する位置(x,y)は、全ての位置(x,y)としてもよいし、例えば、x,yそれぞれが整数となる格子点の位置のみとしてもよい。
図10のフローチャートを参照して、図2のステップS4における画像推定処理の第2実施の形態について説明する。
ステップS31乃至S33では、図6に示した第1実施の形態の画像推定処理のステップS11乃至S13とそれぞれ同様の処理が行われる。
即ち、ステップS31において、演算回路24は、1枚目画像の各画素の画素値Gobs(1,ig,jg)から、すべての(ig,jg)に対する式(9)で表される光量積分条件式を、Robs(1,ir,jr)から、すべての(ir,jr)に対する式(10)で表される光量積分条件式を、Bobs(1,ib,jb)から、すべての(ib,jb)に対する式(11)で表される光量積分条件式を生成し、ステップS32に進む。
ステップS32において、演算回路24は、2枚目画像の各画素の画素値Gobs(2,ig,jg)から、すべての(ig,jg)に対する式(17)で表される光量積分条件式を、Robs(2,ir,jr)から、すべての(ir,jr)に対する式(18)で表される光量積分条件式を、Bobs(2,ib,jb)から、すべての(ib,jb)に対する式(19)で表される光量積分条件式を生成し、ステップS33に進む。ここで、演算回路24は、2枚目画像の位置を1枚目画像の位置に変換するため、動き検出回路23−1から供給される変換パラメータ(θ2,T2x,T2y,S2)を使用する。
ステップS33において、演算回路24は、k枚目(k=3乃至N)の画像の各画素の画素値Gobs(k,ig,jg)から、すべての(ig,jg)に対する式(20)で表される光量積分条件式を、Robs(k,ir,jr)から、すべての(ir,jr)に対する式(21)で表される光量積分条件式を、Bobs(k,ib,jb)から、すべての(ib,jb)に対する式(22)で表される光量積分条件式を生成し、ステップS34に進む。ここで、演算回路24は、k枚目画像の位置を1枚目画像の位置に変換するため、動き検出回路23−(k−1)から供給される変換パラメータ(θk,Tkx,Tky,Sk)を使用する。
ステップS34において、演算回路24は、所定の位置(x,y)に対して、その位置(x,y)の近傍領域において、式(23)の距離の条件式を満たす(k',ig,jg)と(k”,ir,jr)との組を求めて、ステップS35に進む。
ステップS35において、演算回路24は、ステップS34で求めた(k',ig,jg)と(k”,ir,jr)それぞれの画素値Gobs(k',ig,jg)とRobs(k”,ir,jr)で表される点を、GR空間にプロットし、主成分分析を行う。そして、演算回路24は、主成分分析の分析結果である主成分の方向と直交する成分についての分散を求め、その分散の範囲内に、同一画素のG信号とR信号が存在するという色相関の条件式をたてて、ステップS35からステップS36に進む。
ステップS36において、演算回路24は、所定の位置(x,y)に対して、位置(x,y)の近傍領域において、式(24)の距離の条件式を満たす(k',ig,jg)と(k”',ib,jb)との組を求めて、ステップS37に進む。
ステップS37において、演算回路24は、ステップS36で求めた(k',ig,jg)と(k”',ib,jb)それぞれの画素値Gobs(k',ig,jg)とBobs(k”',ib,jb)で表される点を、GB空間にプロットし、主成分分析を行う。そして、演算回路24は、主成分分析の分析結果である主成分の方向と直交する成分についての分散を求め、その分散の範囲内に、同一画素のG信号とB信号が存在するという色相関の条件式をたてて、ステップS37からステップS38に進む。
ステップS38において、演算回路24は、予め設定されたすべての位置(x,y)について、色相関の条件式を求めたか否かを判定する。ステップS38において、まだ、すべての位置(x,y)について色相関の条件式が求められていないと判定された場合、ステップS34に戻り、演算回路24は、色相関の条件式が求められていない位置(x,y)に注目(選択)し、ステップS34乃至S38の処理を繰り返す。
一方、ステップS38において、すべての位置(x,y)について色相関の条件式が求められたと判定された場合、ステップS39に進み、演算回路24は、ステップS31乃至S33,S35,S37で求められたすべての条件式を満たす真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を演算して、処理を戻る。即ち、演算回路24は、ステップS31乃至S33で求められた光量積分条件式と、ステップS35およびS37で求められた色相関の条件式とのすべてを満たす、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を演算する。
図11と図12のフローチャートを参照して、図2のステップS4における画像推定処理の第2実施の形態について再度説明する。
ステップS51乃至S56は、図7に示した第1実施の形態の画像推定処理のステップS21乃至S26とそれぞれ同様である。
即ち、ステップS51において、演算回路24は、内部に保持する画像の枚数をカウントする変数kを1にセットしてステップS52に進む。
ステップS52において、演算回路24は、k枚目画像の各画素の画素値Gobs(k,ig,jg)から、すべての(ig,jg)に対して式(20)で表される光量積分条件式を生成し、ステップS53に進む。
ステップS53において、演算回路24は、k枚目画像の各画素の画素値Robs(k,ir,jr)から、すべての(ir,jr)に対して式(21)で表される光量積分条件式を生成し、ステップS54に進む。
ステップS54において、演算回路24は、k枚目画像の各画素の画素値Bobs(k,ib,jb)から、すべての(ib,jb)に対して式(22)で表される光量積分条件式を生成し、ステップS55に進む。
なお、ステップS52乃至S54において、光量積分条件式を生成するにあたっては、必要に応じて、動き検出回路23−1乃至23−(N−1)から供給される変換パラメータが用いられる。
ステップS55において、演算回路24は、内部の変数kがフレームメモリ22−1乃至22−Nから供給される画像の枚数Nと等しいか否かを判定する。変数kが画像の枚数Nと等しくないと判定された場合、演算回路24は、ステップS56に進み、変数kを1だけインクリメントした後、ステップS52に戻る。そして、ステップS52乃至S56の処理が繰り返される。
一方、ステップS55において、変数kが画像の枚数Nと等しいと判定された場合、図12のステップS57に進む。
ステップS57乃至S62は、図10のステップS34乃至S39とそれぞれ同様である。
即ち、ステップS57において、演算回路24は、所定の位置(x,y)に対して、その位置(x,y)の近傍領域において、式(23)の距離の条件式を満たす(k',ig,jg)と(k”,ir,jr)との組を求めて、ステップS58に進む。
ステップS58において、演算回路24は、ステップS57で求めた(k',ig,jg)と(k”,ir,jr)それぞれの画素値Gobs(k',ig,jg)とRobs(k”,ir,jr)で表される点を、GR空間にプロットし、主成分分析を行う。そして、演算回路24は、主成分分析の分析結果である主成分の方向と直交する成分についての分散を求め、その分散の範囲内に、同一画素のG信号とR信号が存在するという色相関の条件式をたてて、ステップS58からステップS59に進む。
ステップS59において、演算回路24は、所定の位置(x,y)に対して、位置(x,y)の近傍領域において、式(24)の距離の条件式を満たす(k',ig,jg)と(k”',ib,jb)との組を求めて、ステップS60に進む。
ステップS60において、演算回路24は、ステップS59求めた(k',ig,jg)と(k”',ib,jb)それぞれの画素値Gobs(k',ig,jg)とBobs(k”',ib,jb)で表される点を、GB空間にプロットし、主成分分析を行う。そして、演算回路24は、主成分分析の分析結果である主成分の方向と直交する成分についての分散を求め、その分散の範囲内に、同一画素のG信号とB信号が存在するという色相関の条件式をたてて、ステップS60からステップS61に進む。
ステップS61において、演算回路24は、予め設定されたすべての位置(x,y)について、色相関の条件式を求めたか否かを判定する。ステップS61において、まだ、すべての位置(x,y)について色相関の条件式が求められていないと判定された場合、ステップS57に戻り、演算回路24は、色相関の条件式が求められていない位置(x,y)に注目(選択)し、ステップS57乃至S61の処理を繰り返す。
一方、ステップS61において、すべての位置(x,y)について色相関の条件式が求められたと判定された場合、ステップS62に進み、演算回路24は、ステップS52乃至S54,S58,S60で求められたすべての条件式を満たす真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を演算して、処理を戻る。即ち、演算回路24は、ステップS52乃至S54で求められた光量積分条件式と、ステップS58およびS60で求められた色相関の条件式とのすべてを満たす、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を演算する。
以上のように、第1実施の形態における、k=1乃至Nとする式(20),(21),(22)で表される光量積分条件式の他に、R信号とG信号とB信号との間の相関に関する色相関の条件を付加して、それらすべての条件式を満たす真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を求めることにより、より本来の光に忠実で鮮明な画像を求めることができる。
なお、上述の場合には、2次元の色空間での色相関の条件式を用いたが、3次元の色空間での条件式を用いることも可能である。
(第3実施の形態)
次に、信号処理回路7における、画像推定処理の第3実施の形態について説明する。
第1および第2実施の形態では、撮像素子4の各画素の直上にあるオンチップレンズの特性を正確に定式化(適用)して、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を推定し、鮮明な画像を求めた。
第3実施の形態では、オンチップレンズの効果を無視し、撮像素子4の各画素で受光されるデータ(受光量)は、その画素の、ある1点(例えば、画素の重心)に入射される被写体の光の値(ポイントサンプリングされたデータ)とする。
また、第3実施の形態では、後述するバネモデルを適用した方法を採用する。これにより、第1および第2の実施の形態で用いたPOCS法などと比較して、真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を求める場合の計算量を軽減することができる。第3実施の形態においても、従来と較べて、より鮮明な画像を推定することができるという、第1および第2実施の形態と同様の効果を得ることができる。
さて、第3実施の形態では、上述したように、各画素に受光されるデータをポイントサンプリングされたデータとして考えることとするので、図3の撮像素子4の各画素のうち、「i番目、j番目の画素」で受光されるデータは、例えば、「i番目、j番目の画素」の中央の位置(座標)(i−0.5,j−0.5)において受光されたものとする。
従って、例えば、1枚目画像の「ig番目、jg番目の画素」で得られるデータとしての画素値Gobs(1,ig,jg)は、1枚目画像の座標系の位置(ig−0.5,jg−0.5)において受光される緑色の光量Lg(ig−0.5,jg−0.5)である。同様に、1枚目画像の「ir番目、jr番目の画素」で得られるデータとしての画素値Robs(1,ir,jr)は、1枚目画像の座標系の位置(ir−0.5,jr−0.5)において受光される赤色の光量Lr(ir−0.5,jr−0.5)であり、1枚目画像の「ib番目、jb番目の画素」で得られるデータとしての画素値Bobs(1,ib,jb)は、1枚目画像の座標系の位置(ib−0.5,jb−0.5)において受光される青色の光量Lb(ib−0.5,jb−0.5)である。
図13は、フレームメモリ22−1に記憶されている1枚目画像を示している。
図13において、緑色の成分を受光する画素G(jg−1)(ig−1)については、黒丸で示される位置に、画素値Gobs(1,ig,jg)が観測される。赤色の成分を受光する画素R(jr−1)(ir−1)については、黒四角で示される位置に、画素値Robs(1,ir,jr)が観測される。青色の成分を受光する画素B(jb−1)(ib−1)については、黒三角で示される位置に、画素値Bobs(1,ib,jb)が観測される。以上のように、1枚目画像の画素値は、1枚目画像の座標系上の各画素の中央部(重心)、即ち、i番目、j番目の画素では(i−0.5,j−0.5)の位置において観測される。
図14は、フレームメモリ22−2に記憶されている2枚目画像を示している。
図14において、緑色の成分を受光する画素G(jg−1)(ig−1)については、黒丸で示される位置に、画素値Gobs(2,ig,jg)が観測される。赤色の成分を受光する画素R(jr−1)(ir−1)については、黒四角で示される位置に、画素値Robs(2,ir,jr)が観測される。青色の成分を受光する画素B(jb−1)(ib−1)については、黒三角で示される位置に、画素値Bobs(2,ib,jb)が観測される。以上のように、2枚目画像の画素値は、2枚目画像の座標系上の各画素の中央部(重心)、即ち、i番目、j番目の画素では(i−0.5,j−0.5)の位置において観測される。
2枚目画像上の点を、第1および第2実施の形態と同様に、1枚目画像の座標系を基準として考える。2枚目画像上の点は、動き検出回路23−1により検出された変換パラメータ(θ2,T2x,T2y,S2)を用いて1枚目画像の座標系上の点に変換することができる。
図14には、その1枚目画像の座標系に変換された2枚目画像上の点の画素値Gobs(2,ig,jg)、画素値Robs(2,ir,jr)、画素値Bobs(2,ib,jb)も示されている。
即ち、2枚目画像の座標系の画素G(jg−1)(ig−1)の画素値Gobs(2,ig,jg)は、2枚目画像の座標系上の位置(ig−0.5,jg−0.5)を動き検出回路23−1により検出された変換パラメータ(θ2,T2x,T2y,S2)により変換した1枚目画像の座標系上の位置((ig−0.5)(2),(jg−0.5)(2))で観測される緑色の光量Lg(x,y)である。図14では、画素値Gobs(2,ig,jg)が観測される1枚目画像の座標系上の位置((ig−0.5)(2),(jg−0.5)(2))が、白丸で示されている。
また、2枚目画像の座標系の画素R(jr−1)(ir−1)の画素値Robs(2,ir,jr)は、2枚目画像の座標系上の位置(ir−0.5,jr−0.5)を動き検出回路23−1により検出された変換パラメータ(θ2,T2x,T2y,S2)により変換した1枚目画像の座標系上の位置((ir−0.5)(2),(jr−0.5)(2))で観測される赤色の光量Lr(x,y)である。図14では、画素値Robs(2,ir,jr)が観測される1枚目画像の座標系上の位置((ir−0.5)(2),(jr−0.5)(2))が、白四角で示されている。
さらに、2枚目画像の座標系の画素B(jb−1)(ib−1)の画素値Bobs(2,ib,jb)は、2枚目画像の座標系上の位置(ib−0.5,jb−0.5)を動き検出回路23−1により検出された変換パラメータ(θ2,T2x,T2y,S2)により変換した1枚目画像の座標系上の位置((ib−0.5)(2),(jb−0.5)(2))で観測される青色の光量Lb(x,y)である。図14では、画素値Bobs(2,ib,jb)が観測される1枚目画像の座標系上の位置((ib−0.5)(2),(jb−0.5)(2))が、白三角で示されている。
図15は、フレームメモリ22−3に記憶されている3枚目画像を示している。
図15において、緑色の成分を受光する画素G(jg−1)(ig−1)については、黒丸で示される位置に、画素値Gobs(3,ig,jg)が観測される。赤色の成分を受光する画素R(jr−1)(ir−1)については、黒四角で示される位置に、画素値Robs(3,ir,jr)が観測される。青色の成分を受光する画素B(jb−1)(ib−1)については、黒三角で示される位置に、画素値Bobs(3,ib,jb)が観測される。以上のように、3枚目画像の画素値は、3枚目画像の座標系上の各画素の中央部(重心)、即ち、i番目、j番目の画素では(i−0.5,j−0.5)の位置において観測される。
3枚目画像上の点を、第1および第2実施の形態と同様に、1枚目画像の座標系を基準として考える。3枚目画像上の点は、動き検出回路23−2により検出された変換パラメータ(θ3,T3x,T3y,S3)を用いて1枚目画像の座標系上の点に変換することができる。
図15には、その1枚目画像の座標系に変換された3枚目画像上の点の画素値Gobs(3,ig,jg)、画素値Robs(3,ir,jr)、画素値Bobs(3,ib,jb)も示されている。
即ち、3枚目画像の座標系の画素G(jg−1)(ig−1)の画素値Gobs(3,ig,jg)は、3枚目画像の座標系上の位置(ig−0.5,jg−0.5)を動き検出回路23−2により検出された変換パラメータ(θ3,T3x,T3y,S3)により変換した1枚目画像の座標系上の位置((ig−0.5)(3),(jg−0.5)(3))で観測される緑色の光量Lg(x,y)である。図15では、画素値Gobs(3,ig,jg)が観測される1枚目画像の座標系上の位置((ig−0.5)(3),(jg−0.5)(3))が、白丸で示されている。
また、3枚目画像の座標系の画素R(jr−1)(ir−1)の画素値Robs(3,ir,jr)は、3枚目画像の座標系上の位置(ir−0.5,jr−0.5)を動き検出回路23−2により検出された変換パラメータ(θ3,T3x,T3y,S3)により変換した1枚目画像の座標系上の位置((ir−0.5)(3),(jr−0.5)(3))で観測される赤色の光量Lr(x,y)である。図15では、画素値Robs(3,ir,jr)が観測される1枚目画像の座標系上の位置((ir−0.5)(3),(jr−0.5)(3))が、白四角で示されている。
さらに、3枚目画像の座標系の画素B(jb−1)(ib−1)の画素値Bobs(3,ib,jb)は、3枚目画像の座標系上の位置(ib−0.5,jb−0.5)を動き検出回路23−2により検出された変換パラメータ(θ3,T3x,T3y,S3)により変換した1枚目画像の座標系上の位置((ib−0.5)(3),(jb−0.5)(3))で観測される青色の光量Lb(x,y)である。図15では、画素値Bobs(3,ib,jb)が観測される1枚目画像の座標系上の位置((ib−0.5)(3),(jb−0.5)(3))が、白三角で示されている。
図16は、1乃至N枚目の撮像画像の画素のうちの緑色の成分を受光する所定の画素G(jg−1)(ig−1)の画素値Gobs(1,ig,jg)乃至Gobs(N,ig,jg)が観測される1枚目画像の座標系上の位置を示している。
図16では、1枚目画像の座標系上のig番目、jg番目の画素G(jg−1)(ig−1)の中心位置(画素中心)において1枚目画像の画素値Gobs(1,ig,jg)が観測されている。また、画素G(jg−1)(ig−1)の画素中心の左上側に、位置が1枚目画像の座標系上に変換された2枚目画像の画素値Gobs(2,ig,jg)が観測されている。さらに、画素G(jg−1)(ig−1)の画素中心の左下側に、位置が1枚目画像の座標系上に変換された3枚目画像の画素値Gobs(3,ig,jg)が観測されている。また、画素G(jg−1)(ig−1)の画素中心の右上側に、位置が1枚目画像の座標系上に変換された4枚目画像の画素値Gobs(4,ig,jg)が観測されている。なお、5乃至N枚目画像の画素値Gobs(k,ig),jg)(k=5乃至N)の図示は、省略されている。
第3実施の形態では、演算回路24は、1乃至N枚目画像の画素値Gobs(k,ig,jg)(k=1乃至N)に基づいて、1枚目画像の座標系上の位置(ig−0.5,jg−0.5)の真の緑色の光量Lg(ig−0.5,jg−0.5)を求める。
ここで、基準画像である1枚目画像の座標系上において、i番目、j番目の画素の中心位置(i−0.5,j−0.5)を(I',J')と表すことにする。即ち、I'=i−0.5,J'=j−0.5とする。求めるべき真の緑色の光量Lg(I',J')は、緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を用いたLg(ig−0.5,jg−0.5)で表すことができる。同様に、求めるべき真の赤色の光量Lr(I',J')は、赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を用いたLr(ir−0.5,jr−0.5)で表すことができ、求めるべき真の青色の光量Lb(I',J')は、青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を用いたLb(ib−0.5,jb−0.5)で表すことができる。
図17は、演算回路24が、鮮明な画像の画像信号として求めるべき真の赤色の光量Lr(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')の位置を1枚目画像の座標系上に示したものである。
即ち、図17では、1枚目画像の座標系上の撮像素子4の各画素の中心位置(I',J')が、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')を求めるべき位置として黒丸で示されている。
図18乃至図23を参照し、緑色の成分を受光する画素に注目して、バネモデルについて説明する。図18以降においては、求めるべき真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')の1枚目画像の座標系上の位置(I',J')を黒丸で、画素値Gobs(k,ig,jg),Robs(k,ir,jr),Bobs(k,ib,jb)(k=1乃至N)が観測された1枚目画像の座標系上の位置を白丸で表すものとする。また、以下、適宜、基準画像である1枚目画像の座標系を基準座標系という。
図18の点Aの位置(x,y)は、k枚目画像のig番目、jg番目の画素の画素値Gobs(k,ig,jg)が観測された位置(ig−0.5,jg−0.5)を、動き検出回路23−(k−1)により検出された変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置((ig−0.5)(k),(jg−0.5)(k))を表している。k=1の場合は、(θk,Tkx,Tky,Sk)=(0,0,0,1)とみなすことができるので、(x,y)=(ig−0.5,jg−0.5)となる。なお、点A(x,y)の画素値は、Gobs(k,ig,jg)である。
ここで、点A(x,y)に対して、I−0.5≦x<I+0.5,J−0.5≦y<J+0.5を満たす整数I,Jを考えることにする。このときの(I±0.5,J±0.5)で囲まれる領域の四隅の各位置、即ち、(I−0.5,J−0.5),(I−0.5,J+0.5),(I+0.5,J−0.5),(I+0.5,J+0.5)の位置は、真の緑色の光量Lg(I',J')を求める各位置(I',J')となる。
いま、点A(x,y)における画素値Gobs(k,ig,jg)は、点A(x,y)に近い(I−0.5,J−0.5),(I−0.5,J+0.5),(I+0.5,J−0.5),(I+0.5,J+0.5)の位置それぞれにおける真の緑色の光量Lg(I−0.5,J−0.5),Lg(I−0.5,J+0.5),Lg(I+0.5,J−0.5),Lg(I+0.5,J+0.5)それぞれとほぼ等しいとみなすことができる。即ち、真の緑色の光量Lg(I−0.5,J−0.5),Lg(I−0.5,J+0.5),Lg(I+0.5,J−0.5),Lg(I+0.5,J+0.5)は、点A(x,y)における画素値Gobs(k,ig,jg)で近似することができる。
ところで、点A(x,y)で観測された画素値Gobs(k,ig,jg)には、第1および第2実施の形態で説明したように、誤差(ノイズ量)Mk×Eが含まれる。さらに、ここでは、(I−0.5,J−0.5),(I−0.5,J+0.5),(I+0.5,J−0.5),(I+0.5,J+0.5)の位置それぞれにおける真の緑色の光量Lg(I−0.5,J−0.5),Lg(I−0.5,J+0.5),Lg(I+0.5,J−0.5),Lg(I+0.5,J+0.5)を、点A(x,y)における画素値Gobs(k,ig,jg)で近似したことによる誤差(以下、適宜、近似誤差と称する)が生ずる。
ここで、例えば、位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)を点A(x,y)における画素値Gobs(k,ig,jg)で近似することは、バネを用いたモデルであるバネモデルに当てはめることができる。
図19は、点A(x,y)における画素値Gobs(k,ig,jg)で位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)を近似した状態を表すバネモデルの概念的な図である。
図19では、画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I−0.5,J−0.5)とが、バネBA1の一端と他端とにそれぞれ接続され、画素値Gobs(k,ig,jg)側に、真の緑色の光量Lg(I−0.5,J−0.5)が引っ張られようとしている状態を示している。図19のバネモデルでは、真の緑色の光量Lg(I−0.5,J−0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)であることが確からしいほど、真の緑色の光量Lg(I−0.5,J−0.5)が画素値Gobs(k,ig,jg)側に引き寄せられ、逆に、その確からしさの程度が低いほど、真の緑色の光量Lg(I−0.5,J−0.5)が、画素値Gobs(k,ig,jg)から遠ざかる。
ここで、画素値Gobs(k,ig,jg)で、真の緑色の光量Lg(I−0.5,J−0.5)を近似したことによる近似誤差は、点A(x,y)と位置(I−0.5,J−0.5)との間の距離が長くなるほど大きくなる。そこで、点(x1,y1)と点(x2,y2)との距離が大となると関数値が増加する増加関数F((x1,y1),(x2,y2))を導入する。関数F((x1,y1),(x2,y2))としては、例えば、
F((x1,y1),(x2,y2))=√{(x1−x2)2+(y1−y2)2}
などを採用することができる。
また、上述したように、点A(x,y)で観測された画素値Gobs(k,ig,jg)には、誤差としてのノイズ量E×Mkが含まれる。
画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I−0.5,J−0.5)とが等価(同一)であることの確からしさ、即ち、真の緑色の光量Lg(I−0.5,J−0.5)を画素値Gobs(k,ig,jg)で近似したときの近似精度は、上述の近似誤差とノイズ量E×Mkの増加または減少に応じて、それぞれ減少または増加する。従って、近似精度(確からしさ)は、例えば、
Mk×E×F((x,y),(I−0.5,J−0.5))
の値に対して減少する(反比例する)。即ち、真の緑色の光量Lg(I−0.5,J−0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)に等しいことの確からしさは、「Mk×E×F((x,y),(I−0.5,J−0.5))」の値が小さければ、大であり、また「Mk×E×F((x,y),(I−0.5,J−0.5))」の値が大きければ、小であるといえる。
いま、この画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I−0.5,J−0.5)が等価であることの確からしさをバネBA1のバネ定数(バネの強さ)で表すことにすると、バネ定数は、例えば、式
{√2−F((x,y),(I−0.5,J−0.5))}/(Mk×E)
で表すことができる。ここで、分母の(Mk×E)は、ノイズ量EのMk倍であり、ノイズが大となるほどバネBA1は弱くなって、真の緑色の光量Lg(I−0.5,J−0.5)が、バネBA1によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。分子の{√2−F((x,y),(I−0.5,J−0.5))}は、図18の(I±0.5,J±0.5)で囲まれる領域内の任意の2点の距離の最大値である√(12+12)=√2から、点Aと(I−0.5,J−0.5)との距離F((x,y),(I−0.5,J−0.5))を引いた値(差分)であり、画素値Gobs(k,ig,jg)が観測された位置A(x,y)と真の緑色の光量Lg(I−0.5,J−0.5)を求める位置(I−0.5,J−0.5)との距離が大きくなるほど、√2−F((x,y),(I−0.5,J−0.5))は小さくなって、バネBA1は弱くなる。従って、真の緑色の光量Lg(I−0.5,J−0.5)が、バネBA1によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。なお、バネ定数において、分子の{√2−F((x,y),(I−0.5,J−0.5))}の代わりに、F((x,y),(I−0.5,J−0.5))の逆数などを用いることもできる。
バネモデルにおいて、バネBA1は、自然長(無負荷の状態でのバネBA1の長さ)が0のバネであるとする。この場合、バネBA1の長さ(伸び)は、光量(画素値)の軸方向を距離として、
|Gobs(k,ig,jg)−Lg(I−0.5,J−0.5)|
と表すことができ、真の緑色の光量Lg(I−0.5,J−0.5)が、バネBA1によって点A(x,y)の画素値Gobs(k,ig,jg)側に引っ張られる力は、バネ定数×バネの長さ={{√2−F((x,y),(I−0.5,J−0.5))}/(Mk×E)}×|Gobs(k,ig,jg)−Lg(I−0.5,J−0.5)|と表すことができる。
図20は、点A(x,y)における画素値Gobs(k,ig,jg)と、(I−0.5,J−0.5),(I−0.5,J+0.5),(I+0.5,J−0.5),(I+0.5,J+0.5)の位置における真の緑色の光量Lg(I−0.5,J−0.5),Lg(I−0.5,J+0.5),Lg(I+0.5,J−0.5),Lg(I+0.5,J+0.5)それぞれとの関係を表すバネモデルを概念的に表した図である。
図19で説明した点A(x,y)における画素値Gobs(k,ig,jg)と、真の緑色の光量Lg(I−0.5,J−0.5)との関係を表すバネモデルと同様に、真の緑色の光量Lg(I−0.5,J+0.5),Lg(I+0.5,J−0.5),Lg(I+0.5,J+0.5)それぞれについても、点A(x,y)における画素値Gobs(k,ig,jg)の関係を、バネモデルで表すことができる。
即ち、図20では、画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I−0.5,J+0.5)とが、バネBA2の一端と他端とにそれぞれ接続され、画素値Gobs(k,ig,jg)側に、真の緑色の光量Lg(I−0.5,J+0.5)が引っ張られようとしている状態を示している。図20のバネモデルでは、真の緑色の光量Lg(I−0.5,J+0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)であることが確からしいほど、真の緑色の光量Lg(I−0.5,J+0.5)が画素値Gobs(k,ig,jg)側に引き寄せられ、逆に、その確からしさの程度が低いほど、真の緑色の光量Lg(I−0.5,J+0.5)が、画素値Gobs(k,ig,jg)から遠ざかる。
ここで、画素値Gobs(k,ig,jg)で、真の緑色の光量Lg(I−0.5,J+0.5)を近似したことによる近似誤差は、点A(x,y)と位置(I−0.5,J+0.5)との間の距離が長くなるほど大きくなる。そこで、点(x1,y1)と点(x2,y2)との距離が大となると関数値が増加する増加関数F((x1,y1),(x2,y2))を導入する。関数F((x1,y1),(x2,y2))としては、例えば、
F((x1,y1),(x2,y2))=√{(x1−x2)2+(y1−y2)2}
などを採用することができる。
また、上述したように、点A(x,y)で観測された画素値Gobs(k,ig,jg)には、誤差としてのノイズ量E×Mkが含まれる。
画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I−0.5,J+0.5)とが等価(同一)であることの確からしさ、即ち、真の緑色の光量Lg(I−0.5,J+0.5)を画素値Gobs(k,ig,jg)で近似したときの近似精度は、上述の近似誤差とノイズ量E×Mkの増加または減少に応じて、それぞれ減少または増加する。従って、近似精度(確からしさ)は、例えば、
Mk×E×F((x,y),(I−0.5,J+0.5))
の値に対して減少する(反比例する)。即ち、真の緑色の光量Lg(I−0.5,J+0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)に等しいことの確からしさは、「Mk×E×F((x,y),(I−0.5,J+0.5))」の値が小さければ、大であり、また「Mk×E×F((x,y),(I−0.5,J+0.5))」の値が大きければ、小であるといえる。
いま、この画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I−0.5,J+0.5)が等価であることの確からしさをバネBA2のバネ定数(バネの強さ)で表すことにすると、バネ定数は、例えば、式
{√2−F((x,y),(I−0.5,J+0.5))}/(Mk×E)
で表すことができる。ここで、分母の(Mk×E)は、ノイズ量EのMk倍であり、ノイズが大となるほどバネBA2は弱くなって、真の緑色の光量Lg(I−0.5,J+0.5)が、バネBA2によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。分子の{√2−F((x,y),(I−0.5,J+0.5))}は、図18の(I±0.5,J±0.5)で囲まれる領域内の任意の2点の距離の最大値である√(12+12)=√2から、点Aと(I−0.5,J+0.5)との距離F((x,y),(I−0.5,J+0.5))を引いた値(差分)であり、画素値Gobs(k,ig,jg)が観測された位置A(x,y)と真の緑色の光量Lg(I−0.5,J+0.5)を求める位置(I−0.5,J+0.5)との距離が大きくなるほど、√2−F((x,y),(I−0.5,J+0.5))は小さくなって、バネBA2は弱くなる。従って、真の緑色の光量Lg(I−0.5,J+0.5)が、バネBA2によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。なお、バネ定数において、分子の{√2−F((x,y),(I−0.5,J+0.5))}の代わりに、F((x,y),(I−0.5,J+0.5))の逆数などを用いることもできる。
バネモデルにおいて、バネBA2は、自然長(無負荷の状態でのバネBA2の長さ)が0のバネであるとする。この場合、バネBA2の長さ(伸び)は、光量(画素値)の軸方向を距離として、
|Gobs(k,ig,jg)−Lg(I−0.5,J+0.5)|
と表すことができ、真の緑色の光量Lg(I−0.5,J+0.5)が、バネBA2によって点A(x,y)の画素値Gobs(k,ig,jg)側に引っ張られる力は、バネ定数×バネの長さ={{√2−F((x,y),(I−0.5,J+0.5))}/(Mk×E)}×|Gobs(k,ig,jg)−Lg(I−0.5,J+0.5)|と表すことができる。
また、図20では、画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I+0.5,J−0.5)とが、バネBA3の一端と他端とにそれぞれ接続され、画素値Gobs(k,ig,jg)側に、真の緑色の光量Lg(I+0.5,J−0.5)が引っ張られようとしている状態を示している。図20のバネモデルでは、真の緑色の光量Lg(I+0.5,J−0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)であることが確からしいほど、真の緑色の光量Lg(I+0.5,J−0.5)が画素値Gobs(k,ig,jg)側に引き寄せられ、逆に、その確からしさの程度が低いほど、真の緑色の光量Lg(I+0.5,J−0.5)が、画素値Gobs(k,ig,jg)から遠ざかる。
ここで、画素値Gobs(k,ig,jg)で、真の緑色の光量Lg(I+0.5,J−0.5)を近似したことによる近似誤差は、点A(x,y)と位置(I+0.5,J−0.5)との間の距離が長くなるほど大きくなる。そこで、点(x1,y1)と点(x2,y2)との距離が大となると関数値が増加する増加関数F((x1,y1),(x2,y2))を導入する。関数F((x1,y1),(x2,y2))としては、例えば、
F((x1,y1),(x2,y2))=√{(x1−x2)2+(y1−y2)2}
などを採用することができる。
また、上述したように、点A(x,y)で観測された画素値Gobs(k,ig,jg)には、誤差としてのノイズ量E×Mkが含まれる。
画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I+0.5,J−0.5)とが等価(同一)であることの確からしさ、即ち、真の緑色の光量Lg(I+0.5,J−0.5)を画素値Gobs(k,ig,jg)で近似したときの近似精度は、上述の近似誤差とノイズ量E×Mkの増加または減少に応じて、それぞれ減少または増加する。従って、近似精度(確からしさ)は、例えば、
Mk×E×F((x,y),(I+0.5,J−0.5))
の値に対して減少する(反比例する)。即ち、真の緑色の光量Lg(I+0.5,J−0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)に等しいことの確からしさは、「Mk×E×F((x,y),(I+0.5,J−0.5))」の値が小さければ、大であり、また「Mk×E×F((x,y),(I+0.5,J−0.5))」の値が大きければ、小であるといえる。
いま、この画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I+0.5,J−0.5)が等価であることの確からしさをバネBA3のバネ定数(バネの強さ)で表すことにすると、バネ定数は、例えば、式
{√2−F((x,y),(I+0.5,J−0.5))}/(Mk×E)
で表すことができる。ここで、分母の(Mk×E)は、ノイズ量EのMk倍であり、ノイズが大となるほどバネBA3は弱くなって、真の緑色の光量Lg(I+0.5,J−0.5)が、バネBA3によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。分子の{√2−F((x,y),(I+0.5,J−0.5))}は、図18の(I±0.5,J±0.5)で囲まれる領域内の任意の2点の距離の最大値である√(12+12)=√2から、点Aと(I+0.5,J−0.5)との距離F((x,y),(I+0.5,J−0.5))を引いた値(差分)であり、画素値Gobs(k,ig,jg)が観測された位置A(x,y)と真の緑色の光量Lg(I+0.5,J−0.5)を求める位置(I+0.5,J−0.5)との距離が大きくなるほど、√2−F((x,y),(I+0.5,J−0.5))は小さくなって、バネBA3は弱くなる。従って、真の緑色の光量Lg(I+0.5,J−0.5)が、バネBA3によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。なお、バネ定数において、分子の{√2−F((x,y),(I+0.5,J−0.5))}の代わりに、F((x,y),(I+0.5,J−0.5))の逆数などを用いることもできる。
バネモデルにおいて、バネBA3は、自然長(無負荷の状態でのバネBA3の長さ)が0のバネであるとする。この場合、バネBA3の長さ(伸び)は、光量(画素値)の軸方向を距離として、
|Gobs(k,ig,jg)−Lg(I+0.5,J−0.5)|
と表すことができ、真の緑色の光量Lg(I+0.5,J−0.5)が、バネBA3によって点A(x,y)の画素値Gobs(k,ig,jg)側に引っ張られる力は、バネ定数×バネの長さ={{√2−F((x,y),(I+0.5,J−0.5))}/(Mk×E)}×|Gobs(k,ig,jg)−Lg(I+0.5,J−0.5)|と表すことができる。
さらに、図20では、画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I+0.5,J+0.5)とが、バネBA4の一端と他端とにそれぞれ接続され、画素値Gobs(k,ig,jg)側に、真の緑色の光量Lg(I+0.5,J+0.5)が引っ張られようとしている状態を示している。図20のバネモデルでは、真の緑色の光量Lg(I+0.5,J+0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)であることが確からしいほど、真の緑色の光量Lg(I+0.5,J+0.5)が画素値Gobs(k,ig,jg)側に引き寄せられ、逆に、その確からしさの程度が低いほど、真の緑色の光量Lg(I+0.5,J+0.5)が、画素値Gobs(k,ig,jg)から遠ざかる。
ここで、画素値Gobs(k,ig,jg)で、真の緑色の光量Lg(I+0.5,J+0.5)を近似したことによる近似誤差は、点A(x,y)と位置(I+0.5,J+0.5)との間の距離が長くなるほど大きくなる。そこで、点(x1,y1)と点(x2,y2)との距離が大となると関数値が増加する増加関数F((x1,y1),(x2,y2))を導入する。関数F((x1,y1),(x2,y2))としては、例えば、
F((x1,y1),(x2,y2))=√{(x1−x2)2+(y1−y2)2}
などを採用することができる。
また、上述したように、点A(x,y)で観測された画素値Gobs(k,ig,jg)には、誤差としてのノイズ量E×Mkが含まれる。
画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I+0.5,J+0.5)とが等価(同一)であることの確からしさ、即ち、真の緑色の光量Lg(I+0.5,J+0.5)を画素値Gobs(k,ig,jg)で近似したときの近似精度は、上述の近似誤差とノイズ量E×Mkの増加または減少に応じて、それぞれ減少または増加する。従って、近似精度(確からしさ)は、例えば、
Mk×E×F((x,y),(I+0.5,J+0.5))
の値に対して減少する(反比例する)。即ち、真の緑色の光量Lg(I+0.5,J+0.5)が、点A(x,y)の画素値Gobs(k,ig,jg)に等しいことの確からしさは、「Mk×E×F((x,y),(I+0.5,J+0.5))」の値が小さければ、大であり、また「Mk×E×F((x,y),(I+0.5,J+0.5))」の値が大きければ、小であるといえる。
いま、この画素値Gobs(k,ig,jg)と真の緑色の光量Lg(I+0.5,J+0.5)が等価であることの確からしさをバネBA4のバネ定数(バネの強さ)で表すことにすると、バネ定数は、例えば、式
{√2−F((x,y),(I+0.5,J+0.5))}/(Mk×E)
で表すことができる。ここで、分母の(Mk×E)は、ノイズ量EのMk倍であり、ノイズが大となるほどバネBA4は弱くなって、真の緑色の光量Lg(I+0.5,J+0.5)が、バネBA4によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。分子の{√2−F((x,y),(I+0.5,J+0.5))}は、図18の(I±0.5,J±0.5)で囲まれる領域内の任意の2点の距離の最大値である√(12+12)=√2から、点Aと(I+0.5,J+0.5)との距離F((x,y),(I+0.5,J+0.5))を引いた値(差分)であり、画素値Gobs(k,ig,jg)が観測された位置A(x,y)と真の緑色の光量Lg(I+0.5,J+0.5)を求める位置(I+0.5,J+0.5)との距離が大きくなるほど、√2−F((x,y),(I+0.5,J+0.5))は小さくなって、バネBA4は弱くなる。従って、真の緑色の光量Lg(I+0.5,J+0.5)が、バネBA4によって点Aの画素値Gobs(k,ig,jg)側へ引っ張られる力は小さくなる。なお、バネ定数において、分子の{√2−F((x,y),(I+0.5,J+0.5))}の代わりに、F((x,y),(I+0.5,J+0.5))の逆数などを用いることもできる。
バネモデルにおいて、バネBA4は、自然長(無負荷の状態でのバネBA4の長さ)が0のバネであるとする。この場合、バネBA4の長さ(伸び)は、光量(画素値)の軸方向を距離として、
|Gobs(k,ig,jg)−Lg(I+0.5,J+0.5)|
と表すことができ、真の緑色の光量Lg(I+0.5,J+0.5)が、バネBA4によって点A(x,y)の画素値Gobs(k,ig,jg)側に引っ張られる力は、バネ定数×バネの長さ={{√2−F((x,y),(I+0.5,J+0.5))}/(Mk×E)}×|Gobs(k,ig,jg)−Lg(I+0.5,J+0.5)|と表すことができる。
以上では、基準座標系上の任意の位置A(x,y)における画素値Gobs(k,ig,jg)に注目して、その位置A(x,y)の周辺、即ち、式I−0.5≦x<I+0.5と式J−0.5≦y<J+0.5を満たす整数I,Jで表される任意の真の緑色の光量Lg(I−0.5,J−0.5),Lg(I−0.5,J+0.5),Lg(I+0.5,J−0.5),Lg(I+0.5,J+0.5)との関係を、バネモデルで表したが、今度は、基準座標系上の画素中心となる位置(I',J')に注目して、その位置(I',J')の真の緑色の光量Lg(I',J')と、その周辺で観測される画素値Gobs(k,ig,jg)との関係をバネモデルで表すことにする。
位置(I',J')は、そのI',J'の小数点以下が0.5である各画素の中心位置であるから、例えば、図20において黒丸で示される(I−0.5,J−0.5)等が、位置(I',J')となる。
図20に示したように、点A(x,y)については、その周辺の4つの真の緑色の光量Lg(I−0.5,J−0.5),Lg(I−0.5,J+0.5),Lg(I+0.5,J−0.5),Lg(I+0.5,J+0.5)との間に、バネモデルを定義することができる。さらに、点A(x,y)以外の1乃至N枚目の撮像画像の各画素値Gobs(k,ig,jg)が観測される点についても、それぞれ同様に、4つのバネモデルを定義することができる。従って、位置(I',J')に注目すると、図21に示すように、位置(I',J')の真の緑色の光量Lg(I',J')に対して、その周辺にある、例えば、点A乃至点Eそれぞれで観測される画素値Gobs(k,ig,jg)とのバネモデルが定義されることになる。
即ち、ある位置(I',J')に対して、位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす整数k,ig,jgの組をすべて求める。例えば、いま、図21に示すように、位置(I',J')に対して、点A乃至点Eで観測された5つの画素値Gobs(k,ig,jg)を特定する(k,ig,jg)の組が得られたとする。
この場合、図22に示すように、点A乃至点Eで観測された5つの画素値Gobs(k,ig,jg)それぞれと、位置(I',J')の真の緑色の光量Lg(I',J')との関係を表すバネモデルを定義することができる。即ち、真の緑色の光量Lg(I',J')を求めるべき位置(I',J')について、その真の緑色の光量Lg(I',J')と、観測された画素値Gobs(k,ig,jg)との関係を、バネモデルで表すことができる。
図23は、位置(I',J')に注目したバネモデルによって、その位置(I',J')の真の緑色の光量Lg(I',J')を推定する推定方法を説明する図である。なお、図23における軸は、緑色の光量(G信号)を表す。
図23では、質量が0の物体Vが、5つのバネそれぞれの一端に繋がっており、5つのバネの他端は、点A乃至点Eの5つの画素値Gobs(k,ig,jg)それぞれに接続されている。即ち、点A乃至点Eの5つの画素値Gobs(k,ig,jg)は、図22のある位置(I',J')に対して、位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組に対応する画素値Gobs(k,ig,jg)である。
また、この5つのバネの自然長は0で、点(x,y)で観測される画素値Gobs(k,ig,jg)に他端が接続されているバネのバネ定数は、上述したように、
{√2−F((x,y),(I',J'))}/(Mk×E)である。
上述の5つのバネそれぞれは、そのバネ定数に比例する力で、5つの画素値Gobs(k,ig,jg)側に物体Vを引っ張り合っており、ある位置でつり合うこととなる。その位置を表す光量が、位置(I',J')の真の緑色の光量Lg(I',J')として推定される。このバネのつり合いは、物体Vにかかる力の総和が0であることを表す次式によって表すことができる。
以下において、式(25)を緑色の光量のバネ関係式と称する。ここで、式(25)におけるΣは、ある位置(I',J')に対して、位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組の個数分の和を表す。例えば、図23の例では、点A乃至点Eの5個の(k,ig,jg)の組についての和となる。
式(25)は、Lg(I',J')を未知数とする一次方程式であり、式(25)を解くことにより、位置(I',J')における真の緑色の光量Lg(I',J')を求めることができる。
位置(I',J')における、真の赤色の光量Lr(I',J')と、真の青色の光量Lb(I',J')についても、図18乃至図23で説明した緑色の成分を受光する画素の場合と同様に、式(25)と同様の式(26)と式(27)の一次方程式をたてることができる。
以下において、式(26)を赤色の光量のバネ関係式と称する。ここで、式(26)におけるΣは、ある位置(I',J')に対して、位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ir,jr)の組の個数分の和を表す。
以下において、式(27)を青色の光量のバネ関係式と称する。ここで、式(27)におけるΣは、ある位置(I',J')に対して、位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組の個数分の和を表す。
従って、第3実施の形態では、ある位置(I',J')に対して、位置(i−0.5,j−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(補正位置)(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組の画素値に基づいて、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')が求められる。
次に、図24のフローチャートを参照して、図2のステップS4における画像推定処理の第3実施の形態について説明する。
初めに、ステップS71において、演算回路24は、基準座標系上のある位置(I',J')に注目する(以下、注目位置(I',J')と称する)。ここで、注目位置(I',J')は、基準画像である1枚目の撮像画像の「i番目、j番目の画素」の画素中心(i−0.5,j−0.5)を表している。
そして、ステップS71からS72に進み、演算回路24は、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組を、1乃至N枚目画像についてすべて求め、ステップS73に進む。
ステップS73において、演算回路24は、ステップS72で求めたすべての(k,ig,jg)の組を用いて、式(25)で表される緑色の光量のバネ関係式を生成して、ステップS74に進む。
ステップS74において、演算回路24は、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ir,jr)の組を、1乃至N枚目画像についてすべて求め、ステップS75に進む。
ステップS75において、演算回路24は、ステップS74で求めたすべての(k,ir,jr)の組を用いて、式(26)で表される赤色の光量のバネ関係式を生成して、ステップS76に進む。
ステップS76において、演算回路24は、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組を、1乃至N枚目画像についてすべて求め、ステップS77に進む。
ステップS77において、演算回路24は、ステップS76で求めたすべての(k,ib,jb)の組を用いて、式(27)で表される青色の光量のバネ関係式を生成して、ステップS78に進む。
ステップS78において、演算回路24は、ステップS73で求めた式(25)で表される緑色の光量のバネ関係式、ステップS75で求めた式(26)で表される赤色の光量のバネ関係式、ステップS77で求めた式(27)で表される青色の光量のバネ関係式を、一次方程式として解くことにより、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求め、ステップS79に進む。
ステップS79において、演算回路24は、すべての位置(I',J')を注目位置としたか、即ち、1枚目の撮像画像の画素の中心位置のすべてを注目位置(I',J')として、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')を求めたか否かを判定する。
ステップS79で、すべての位置(I',J')をまだ注目位置として求めていないと判定された場合、ステップS71に戻り、ステップS71乃至S79の処理が繰り返される。即ち、演算回路24は、まだ注目していない位置(I',J')を次の注目位置(I',J')として、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求める。
一方、ステップS79で、すべての位置(I',J')を注目位置としたと判定された場合、ステップS80に進み、演算回路24は、ステップS78で求めた真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')から、画像(信号)を推定し、D/Aコンバータ9またはコーデック12に出力画像として供給し、処理を戻る。例えば、「i番目、j番目の画素」においては、演算回路24は、緑色の値(G信号)としてステップS78で求めた真の緑色の光量Lg(i−0.5,j−0.5)と、赤色の値(R信号)としてステップS78で求めた真の赤色の光量Lr(i−0.5,j−0.5)と、青色の値(B信号)としてステップS78で求めた真の青色の光量Lb(i−0.5,j−0.5)とから、「i番目、j番目の画素」の画像信号を推定する(得る)。そして、演算回路24は、その推定を位置(I',J')を中心位置とする画素すべてについて行うことにより、出力画像を推定する。
以上のように、第3実施の形態では、撮像素子4の各画素で受光されるデータをポイントサンプリングされたデータとして捉え、各画素中心で観測された画素値とカメラブレのない鮮明な画像としての画像信号との関係をバネモデルで表すことにより、より本来の光に忠実で鮮明な画像を求めることができる。
(第4実施の形態)
次に、画像推定処理の第4実施の形態について説明する。第4実施の形態は、図24で説明した第3実施の形態の一部を改良したものである。
即ち、図24の第3実施の形態においては、ステップS72において、演算回路24は、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組を、1乃至N枚目画像についてすべて求める。そして、ステップS73において、演算回路24は、ステップS72で求めたすべての(k,ig,jg)の組を用いて、式(25)で表される緑色の光量のバネ関係式を生成する。また、赤色や青色の成分を受光する画素についても、同様に、注目位置(I',J')に対して、(k,ig,jg)の組を求め、その求めたすべての(k,ig,jg)の組を用いて式(26)や式(27)で表されるバネ関係式を生成する。
ところで、1乃至N枚の画像のうちの特定の画像の、特定の画素のデータが、例えば、撮影ミスなどにより、信頼性のないデータとなってしまう場合がある。図1のデジタルカメラ1では、N枚の画像が撮像され、フレームメモリ22に記憶されている。従って、信頼性のないデータを採用しないようにしたとしても、十分なデータを確保することができる。
そこで、第4実施の形態は、信頼性のあるデータのみを採用し(信頼性のないデータを破棄し)、より鮮明な画像を推定するようにするものである。そのため、第4実施の形態では、注目位置(I',J')に対して、求めたすべての(k,ig,jg)の組の中から、信頼性のあるデータとして、予め設定されたL個の(k,ig,jg)の組を採用するものとする。ここで、Lは、例えば、8個などの固定の値とすることもできるし、ユーザの操作に応じて設定される可変の値とすることもできる。演算回路24は、求めたすべての(k,ig,jg)の組の画素値Gobs(k,ig,jg)の平均値を求め、(k,ig,jg)の組を、その画素値Gobs(k,ig,jg)の平均値に近い順にL個(L=8)だけ選択し、位置(I',J')の真の緑色の光量Lg(I',J')を求めるのに採用する。
従って、第3実施の形態において、式(25),式(26),および式(27)で表される緑色、赤色、および青色の光量のバネ関係式は、第4実施の形態では、それぞれ式(28),式(29),および式(30)のように表すことができる。
ここで、式(28)におけるΣは、注目位置(I',J')に対して、求めたすべての(k,ig,jg)の組の画素値Gobs(k,ig,jg)の平均値を求め、画素値Gobs(k,ig,jg)が平均値に近い順のL個の(k,ig,jg)の組の和を表す。
ここで、式(29)におけるΣは、注目位置(I',J')に対して、求めたすべての(k,ir,jr)の組の画素値Robs(k,ir,jr)の平均値を求め、画素値Robs(k,ir,jr)が平均値に近い順のL個の(k,ir,jr)の組の和を表す。
ここで、式(30)におけるΣは、注目位置(I',J')に対して、求めたすべての(k,ib,jb)の組の画素値Bobs(k,ib,jb)の平均値を求め、画素値Bobs(k,ib,jb)が平均値に近い順のL個の(k,ib,jb)の組の和を表す。
図25のフローチャートを参照して、図2のステップS4における画像推定処理の第4実施の形態について説明する。
初めに、ステップS91において、演算回路24は、基準座標系上のある位置(I',J')に注目する(以下、注目位置(I',J')と称する)。ここで、注目位置(I',J')は、基準画像である1枚目の撮像画像の「i番目、j番目の画素」の画素中心(i−0.5,j−0.5)を表している。
そして、ステップS91からS92に進み、演算回路24は、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組を、1乃至N枚目画像についてすべて求め、ステップS93に進む。
ステップS93において、演算回路24は、ステップS92で求めたすべての(k,ig,jg)の組における画素値Gobs(k,ig,jg)の平均値を求め、画素値Gobs(k,ig,jg)が平均値に近い順のL個の(k,ig,jg)の組を選択し、ステップS94に進む。即ち、ステップS93では、ステップS92で求めたすべての(k,ig,jg)の組における画素値Gobs(k,ig,jg)の平均値から遠いものが、信頼性のないデータとして破棄される。なお、ステップS92で求めたすべての(k,ig,jg)の組が、もともとL個に達していない場合には、それらすべての(k,ig,jg)の組が選択される(破棄されない)。
ステップS94において、演算回路24は、ステップS93で選択したL個の(k,ig,jg)の組を用いて、式(28)で表される緑色の光量のバネ関係式を生成して、ステップS95に進む。
ステップS95において、演算回路24は、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ir,jr)の組を、1乃至N枚目画像についてすべて求め、ステップS96に進む。
ステップS96において、演算回路24は、ステップS96で求めたすべての(k,ir,jr)の組における画素値Robs(k,ir,jr)の平均値を求め、画素値Robs(k,ir,jr)が平均値に近い順のL個の(k,ir,jr)の組を選択し、ステップS97に進む。即ち、ステップS96では、ステップS95で求めたすべての(k,ir,jr)の組における画素値Robs(k,ir,jr)の平均値から遠いものが、信頼性のないデータとして破棄される。なお、ステップS95で求めたすべての(k,ir,jr)の組が、もともとL個に達していない場合には、それらすべての(k,ir,jr)の組が選択される(破棄されない)。
ステップS97において、演算回路24は、ステップS96で選択したL個の(k,ir,jr)の組を用いて、式(29)で表される赤色の光量のバネ関係式を生成して、ステップS98に進む。
ステップS98において、演算回路24は、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組を、1乃至N枚目画像についてすべて求め、ステップS99に進む。
ステップS99において、演算回路24は、ステップS98で求めたすべての(k,ib,jb)の組における画素値Bobs(k,ib,jb)の平均値を求め、画素値Bobs(k,ib,jb)が平均値に近い順のL個の(k,ib,jb)の組を選択し、ステップS100に進む。即ち、ステップS99では、ステップS98で求めたすべての(k,ib,jb)の組における画素値Bobs(k,ib,jb)の平均値から遠いものが、信頼性のないデータとして破棄される。なお、ステップS98で求めたすべての(k,ib,jb)の組が、もともとL個に達していない場合には、それらすべての(k,ib,jb)の組が選択される(破棄されない)。
ステップS100において、演算回路24は、ステップS99で選択したL個の(k,ib,jb)の組を用いて、式(30)で表される青色の光量のバネ関係式を生成して、ステップS101に進む。
ステップS101において、演算回路24は、ステップS94で求めた式(28)で表される緑色の光量のバネ関係式、ステップS97で求めた式(29)で表される赤色の光量のバネ関係式、ステップS100で求めた式(30)で表される青色の光量のバネ関係式を、一次方程式として解くことにより、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求め、ステップS102に進む。
ステップS102において、演算回路24は、すべての位置(I',J')を注目位置としたか、即ち、1枚目の撮像画像の画素の中心位置のすべてを注目位置(I',J')として、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')を求めたか否かを判定する。
ステップS102で、すべての位置(I',J')を、まだ注目位置としていないと判定された場合、ステップS91に戻り、ステップS91乃至S102の処理が繰り返される。即ち、演算回路24は、まだ注目していない位置(I',J')を次の注目位置(I',J')として、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求める。
一方、ステップS102で、すべての位置(I',J')を注目位置としたと判定された場合、ステップS103に進み、演算回路24は、ステップS101で求めた真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')から、画像(信号)を推定し、D/Aコンバータ9またはコーデック12に出力画像として供給し、処理を戻る。例えば、「i番目、j番目の画素」においては、演算回路24は、緑色の値(G信号)としてステップS101で求めた真の緑色の光量Lg(i−0.5,j−0.5)と、赤色の値(R信号)としてステップS101で求めた真の赤色の光量Lr(i−0.5,j−0.5)と、青色の値(B信号)としてステップS101で求めた真の青色の光量Lb(i−0.5,j−0.5)とから、「i番目、j番目の画素」の画像信号を推定する。そして、演算回路24は、その推定を位置(I',J')を中心位置とする画素すべてについて行うことにより、出力画像を推定する。
以上のように、第4実施の形態では、平均値に近い画素値を信頼性の高いデータとして、その信頼性の高いデータにのみ、バネモデルを適用するようにしたので、第3実施の形態より本来の光に忠実で鮮明な画像を求めることが可能となる。
(第5実施の形態)
次に、画像推定処理の第5実施の形態について説明する。第5実施の形態は、第4実施の形態と同様に、注目位置(I',J')に対して、求めたすべての(k,ig,jg)の組の中から、信頼性のあるデータとして、予め設定されたL個の(k,ig,jg)の組を採用し、L個で構成された緑色、赤色、および青色の光量のバネ関係式を解くことにより、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')を求めるものである。
但し、第4実施の形態では、演算回路24において、例えば、緑色の成分を受光する画素については、求めたすべての(k,ig,jg)の組の画素値Gobs(k,ig,jg)の平均値を求め、画素値Gobs(k,ig,jg)が平均値に近い順のL個の(k,ig,jg)の組を選択するようにした。
一方、第5実施の形態では、演算回路24は、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)と注目位置(I',J')との距離が短いものから順番にL個だけ(k,ig,jg)の組を、信頼性の高いデータとして選択する。なぜなら、図19で説明したように、注目位置(I',J')の真の緑色の光量Lg(I',J')を、位置(x,y)で観測された画素値Gobs(k,ig,jg)で近似したことによる近似誤差は、位置(x,y)と注目位置(I',J')との距離が長くなるほど大きくなる。従って、注目位置(I',J')からの距離が遠い位置(x,y)で観測された画素値Gobs(k,ig,jg)ほど信頼性が少なくなる。なお、2点(x1,y1)と(x2,y2)との間の距離を求める関数は、例えば、図19で説明した関数F((x1,y1),(x2,y2))を採用することができる。
第5実施の形態では、第3実施の形態における式(25),式(26),および式(27)に代えて、式(31)、式(32)、および式(33)で表される緑色、赤色、および青色の光量のバネ関係式が用いられる。
ここで、式(31)におけるΣは、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)と注目位置(I',J')との距離が短いものから順番に選択したL個の(k,ig,jg)の組の和を表す。
ここで、式(32)におけるΣは、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)と注目位置(I',J')との距離が短いものから順番に選択したL個の(k,ir,jr)の組の和を表す。
ここで、式(33)におけるΣは、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)と注目位置(I',J')との距離が短いものから順番に選択したL個の(k,ib,jb)の組の和を表す。
図26のフローチャートを参照して、図2のステップS4における画像推定処理の第5実施の形態について説明する。
初めに、ステップS121において、演算回路24は、基準座標系上のある位置(I',J')に注目する(以下、注目位置(I',J')と称する)。ここで、注目位置(I',J')は、基準画像である1枚目の撮像画像の「i番目、j番目の画素」の画素中心(i−0.5,j−0.5)を表している。
ステップS121からS122に進み、演算回路24は、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組を、1乃至N枚目画像についてすべて求め、ステップS123に進む。
ステップS123において、演算回路24は、ステップS122で求めたすべての(k,ig,jg)の組の中から、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)と注目位置(I',J')との距離が短い順にL個だけ(k,ig,jg)の組を選択し、ステップS124に進む。即ち、ステップS123では、ステップS122で求めたすべての(k,ig,jg)の組のうち、位置(x,y)と注目位置(I',J')との距離が長いものが、信頼性のないデータとして破棄される。なお、ステップS122で求めたすべての(k,ig,jg)の組が、もともとL個に達していない場合には、それらすべての(k,ig,jg)の組が選択される(破棄されない)。
ステップS124において、演算回路24は、ステップS123で選択したL個の(k,ig,jg)の組を用いて、式(31)で表される緑色の光量のバネ関係式を生成して、ステップS125に進む。
ステップS125において、演算回路24は、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ir,jr)の組を、1乃至N枚目画像についてすべて求め、ステップS126に進む。
ステップS126において、演算回路24は、ステップS125で求めたすべての(k,ir,jr)の組の中から、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)と注目位置(I',J')との距離が短い順にL個だけ(k,ir,jr)の組を選択し、ステップS127に進む。即ち、ステップS126では、ステップS125で求めたすべての(k,ir,jr)の組のうち、位置(x,y)と注目位置(I',J')との距離が長いものが、信頼性のないデータとして破棄される。なお、ステップS125で求めたすべての(k,ir,jr)の組が、もともとL個に達していない場合には、それらすべての(k,ir,jr)の組が選択される(破棄されない)。
ステップS127において、演算回路24は、ステップS126で選択したL個の(k,ir,jr)の組を用いて、式(32)で表される赤色の光量のバネ関係式を生成して、ステップS128に進む。
ステップS128において、演算回路24は、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組を、1乃至N枚目画像についてすべて求め、ステップS129に進む。
ステップS129において、演算回路24は、ステップS128で求めたすべての(k,ib,jb)の組の中から、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)と注目位置(I',J')との距離が短い順にL個だけ(k,ib,jb)の組を選択し、ステップS130に進む。即ち、ステップS129では、ステップS128で求めたすべての(k,ib,jb)の組のうち、位置(x,y)と注目位置(I',J')との距離が長いものが、信頼性のないデータとして破棄される。なお、ステップS128で求めたすべての(k,ib,jb)の組が、もともとL個に達していない場合には、それらすべての(k,ib,jb)の組が選択される(破棄されない)。
ステップS130において、演算回路24は、ステップS129で選択したL個の(k,ib,jb)の組を用いて、式(33)で表される青色の光量のバネ関係式を生成して、ステップS131に進む。
ステップS131において、演算回路24は、ステップS124で求めた式(31)で表される緑色の光量のバネ関係式、ステップS127で求めた式(32)で表される赤色の光量のバネ関係式、ステップS130で求めた式(33)で表される青色の光量のバネ関係式を、一次方程式として解くことにより、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求め、ステップS132に進む。
ステップS132において、演算回路24は、すべての位置(I',J')を注目位置としたか、即ち、1枚目の撮像画像の画素の中心位置のすべてを注目位置(I',J')として、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')を求めたか否かを判定する。
ステップS132で、すべての位置(I',J')を、まだ注目位置としていないと判定された場合、ステップS121に戻り、ステップS121乃至S132の処理が繰り返される。即ち、演算回路24は、まだ注目していない位置(I',J')を次の注目位置(I',J')として、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求める。
一方、ステップS132で、すべての位置(I',J')を注目位置としたと判定された場合、ステップS133に進み、演算回路24は、ステップS131で求めた真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')から、画像(信号)を生成し、D/Aコンバータ9またはコーデック12に出力画像として供給し、処理を戻る。例えば、「i番目、j番目の画素」においては、演算回路24は、緑色の値(G信号)としてステップS131で求めた真の緑色の光量Lg(i−0.5,j−0.5)と、赤色の値(R信号)としてステップS131で求めた真の赤色の光量Lr(i−0.5,j−0.5)と、青色の値(B信号)としてステップS131で求めた真の青色の光量Lb(i−0.5,j−0.5)とから、「i番目、j番目の画素」の画像信号を推定する。そして、演算回路24は、その推定を位置(I',J')を中心位置とする画素すべてについて行うことにより、出力画像を推定する。
以上のように、第5実施の形態では、注目位置(I',J')に近い位置で観測された画素値を信頼性の高いデータとして、その信頼性の高いデータにのみ、バネモデルを適用するようにしたので、第3実施の形態より本来の光に忠実で鮮明な画像を求めることが可能となる。
(第6実施の形態)
次に、画像推定処理の第6実施の形態について説明する。
第6実施の形態も、上述した第3実施の形態の一部を改良したものである。即ち、第6実施の形態では、画像のエッジ部分を検出し、検出したエッジ部分にある画素値に対して、第3実施の形態における式(25),式(26),および式(27)で表される緑色、赤色、および青色の光量のバネ関係式を改良する。
図27は、緑色、赤色、および青色のうちの、例えば、緑色の成分(G信号)に注目した基準座標系を示している。
図27では、境界(エッジ)51を境に、右側に明るい緑色としての画素値が観測されており、左側に暗い緑色としての画素値が観測されている。なお、ここでは、緑色の画素値が、例えば、8ビットで表されるものとして、明るい緑色の画素値を、例えば、240程度とするとともに、暗い緑色の画素値を、例えば、16程度とする。
図27において、白丸52−1乃至52−10、白丸53−1乃至53−9、および白丸54は、あるk枚目画像の「ig番目、jg番目の画素」の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置を表し、その位置で緑色の画素値Gobs(k,ig,jg)が観測されている。ここで、(k,ig,jg)の組は、白丸52−1乃至52−10、白丸53−1乃至53−9、および白丸54それぞれにおいて異なるものである。
図27中の点線で示される格子状の交点に配置される黒丸のそれぞれは、演算回路24が真の緑色の光量Lg(I',J')を求めるべき位置(I',J')を表している。ここで、位置(I',J')は、上述したように、基準画像である1枚目画像における「i番目、j番目の画素」の画素中心(i−0.5,j−0.5)を表している。また、X方向とY方向のLg(I',J')どうしの間隔は、ともに1であり、従って、画素のX方向とY方向の大きさも、ともに1である。
さて、図27の領域61に含まれる白丸52−1乃至52−8で表される位置では、240程度の明るい緑色の画素値Gobs(k,ig,jg)が観測される。
また、図27の領域62に含まれる白丸53−1乃至53−7で表される位置では、16程度の暗い緑色の画素値Gobs(k,ig,jg)が観測される。
さらに、図27の白丸54で表される位置は、境界51上の位置であり、この位置では、オンチップレンズの効果により、画素値240の明るい緑色の光と、画素値16の暗い緑色の光とを同一光量だけ受光した画素値が観測される。従って、白丸54の位置の画素値Gobs(k,ig,jg)としては、240と16の平均となる128(=(240+16)/2)が観測される。
なお、上述の白丸52−1乃至52−8、白丸53−1乃至53−7、白丸54で観測される画素値Gobs(k,ig,jg)には、通常、誤差成分が含まれるため、正確には、約240、約16、約128と表現すべきであるが、ここでは、そのような誤差成分を無視して、240、16、128と記載することとする。
ここで、例えば、図27の黒丸71の位置を注目位置(I',J')とし、上述の第3の実施の形態の方法により、黒丸71で表される注目位置(I',J')の真の緑色の光量Lg(I',J')を求める場合について考える。
即ち、黒丸71の位置を注目位置(I',J')とすると、その周辺の、白丸52−3、52−6、52−10、54などの位置で観測される画素値Gobs(k,ig,jg)が、式(25)中のGobs(k,ig,jg)として採用される。この場合、式(25)を解くことにより得られる解である真の緑色の光量Lg(I',J')は、白丸54の位置で観測される画素値である128に引っ張られ(影響され)、240より小さな値となる。しかしながら、本来であれば、黒丸71の位置は、画素値240の明るい緑色の画素値が観測される、境界51の右側の位置であるので、式(25)を解くことにより得られる解である真の緑色の光量Lg(I',J')は、240となるのが望ましい。
また、黒丸72の位置を注目位置(I',J')とすると、その周辺の、白丸53−2、53−3、53−5、53−9、54などの位置で観測される画素値Gobs(k,ig,jg)が、式(25)中のGobs(k,ig,jg)として採用される。この場合、式(25)を解くことにより得られる解である真の緑色の光量Lg(I',J')は、白丸54の位置で観測される画素値である128に引っ張られ(影響され)、16より大きな値となる。しかしながら、本来であれば、黒丸72の位置は、画素値16の暗い緑色の画素値が観測される、境界51の左側の位置であるので、式(25)を解くことにより得られる解である真の緑色の光量Lg(I',J')は、16となるのが望ましい。
以上のことが、黒丸73、黒丸74の位置についても同様に言える。つまり、第3実施の形態の画像推定処理により推定された画像は、図27の境界51が存在するエッジ部分では、エッジがなだらかになり(隣接する画素の画素値の差が小さくなり)ボケた画像となってしまうことがあり得る。
そこで、第6実施の形態では、図27の境界51が存在するエッジ部分を検出し、そのエッジ部分にある画素値Gobs(k,ig,jg)に対して特別な処理を行う、即ち、式(25)で表される緑色の光量のバネ関係式に代入する画素値Gobs(k,ig,jg)を変更する。
第6実施の形態の具体的な方法について、図27と同様に、緑色の成分(G信号)に注目して説明する。
最初に、演算回路24は、基準座標系上に変換された位置すべての画素値Gobs(k,ig,jg)を用いてエッジ部分の検出を行う。即ち、演算回路24は、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」の4つの方向のエッジそれぞれの有無を判定する。
図28を参照して、縦方向のエッジがあるかどうか判定する判定方法について説明する。
図28は、基準座標系を示している。そして、図28において、白丸81−1乃至81−10、白丸82−1乃至82−9、および白丸83で表される位置は、あるk枚目画像の「ig番目、jg番目の画素」の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置を表し、その位置で画素値Gobs(k,ig,jg)が観測されている。ここで、(k,ig,jg)の組は、白丸81−1乃至81−10、白丸82−1乃至82−9、および白丸83それぞれにおいて異なるものである。
図28中の点線で示される格子状の交点に配置される黒丸のそれぞれは、演算回路24が真の緑色の光量Lg(I',J')を求めるべき位置(I',J')を表している。ここで、位置(I',J')は、上述したように、基準画像である1枚目画像における「i番目、j番目の画素」の画素中心(i−0.5,j−0.5)を表している。また、X方向とY方向のLg(I',J')どうしの間隔は、図27と同様に1であり、従って、画素のX方向とY方向の大きさも、ともに1である。
演算回路24は、図28中の白丸83の位置などに注目し、例えば、図28に示されるエッジ94のような、縦方向のエッジがあるかどうかを判定する。白丸83の位置(x,y)は、式I−0.5≦x<I+0.5,J−0.5≦y<J+0.5を満たすもものとする。図28では、白丸83の位置(x,y)は、位置(I+0.5,J−0.5)を表す黒丸84、位置(I−0.5,J−0.5)を表す黒丸85、位置(I+0.5,J+0.5)を表す黒丸86、位置(I−0.5,J+0.5)を表す黒丸87で囲まれる領域A11内の位置である。ここで、I,Jは、これまでと同様に整数である。
演算回路24は、注目している白丸83の位置を含む領域A11を中心とする、画素の大きさと同じ1ごとの、9つの領域を定義する。即ち、9つの領域は、I−1.5≦x<I−0.5,J−1.5≦y<J−0.5の領域A00、I−1.5≦x<I−0.5,J−0.5≦y<J+0.5の領域A01、I−1.5≦x<I−0.5,J+0.5≦y<J+1.5の領域A02、I−0.5≦x<I+0.5,J−1.5≦y<J−0.5の領域A10、I−0.5≦x<I+0.5,J−0.5≦y<J+0.5の領域A11、I−0.5≦x<I+0.5,J+0.5≦y<J+1.5の領域A12、I+0.5≦x<I+1.5,J−1.5≦y<J−0.5の領域A20、I+0.5≦x<I+1.5,J−0.5≦y<J+0.5の領域A21、I+0.5≦x<I+1.5,J+0.5≦y<J+1.5の領域A22、である。いま注目している白丸83の位置は、領域A11に含まれている。
ここで、以上のように、注目している白丸83の位置に対して定義される9つの領域A00乃至A22の全体を、以下、適宜、エッジ判定領域と称する。
縦方向のエッジ94があるかどうか判定するため、演算回路24は、領域A00、領域A01、領域A02の1列で構成される、エッジ判定領域の左側の領域91(以下、左側領域91と称する)、領域A10、領域A11、領域A12の1列で構成される、エッジ判定領域の中央の領域92(以下、中央領域92と称する)、領域A20、領域A21、領域A22の1列で構成される、エッジ判定領域の右側の領域93(以下、右側領域93と称する)内それぞれに含まれる白丸の位置の画素値Gobs(k,ig,jg)の平均値と分散を求める。
即ち、演算回路24は、左側領域91内の白丸82−1乃至82−7の位置の画素値Gobs(k,ig,jg)の平均値EG0と分散SG0を求める。また、演算回路24は、中央領域92内の白丸81−9、81−10、82−8乃至82−9、および83の位置の画素値Gobs(k,ig,jg)の平均値EG0”を求める。さらに、演算回路24は、右側領域93内の白丸81−1乃至81−8の位置の画素値Gobs(k,ig,jg)平均値EG0'と分散SG0'を求める。
仮に、注目している白丸83の位置付近に、縦方向のエッジ94がある場合、左側領域91の平均値EG0、中央領域92の平均値EG0”、および右側領域93の平均値EG0'には、次式(a)の関係が成り立つ。そこで、演算回路24は、式(a)が成立するときに、縦方向のエッジがあると判定する。
EG0<EG0”<EG0'またはEG0'<EG0”<EG0
・・・(a)
なお、実際には、エッジ94以外の部分でも、例えば、被写体の細かな模様などによるデータのばらつきにより、上述の式(a)を満たす場合があり得るため、演算回路24は、分散SG0,SG0'を付加した次式が成り立つかどうか判定することにより、さらに確実に縦方向のエッジ94があるかどうかを判定する。即ち、演算回路24は、式(b)が成立するときに、縦方向のエッジがあると判定する。
EG0+SG0<EG0”<EG0'−SG0'
またはEG0'+SG0'<EG0”<EG0−SG0
・・・(b)
式(b)によれば、模様部分のように画素値にばらつきがあり、分散SG0,SG0'が大となる部分については、エッジがあると判定され難くなり、誤判定を防止することができる。
図29を参照して、横方向のエッジがあるかどうか判定する判定方法について説明する。なお、図28と対応する部分については、同一の符号を付してあり、以下では、その説明は省略する。
横方向のエッジ104があるかどうか判定するため、演算回路24は、領域A00、領域A10、領域A20の1列で構成される、エッジ判定領域の上側の領域101(以下、上側領域101と称する)、領域A01、領域A11、領域A21の1列で構成されるエッジ判定領域の中央の領域102(以下、中央領域102と称する)、領域A02、領域A12、領域A22の1列で構成される、エッジ判定領域の下側の領域103(以下、下側領域103と称する)内それぞれに含まれる白丸の位置の画素値Gobs(k,ig,jg)の平均値と分散を求める。
即ち、演算回路24は、上側領域101内の白丸81−1乃至81−3、81−10、82−1、82−2、82−9の位置の画素値Gobs(k,ig,jg)の平均値EG1と分散SG1を求める。また、演算回路24は、中央領域102内の白丸81−4乃至81−6、82−3乃至82−5、および83の位置の画素値Gobs(k,ig,jg)の平均値EG1”を求める。さらに、演算回路24は、下側領域103内の白丸81−7乃至81−9、82−6乃至82−8の位置の画素値Gobs(k,ig,jg)平均値EG1'と分散SG1'を求める。
仮に、注目している白丸83の位置付近に、横方向のエッジ104がある場合、上側領域101の平均値EG1、中央領域102の平均値EG1”、および下側領域103の平均値EG1'の関係として、被写体の細かな模様などによるデータのばらつきも考慮した次式(c)をたてる。そして、演算回路24は、式(c)が成立するときに、横方向のエッジがあると判定する。
EG1+SG1<EG1”<EG1'−SG1'
またはEG1'+SG1'<EG1”<EG1−SG1
・・・(c)
式(c)によれば、模様部分のように画素値にばらつきがあり、分散SG1,SG1'が大となる部分については、エッジがあると判定され難くなり、誤判定を防止することができる。なお、上述の式(a)における場合と同様に、分散を考慮せずに、平均値のみで、横方向のエッジの有無を判定することも可能である。
図30を参照して、左上から右下方向のエッジがあるかどうか判定する判定方法について説明する。なお、図28と対応する部分については、同一の符号を付してあり、以下では、その説明は省略する。
左上から右下方向のエッジ114があるかどうか判定するため、演算回路24は、領域A01、領域A02、領域A12の1列で構成される、エッジ判定領域の左下側の領域111(以下、左下側領域111と称する)、領域A00、領域A11、領域A22の1列で構成される、エッジ判定領域の中央の領域112(以下、中央領域112と称する)、領域A10、領域A20、領域A21の1列で構成される、エッジ判定領域の左上側の領域113(以下、左上側領域113と称する)内それぞれに含まれる白丸の位置の画素値Gobs(k,ig,jg)の平均値と分散を求める。
即ち、演算回路24は、左下側領域111内の白丸81−9、82−3乃至82−8の位置の画素値Gobs(k,ig,jg)の平均値EG2と分散SG2を求める。また、演算回路24は、中央領域112内の白丸81−7、81−8、82−1、82−2、および83の位置の画素値Gobs(k,ig,jg)の平均値EG2”を求める。さらに、演算回路24は、右上側領域113内の白丸81−1乃至81−6、81−10、および82−9の位置の画素値Gobs(k,ig,jg)平均値EG2'と分散SG2'を求める。
仮に、注目している白丸83の位置付近に、左上から右下方向のエッジ114がある場合、左下側領域111の平均値EG2、中央領域112の平均値EG2”、および右上側領域113の平均値EG2' の関係として、被写体の細かな模様などによるデータのばらつきも考慮した次式(d)をたてる。そして、演算回路24は、式(d)が成立するときに、左上から右下方向のエッジがあると判定する。
EG2+SG2<EG2”<EG2'−SG2'
またはEG2'+SG2'<EG2”<EG2−SG2
・・・(d)
式(d)によれば、模様部分のように画素値にばらつきがあり、分散SG2,SG2'が大となる部分については、エッジがあると判定され難くなり、誤判定を防止することができる。なお、上述の式(a)における場合と同様に、分散を考慮せずに、平均値のみで、左上から右下方向のエッジの有無を判定することも可能である。
図31を参照して、右上から左下方向のエッジがあるかどうか判定する判定方法について説明する。なお、図28と対応する部分については、同一の符号を付してあり、以下では、その説明は省略する。
右上から左下方向のエッジ124があるかどうか判定するため、演算回路24は、領域A00、領域A01、領域A10の1列で構成される、エッジ判定領域の左上側の領域121(以下、左上側領域121と称する)、領域A02、領域A11、領域A20の1列で構成される、エッジ判定領域の中央の領域122(以下、中央領域122と称する)、領域A12、領域A21、領域A22の1列で構成される、エッジ判定領域の右下側の領域123(以下、右下側領域123と称する)内それぞれに含まれる白丸の位置の画素値Gobs(k,ig,jg)の平均値と分散を求める。
即ち、演算回路24は、左上側領域121内の白丸81−10、82−1乃至82−5、82−9の位置の画素値Gobs(k,ig,jg)の平均値EG3と分散SG3を求める。また、演算回路24は、中央領域122内の白丸81−1乃至81−3、82−6、82−7、および83の位置の画素値Gobs(k,ig,jg)の平均値EG3”を求める。さらに、演算回路24は、右下側領域123内の白丸81−4乃至81−9、82−8の位置の画素値Gobs(k,ig,jg)平均値EG3'と分散SG3'を求める。
仮に、注目している白丸83の位置付近に、右上から左下方向のエッジ124がある場合、左上側領域121の平均値EG3、中央領域122の平均値EG3”、および右下側領域123の平均値EG3' の関係として、被写体の細かな模様などによるデータのばらつきも考慮した次式(e)をたてる。そして、演算回路24は、式(e)が成立するときに、右上から左下方向のエッジがあると判定する。
EG3+SG3<EG3”<EG3'−SG3'
またはEG3'+SG3'<EG3”<EG3−SG3
・・・(e)
式(e)によれば、模様部分のように画素値にばらつきがあり、分散SG1,SG1'が大となる部分については、エッジがあると判定され難くなり、誤判定を防止することができる。なお、上述の式(a)における場合と同様に、分散を考慮せずに、平均値のみで、右下から左下方向のエッジの有無を判定することも可能である。
図28乃至図31で説明したように、演算回路24は、「縦方向」、「横方向」、「左上から右下方向」、「右下から左下方向」の4つの方向について、エッジがあるかどうか、即ち、上述の式が成り立つかどうかを判定する。なお、演算回路24は、緑色のみならず、他の赤色と青色それぞれについても同様に、エッジの有無を判定する。
ここで、4つの方向のエッジのうち、複数の方向のエッジについて、上述の式が成り立つことも考えられる。しかしながら、実際のエッジは1つであるので、その場合、一番顕著な方向のエッジのみを採用し、その他の方向のエッジはないものとする。
具体的には、例えば、演算回路24は、エッジが検出された複数の方向について、
|(EGm'−EGm)÷(SGm'+SGm)|
(m=0乃至3のいずれか)
を演算し、その演算結果が一番大となるmを決定する。そして、そのmが、0であれば「縦方向のエッジ」を、1であれば「横方向のエッジ」を、2であれば「左上から右下方向のエッジ」を、3であれば「右下から左下方向のエッジ」を、それぞれ、一番顕著な方向のエッジとして採用する。ここで、|x|は、xの絶対値を表す。
次に、注目した位置について検出されたエッジの方向に応じて、そのエッジ部分にある、注目した位置で観測された画素値Gobs(k,ig,jg)に対して演算回路24が行う特別な処理について説明する。
特別な処理とは、式(25)で表される緑色の光量のバネ関係式に画素値Gobs(k,ig,jg)を代入する場合に、エッジ部分と判定された位置で観測された画素値Gobs(k,ig,jg)については、代入する画素値Gobs(k,ig,jg)を変更する処理である。
代入する画素値Gobs(k,ig,jg)を変更する処理としては、例えば、以下の第1の処理や第2の処理を採用することができる。
例えば、第1の処理では、注目している、例えば、図28乃至図31の白丸83の位置にエッジが検出された場合、その位置の画素値Gobs(k,ig,jg)を破棄する。即ち、式(25)で表される緑色の光量のバネ関係式に、エッジが検出された位置の画素値Gobs(k,ig,jg)を含ませない。この場合、図22(図23)で説明したバネモデルにおいては、間違った方向(光量)に引っ張るバネがなくなることになる。従って、より正確な(鮮明な)Lg(I',J')を求めることができる。
第2の処理では、注目している、例えば、図28乃至図31の白丸83の位置の画素値Gobs(k,ig,jg)を、上述したエッジの検出において、注目している位置について定義したエッジ判定領域を構成する9つの領域A00乃至A22で観測されている画素値Gobs(k,ig,jg)を用いて他の値に置き換え、式(25)で表される緑色の光量のバネ関係式に代入する。
以下に、第2の処理を具体的に説明する。
図32は、図28で示した、「縦方向のエッジ」が検出された場合の、注目している白丸83の位置を含む領域A11を示している。図中の、1軸は基準座標系におけるX方向を、X方向と垂直な軸が基準座標系におけるY方向を、X方向およびY方向と垂直な軸が画素値を、それぞれ表している。
図32では、エッジ判定領域について求められた平均値EG0,EG0',EG0”と分散SG0,SG0'が、式「EG0'+SG0'<EG0”<EG0−SG0」を満たし、従って、「縦方向のエッジ」が存在している。
この場合、黒丸85の位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)と、黒丸87の位置(I−0.5,J+0.5)における真の緑色の光量Lg(I−0.5,J+0.5)とは、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも大きいと考えられる。また、黒丸85の位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)、または黒丸87の位置(I−0.5,J+0.5)における真の緑色の光量Lg(I−0.5,J+0.5)それぞれと、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG0とEG0'との差(EG0−EG0')に依存する。
また、黒丸84の位置(I+0.5,J−0.5)における真の緑色の光量Lg(I+0.5,J−0.5)と、黒丸86の位置(I+0.5,J+0.5)における真の緑色の光量Lg(I+0.5,J+0.5)とは、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも小さいと考えられる。また、黒丸84の位置(I+0.5,J−0.5)における真の緑色の光量Lg(I+0.5,J−0.5)、または黒丸86の位置(I+0.5,J+0.5)における真の緑色の光量Lg(I+0.5,J+0.5)それぞれと、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG0とEG0'との差(EG0−EG0')に依存する。
そこで、演算回路24は、注目している白丸83の位置(x,y)の画素値Gobs(k,ig,jg)を通り、X方向に傾きpの平面Q1を求める。ここで、p=(EG0−EG0')÷2である。つまり、傾きpは、図28の左側領域91の画素値の平均値EG0と右側領域93の画素値の平均値EG0'との差を、左側領域91と右側領域92とのx方向の中心位置どうしの距離である2で除算して求められる。傾きpは、縦方向のエッジ部分における、そのエッジと垂直な方向の光量(画素値)の変化の度合い、つまり、エッジの傾きを表す。
そして、演算回路24は、黒丸85の位置(I−0.5,J−0.5)における平面Q1上の値(画素値)を求め、その値を画素値Gobs0(k,ig,jg)とする。また、演算回路24は、黒丸87の位置(I−0.5,J+0.5)における平面Q1上の値(画素値)を求め、その値を画素値Gobs1(k,ig,jg)とする。同様に、演算回路24は、黒丸84の位置(I+0.5,J−0.5)における平面Q1上の値(画素値)と、および黒丸86の位置(I+0.5,J+0.5)における平面Q1上の値(画素値)を求め、それぞれの値を画素値Gobs2(k,ig,jg)と、画素値Gobs3(k,ig,jg)とする。
ここで、平面Q1は、X方向についてのみ傾きpを有しているので、画素値Gobs0(k,ig,jg)と画素値Gobs1(k,ig,jg)とは等しく、また、画素値Gobs2(k,ig,jg)と画素値Gobs3(k,ig,jg)とは等しい。
さて、第3実施の形態では、図22に示したように、ある位置(I',J')における真の緑色の光量Lg(I',J')が、その周辺の位置で観測された画素値Gobs(k,ig,jg)とつりあっている状態を表すバネモデルを考えることにより、式(25)をたてる。位置(I',J')の周辺の位置で観測された画素値Gobs(k,ig,jg)とは、k枚目画像の座標系における位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組の画素値Gobs(k,ig,jg)である。
図32において、例えば、黒丸84の位置(I+0.5,J−0.5)を、位置(I',J')として注目した場合、黒丸84の位置の周辺の位置で観測される画素値Gobs(k,ig,jg)として、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)が含まれる。従って、第3実施の形態では、式(25)に、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)が代入される。
これに対して、第6実施の形態では、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸84の位置(I+0.5,J−0.5)における平面Q1上の値(画素値)である画素値Gobs2(k,ig,jg)が、式(25)に代入される。
また、黒丸85の位置(I−0.5,J−0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸85の位置(I−0.5,J−0.5)における平面Q1上の値(画素値)である画素値Gobs0(k,ig,jg)が、式(25)に代入される。
さらに、黒丸86の位置(I+0.5,J+0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸86の位置(I+0.5,J+0.5)における平面Q1上の値(画素値)である画素値Gobs3(k,ig,jg)が、式(25)に代入される。
また、黒丸87の位置(I−0.5,J+0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸87の位置(I−0.5,J+0.5)における平面Q1上の値(画素値)である画素値Gobs1(k,ig,jg)が、式(25)に代入される。
以上のように、縦方向のエッジ(緑色の光量の急峻な変化)がある位置で観測された画素値Gobs(k,ig,jg)(図32の白丸83の位置の画素値)を、そのエッジの傾き(急峻度合い)pに応じた画素値(Gobs0(k,ig,jg),Gobs1(k,ig,jg),Gobs2(k,ig,jg)、またはGobs3(k,ig,jg))に変更(補正)し、その変更した画素値を式(25)に代入することにより、バネモデルにおいて、図23における物体VとしてのLg(I',J')が適切な位置に引っ張られ、より正確な(鮮明な)真の緑色の光量Lg(I',J')を求めることができる。
図33は、図29で示した、「横方向のエッジ」が検出された場合の、注目している白丸83の位置を含む領域A11を示している。図中の、1軸は基準座標系におけるX方向を、X方向と垂直な軸が基準座標系におけるY方向を、X方向およびY方向と垂直な軸が画素値を、それぞれ表している。
図33では、エッジ判定領域について求められた平均値EG1,EG1',EG1”と分散SG1,SG1'が、式「EG1'+SG1'<EG1”<EG1−SG1」を満たし、従って、「横方向のエッジ」が存在している。
この場合、黒丸84の位置(I+0.5,J−0.5)における真の緑色の光量Lg(I+0.5,J−0.5)と、黒丸85の位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)とは、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも大きいと考えられる。また、黒丸84の位置(I+0.5,J−0.5)における真の緑色の光量Lg(I+0.5,J−0.5)、または黒丸85の位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)と、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG1とEG1'との差(EG1−EG1')に依存する。
また、黒丸86の位置(I+0.5,J+0.5)における真の緑色の光量Lg(I+0.5,J+0.5)と、黒丸87の位置(I−0.5,J+0.5)における真の緑色の光量Lg(I−0.5,J+0.5)とは、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも小さいと考えられる。また、黒丸86の位置(I+0.5,J+0.5)における真の緑色の光量Lg(I+0.5,J+0.5)、または黒丸87の位置(I−0.5,J+0.5)における真の緑色の光量Lg(I−0.5,J+0.5)それぞれと、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG1とEG1'との差(EG1−EG1')に依存する。
そこで、演算回路24は、注目している白丸83の位置(x,y)の画素値Gobs(k,ig,jg)を通り、Y方向に傾きpの平面Q2を求める。ここで、p=(EG1−EG1')÷2である。つまり、傾きpは、図29の上側領域101の画素値の平均値EG1と下側領域103の画素値の平均値EG1'との差を、上側領域101と下側領域103のy方向の中心位置どうしの距離である2で除算して求められる。傾きpは、横方向のエッジ部分における、そのエッジと垂直な方向の光量(画素値)の変化の度合い、つまり、エッジの傾きを表す。
そして、演算回路24は、黒丸85の位置(I−0.5,J−0.5)における平面Q2上の値(画素値)を求め、その値を画素値Gobs0(k,ig,jg)とする。また、演算回路24は、黒丸87の位置(I−0.5,J+0.5)における平面Q2上の値(画素値)を求め、その値を画素値Gobs1(k,ig,jg)とする。同様に、演算回路24は、黒丸84の位置(I+0.5,J−0.5)における平面Q2上の値(画素値)と、および黒丸86の位置(I+0.5,J+0.5)における平面Q2上の値(画素値)を求め、それぞれの値をそれぞれ画素値Gobs2(k,ig,jg)、画素値Gobs3(k,ig,jg)とする。
ここで、平面Q2は、Y方向についてのみ傾きpを有しているので、画素値Gobs0(k,ig,jg)と画素値Gobs2(k,ig,jg)とは等しく、また、画素値Gobs1(k,ig,jg)と画素値Gobs3(k,ig,jg)とは等しい。
「横方向のエッジ」においても、図32の「縦方向のエッジ」の場合と同様に、黒丸84の位置(I+0.5,J−0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸84の位置(I+0.5,J−0.5)における平面Q2上の値(画素値)である画素値Gobs2(k,ig,jg)が、式(25)に代入される。
また、黒丸85の位置(I−0.5,J−0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸85の位置(I−0.5,J−0.5)における平面Q2上の値(画素値)である画素値Gobs0(k,ig,jg)が、式(25)に代入される。
さらに、黒丸86の位置(I+0.5,J+0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸86の位置(I+0.5,J+0.5)における平面Q2上の値(画素値)である画素値Gobs3(k,ig,jg)が、式(25)に代入される。
また、黒丸87の位置(I−0.5,J+0.5)を、画素値(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、位置(x,y)の黒丸87位置(x,y)のにおける平面Q2上の値(画素値)である画素値Gobs1(k,ig,jg)が、式(25)に代入される。
以上のように、横方向のエッジ(緑色の光量の急峻な変化)がある位置で観測された画素値Gobs(k,ig,jg)(図33の白丸83の位置の画素値)を、そのエッジの傾き(急峻度合い)pに応じた画素値(Gobs0(k,ig,jg),Gobs1(k,ig,jg),Gobs2(k,ig,jg)、またはGobs3(k,ig,jg))に変更(補正)し、その変更した画素値を式(25)に代入することにより、バネモデルにおいて、図23における物体VとしてのLg(I',J')が適切な位置に引っ張られ、より正確な(鮮明な)真の緑色の光量Lg(I',J')を求めることができる。
図34は、図30で示した、「左上から右下方向のエッジ」が検出された場合の、注目している白丸83の位置を含む領域A11を示している。図中の、1軸は基準座標系におけるX方向を、X方向と垂直な軸が基準座標系におけるY方向を、X方向およびY方向と垂直な軸が画素値を、それぞれ表している。
図34では、エッジ判定領域について求められた平均値EG2,EG2',EG2”と分散SG2,SG2'が、式「EG2+SG2<EG2”<EG2'−SG2'」を満たし、従って、「左上から右下方向のエッジ」が存在している。
この場合、黒丸84の位置(I+0.5,J−0.5)における真の緑色の光量Lg(I+0.5,J−0.5)は、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも大きいと考えられる。また、黒丸84の位置(I+0.5,J−0.5)における真の緑色の光量Lg(I+0.5,J−0.5)と、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG2'とEG2との差(EG2'−EG2)に依存する。
また、黒丸87の位置(I−0.5,J+0.5)における真の緑色の光量Lg(I−0.5,J+0.5)は、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも小さいと考えられる。また、黒丸87の位置(I−0.5,J+0.5)における真の緑色の光量Lg(I−0.5,J+0.5)と、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG2'とEG2との差(EG2'−EG2)に依存する。
そこで、演算回路24は、注目している白丸83の位置(x,y)の画素値Gobs(k,ig,jg)を通り、黒丸84の位置(I+0.5,J−0.5)と黒丸87の位置(I−0.5,J+0.5)を結ぶ領域A11の対角方向に傾きpの平面Q3を求める。ここで、p=(EG2'−EG2)÷2√2である。つまり、傾きpは、図30の右上側領域113の画素値の平均値EG2'と左下側領域111の画素値の平均値EG2との差を、黒丸84の位置(I+0.5,J−0.5)と黒丸87の位置(I−0.5,J+0.5)を結ぶ領域A11の対角方向の、右上側領域113の領域A20と左下側領域111の領域A02との中心位置どうしの距離である2√2で除算して求められる。傾きpは、左上から右下方向のエッジ部分における、そのエッジと垂直な方向の光量(画素値)の変化の度合い、つまり、エッジの傾きを表す。
そして、演算回路24は、黒丸85の位置(I−0.5,J−0.5)における平面Q3上の値(画素値)を求め、その値を画素値Gobs0(k,ig,jg)とする。また、演算回路24は、黒丸87の位置(I−0.5,J+0.5)における平面Q3上の値(画素値)を求め、その値を画素値Gobs1(k,ig,jg)とする。同様に、演算回路24は、黒丸84の位置(I+0.5,J−0.5)における平面Q3上の値(画素値)と、および黒丸86の位置(I+0.5,J+0.5)における平面Q3上の値(画素値)を求め、それらの値をそれぞれ画素値Gobs2(k,ig,jg)と、画素値Gobs3(k,ig,jg)とする。
ここで、平面Q3は、黒丸84の位置(I+0.5,J−0.5)と黒丸87の位置(I−0.5,J+0.5)を結ぶ領域A11の対角方向についてのみ傾きpを有しているので、画素値Gobs0(k,ig,jg)と画素値Gobs3(k,ig,jg)とは等しい。
「左上から右下方向のエッジ」においても、図32の「縦方向のエッジ」の場合と同様に、黒丸84の位置(I+0.5,J−0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸84の位置(I+0.5,J−0.5)における平面Q3上の値(画素値)である画素値Gobs2(k,ig,jg)が、式(25)に代入される。
また、黒丸85の位置(I−0.5,J−0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸85の位置(I−0.5,J−0.5)における平面Q3上の値(画素値)である画素値Gobs0(k,ig,jg)が、式(25)に代入される。
さらに、黒丸86の位置(I+0.5,J+0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸86の位置(I+0.5,J+0.5)における平面Q3上の値(画素値)である画素値Gobs3(k,ig,jg)が、式(25)に代入される。
また、黒丸87の位置(I−0.5,J+0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸87の位置(I−0.5,J+0.5)における平面Q3上の値(画素値)である画素値Gobs1(k,ig,jg)が、式(25)に代入される。
以上のように、左上から右下方向のエッジ(緑色の光量の急峻な変化)がある位置で観測された画素値Gobs(k,ig,jg)(図34の白丸83の位置の画素値)を、そのエッジの傾き(急峻度合い)pに応じた画素値(Gobs0(k,ig,jg),Gobs1(k,ig,jg),Gobs2(k,ig,jg)、またはGobs3(k,ig,jg))に変更(補正)し、その変更した画素値を式(25)に代入することにより、バネモデルにおいて、図23における物体VとしてのLg(I',J')が適切な位置に引っ張られ、より正確な(鮮明な)真の緑色の光量Lg(I',J')を求めることができる。
図35は、図31で示した、「右上から左下方向のエッジ」が検出された場合の、注目している白丸83の位置を含む領域A11を示している。図中の、1軸は基準座標系におけるX方向を、X方向と垂直な軸が基準座標系におけるY方向を、X方向およびY方向と垂直な軸が画素値を、それぞれ表している。
図35では、エッジ判定領域について求められた平均値EG3,EG3',EG3”と分散SG3,SG3'が、式「EG3'+SG3'<EG3”<EG3−SG3」を満たし、従って、「右上から左下方向のエッジ」が存在している。
この場合、黒丸85の位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)は、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも大きいと考えられる。また、黒丸85の位置(I−0.5,J−0.5)における真の緑色の光量Lg(I−0.5,J−0.5)と、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG3とEG3'との差(EG3−EG3')に依存する。
また、黒丸86の位置(I+0.5,J+0.5)における真の緑色の光量Lg(I+0.5,J+0.5)は、注目している白丸83の位置(x,y)で観測される画素値Gobs(k,ig,jg)よりも小さいと考えられる。また、黒丸86の位置(I+0.5,J+0.5)における真の緑色の光量Lg(I+0.5,J+0.5)と、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)との光量(画素値)の差は、平均値EG3とEG3'との差(EG3−EG3')に依存する。
そこで、演算回路24は、注目している白丸83の位置(x,y)の画素値Gobs(k,ig,jg)を通り、黒丸85の位置(I−0.5,J−0.5)と黒丸86の位置(I+0.5,J+0.5)を結ぶ領域A11の対角方向に傾きpの平面Q4を求める。ここで、p=(EG3−EG3')÷2√2である。つまり、傾きpは、図31の左上側領域121の画素値の平均値EG3と右下側領域123の画素値の平均値EG3'との差を、黒丸85の位置(I−0.5,J−0.5)と黒丸86の位置(I+0.5,J+0.5)を結ぶ領域A11の対角方向の、左上側領域121の領域A00と右下側領域123の領域A22との中心位置どうしの距離である2√2で除算して求められる。傾きpは、右上から左下方向のエッジ部分における、そのエッジと垂直な方向の光量(画素値)の変化の度合い、つまり、エッジの傾きを表す。
そして、演算回路24は、黒丸85の位置(I−0.5,J−0.5)における平面Q4上の値(画素値)を求め、その値を画素値Gobs0(k,ig,jg)とする。また、演算回路24は、黒丸87の位置(I−0.5,J+0.5)における平面Q4上の値(画素値)を求め、その値を画素値Gobs1(k,ig,jg)とする。同様に、演算回路24は、黒丸84の位置(I+0.5,J−0.5)における平面Q4上の値(画素値)と、および黒丸86の位置(I+0.5,J+0.5)における平面Q4上の値(画素値)を求め、それらの値をそれぞれ画素値Gobs2(k,ig,jg)と、画素値Gobs3(k,ig,jg)とする。
ここで、平面Q4は、黒丸85の位置(I−0.5,J−0.5)と黒丸86の位置(I+0.5,J+0.5)を結ぶ領域A11の対角方向についてのみ傾きpを有しているので、Gobs1(k,ig,jg)とGobs2(k,ig,jg)とは等しい。
「右上から左下方向のエッジ」においても、図32の「縦方向のエッジ」の場合と同様に、黒丸84の位置(I+0.5,J−0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸84の位置(I+0.5,J−0.5)における平面Q4上の値(画素値)である画素値Gobs2(k,ig,jg)が、式(25)に代入される。
また、黒丸85の位置(I−0.5,J−0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸85の位置(I−0.5,J−0.5)における平面Q4上の値(画素値)である画素値Gobs0(k,ig,jg)が、式(25)に代入される。
さらに、黒丸86の位置(I+0.5,J+0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸86の位置(I+0.5,J+0.5)における平面Q4上の値(画素値)である画素値Gobs3(k,ig,jg)が、式(25)に代入される。
また、黒丸87の位置(I−0.5,J+0.5)を、位置(I',J')として注目した場合、白丸83の位置(x,y)の画素値Gobs(k,ig,jg)の代わりに、注目している黒丸87の位置(I−0.5,J+0.5)における平面Q4上の値(画素値)である画素値Gobs1(k,ig,jg)が、式(25)に代入される。
以上のように、右上から左下方向のエッジ(緑色の光量の急峻な変化)がある位置で観測された画素値Gobs(k,ig,jg)(図35の白丸83の位置の画素値)を、そのエッジの傾き(急峻度合い)pに応じた画素値(Gobs0(k,ig,jg),Gobs1(k,ig,jg),Gobs2(k,ig,jg)、またはGobs3(k,ig,jg))に変更(補正)し、その変更した画素値を式(25)に代入することにより、バネモデルにおいて、図23における物体VとしてのLg(I',J')が適切な位置に引っ張られ、より正確な(鮮明な)真の緑色の光量Lg(I',J')を求めることができる。
以上のことから、第3実施の形態の式(25)に対応する、第6実施の形態の緑色の光量のバネ関係式は、次のように表すことができる。
なお、緑色以外の真の赤色の光量Lr(I',J')と真の青色の光量Lb(I',J')も、真の緑色の光量Lg(I',J')と同様にして求めることができる。
ここで、式(34)におけるΣは、ある位置(I',J')に対して、k枚目の撮像画像上の位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組の個数分の和を表す。
但し、式(34)を構成する(k,ig,jg)の組の、ある(k,ig,jg)の画素値Gobs(k,ig,jg)の位置に、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のうちのいずれかが検出された場合、式(34)のGobs'(k,ig,jg)には、その(k,ig,jg)の画素値Gobs(k,ig,jg)の代わりに、エッジの傾きpを有し、画素値Gobs(k,ig,jg)を通る平面の、位置(I',J')上の値(画素値)が用いられる。また、式(34)を構成する(k,ig,jg)の組の、ある(k,ig,jg)の画素値Gobs(k,ig,jg)の位置に、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のいずれも検出されなかった場合、式(34)のGobs'(k,ig,jg)には、そのまま(k,ig,jg)の画素値Gobs(k,ig,jg)が用いられる。
第3実施の形態の式(26),(27)に対応する、第6実施の形態の赤色、青色の光量のバネ関係式も、同様に、式(35),(36)のように、それぞれ表すことができる。
ここで、式(35)におけるΣは、ある位置(I',J')に対して、k枚目の撮像画像上の位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ir,jr)の組の個数分の和を表す。
但し、式(35)を構成する(k,ir,jr)の組の、ある(k,ir,jr)の画素値Robs(k,ir,jr)の位置に、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のうちのいずれかが検出された場合、式(35)のRobs'(k,ir,jr)には、その(k,ir,jr)の画素値Robs(k,ir,jr)の代わりに、エッジの傾きpを有し、画素値Robs(k,ir,jr)を通る平面の、位置(I',J')上の値(画素値)が用いられる。また、式(35)を構成する(k,ig,jg)の組の、ある(k,ig,jg)の画素値Gobs(k,ig,jg)の位置に、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のいずれも検出されなかった場合、式(35)のRobs'(k,ir,jr)には、そのまま(k,ir,jr)の画素値Robs(k,ir,jr)が用いられる。
ここで、式(36)におけるΣは、ある位置(I',J')に対して、k枚目の撮像画像上の位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組の個数分の和を表す。
但し、式(36)を構成する(k,ib,jb)の組の、ある(k,ib,jb)の画素値Bobs(k,ib,jb)の位置に、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のうちのいずれかが検出された場合、式(36)のBobs'(k,ib,jb)には、その(k,ib,jb)の画素値Bobs(k,ib,jb)の代わりに、エッジの傾きpを有し、画素値Bobs(k,ib,jb)を通る平面の、位置(I',J')上の値(画素値)が用いられる。また、式(36)を構成する(k,ig,jg)の組の、ある(k,ig,jg)の画素値Gobs(k,ig,jg)の位置に、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のいずれも検出されなかった場合、式(36)のBobs'(k,ib,jb)には、そのまま(k,ib,jb)の画素値Bobs(k,ib,jb)が用いられる。
図36のフローチャートを参照して、図2のステップS4における画像推定処理の第6実施の形態について説明する。
初めに、ステップS141において、演算回路24は、基準座標系上のある位置(I',J')に注目する(以下、注目位置(I',J')と称する)。ここで、注目位置(I',J')は、基準画像である1枚目の撮像画像の「i番目、j番目の画素」の画素中心(i−0.5,j−0.5)を表している。
そして、ステップS141からS142に進み、演算回路24は、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組を、1乃至N枚目画像についてすべて求め、ステップS143に進む。
ステップS143において、演算回路24は、ステップS142で求めた(k,ig,jg)の組それぞれに対応する基準座標系上の位置について、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のうちのいずれかがあるかどうかを判定する。ステップS143で、上述の4つの方向のいずれかのエッジがあると判定された場合、ステップS144に進み、演算回路24は、エッジがある位置に対応する(k,ig,jg)の組それぞれについて、その画素値Gobs(k,ig,jg)を通り、エッジの傾きpを有する平面を作成する(求める)。また、演算回路24は、注目位置(I',J')における平面上の値(画素値)を演算し、ステップS144からS145に進む。
また、ステップS143で上述の4つの方向のいずれのエッジもないと判定された場合、または、ステップS144の処理の後、ステップS145において、演算回路24は、ステップS142で求めたすべての(k,ig,jg)の組を用いて、式(34)で表される緑色の光量のバネ関係式を生成して、ステップS146に進む。ここで、ステップS143において、ある(k,ig,jg)に対応する基準座標系上の位置に、上述の4つの方向のいずれかのエッジがあると判定された画素値Gobs(k,ig,jg)については、演算回路24は、ステップS144で求められた注目位置(I',J')における平面上の値(画素値)を、その(k,ig,jg)の画素値Gobs(k,ig,jg)として、式(34)のGobs'(k,ig,jg)に代入する。また、ステップS143において、ある(k,ig,jg)に対応する基準座標系上の位置に、上述の4つの方向のいずれのエッジもないと判定された画素値Gobs(k,ig,jg)については、演算回路24は、その(k,ig,jg)の画素値Gobs(k,ig,jg)を、そのまま式(34)のGobs'(k,ig,jg)に代入する。
ステップS146において、演算回路24は、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ir,jr)の組を、1乃至N枚目画像についてすべて求め、ステップS147に進む。
ステップS147において、演算回路24は、ステップS146で求めた(k,ir,jr)の組それぞれに対応する基準座標系上の位置について、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のうちのいずれかがあるかどうかを判定する。ステップS147で、上述の4つの方向のいずれかのエッジがあると判定された場合、ステップS148に進み、演算回路24は、エッジがある位置に対応する(k,ir,jr)の組それぞれについて、その画素値Robs(k,ir,jr)を通り、エッジの傾きpを有する平面を作成する(求める)。また、演算回路24は、注目位置(I',J')における平面上の値(画素値)を演算し、ステップS148からS149に進む。
また、ステップS147で上述の4つの方向のいずれのエッジもないと判定された場合、および、ステップS148の処理の後、ステップS149において、演算回路24は、ステップS146で求めたすべての(k,ir,jr)の組を用いて、式(35)で表される赤色の光量のバネ関係式を生成して、ステップS150に進む。ここで、ステップS147において、ある(k,ir,jr)に対応する基準座標系上の位置に、上述の4つの方向のいずれかのエッジがあると判定された画素値Robs(k,ir,jr)については、演算回路24は、ステップS148で求められた注目位置(I',J')における平面上の値(画素値)を、その(k,ir,jr)の画素値Robs(k,ir,jr)として、式(35)のRobs'(k,ir,jr)に代入する。また、ステップS147において、ある(k,ir,jr)に対応する基準座標系上の位置に、上述の4つの方向のいずれのエッジもないと判定された画素値Robs(k,ir,jr)については、演算回路24は、その(k,ir,jr)の画素値Robs(k,ir,jr)を、そのまま式(35)のRobs'(k,ir,jr)に代入する。
ステップS150において、演算回路24は、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組を、1乃至N枚目画像についてすべて求め、ステップS151に進む。
ステップS151において、演算回路24は、ステップS152で求めた(k,ib,jb)の組それぞれに対応する基準座標系上の位置について、「縦方向のエッジ」、「横方向のエッジ」、「左上から右下方向のエッジ」、「右下から左下方向のエッジ」のうちのいずれかがあるかどうかを判定する。ステップS151で、上述の4つの方向のいずれかのエッジがあると判定された場合、ステップS152に進み、演算回路24は、エッジがある位置に対応する(k,ib,jb)の組それぞれについて、その画素値Bobs(k,ib,jb)を通り、エッジの傾きpを有する平面を作成する(求める)。また、演算回路24は、注目位置(I',J')における平面上の値(画素値)を演算し、ステップS152からS153に進む。
また、ステップS151で上述の4つの方向のいずれのエッジもないと判定された場合、および、ステップS152の処理の後、ステップS153において、演算回路24は、ステップS150で求めたすべての(k,ib,jb)の組を用いて、式(36)で表される青色の光量のバネ関係式を生成して、ステップS154に進む。ここで、ステップS151において、ある(k,ib,jb)に対応する基準座標系上の位置に、上述の4つの方向のいずれかのエッジがあると判定された画素値Bobs(k,ib,jb)については、演算回路24は、ステップS152で求められた注目位置(I',J')における平面上の値(画素値)を、その(k,ib,jb)の画素値Bobs(k,ib,jb)として、式(36)のBobs'(k,ib,jb)に代入する。また、ステップS151において、ある(k,ib,jb)に対応する基準座標系上の位置に、上述の4つの方向のいずれのエッジもないと判定された画素値Bobs(k,ib,jb)については、演算回路24は、その(k,ib,jb)の組の画素値Bobs(k,ib,jb)を、そのまま式(36)のBobs'(k,ib,jb)に代入する。
ステップS154において、演算回路24は、ステップS145で求めた式(34)で表される緑色の光量のバネ関係式、ステップS149で求めた式(35)で表される赤色の光量のバネ関係式、ステップS153で求めた式(36)で表される青色の光量のバネ関係式を、一次方程式として解くことにより、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求め、ステップS155に進む。
ステップS155において、演算回路24は、すべての位置(I',J')を注目位置としたか、即ち、1枚目の撮像画像の画素の中心位置のすべてを注目位置(I',J')として、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')を求めたか否かを判定する。
ステップS155で、すべての位置(I',J')を、まだ注目位置として求めていないと判定された場合、ステップS141に戻り、ステップS141乃至S155の処理が繰り返される。即ち、演算回路24は、まだ注目していない位置(I',J')を次の注目位置(I',J')として、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求める。
一方、ステップS155で、すべての位置(I',J')を注目位置としたと判定された場合、ステップS156に進み、演算回路24は、ステップS154で求めた真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')から、画像(信号)を推定し、D/Aコンバータ9またはコーデック12に出力画像として供給し、処理を戻る。例えば、「i番目、j番目の画素」においては、演算回路24は、緑色の値(G信号)としてステップS154で求めた真の緑色の光量Lg(i−0.5,j−0.5)と、赤色の値(R信号)としてステップS154で求めた真の赤色の光量Lr(i−0.5,j−0.5)と、青色の値(B信号)としてステップS154で求めた真の青色の光量Lb(i−0.5,j−0.5)とから、「i番目、j番目の画素」の画像信号を推定する。そして、演算回路24は、その推定を位置(I',J')を中心位置とする画素すべてについて行うことにより、出力画像を推定する。
以上のように、第6実施の形態では、エッジ部分の位置で観測された画素値については、そのエッジの傾き(急峻度合い)に応じて、バネ関係式に代入する画素値を変更することにより、より正確な(鮮明な)画像を求めることができる。
なお、上述した例では、エッジ部分にある画素値をエッジの傾き(急峻度合い)に応じた注目位置(I',J')上の画素値に変更したが、その他、例えば、エッジ部分にある画素値をそのまま採用するが、注目位置(I',J')までの距離に応じて重みを付け(変更し)、バネ関係式でのエッジ部分にある画素値の影響を少なくするようにすることもできる。
また、上述の例では、作成される平面Q1乃至Q4の傾きを、基準座標系上のある位置(x,y)を中心とする9の領域(3×3画素幅の領域)内の位置で観測される画素値を用いて求めることとしたが、例えば、16の領域(4×4画素幅の領域)など、その他の領域の位置で観測される画素値により求めるようにしてもよい。
(第7実施の形態)
次に、信号処理回路7における、画像推定処理の第7実施の形態について説明する。第7実施の形態は、図24で説明した第3実施の形態を応用したものである。
即ち、第7実施の形態は、第3実施の形態において、式(25),(26),(27)で表されるバネ関係式の他に、R信号とG信号とB信号どうしの相関に関する色相関の条件を付加して、それらすべての条件式を満たす真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)を求めるものである。
画像の局所的な部分に着目すれば、撮像素子4に入射される被写体の光と等価な真の緑色の光量Lg(x,y)、真の赤色の光量Lr(x,y)、真の青色の光量Lb(x,y)には、色どうしの相関がある。従って、画像推定処理により推定される画像についても色相関があるとして、その色相関の条件をさらに付加することにより、ノイズ等による誤差を軽減した、より正確な解、即ち、より本来の光に忠実で鮮明な画像を求めることができる。
図37と図38を参照して、具体的な色相関の条件を求める方法について説明する。図37と図38では、緑色(G信号)と赤色(R信号)の色相関の条件を考える。
図37左下側のk'枚目画像のig番目、jg番目の、ある緑色の画素G(jg−1)(ig−1)と、図37右下側のk”枚目画像のir番目、jr番目の、ある赤色の画素R(jr−1)(ir−1)に注目する。
演算回路24は、k'枚目画像の緑色の画素G(jg−1)(ig−1)とk”枚目画像の赤色の画素R(jr−1)(ir−1)の位置を、第3実施の形態で説明したように、変換パラメータ(θk',Tk'x,Tk'y,Sk')と変換パラメータ(θk”,Tk”x,Tk”y,Sk”)によりそれぞれ変換することで、図37上側の1枚目画像の座標系における位置を求める。
そして、演算回路24は、1枚目画像の座標系に変換されたk'枚目の緑色の画素G(jg−1)(ig−1)と1枚目画像の座標系に変換されたk”枚目の赤色の画素R(jr−1)(ir−1)との距離を計算する。さらに、演算回路24は、その距離が、同一の位置とみなす許容値(判定値)delta(例えば、0.25画素)以内であるかどうかを判定する。
例えば、画素G(jg−1)(ig−1)と画素R(jr−1)(ir−1)の位置を、位置(ig,jg)と位置(ir,jr)で、それぞれ考えることとして、k'枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)を点Gcと、k”枚目画像の座標系における画素R(jg−1)(ig−1)の位置(ir,jr)を点Rcと、1枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)をGc(k')と、1枚目画像の座標系における画素R(jg−1)(ig−1)の位置(ir,jr)をRc(k”)と、それぞれ表すこととすると、点Gc(k')と点Rc(k”)との距離が許容値delta以内であるかを表す式(37)は、次のように書ける。
式(37)を距離の条件式と称する。ここで、Dis[Gc(k'),Rc(k”)]は、点Gc(k')と点Rc(k”)との間の距離を表す。また、点Gc(k')と点Rc(k”)で表される位置は、位置(ig,jg)と位置(ir,jr)を、変換パラメータ(θk',Tk'x,Tk'y,Sk')と(θk”,Tk”x,Tk”y,Sk”)でそれぞれアフィン変換したものである。
演算回路24は、k'枚目の緑色の画素G(jg−1)(ig−1)とk”枚目の赤色の画素R(jr−1)(ir−1)とが、ある許容範囲deltaのマージンを考えたときに同一位置にあるとみなすことができる画素があるかどうかを、1枚目画像の座標系における、ある位置(I',J')を中心とする(I'±dX,J'±dY)の近傍領域、つまり、(I'−dX,J'−dY),(I'−dX,J'+dY),(I'+dX,J'−dY),および(I'+dX,J'+dY)で囲まれる領域について求める。ここで、dXとdYは、それぞれ、近傍領域を設定する所定の値で、例えば、2画素分のX方向とY方向の長さなどとすることができる。
逆に言うと、演算回路24は、1枚目画像の座標系における、注目位置(I',J')を中心とする(I'±dX,J'±dY)の近傍領域、つまり、(I'−dX,J'−dY),(I'−dX,J'+dY),(I'+dX,J'−dY),および(I'+dX,J'+dY)で囲まれる領域において、上述の式(37)を満たす(k',ig,jg)と(k”,ir,jr)を求める。
そして、演算回路24は、求められた(k',ig,jg)と(k”,ir,jr)とに対応する画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)とを得る。
演算回路24は、k',k”それぞれを1乃至Nとしたすべての組み合わせについて、上述の式(37)を満たす(k',ig,jg)と(k”,ir,jr)を求める。
一般的には、複数の(k',ig,jg)と(k”,ir,jr)との組み合わせが検出されるので、演算回路24は、検出された(k',ig,jg)と(k”,ir,jr)とに対応する画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)との組を、図38に示すように、横軸をG信号(Gobs(k',ig,jg))、縦軸をR信号(Robs(k”,ir,jr))とするGR空間にプロットする。
図38は、式(37)を満たす画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)とのセットで表される点をプロットしたGR空間を示している。
図38のバツ印が、演算回路24により検出された(k',ig,jg)と(k”,ir,jr)とに対応する画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)との組、即ち、式(37)を満たす画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)との組を表している。
注目位置(I',J')の近傍領域においては、求めるべき真の緑色の光量Lg(I',J')、および真の赤色の光量Lr(I',J')には、図38に示したような相関があると考えられる。
そこで、第7の実施の形態においては、第3実施の形態における式(25)乃至式(27)で表されるバネ関係式の他に、さらに、図38に示した緑色と赤色に相関があることを条件として付加する。
即ち、演算回路24は、演算回路24により式(37)の距離の条件式を満たす画素値Gobs(k',ig,jg)と画素値Robs(k”,ir,jr)との組で表される、図38のGR空間にプロットされた複数の点について、主成分分析を行う。
そして、演算回路24は、主成分分析の分析結果である主成分の方向を求め、その方向(軸)を表す直線Qg×G+Qr×R=Qcを求める。ここで、Qg、Qr、Qcは、GR空間上の直線を表す定数であり、GとRは、GR空間上のG信号とR信号を表す変数である。また、演算回路24は、主成分の方向と直交する成分についての分散を求める。
ここで、自然長が0で、バネ定数(バネの強さ)がHのバネを導入する。バネ定数Hは、GR空間上で求められた主成分の方向と直交する成分についての分散に対して、単調減少する任意の関数とすることができ、例えば、H=(1÷分散)などを採用することができる。つまり、分散が小さいほどバネが強く(バネ定数が大きく)なる。
このバネ定数Hのバネの両端の一端は、GR空間上での点(Lg(I',J'),Lr(I',J'))に接続され、バネの他端は、主成分の方向の直線Qg×G+Qr×R=Qc上の任意の点に移動可能なように接続される。これにより、点(Lg(I',J'),Lr(I',J'))は、その点(Lg(I',J'),Lr(I',J'))から直線Qg×G+Qr×R=Qcに垂らした垂線の方向へ引っ張られる。つまり、点(Lg(I',J'),Lr(I',J'))は、色相関の一致性(G信号とR信号の色相関の関係)が満たされるように引っ張られる。
ここで、点(Lg(I',J'),Lr(I',J'))と主成分の方向の直線Qg×G+Qr×R=Qcとの距離をuと表すと、バネ定数Hのバネが、点(Lg(I',J'),Lr(I',J'))を引っ張る力は、H×u(以下、適宜、GRバネ力という)で表される。このGR空間におけるGRバネ力H×uを、G信号成分とR信号成分に分解し、式(25)と式(26)それぞれの左辺に加算対象として付加することにより、色相関が考慮されることになる。
以上の色相関の条件を、緑色(G信号)と青色(B信号)についても考える。
図37に示した緑色と赤色の画素の場合と同様に、演算回路24は、k'枚目の緑色の画素G(jg−1)(ig−1)とk”'枚目の青色の画素B(jb−1)(ib−1)の位置を、変換パラメータ(θk',Tk'x,Tk'y,Sk')と変換パラメータ(θk”',Tk”'x,Tk”'y,Sk”')によりそれぞれ変換することで、1枚目画像の座標系における位置を求める。
そして、演算回路24は、1枚目画像の座標系に変換されたk'枚目の緑色の画素G(jg−1)(ig−1)と1枚目画像の座標系に変換されたk”'枚目の青色の画素B(jb−1)(ib−1)との距離を計算する。さらに、演算回路24は、その距離が、同一の位置にいるとみなす許容値(判定値)delta以内であるかどうかを判定する。
例えば、画素G(jg−1)(ig−1)と画素B(jb−1)(ib−1)の位置を、位置(ig,jg)と位置(ib,jb)で、それぞれ考えることとして、k'枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)を点Gcと、k”'枚目画像の座標系における画素B(jb−1)(ib−1)の位置(ib,jb)を点Bcと、1枚目画像の座標系における画素G(jg−1)(ig−1)の位置(ig,jg)をGc(k')と、1枚目画像の座標系における画素B(jb−1)(ib−1)の位置(ib,jb)をBc(k”')と、それぞれ表すこととすると、点Gc(k')と点Bc(k”')との距離が許容値delta以内であるかを表す式(38)は、次のように書ける。
式(38)を距離の条件式と称する。ここで、Dis[Gc(k'),Bc(k”')]は、点Gc(k')と点Bc(k”')との間の距離を表す。また、点Gc(k')と点Bc(k”')で表される位置は、位置(ig,jg)と位置(ib,jb)を、変換パラメータ(θk',Tk'x,Tk'y,Sk')と(θk”',Tk”'x,Tk”'y,Sk”')でそれぞれアフィン変換したものである。
演算回路24は、k'枚目の緑色の画素G(jg−1)(ig−1)とk”'枚目の青色の画素B(jb−1)(ib−1)とが、ある許容範囲deltaのマージンを考えたときに同一位置にあるとみなすことができる画素があるかどうかを、1枚目画像の座標系における、ある位置(I',J')を中心とする(I'±dX,J'±dY)の近傍領域、つまり、(I'−dX,J'−dY),(I'−dX,J'+dY),(I'+dX,J'−dY),および(I'+dX,J'+dY)で囲まれる領域について求める。ここで、dX,dYは、それぞれ、近傍領域を設定する所定の値で、例えば、2画素分のX方向とY方向の長さなどとすることができる。
逆に言うと、演算回路24は、1枚目画像の座標系における、注目位置(I',J')を中心とする(I'±dX,J'±dY)の近傍領域、つまり、(I'−dX,J'−dY),(I'−dX,J'+dY),(I'+dX,J'−dY),および(I'+dX,J'+dY)で囲まれる領域において、上述の式(38)を満たす(k',ig,jg)と(k”',ib,jb)を求める。
そして、演算回路24は、求められた(k',ig,jg)と(k”',ib,jb)とに対応する画素値Gobs(k',ig,jg)と画素値Bobs(k”',ib,jb)とを得る。
演算回路24は、k',k”'それぞれを1乃至Nとしたすべての組み合わせについて、上述の式(38)を満たす(k',ig,jg)と(k”',ib,jb)を求める。
一般的には、複数の(k',ig,jg)と(k”',ib,jb)との組み合わせが検出されるので、演算回路24は、検出された(k',ig,jg)と(k”',ib,jb)とに対応する画素値Gobs(k',ig,jg)と画素値Bobs(k”',ib,jb)との組を、横軸をG信号(Gobs(k',ig,jg))、縦軸をB信号(Bobs(k”',ib,jb))とするGB空間にプロットする。
そこで、第7の実施の形態においては、第3実施の形態における式(25)乃至式(27)で表されるバネ関係式の他に、さらに、緑色と青色に相関があることを条件として付加する。
即ち、演算回路24は、演算回路24により式(38)の距離の条件式を満たす画素値Gobs(k',ig,jg)と画素値Bobs(k”',ib,jb)との組で表される、GB空間にプロットされた複数の点について、主成分分析を行う。
そして、演算回路24は、主成分分析の分析結果である主成分の方向を求め、その方向(軸)を表す直線Qg'×G+Qb'×B=Qc'を求める。ここで、Qg'、Qb'、Qc'は、GB空間上の直線を表す定数であり、GとBは、GB空間上のG信号とB信号を表す変数である。また、演算回路24は、主成分の方向と直交する成分についての分散を求める。
ここで、自然長が0で、バネ定数(バネの強さ)がHのバネを導入する。バネ定数Hは、GB空間上で求められた主成分の方向と直交する成分についての分散に対して、単調減少する任意の関数とすることができ、例えば、H=(1÷分散)などを採用することができる。つまり、分散が小さいほどバネが強く(バネ定数が大きく)なる。
このバネ定数Hのバネの両端の一端は、GB空間上での点(Lg(I',J'),Lb(I',J'))に接続され、バネの他端は、主成分の方向の直線Qg'×G+Qb'×B=Qc'上の任意の点に移動可能なように接続される。これにより、点(Lg(I',J'),Lb(I',J'))は、その点(Lg(I',J'),Lb(I',J'))から直線Qg'×G+Qb'×B=Qc'に垂らした垂線の方向へ引っ張られる。つまり、点(Lg(I',J'),Lb(I',J'))は、色相関の一致性(G信号とB信号の色相関の関係)が満たされるように引っ張られる。
ここで、点(Lg(I',J'),Lb(I',J'))と主成分の方向の直線Qg'×G+Qb'×B=Qc'との距離をuと表すと、バネ定数Hのバネが、点(Lg(I',J'),Lb(I',J'))を引っ張る力は、H×u(以下、適宜、GBバネ力という)で表される。このGB空間におけるGBバネ力H×uを、G信号成分とB信号成分に分解し、式(25)と式(27)それぞれの左辺に加算対象として付加することにより、色相関が考慮されることになる。
なお、本実施の形態では、上述のGR、GB空間の2つの色相関の条件のみ付加することとするが、同様にして、R信号とB信号との(RB空間の)色相関の条件についても付加するようにしてもよい。
図39のフローチャートを参照して、図2のステップS4における画像推定処理の第7実施の形態について説明する。
ステップS171乃至S177は、図24に示した第3実施の形態の画像推定処理のステップS71乃至S77と同様である。
即ち、ステップS171において、演算回路24は、基準座標系上のある位置(I',J')に注目する(以下、注目位置(I',J')と称する)。ここで、注目位置(I',J')は、基準画像である1枚目の撮像画像の「i番目、j番目の画素」の画素中心(i−0.5,j−0.5)を表している。
そして、ステップS171からS172に進み、演算回路24は、注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ig,jg)の組を、1乃至N枚目画像についてすべて求め、ステップS173に進む。
ステップS173において、演算回路24は、ステップS172で求めたすべての(k,ig,jg)の組を用いて、式(25)で表される緑色の光量のバネ関係式を生成して、ステップS174に進む。
ステップS174において、演算回路24は、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ir,jr)の組を、1乃至N枚目画像についてすべて求め、ステップS175に進む。
ステップS175において、演算回路24は、ステップS174で求めたすべての(k,ir,jr)の組を用いて、式(26)で表される赤色の光量のバネ関係式を生成して、ステップS176に進む。
ステップS176において、演算回路24は、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(θk,Tkx,Tky,Sk)で変換した基準座標系上の位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす(k,ib,jb)の組を、1乃至N枚目画像についてすべて求め、ステップS177に進む。
ステップS177において、演算回路24は、ステップS176で求めたすべての(k,ib,jb)の組を用いて、式(27)で表される青色の光量のバネ関係式を生成して、ステップS178に進む。
ステップS178において、演算回路24は、注目位置(I',J')を中心とする(I'±dX,J'±dY)で規定される領域において、式(37)を満たす(k',ig,jg)と(k”,ir,jr)との組をすべて求める。さらに、演算回路24は、その求めた(k',ig,jg)と(k”,ir,jr)との組で特定されるGR空間上の点(Gobs(k',ig,jg),Robs(k”,ir,jr))をプロットし、主成分分析を行う。また、演算回路24は、その主成分方向と直交する成分の分散を求め、その分散の逆数をバネ定数Hとして求める。そして、演算回路24は、主成分方向を表す直線Qg×G+Qr×R=Qcを求め、GR空間上での点(Lg(I',J'),Lr(I',J'))と、直線Qg×G+Qr×R=Qcとの距離uを用いて表される未知数としてのGRバネ力H×uを得る。さらに、演算回路24は、GRバネ力H×uのG信号成分を式(25)の左辺の加算対象に加えるとともに、GRバネ力H×uのR信号成分を式(26)の左辺に加算対象として加える。そして、ステップS178からS179に進む。
ステップS179において、演算回路24は、注目位置(I',J')を中心とする(I'±dX,J'±dY)で規定される領域において、式(38)を満たす(k',ig,jg)と(k”',ib,jb)との組をすべて求める。さらに、演算回路24は、その求めた(k',ig,jg)と(k”',ib,jb)との組で特定されるGB空間上の点(Gobs(k',ig,jg),Bobs(k”',ib,jb))をプロットし、主成分分析を行う。また、演算回路24は、その主成分方向と直交する成分の分散を求め、その分散の逆数をバネ定数Hとして求める。そして、演算回路24は、主成分方向を表す直線Qg'×G+Qb'×B=Qc'を求め、GB空間上での点(Lg(I',J'),Lb(I',J'))と、直線Qg'×G+Qb'×B=Qc'との距離uを用いて表される未知数としてのGBバネ力H×uを得る。さらに、演算回路24は、GBバネ力H×uのG信号成分を式(25)の左辺の加算対象に加えるとともに、GBバネ力H×uのB信号成分を式(27)の左辺に加算対象として加える。そして、ステップS179からS180に進む。
ステップS180において、演算回路24は、GRおよびGB空間における色相関の条件が付加された緑色の光量のバネ関係式、GR空間における色相関の条件が付加された赤色の光量のバネ関係式、GB空間における色相関の条件が付加された青色の光量のバネ関係式を、例えば、一次方程式として解くことにより、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求め、ステップS181に進む。
ステップS181において、演算回路24は、すべての位置(I',J')を注目位置としたか、即ち、1枚目の撮像画像の画素の中心位置のすべてを注目位置(I',J')として、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')を求めたか否かを判定する。
ステップS181で、すべての位置(I',J')をまだ注目位置として求めていないと判定された場合、ステップS171に戻り、ステップS171乃至S181の処理が繰り返される。即ち、演算回路24は、まだ注目していない位置(I',J')を次の注目位置(I',J')として、注目位置(I',J')における真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')をそれぞれ求める。
一方、ステップS181で、すべての位置(I',J')を注目位置としたと判定された場合、ステップS182に進み、演算回路24は、ステップS180で求めた真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、真の青色の光量Lb(I',J')から、画像(信号)を推定し、D/Aコンバータ9またはコーデック12に出力画像として供給し、処理を戻る。例えば、「i番目、j番目の画素」においては、演算回路24は、緑色の値(G信号)としてステップS180で求めた真の緑色の光量Lg(i−0.5,j−0.5)と、赤色の値(R信号)としてステップS180で求めた真の赤色の光量Lr(i−0.5,j−0.5)と、青色の値(B信号)としてステップS180で求めた真の青色の光量Lb(i−0.5,j−0.5)とから、「i番目、j番目の画素」の画像信号を推定する。そして、演算回路24は、その推定を位置(I',J')を中心位置とする画素すべてに行うことにより、出力画像を推定する。
以上のように、第7実施の形態では、色相関の条件をさらに付加することにより、ノイズ等による誤差を軽減した、より正確な解、即ち、より本来の光に忠実で鮮明な画像を求めることができる。
さて、本発明の特徴を明確にするために、再度、本発明と、従来技術の違いを説明する。
図40は、本発明の方法と従来の方法の処理の流れを示している。
図40に示したように、従来から、「図中の(ア):単板センサから出力された画像(例えば、ベイヤー配列の画像:1画素につきR信号、G信号、またはB信号のいずれか1つしかない画像)から、通常のカラー画像(1画素につきR信号、G信号、およびB信号の3つのデータが揃った画像)への変換方法」は、いくつも存在している。事実、製品として販売されている単板センサを用いたデジタルスチルカメラには、この変換方法がインプリメントされているものがある。この変換方法は、デモザイキングと呼ばれる処理である。
そして、従来から、「図中の(イ):複数枚の暗い(あるいはSN比の悪い)カラー画像(1画素につきR信号、G信号、およびB信号の3つのデータが揃った画像)から、鮮明な(あるいはSN比の良い)カラー画像(1画素につきR信号、G信号、およびB信号の3つのデータが揃った画像)を作成する方法」も、知られていた。具体的には、従来の技術のところで述べた特許文献2や特許文献3などの方法である。
従って、これら2つの方法を組み合わせることで、「複数枚の暗い(あるいはSN比の悪い)単板センサから出力された画像(例えば、ベイヤー配列の画像:1画素につきR信号、G信号、またはB信号のいずれか1つしかない画像)から、鮮明な(あるいはSN比の良い)カラー画像(1画素につきR信号、G信号、およびB信号の3つのデータが揃った画像)を作成する」ことが出来る。
つまり、複数枚(m枚)の暗い(あるいはSN比の悪い)単板センサから出力された画像(例えば、ベイヤー配列の画像:1画素につきR信号、G信号、またはB信号のいずれか1つしかない画像)201−mのそれぞれに対して、図中の(ア)で示されるようにデモザイキング処理202−mを行い、暗い(あるいはSN比の悪い)カラー画像(1画素につきR信号、G信号、およびB信号の3つのデータが揃った画像)203−mを一度作成する。そして、それらカラー画像203−mに対して、図中の(イ)で示した特許文献2や特許文献3の方法を使って、鮮明な(あるいはSN比の良い)カラー画像(1画素につきR信号、G信号、およびB信号の3つのデータが揃った画像)204を作成すればよい。ここで、mは、所定の枚数を表す整数とする。
さて、デモザイキングの処理では、当然、補間処理あるいはそれに類似の処理が行われるので、画像の鮮明さは薄れる。そして、特許文献2や特許文献3などにおける処理でも、デジタルサンプリングされたデータの位置合わせを行うため、補間処理が行われるので、ここでも画像の鮮明さは薄れる。このように、図中の(ア)および(イ)において、補間処理が合計で2回行われるので、画像の鮮明さはかなり薄れる。ちなみに、補間処理は、周囲のデータから特定の地点でのデータを復元する際に用いられる処理であり、補間すればするほど画像の鮮明さがなくなるのは明白である。
一方、本発明においては、「複数枚の暗い(あるいはSN比の悪い)単板センサから出力された画像(例えば、ベイヤー配列の画像:1画素につきR信号、G信号、またはB信号のいずれか1つしかない画像)から、直接、鮮明な(あるいはSN比の良い)カラー画像(1画素につきR信号、G信号、およびB信号の3つのデータが揃った画像)を作成する」ので、補間処理あるいはそれに類似する処理が1箇所しか存在しない。従って、従来の方法よりも鮮明な画像を復元することができる。このように、本発明と従来技術の違い、および、本発明の利点は、明白である。
また、従来の方法では、各画像に対してデモザイキング処理を行うので、例えば、8枚の画像がある場合、8回のデモザイキング処理(図中の(ア))を行わなくてはならない。つまり、計算量が膨大になってしまう欠点もあった。
本発明と従来の方法との差異を別の見方により説明する。
従来の技術のところで述べた特許文献2などに示される方法では、手ぶれの分だけ位置をずらして重ねると良いという事が述べられている。これは、手ぶれの分だけ位置をずらした画像を補間により作成することを意味している。N枚の画像を重ね合わせるということは、出力画像のすべての画素は、N個分のデータが重ね合わせられるということになる。従って、重ね合わせた後に、すべての画素に対して、一定の値(つまり、N、あるいは、「(適正露出における露出時間)÷(実際の撮影における露出時間)÷N」)で割ることになる。また、ある決まった一定量の画素のずれを起こして、複数枚撮影して、それら画像の位置合わせを行いながら、合成していくことで高精彩な画像を得るという方法も従来からあったが、その場合でも、ずれ量が決まっているので、出力画像の各画素において、常にあらかじめ決められた値で割っていく(正規化していく)ことを行っていた。
それに対して、本発明の第1実施の形態や第2実施の形態では、出力画像の各位置(x,y)における条件の数、すなわち真の値の推定に用いることができる観測値(観測画素)の数は、場合によって変わる。ある人がある場面を撮影したときにおいて、ある位置(x,y)については、その近傍に沢山の入力画素Gobs(k,ig,jg)がある可能性がある。その場合、その位置(x,y)が関与する式(20)は、多くなる。また、その近傍に少しの入力画素Gobs(k,ig,jg)しかなければ、その位置(x,y)が関与する式(20)は、少なくなる。このように、出力画像の各位置(x,y)が関与する条件式の数は可変で、実際に撮影したときの状態(手ぶれによるずれ量)に依存する。このため、各画素位置の真の値の推定では、撮像状態(画像間の動き)に応じて、考慮すべき候補となる観測点およびその数等が適応的に変化し得る。この場合、例えば、観測点の数を固定しておき候補観測点からその数の観測点を選択するという構成、観測点の数と選択される観測点の双方を変動させる構成、或いは、観測点の位置、数や分布等についての所定の条件に応じて両者を使い分ける構成等が可能である。
また、本発明の第3乃至第7実施の形態では、手ぶれの分だけ位置をずらすが、ベイヤー配列のため、すべての出力位置に、なにかしらのデータが必ず加算されるわけではない。k枚目の画像について、図21に示した2×2画素の中に、位置補正したデータがなければ、その出力画素には、k枚目の画像のどのデータも加味されない。逆に、図21に示した2×2画素の中に、位置補正したデータが2つあれば、その出力画素には、2つのデータが(重みをつけて)加算される。より具体的に述べると、ある画素は、最終的に、重みの合計が10であれば、10で割って、出力画素となる。また、別の画素は、最終的に、重みの合計が3.5であれば、3.5で割って、出力画素となる。つまり、本発明では、式(25)、式(26)、式(27)などに示す式において、Σで加算される総数が、実際に撮影したときの状態(手ぶれによるずれ量)に依存する。このため、各画素位置の真の値の推定では、撮像状態(画像間の動き)に応じて、考慮すべき候補となる観測点およびその数等が適応的に変化し得る。
このように、本発明においては、「単板センサ(ベイヤー配列のセンサ)から出力された複数の画像から、鮮明な画像を復元する場合には、条件式の数が可変、あるいは、重みが可変としなくてはいけない場合がある」ことを考慮しながら、適切な復元方法を提供した点が、従来では出来なかったことである。
上述した一連の処理は、専用のハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。この場合、例えば、デジタルカメラ1は、図41に示されるようなコンピュータにプログラムを実行させることにより実現することができる。
図41において、CPU(Central Processing Unit)301は、ROM(Read Only Memory)302に記憶されているプログラム、または記憶部308からRAM(Random Access Memory)303にロードされたプログラムに従って各種の処理を実行する。RAM303にはまた、CPU301が各種の処理を実行する上において必要なデータなども適宜記憶される。CPU301は、信号処理回路7の動き検出回路23および演算回路24等が行う処理を実行する。
CPU301、ROM302、およびRAM303は、バス304を介して相互に接続されている。このバス304にはまた、入出力インタフェース305も接続されている。
入出力インタフェース305には、キーボード、マウスなどよりなる入力部306、CRT(Cathode Ray Tube)、LCD(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部307、ハードディスクなどより構成される記憶部308、モデム、ターミナルアダプタなどより構成される通信部309が接続されている。通信部309は、インターネットなどのネットワークを介しての通信処理を行う。撮像部311は、図1で示される撮像素子4などを有し、被写体を撮像し、その撮像した被写体の画像データを入出力インタフェース305を介してCPU301等に供給する。
入出力インタフェース305にはまた、必要に応じてドライブ310が接続され、磁気ディスク321、光ディスク322、光磁気ディスク323、或いは半導体メモリ324などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部308にインストールされる。
(第8実施の形態)
次に、信号処理回路7における、画像推定処理の第8実施の形態について説明する。第8実施の形態は、図24で説明した第3実施の形態の一部を改良したものである。
第3実施の形態では、撮像素子4(図1)の各画素で受光されるデータ(受光量)をポイントサンプリングされたデータとして捉え、各画素中心で観測された画素値とカメラブレのない鮮明な画像としての画像信号との関係をバネモデルで表すことにより、より本来の光に忠実で鮮明な画像を求めた。
例えば、カメラブレのない鮮明な画像としての画像信号を構成するG信号、R信号、およびB信号のうちの、G信号については、第3実施の形態では、各画素中心の位置(I',J')の求めるべき真の緑色の光量Lg(I',J')を、上述したように、式(25)の緑色の光量のバネ関係式により表した。
式(25)のバネ定数{√2−F((x,y),(I',J'))}/(Mk×E)のうちの{√2−F((x,y),(I',J'))}は、位置(I',J')と、位置(I',J')の近傍にある位置(x,y)との距離に対して単調減少する、いわば距離に応じた重みを表す。従って、位置(x,y)の画素値Gobs(k,ig,jg)と、位置(I',J')の真の緑色の光量Lg(I',J')とは、位置(I',J')と位置(x,y)との距離が大きくなるほど、バネの引っ張る力が弱くなり、位置(I',J')と位置(x,y)との距離が小さくなるほど、バネの引っ張る力が強くなる関係がある。
一方、式(25)のバネ定数{√2−F((x,y),(I',J'))}/(Mk×E)のうちの(Mk×E)は、相関2重サンプリング回路5(図1)で除去されないノイズ成分のノイズ量Eがゲインアップにより、Mk倍(k=1乃至N)されたものである。そして、1/(Mk×E)は、ノイズ量Eに対して単調減少する、いわばノイズによる重みを表す。従って、位置(x,y)の画素値Gobs(k,ig,jg)と、位置(I',J')の真の緑色の光量Lg(I',J')とは、ノイズ量Eが大きいほどバネの引っ張る力が弱くなり、ノイズ量Eが小さいほどバネの引っ張る力が強くなる関係がある。
第8実施の形態では、式(25)で{√2−F((x,y),(I',J'))}とされていた、位置(I',J')と画素値Gobs(k,ig,jg)がある位置(x,y)との距離に応じた重み(以下、単に、距離重みと称する)として、例えば、キュービック(Cubic)関数を用いたCubic(I'−x)×Cubic(J'−y)を採用する。即ち、第8実施の形態では、式(25)の{√2−F((x,y),(I',J'))}に代えて、Cubic(I'−x)×Cubic(J'−y)を採用する。
ここで、キュービック関数Cubic(z)は、次式(39)で表される。
なお、式(39)のaは、予め決められた定数であり、例えば、−1などとされる。
キュービック関数Cubic(z)は、図42に示すように、変数zが、2≦|z|、および|z|=1の場合には、0となり、1<|z|<2の場合には、負の値となる。また、|z|<1の場合には、Cubic(z)は、正の値となり、かつ、|z|の値が大きくなるに従い、小さくなる。換言すれば、キュービック関数Cubic(z)は、周波数軸で考えた場合(フーリエ変換した場合)にローパスフィルタの特性を有する関数である。
なお、式(25)における、サメーション(Σ)の対象のp個目の画素値Gobs(k,ig,jg)をvpと表すとともに、そのp個目の画素値vpに対するバネ定数{√2−F((x,y),(I',J'))}/(Mk×E)を、バネ定数Kpと表し、さらに、式(25)を、真の緑色の光量Lg(I',J')について解くと、式(40)が得られる。
ここで、式(40)において、Σは、pについてのサメーションを表す。
式(40)から、バネモデルによれば、真の緑色の光量Lg(I',J')は、バネ定数Kpを重みとし、画素値vpを用いた重み付け加算を行うことにより求められている、ということができる。真の赤色の光量Lr(I',J')および真の青色の光量Lb(I',J')についても、同様である。
図43は、位置(I',J')に対して、N枚の撮像画像の位置(ig−0.5,jg−0.5)を基準座標系(1枚目の座標系)上に変換した位置(x,y)が、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす整数k,ig,jgの組をすべて求め、その画素値Gobs(k,ig,jg)が観測された点G11乃至G19を示したものである。
図43では、黒丸で示される位置(I',J')に対して、白丸で示される点G11乃至点G19で観測された9つの画素値Gobs(k,ig,jg)を特定する(k,ig,jg)の組が得られている。なお、点G11乃至G19の整数k,ig,jgの組は、それぞれ異なるものである。
ここで、第3実施の形態においては、図21で示したように、位置(I',J')に対して、N枚の撮像画像の位置(ig−0.5,jg−0.5)を基準座標系(1枚目の座標系)上に変換された位置(x,y)が、I'−1≦x<I'+1,J'−1≦y<J'+1を満たす整数k,ig,jgの組を求めたのに対して、第8実施の形態では、図43に示すように、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす整数k,ig,jgの組を求めている。これは、上述したように、式(39)で表されるキュービック関数Cubic(z)が、−2≦z≦2の範囲で、引数zに応じた値をとるので(|z|>2の範囲では、引数zにかかわらず0であるので)、その範囲と対応する範囲、即ち、I'−2≦x<I'+2、およびJ'−2≦y<J'+2の範囲で観測される画素値Gobs(k,ig,jg)を用いて、位置(I',J')の真の緑色の光量Lg(I',J')を推定するためである。
また、第3実施の形態においては、次のようにして、k枚目の撮像画像の位置(ig−0.5,jg−0.5)を、基準座標系である1枚目の撮像画像の位置((ig−0.5)(k),(jg−0.5)(k))に変換していた。即ち、動き検出回路23−(k−1)は、1枚目の撮像画像とk枚目の撮像画像との位置関係から、回転角度θk、スケールSk、平行移動量(Tkx,Tky)で構成されるアフィン変換の変換パラメータ(θk,Tkx,Tky,Sk)を求め、演算回路24に供給する。そして、演算回路24が、動き検出回路23−(k−1)から供給された変換パラメータ(θk,Tkx,Tky,Sk)をアフィン変換の式(3)に用いて、k枚目の撮像画像の位置(ig−0.5,jg−0.5)を、基準座標系における位置((ig−0.5)(k),(jg−0.5)(k))に変換する。
一方、第8実施の形態では、動き検出回路23−(k−1)は、1枚目の撮像画像とk枚目の撮像画像との位置関係が次式(41)で表されるアフィン変換の変換パラメータを求める。
即ち、動き検出回路23−(k−1)は、1枚目の撮像画像とk枚目の撮像画像との位置関係を表す式(41)の行列(ak',bk',ck',dk')と2次元ベクトル(Tkx',Tky')を求め、演算回路24に供給する。ここで、式(41)の行列(ak',bk',ck',dk')と2次元ベクトル(Tkx',Tky')で表されるアフィン変換の変換パラメータを、単に、変換パラメータ(ak',bk',dk',Tkx',Tky')と称する。
なお、ak'=dk'=Sk×cos(θk)とするとともに、−bk'=ck'= Sk×sin(θk)とすることにより、式(41)は、式(3)と一致する。
ここで、式(41)の(Xk,Yk)は、式(3)と同様に、k枚目の撮像画像の画素の位置であり、(X1(k),Y1(k))は、位置(Xk,Yk)を式(41)でアフィン変換した1枚目の撮像画像上の位置(基準座標系上の位置)を表している。即ち、下付きの(k)は、k枚目の画像のある位置が基準座標系上に位置変換されたことを表している。なお、1枚目の撮像画像については、変換パラメータ(a1',b1',c1',d1',T1x',T1y')=(1,0,0,1,0,0)とみなすことで、k=1乃至Nに対して、式(41)が成り立つ。
例えば、動き検出回路23−1では、1枚目の撮像画像と2枚目の撮像画像との位置関係が次式(42)で表されるような、変換パラメータ(a2',b2',c2',d2',T2x',T2y')が求められ、演算回路24に供給される。
また、例えば、動き検出回路23−2では、1枚目の撮像画像と3枚目の撮像画像との位置関係が次式(43)で表されるような、変換パラメータ(a3',b3',c3',d3',T3x',T3y')が求められ、演算回路24に供給される。
式(43)は、3枚目の撮像画像上の位置(X3,Y3)が、1枚目の撮像画像上の位置(X1,Y1)に対して、例えば、手持ち撮影のため、変換パラメータ(a3',b3',c3',d3',T3x',T3y')の分だけ移動したことを意味する。
変換パラメータ(ak',bk',ck',dk',Tkx',Tky')は、上述のように、1枚目の撮像画像を基準とする、k枚目の撮像画像の位置関係からを求める他、デジタルカメラ1に加速度センサを設け、その加速度センサの出力から、いわば、メカニカル的に求めるようにすることもできる。また、手持ち撮影による手ブレでは、1枚目の撮像画像とk枚目の撮像画像との位置関係には、回転成分はほとんど含まれていないと考えることができるので、以下では、変換パラメータ(ak',bk',ck',dk',Tkx',Tky')の回転成分は、無視することができるもの(回転していないことを表す固定の値)としても良い。
一方、式(25)のノイズによる重みに関しては、第8実施の形態では、N枚の撮像画像について、すべて同一のゲインアップ(n'ビットシフト)が行われているものとする。即ち、第8実施の形態では、撮像素子4で撮像されたN枚の画像(入力画像)は、いずれも、適正露出で撮像された画像の1/M=1/Mkの明るさであるとする。例えば、撮像画像が適正露出で撮像された画像の1/8の明るさである場合、M=8となり、シフト回路21(図1)では、3ビットシフトによりゲインアップを行うことができる。
シフト回路21において、N枚の撮像画像に対して、すべて同一のゲインアップを行うことにより、式(25)のノイズによる重み1/(Mk×E)は、第8実施の形態では、1/(M×E)と表すことができる。
以上から、第3実施の形態における式(25)は、第8実施の形態では、次式(44)のように表すことができる。
ここで、式(44)におけるΣは、ある位置(I',J')に対して、位置(ig−0.5,jg−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換した基準座標系上の位置(x,y)が、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす(k,ig,jg)の組の個数分の和を表す。例えば、図43に示した例では、点G11乃至点G19の9個の(k,ig,jg)の組についての和となる。
式(44)は、式(25)の緑色の光量のバネ関係式に対応する、キュービック関数Cubic(z)を用いた、第8実施の形態の緑色の光量のバネ関係式であるということができる。
式(44)のノイズによる重みである1/(M×E)は、Σの対象となる(k,ig,jg)の組に関係なく一定であるから、Σの対象から外すことができ、従って、式(44)は、次式(45)に変形することができる。
さらに、式(45)を、求めるべき真の緑色の光量Lg(I',J')について解くと、次式(46)が得られる。
第8実施の形態では、式(46)により、真の緑色の光量Lg(I',J')を求める。
式(46)によれば、真の緑色の光量Lg(I',J')は、Cubic(I'−x)×Cubic(J'−y)を重みとして、画素値Gobs(k,ig,jg)を用いた重み付け加算を行うことにより求められている、ということができる。ここで、重みCubic(I'−x)×Cubic(J'−y)は、位置(I',J')と画素値Gobs(k,ig,jg)がある位置(x,y)との距離に対してローパスフィルタの特性を有する。
なお、以下では、式(46)を緑色の光量の重み加算式と称する。また、式(46)の緑色の光量の重み加算式の分子と分母を、次のように、式(47)と式(48)とする。
また、画素値Gobs(k,ig,jg)が、シフト回路21においてM倍にゲインアップされる前のデータ(光量)をDGobs(k,ig,jg)とすると、式(46)は、式(49)のように表すことができる。
位置(I',J')における、真の赤色の光量Lr(I',J')と、真の青色の光量Lb(I',J')も、式(46)と同様に、式(50)と式(51)により、それぞれ表すことができる。
以下において、式(50)を、赤色の光量の重み加算式と称する。ここで、式(50)におけるΣは、ある位置(I',J')に対して、位置(ir−0.5,jr−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換した基準座標系上の位置(x,y)が、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす(k,ir,jr)の組の個数分の和を表す。
以下において、式(51)を、青色の光量の重み加算式と称する。ここで、式(51)におけるΣは、ある位置(I',J')に対して、位置(ib−0.5,jb−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換した基準座標系上の位置(x,y)が、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす(k,ib,jb)の組の個数分の和を表す。
また、式(50)の赤色の光量の重み加算式の分子と分母を、それぞれ、式(52)と式(53)とする。
同様に、式(51)の青色の光量の重み加算式の分子と分母を、それぞれ、式(54)と式(55)とする。
以上の、式(46)で表される緑色の光量の重み加算式、式(50)で表される赤色の光量の重み加算式、および式(51)で表される青色の光量の重み加算式を用いて、演算回路24が、真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')を求める処理を、後述する例外処理に対比させて、通常処理という。
次に、式(46)の緑色の光量の重み加算式、式(50)の赤色の光量の重み加算式、および式(51)の青色の光量の重み加算式について考察する。
まず、式(46)の緑色の光量の重み加算式は、位置(x,y)における画素値Gobs(k,ig,jg)と距離重みCubic(I'−x)×Cubic(J'−y)との積和(距離重みCubic(I'−x)×Cubic(J'−y)による画素値Gobs(k,ig,jg)の重み付け加算値)である式(47)の分子を、距離重みCubic(I'−x)×Cubic(J'−y)の総和である式(48)の分母で除算したものである。
しかしながら、式(46)の分母である式(48)が0(ほぼ0も含む)となる場合、式(46)で求められる真の緑色の光量Lg(I',J')は、不安定(不定)な、信頼性のない値となる。換言すれば、式(46)の分母である式(48)が0となる位置(I',J')では、式(46)の分子における画素値Gobs(k,ig,jg)に含まれる僅かなノイズ成分(誤差)が、0である分母で除算されることにより、大きな値に増幅され、その結果、式(46)で求められる真の緑色の光量Lg(I',J')は、大きなノイズを含む信頼性のない値となる。
分母である式(48)が0となる場合は、例えば、キュービック関数Cubic(I'−x)またはCubic(J'−y)のうちの少なくとも一方が、式(48)のサメーションの全範囲にわたって0となる場合である。そして、キュービック関数Cubic(I'−x)またはCubic(J'−y)が0となる場合は、図42で示したキュービック関数の特性から、I'−x=±1またはJ'−y=±1、即ち、x=I'±1またはy=J'±1となる場合である。
従って、ある位置(I',J')に対して、位置(ig−0.5,jg−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で基準座標系上に変換した場合に、I'−2≦x<I'+2,J'−2≦y<J'+2の範囲に出現する、すべての(k,ig,jg)の画素値Gobs(k,ig,jg)の位置(x,y)が、位置(I',J')とx=I'±1またはy=J'±1の関係があるとき、式(46)で求められる真の緑色の光量Lg(I',J')は、その分母が0(またはほぼ0)となるから、不安定(不定)な、信頼性のない値となる。但し、I'−2≦x<I'+2,J'−2≦y<J'+2の範囲に出現する画素値Gobs(k,ig,jg)の位置(x,y)すべてが、位置(I',J')と、x=I'±1またはy=J'±1の関係となる状態は、極めて特別な、例外的な状態であり、以下、この関係となる状態を例外状態と称する
ここで、k枚目の撮像画像の画素の位置(k,i,j)を、変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で基準座標系上に変換した位置(x,y)を、以下、適宜、変換位置(x,y)(補正位置)ともいう。
図44は、ある位置(I',J')が例外状態となっている場合を示す図である。
図44では、位置(ig−0.5,jg−0.5)が変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換された点(変換位置)G11'および点G15'が、x=I'−1の関係となる位置に、点G12'およびG16'が、x=I'+1の関係となる位置に、それぞれ出現している。
また、位置(ig−0.5,jg−0.5)が変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換された点G13'および点G14'が、y=J'−1の関係となる位置に、点G17'、点G18'、および点G19'が、y=J'+1の関係となる位置に、それぞれ出現している。
図44に示す状態においては、基準座標系上のI'−2≦x<I'+2,J'−2≦y<J'+2の範囲に変換された(k,ig,jg)の組のすべての変換位置(x,y)が、位置(I',J')とx=I'±1またはy=J'±1の関係がある。この状態では、位置(I',J')を中心とした、およそ(I'±1,J'±1)内の領域(位置(I',J')を中心とする横×縦が2×2の正方形の領域)には、G信号のデータ(画素値Gobs(k,ig,jg))が1つも存在していない。
このような状態(例外状態)において、位置(I',J')における真の緑色の光量Lg(I',J')を、式(46)によって求めた場合、上述したように、信頼性の低い(不安定な)真の緑色の光量Lg(I',J')が得られることとなる。
そこで、位置(I',J')の画素が、このような例外状態である場合には、演算回路24は、例外処理を行う。
即ち、例えば、いま、位置(I',J')を注目位置として、その注目位置(I',J')の出力画像の画素(以下、適宜、注目画素という)における真の緑色の光量Lg(I',J')を推定するとして、注目画素(の注目位置(I',J'))が例外状態となっている場合、演算回路24は、例外状態の注目画素の注目位置(I',J')における真の緑色の光量Lg(I',J')を、変換位置(x,y)が注目位置(I',J')の近傍にあるk枚目の撮像画像の画素の画素値Gobs(k,ig,jg)の他に、変換位置(x,y)が注目画素の周辺の出力画像の画素の位置の近傍にあるk枚目の撮像画像の画素の画素値Gobs(k,ig,jg)をも用いて求める。ここで、注目位置(I',J')の注目画素の周辺の画素(以下、適宜、周辺画素という)としては、例えば、図45に示すような、位置(I'−1,J'),(I'+1,J'),(I',J'−1),(I',J'+1)それぞれの画素を採用することができる。
本実施の形態のデジタルカメラ1の撮像素子4は、図3を参照して説明したように、ベイヤー配列となっている。ベイヤー配列では、緑色の成分を受光する画素は、X方向およびY方向ともに、1画素おきに配列されている(図3参照)。なお、第8実施の形態では、撮像素子4は、横方向(X方向)にW画素、縦方向(Y方向)にH画素の、W×Hの画素数を有しているとする。
いま注目位置(I',J')の近傍にG信号の観測値(である画素値)Gobs(k,ig,jg)が存在していない場合、その注目位置(I',J')の注目画素は、ベイヤー配列の画素のうちの、緑色の成分を受光する画素ではないといえる。
例えば、注目位置(I',J')の注目画素が、図46に示すように、ベイヤー配列の画素のうちの、青色の成分を受光する画素であり、丸で囲まれている画素B12である場合、画素B12の上下左右のいずれかには、緑色の成分を受光する画素が存在する。同様に、撮像素子4の赤色または青色の成分のうちのいずれかを受光する各画素に対しては、その画素の上下左右のいずれかに、緑色の成分を受光する画素が存在する。
従って、注目位置(I',J')の近傍にG信号の観測値Gobs(k,ig,jg)が存在していない場合(変換位置(x,y)が注目位置(I',J')の近傍にある撮像画像の緑色の画素が存在していない場合)、その注目位置(I',J')の注目画素の上、下、左、または右に隣接する画素(周辺画素)の位置(I',J'−1),(I',J'+1),(I'−1,J')、または(I'+1,J')のうちのいずれかの近傍には、G信号の観測値Gobs(k,ig,jg)が存在する。そして、位置(I'−1,J'),(I'+1,J'),(I',J'−1)、または(I',J'+1)のうちのいずれかの周辺画素においては、G信号の観測値Gobs(k,ig,jg)が存在するので、例外状態が発生していない。即ち、位置(I'−1,J'),(I'+1,J'),(I',J'−1)、または(I',J'+1)のうちのいずれかの周辺画素については、式(46)により、信頼性のある真の緑色の光量Lg(I’,J’)を求めることができる。
以上から、演算回路24は、注目画素が例外状態である場合は、注目位置(I',J')における真の緑色の光量Lg(I',J')を、変換位置(x,y)が注目位置(I',J')の近傍にある画素の画素値Gobs(k,ig,jg)の他に、注目画素の周辺の周辺画素の位置(I'−1,J'),(I'+1,J'),(I',J'−1)、または(I',J'+1)の近傍にある画素の画素値Gobs(k,ig,jg)をも用いて求める例外処理を行う。
具体的には、演算回路24は、例外処理として、注目位置(I',J')における真の緑色の光量Lg(I',J')を、次式(56)で求める。
式(56)によれば、注目画素の注目位置(I',J')と、その注目画素の周辺の周辺画素の位置(I'−1,J'),(I'+1,J'),(I',J'−1)、および(I',J'+1)との5点それぞれにおいて通常処理のときに演算される式(46)の分子の総和、即ち、式(47)の総和を、注目画素の注目位置(I',J')と、その注目画素の周辺の周辺画素の位置(I'−1,J'),(I'+1,J'),(I',J'−1)、および(I',J'+1)との5点それぞれにおいて通常処理のときに演算される式(46)の分母の総和、即ち、式(48)の総和で除算することにより、真の緑色の光量Lg(I’,J’)が求められる。
なお、注目画素が例外状態である場合に、その注目位置(I',J')における真の緑色の光量Lg(I',J')を求めるにあたっては、上述の式(56)に限定されるものではなく、例えば、次の式(57)を採用してもよい。
式(57)では、注目画素の周辺の周辺画素の位置(I'−1,J'),(I'+1,J'),(I',J'−1)、および(I',J'+1)の4点それぞれについて式(46)で求められる真の緑色の光量Lg(I'−1,J'),Lg(I'+1,J'),Lg(I',J'−1)、およびLg(I',J'+1)の平均値を、注目位置(I',J')の真の緑色の光量Lg(I',J')と推定している式であるといえる。
次に、式(50)の赤色の光量の重み加算式について考察する。
式(50)の赤色の光量の重み加算式で求められる真の赤色の光量Lr(I',J')についても、式(46)の緑色の光量の重み加算式で求められる真の緑色の光量Lg(I',J')と同様に、値が不安定となる場合、即ち、注目画素が例外状態となる場合がある。具体的には、ある注目画素の注目位置(I',J')に対して、位置(ir−0.5,jr−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で基準座標系上に変換した場合に、I'−2≦x<I'+2,J'−2≦y<J'+2の範囲に出現する、すべての(k,ir,jr)の画素値Robs(k,ir,jr)の変換位置(x,y)が、図44に示したように、位置(I',J')とx=I'±1またはy=J'±1の関係となることがある。このような状態(例外状態)においては、位置(I',J')を中心とした、およそ(I'±1,J'±1)内の領域(位置(I',J')を中心とする横×縦が2×2の正方形の領域)には、R信号のデータ(画素値Robs(k,ir,jr))が1つも存在していない。
この場合、演算回路24は、次の例外処理を行う。
即ち、演算回路24は、例外状態の注目画素の注目位置(I',J')における真の赤色の光量Lr(I',J')を、変換位置(x,y)が注目位置(I',J')の近傍にあるk枚目の撮像画像の画素の画素値Robs(k,ir,jr)の他に、変換位置(x,y)が注目画素の周辺の出力画像の画素の位置の近傍にあるk枚目の撮像画像の画素の画素値Robs(k,ir,jr)をも用いて求める。ここで、注目位置(I',J')の注目画素の周辺の周辺画素としては、例えば、図47に示すような、位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1),(I'+1,J'+1)それぞれの画素を採用することができる。
注目位置(I',J')の近傍にR信号の観測値(である画素値)Robs(k,ir,jr)が存在していない場合、その注目位置(I',J')の注目画素は、ベイヤー配列の画素のうちの、赤色の成分を受光する画素ではないといえる。
例えば、注目位置(I',J')の注目画素が、図48に示すように、ベイヤー配列の画素のうちの、緑色の成分を受光する画素であり、丸で囲まれている画素G11である場合、画素G11の上下のいずれかには、赤色の成分を受光する画素が存在する。
また、例えば、注目位置(I',J')の注目画素が、図48に示すように、ベイヤー配列の画素のうちの、緑色の成分を受光する画素であり、丸で囲まれている画素G22である場合、画素G22の左右のいずれかには、赤色の成分を受光する画素が存在する。
さらに、例えば、注目位置(I',J')の注目画素が、図48に示すように、ベイヤー配列の画素のうちの、青色の成分を受光する画素であり、丸で囲まれている画素B14である場合、画素B14の右斜め上、右斜め下、左斜め上、および左斜め下のいずれかには、赤色の成分を受光する画素が存在する。
同様に、撮像素子4の、赤色の成分を受光する画素ではない各画素に対しては、その画素の上下、左右、右斜め上、右斜め下、左斜め上、および左斜め下のいずれかには、赤色の成分を受光する画素が存在する。
従って、注目位置(I',J')の近傍にR信号の観測値Robs(k,ir,jr)が存在していない場合(変換位置(x,y)が注目位置(I’,J’)の近傍にある撮像画像の赤色の画素が存在していない場合)、その注目位置(I',J')の注目画素の左斜め上、上、右斜め上、左、右、左斜め下、下、または右斜め下に隣接する画素(周辺画素)の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、または(I'+1,J'+1)のうちのいずれかの近傍には、R信号の観測値Robs(k,ir,jr)が存在する。そして、位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、または(I'+1,J'+1)のうちのいずれかの周辺画素においては、R信号の観測値Robs(k,ir,jr)が存在するので、例外状態が発生していない。即ち、位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、または(I'+1,J'+1)のうちのいずれかの周辺画素については、式(50)により、信頼性のある真の赤色の光量Lr(I’,J’)を求めることができる。
以上から、演算回路24は、注目画素が例外状態である場合は、注目位置(I',J')における真の赤色の光量Lr(I',J')を、変換位置(x,y)が注目位置(I',J')の近傍にある画素の画素値Robs(k,ir,jr)の他に、注目画素の周辺の周辺画素の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、または(I'+1,J'+1)の近傍にある画素の画素値Robs(k,ir,jr)をも用いて求める。
具体的には、演算回路24は、例外処理として、注目位置(I',J')における真の赤色の光量Lr(I',J')を、次式(58)で求める。
式(58)によれば、注目画素の注目位置(I',J')と、その注目画素の周辺の周辺画素の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、および(I'+1,J'+1)との9点それぞれにおいて通常処理のときに演算される式(50)の分子の総和、即ち、式(52)の総和を、注目画素の注目位置(I',J')と、その注目画素の周辺の周辺画素の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、および(I'+1,J'+1)との9点それぞれにおいて通常処理のときに演算される式(50)の分母の総和、即ち、式(53)の総和で除算することにより、真の赤色の光量Lr(I’,J’)が求められる。
なお、G信号の場合における式(57)と同様に、式(58)の代わりに、注目画素の周辺の周辺画素の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、および(I'+1,J'+1)の8点それぞれの真の赤色の光量Lr(I'−1,J'−1),Lr(I',J'−1),Lr(I'+1,J'−1),Lr(I'−1,J'),Lr(I'+1,J'),Lr(I'−1,J'+1),Lr(I',J'+1)、およびLr(I'+1,J'+1)の平均値から、注目位置(I',J')の真の赤色の光量Lr(I',J')を求めてもよい。
さらに、式(51)の青色の光量の重み加算式で求められる真の青色の光量Lb(I',J')についても、式(46)の緑色の光量の重み加算式で求められる真の緑色の光量Lg(I',J')や、式(50)の赤色の光量の重み加算式で求められる真の赤色の光量Lr(I',J')と同様に、値が不安定となる場合、即ち、注目位置(I',J')の注目画素が例外状態となる場合がある。
この場合、演算回路24は、次の例外処理を行う。
即ち、ベイヤー配列では、青色の成分を受光する画素は、上述の赤色の成分を受光する画素と同様の位置関係で配列されている。そこで、演算回路24は、例外状態の注目画素の注目位置(I',J')における真の青色の光量Lb(I',J')を、式(58)と同様の、式(59)で求める例外処理を行う。
式(59)によれば、注目画素の注目位置(I',J')と、その注目画素の周辺画素の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、および(I'+1,J'+1)との9点それぞれにおいて通常処理のときに演算される式(51)の分子の総和、即ち、式(54)の総和を、注目画素の注目位置(I',J')と、その注目画素の周辺画素の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、および(I'+1,J'+1)との9点それぞれにおいて通常処理のときに演算される式(51)の分母の総和、即ち、式(55)の総和で除算することにより、真の青色の光量Lb(I’,J’)が求められる。
なお、G信号の場合における式(57)と同様に、式(59)の代わりに、注目画素の周辺の周辺画素の位置(I'−1,J'−1),(I',J'−1),(I'+1,J'−1),(I'−1,J'),(I'+1,J'),(I'−1,J'+1),(I',J'+1)、および(I'+1,J'+1)の8点それぞれの真の青色の光量Lb(I'−1,J'−1),Lb(I',J'−1),Lb(I'+1,J'−1),Lb(I'−1,J'),Lb(I'+1,J'),Lb(I'−1,J'+1),Lb(I',J'+1)、およびLb(I'+1,J'+1)の平均値から、注目位置(I',J')の真の青色の光量Lb(I',J')を求めてもよい。
次に、図49と図50のフローチャートを参照して、図2のステップS4における画像推定処理の第8実施の形態について説明する。
初めに、ステップS201において、演算回路24は、基準座標系上の画素がある位置(I',J')のうちのY方向の位置を表す変数J'に1をセットして、ステップS202に進む。
ステップS202において、演算回路24は、基準座標系上の画素がある位置(I',J')のうちのX方向の位置を表す変数I'に1をセットして、ステップS203に進む。ここで、変数I'とJ'は、それぞれ、出力画像の画素のX方向とY方向の位置を表す変数でもある。
ステップS203において、演算回路24は、位置(I',J')を注目位置として、その注目位置(I',J')に対して、k枚目画像の緑色の成分を受光する画素の中心位置(ig−0.5,jg−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換した基準座標系上の変換位置(x,y)が、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす(k,ig,jg)の組を、1乃至N枚目画像についてすべて求め、ステップS204に進む。
ステップS204において、演算回路24は、ステップS203で求めたすべての(k,ig,jg)の組を用いて、式(48)で表される、緑色の光量の重み加算式の分母と、式(47)で表される、緑色の光量の重み加算式の分子それぞれを演算する。また、演算回路24は、その演算の結果それぞれを図示せぬメモリに記憶させて、ステップS205に進む。
ステップS205において、演算回路24は、注目位置(I',J')に対して、k枚目画像の赤色の成分を受光する画素の中心位置(ir−0.5,jr−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換した基準座標系上の変換位置(x,y)が、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす(k,ir,jr)の組を、1乃至N枚目画像についてすべて求め、ステップS206に進む。
ステップS206において、演算回路24は、ステップS205で求めたすべての(k,ir,jr)の組を用いて、式(53)で表される、赤色の光量の重み加算式の分母と、式(52)で表される、赤色の光量の重み加算式の分子それぞれを演算する。また、演算回路24は、その演算の結果それぞれをメモリに記憶させて、ステップS207に進む。
ステップS207において、演算回路24は、注目位置(I',J')に対して、k枚目画像の青色の成分を受光する画素の中心位置(ib−0.5,jb−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で変換した基準座標系上の変換位置(x,y)が、I'−2≦x<I'+2,J'−2≦y<J'+2を満たす(k,ib,jb)の組を、1乃至N枚目画像についてすべて求め、ステップS208に進む。
ステップS208において、演算回路24は、ステップS207で求めたすべての(k,ib,jb)の組を用いて、式(55)で表される、青色の光量の重み加算式の分母と、式(54)で表される、青色の光量の重み加算式の分子それぞれを演算する。また、演算回路24は、その演算の結果それぞれをメモリに記憶させて、ステップS209に進む。
ステップS209において、演算回路24は、変数I'がX方向の画素数Wと等しいか否かを判定する。ステップS209で、変数I'が画素数Wと等しくないと判定された場合、即ち、現在のY=J'の画素列のうち、X方向のすべての画素についてステップS203乃至S208の処理が行われていない場合、ステップS210に進み、変数I'を1だけインクリメントして、ステップS203に戻る。
一方、ステップS209で、変数I'が画素数Wと等しいと判定された場合、即ち、現在のY=J'の画素列のうち、X方向のすべての画素についてステップS203乃至S208の処理が行われた場合、ステップS211に進む。
ステップS211において、演算回路24は、変数J'がY方向の画素数Hと等しいか否かを判定する。ステップS211で、変数J'が画素数Hと等しくないと判定された場合、即ち、撮像素子4のY方向のすべての列について、ステップS203乃至S208の処理が行われていない場合、ステップS212に進み、変数J'を1だけインクリメントして、ステップS202に戻る。
一方、ステップS211で、変数J'が画素数Hと等しいと判定された場合、即ち、撮像素子4のY方向のすべての列について、ステップS203乃至S208の処理が行われた場合、図50のステップS213に進む。ここで、画素数WとHは、それぞれ、出力画像のX方向とY方向の画素数でもある。
ステップS213において、演算回路24は、ステップS201における場合と同様に、変数J'に1をセットして、ステップS214に進む。
ステップS214において、演算回路24は、ステップS202における場合と同様に、変数I'に1をセットして、ステップS215に進む。
ステップS215において、演算回路24は、位置(I’,J’)を注目位置(I’,J’)として、その注目位置(I',J')に対して、真の緑色の光量Lg(I',J')を求める演算処理を行って、ステップS216に進む。即ち、ステップS215では、後述するように、式(46)の緑色の光量の重み加算式を用いた通常処理(第1の演算処理)、または、式(56)を用いた例外処理(第2の演算処理)により、注目位置(I',J')に対する真の緑色の光量Lg(I',J')が求められる。
ステップS216において、演算回路24は、位置(I’,J’)を注目位置(I’,J’)として、その注目位置(I',J')に対して、真の赤色の光量Lr(I',J')を求める演算処理を行って、ステップS217に進む。即ち、ステップS216では、後述するように、式(50)の赤色の光量の重み加算式を用いた通常処理(第1の演算処理)、または、式(58)を用いた例外処理(第2の演算処理)により、注目位置(I',J')に対する真の赤色の光量Lr(I',J')が求められる。
ステップS217において、演算回路24は、位置(I’,J’)を注目位置(I’,J’)として、その注目位置(I',J')に対して、真の青色の光量Lb(I',J')を求める演算処理を行って、ステップS218に進む。即ち、ステップS217では、後述するように、式(51)の青色の光量の重み加算式を用いた通常処理(第1の演算処理)、または、式(59)を用いた例外処理(第2の演算処理)により、注目位置(I',J')に対する真の青色の光量Lg(I',J')が求められる。
ステップS218において、演算回路24は、変数I'がX方向の画素数Wと等しいか否かを判定する。ステップS218で、変数I'が画素数Wと等しくないと判定された場合、即ち、現在のY=J'の画素列のうち、X方向のすべての画素についてステップS215乃至S217の処理が行われていない場合、ステップS219に進み、変数I'を1だけインクリメントして、ステップS215に戻る。
一方、ステップS218で、変数I'が画素数Wと等しいと判定された場合、即ち、現在のY=J'の画素列のうち、X方向のすべての画素についてステップS215乃至S217の処理が行われた場合、ステップS220に進む。
ステップS220において、演算回路24は、変数J'がY方向の画素数Hと等しいか否かを判定する。ステップS220で、変数J'が画素数Hと等しくないと判定された場合、即ち、撮像素子4のY方向のすべての列について、ステップS215乃至S217の処理が行われていない場合、ステップS221に進み、変数J'を1だけインクリメントして、ステップS214に戻る。
一方、ステップS220で、変数J'が画素数Hと等しいと判定された場合、即ち、撮像素子4のY方向のすべての列について、ステップS215乃至S217の処理が行われた場合、ステップS222に進む。
ステップS222において、演算回路24は、ステップS215,S216、およびS217でそれぞれ求めた真の緑色の光量Lg(I',J')、真の赤色の光量Lr(I',J')、および真の青色の光量Lb(I',J')から、出力画像(信号)を推定し、D/Aコンバータ9またはコーデック12に供給して、処理を戻る。例えば、「i番目、j番目の画素」においては、演算回路24は、緑色の値(G信号)としてステップS215で求めた真の緑色の光量Lg(=Lg(I',J'))と、赤色の値(R信号)としてステップS216で求めた真の赤色の光量Lr(i−0.5,j−0.5)(=Lr(I',J'))と、青色の値(B信号)としてステップS217で求めた真の青色の光量Lb(i−0.5,j−0.5)(=Lb(I',J'))とから、「i番目、j番目の画素」の画像信号を推定する。そして、演算回路24は、その推定を位置(I',J')(=(i−0.5,j−0.5))を中心位置とする出力画像の画素すべてについて行うことにより、出力画像を推定する。
次に、図51のフローチャートを参照して、図50のステップS215における、注目位置(I',J')の真の緑色の光量Lg(I',J')を求める演算処理について説明する。
初めに、ステップS251において、演算回路24は、注目位置(I',J')に対して、図49のステップS204で演算された、式(46)の緑色の光量の重み加算式の分母の絶対値、即ち、式(48)の絶対値が、所定の閾値以上であるか否かを判定する。この所定の閾値は、式(48)の絶対値を0とみなし、例外処理を適用するかどうかを判定するための値であり、例えば、予め演算回路24に設定されている。但し、所定の閾値は、その他、ユーザの操作に応じて設定可能とすることもできる。
ステップS251において、注目位置(I',J')に対する式(48)の絶対値が、所定の閾値以上であると判定された場合、即ち、注目位置(I',J')に対する式(48)の絶対値が0とみなすほどの小さい値ではない場合、ステップS252に進み、演算回路24は、式(46)の緑色の光量の重み加算式を演算する通常処理を選択して行う。即ち、演算回路24は、ステップS204で演算された、式(46)の緑色の光量の重み加算式の分子の値、即ち、式(47)の値を、ステップS204で演算された、式(46)の緑色の光量の重み加算式の分母の値、即ち、式(48)の値で除算する演算を行う。これにより、ステップS252では、注目位置(I',J')における真の緑色の光量Lg(I',J')が求められる。
一方、ステップS251において、注目位置(I',J')に対する式(48)の絶対値が、所定の閾値未満であると判定された場合、即ち、式(48)の絶対値が0、または0に近い場合、ステップS253に進み、演算回路24は、例外処理を選択して行う。即ち、演算回路24は、式(56)を演算することにより、注目位置(I',J')における真の緑色の光量Lg(I',J')を求める。
次に、図52のフローチャートを参照して、図50のステップS216における、注目位置(I',J')の真の赤色の光量Lr(I',J')を求める演算処理について説明する。
初めに、ステップS271において、演算回路24は、注目位置(I’,J’)に対して、図49のステップS206で演算された、式(50)の赤色の光量の重み加算式の分母の絶対値、即ち、式(53)の絶対値が、所定の閾値以上であるか否かを判定する。この所定の閾値は、式(53)の絶対値を0とみなし、例外処理を適用するかどうかを判定するための値であり、例えば、予め演算回路24に設定されている。但し、所定の閾値は、その他、ユーザの操作に応じて設定可能とすることもできる。また、この閾値は、図51のステップS251の閾値と同一でもよいし、異なるものでもよい。
ステップS271において、注目位置(I',J')に対する式(53)の絶対値が、所定の閾値以上であると判定された場合、即ち、注目位置(I',J')に対する式(53)の絶対値が0とみなすほどの小さい値ではない場合、ステップS272に進み、演算回路24は、式(50)の赤色の光量の重み加算式を演算する通常処理を選択して行う。即ち、演算回路24は、ステップS206で演算された、式(50)の赤色の光量の重み加算式の分子の値、即ち、式(52)の値を、ステップS206で演算された、式(50)の赤色の光量の重み加算式の分母の値、即ち、式(53)の値で除算する演算を行う。これにより、ステップS272では、注目位置(I',J')における真の赤色の光量Lr(I',J')が求められる。
一方、ステップS271において、注目位置(I',J')に対する式(53)の絶対値が、所定の閾値未満であると判定された場合、即ち、式(53)の絶対値が0、または0に近い場合、ステップS273に進み、演算回路24は、例外処理を選択して行う。即ち、演算回路24は、式(58)を演算することにより、注目位置(I',J')における真の赤色の光量Lr(I',J')を求める。
次に、図53のフローチャートを参照して、図50のステップS217における、注目位置(I',J')の真の青色の光量Lb(I',J')を求める演算処理について説明する。
初めに、ステップS291において、演算回路24は、注目位置(I’,J’)に対して、図49のステップS208で演算された、式(51)の青色の光量の重み加算式の分母の絶対値、即ち、式(55)の絶対値が、所定の閾値以上であるか否かを判定する。この所定の閾値は、式(55)の絶対値を0とみなし、例外処理を適用するかどうかを判定するための値であり、例えば、予め演算回路24に設定されている。但し、所定の閾値は、その他、ユーザの操作に応じて設定可能とすることもできる。また、この閾値は、図51のステップS251および図52のステップS271の閾値それぞれと同一でもよいし、異なるものでもよい。
ステップS291において、注目位置(I’,J’)に対する式(55)の絶対値が、所定の閾値以上であると判定された場合、即ち、注目位置(I’,J’)に対する式(55)の絶対値が0とみなすほどの小さい値ではない場合、ステップS292に進み、演算回路24は、式(51)の青色の光量の重み加算式を演算する通常処理を選択して行う。即ち、演算回路24は、ステップS208で演算された、式(51)の青色の光量の重み加算式の分子の値、即ち、式(54)の値を、ステップS208で演算された、式(51)の青色の光量の重み加算式の分母の値、即ち、式(55)の値で除算する演算を行う。これにより、ステップS292では、注目位置(I',J')における真の青色の光量Lb(I',J')が求められる。
一方、ステップS291において、注目位置(I’,J’)に対する式(55)の絶対値が、所定の閾値未満であると判定された場合、即ち、式(55)の絶対値が0、または0に近い場合、ステップS293に進み、演算回路24は、例外処理を選択して行う。即ち、演算回路24は、式(59)を演算することにより、注目位置(I',J')における真の青色の光量Lb(I',J')を求める。
以上のように、第8実施の形態では、注目位置(I',J')と、注目位置(I',J')の近傍にある変換位置(x,y)との距離に応じた重みとして、ローパスフィルタの特性を有するキュービック関数を用いて重み付け加算を行うことにより、真の緑色の光量Lg(I’,J’)、真の赤色の光量Lr(I’,J’)、および真の青色の光量Lb(I’,J’)を求めるようにしたので、より本来の光に忠実で鮮明な画像を求めることができる。
また、第8実施の形態では、位置(ig−0.5,jg−0.5)を変換パラメータ(ak',bk',ck',dk',Tkx',Tky')で基準座標系上に変換した場合に、注目位置(I',J')に対して、I'−2≦x<I'+2,J'−2≦y<J'+2の範囲に出現する、すべての(k,ig,jg)の画素値Gobs(k,ig,jg)、即ち、変換位置(x,y)が、注目位置(I',J')の近傍にある画素値Gobs(k,ig,jg)を用いた重み付け加算である、式(46)の緑色の光量の重み加算式で、真の緑色の光量Lg(I’,J’)が求められる(通常処理)。
但し、注目位置(I',J')の式(46)の緑色の光量の重み加算式の分母の式(48)の絶対値が、所定の閾値未満で0とみなされる場合、即ち、式(46)の緑色の光量の重み加算式により求められる値が不安定である場合には、変換位置(x,y)が注目位置(I',J')の近傍にある画素値Gobs(k,ig,jg)と、注目位置(I',J')の注目画素の周辺の周辺画素の位置の近傍にある画素値Gobs(k,ig,jg)とを用いた重み付け加算である、式(56)により、真の緑色の光量Lg(I',J')が求められる(例外処理)。
真の赤色の光量Lr(I’,J’)および真の青色の光量Lb(I’,J’)も同様にして求められる。
従って、ノイズの目立たない良好な出力画像を得ることができる。
なお、通常処理と例外処理とは、次のような見方をすることもできる。
即ち、例えば、緑色に注目すると、上述の場合においては、通常処理では、変換位置(x,y)が注目画素の位置(注目位置)(I’,J’)の近傍にある撮像画像の画素の画素値Gobs(k,ig,jg)を用いた重み付け加算を行う。一方、例外処理では、変換位置(x,y)が注目画素の位置(I’,J’)の近傍にある撮像画像の画素の画素値Gobs(k,ig,jg)と、変換位置(x,y)が注目画素の周辺の周辺画素の位置の近傍にある撮像画像の画素の画素値Gobs(k,ig,jg)とを用いた重み付け加算を行う。
従って、例外処理では、変換位置(x,y)が注目画素の位置(I’,J’)の近傍にある撮像画像の画素の他、周辺画素の位置の近傍にある撮像画像の画素の画素値Gobs(k,ig,jg)をも用いて重み付け加算が行われる。
以上から、通常処理が、注目位置(I',J')の近傍として、I'−2≦x<I'+2,J'−2≦y<J'+2の領域内に観測される撮像画像の画素値Gobs(k,ig,jg)を用いた重み付け加算により、注目位置(I',J')の真の緑色の光量Lg(I',J')を求めるのに対し、例外処理は、注目位置(I',J')の近傍として、通常処理の近傍の領域より広いI'−3≦x<I'+3,J'−3≦y<J'+3の領域内に観測される画素値Gobs(k,ig,jg)を用いた重み付け加算により、注目位置(I',J')の真の緑色の光量Lg(I',J')を求めているということができる。
さらに、換言すれば、注目位置(I',J')の真の緑色の光量Lg(I',J')を求める際に、注目位置(I',J')の近傍として、予め、I'−3≦x<I'+3,J'−3≦y<J'+3の領域が設定されており、通常処理では、その近傍の領域のうちのI'−2≦x<I'+2,J'−2≦y<J'+2以外の領域に観測される画素値Gobs(k,ig,jg)に対する重みが0となる式(46)の緑色の光量の重み加算式により、注目位置(I',J')の真の緑色の光量Lg(I',J')が求められているということができる。一方、例外処理では、I'−2≦x<I'+2,J'−2≦y<J'+2以外の領域に観測される画素値Gobs(k,ig,jg)、即ち、周辺画素の近傍に観測される画素値Gobs(k,ig,jg)に対する重みとして、一定の0の重みではなく、その周辺画素の位置を原点とするキュービック関数Cubic(z)によって与えられる値を用いて、式(56)により、注目位置(I',J')の真の緑色の光量Lg(I',J')が求められていると言うことができる。
即ち、通常処理と例外処理とでは、異なる重み(第1と第2の重み)を用いた重み付け加算により、真の緑色の光量Lg(I’,J’)が求められるということができる。
なお、第8実施の形態では、注目位置(I',J')とその近傍にある画素値Gobs(k,ig,jg)が観測される位置(x,y)との距離zに応じた重みを表す関数として、式(39)のキュービック関数Cubic(z)を採用したが、重みとしては、その他、例えば、sin(z)/zなどの、ローパスフィルタの特性を有する任意の関数を採用することができる。
ところで、上述した実施の形態では、1枚目の撮像画像を基準画像とするとともに、2乃至N枚目の撮像画像それぞれをターゲット画像とすることとしたが、1枚目の撮像画像以外の、2乃至N枚目の撮像画像のいずれを基準画像としてもよい。
即ち、図54は、N回の連続撮像(高速撮像)により撮像されたN枚の撮像画像を示している。なお、図54は、N=8の例である。
1乃至8枚目の撮像画像4011乃至4018(k枚目画像401k)は、時系列に撮像された画像であり、時間の経過とともに、図中右上方向に、手ブレによりずれた画像となっている。
図55は、図54と同様の8枚の撮像画像4011乃至4018を示している。
信号処理回路7において、撮像画像4011乃至4018のうちの、1枚目画像を基準画像とするとともに、2乃至8枚目画像それぞれをターゲット画像として、出力画像を推定する場合、出力画像は、基準画像である1枚目画像4011の座標系上の画像として得られる。ここで、図55では、1枚目画像4011、即ち、出力画像を、太線で示してある。
図55の太線で示される出力画像の領域において、1乃至8枚目の8枚の撮像画像4011乃至4018のすべてのデータ(画素値)を使用して光量(画素値)が推定される領域は、点線で示される、出力画像の右上部分の領域411である。この領域411の画素値は、1乃至8枚目の8枚すべての撮像画像4011乃至4018のデータを使用して推定されるので、より鮮明な画質となる。
しかしながら、出力画像の推定にあたり、図55の太線で示す出力画像の領域のうちの、領域411以外では、1乃至8枚目の撮像画像4011乃至4018のうちの、一部の枚数目の撮像画像のデータしか使用することができないため、即ち、1乃至8枚目の撮像画像4011乃至4018のすべてのデータを使用することができないため、その分だけ、領域411に比較して画質の鮮明さが劣化することになる。上述したように、右上方向の手ブレが生じている場合には、その反対の左下方向の領域ほど、出力画像を推定するのに用いることができるデータが少なくなり、画質の鮮明さが、領域411に比較して劣化する。
さらに、ターゲット画像である2乃至8枚目の撮像画像4011乃至4018のうちの、図55の太線で示す出力画像の領域上にない部分412のデータは、出力画像の推定に使用することができず、いわば無駄に捨てられることになる。
以上のように、1枚目の撮像画像を基準として、出力画像を推定すると、ある方向の手ブレが生じている場合には、出力画像の中心から、手ブレと同一の方向の領域(例えば、図55の領域411)では、鮮明な画質が得られるが、その反対方向の領域では、画質の鮮明さが劣化する。
ところで、一般に、ユーザが画像を見るときは、その中心部分に注目することが多いので、特に、画像の中心部分の画質は鮮明であることが望ましい。
そこで、信号処理回路7では、N枚の画像が連続撮像された時間の、中間の時刻またはその近傍の時刻に撮像された撮像画像(以下、中間画像と称する)を基準画像とするとともに、他の撮像画像をターゲット画像として、出力画像を推定することができる。
例えば、図56に示すように、信号処理回路7は、8枚の撮像画像4011乃至4018のうちの、太線で示される4枚目の撮像画像を基準画像として、出力画像を推定する。この場合、出力画像の推定にあたり、その中心部分の領域421において、1乃至8枚目の8枚の撮像画像4011乃至4018のすべてのデータが使用される。
即ち、時系列の複数枚の撮像画像のうちの、中間画像を基準画像とするとともに、他の撮像画像をターゲット画像として、出力画像を推定することにより、出力画像の中心部分を、より鮮明な画質とすることができる。
通常の撮影(撮像)では、撮影者は、目的の被写体が画像(画枠)の中心に位置するように撮影を行う。また、上述したように、人が画像を見る場合には、画像の中央部を視点として、その画像を見ることが一般的である。そういう意味では、画像の中心部分が、画像の周辺部よりも、より鮮明な画質となっている方が、良好な画像であると言える。
従って、図56に示すように、中間画像を基準画像とするとともに、他の撮像画像をターゲット画像とすることにより、出力画像の中心部分が1乃至8枚目の8枚の撮像画像4011乃至4018のすべてのデータを使用して推定されるので、1枚目の撮像画像を基準画像とするよりも、中間画像を基準画像とする方が、良好な出力画像を得ることができる。
なお、手ブレの周波数は、例えば、10乃至15Hz程度である。従って、図56に示した8枚の撮像画像4011乃至4018を、例えば、1/50秒以内で撮像するようなシャッタスピードでは、手ブレによるブレ量(手ブレ量)は直線近似することができる。即ち、手ブレは、一定方向への一定の速さでの移動とみなすことができる。従って、時系列に8枚の撮像画像4011乃至4018を撮像する場合には、その撮像時間における手ブレ量を直線近似することができ、中間画像、即ち、4枚目の撮像画像4014や、5枚目の撮像画像4015を基準画像とすることにより、図56で説明したように、出力画像の中心部分の画質を鮮明にすることができる。
また、図4で示した信号処理回路7において、8枚の撮像画像4011乃至4018のうちの、例えば、4枚目の撮像画像4014を基準画像とする場合には、フレームメモリ22−1に基準画像とする4枚目の撮像画像4014を供給して記憶させ、1乃至3枚目の4011乃至4013、および5乃至8枚目の撮像画像4015乃至4018を、それぞれ、フレームメモリ22−2乃至22−8に供給して記憶させるようにすればよい。
ここで、中間画像を基準画像とすることにより、中心部分が鮮明な出力画像を得ることができる他、信号処理回路7の設計の容易化を図ることができる。
即ち、手ブレ量が、上述したように、直線近似することができるとして、時系列に8枚の撮像画像4011乃至4018を撮像した場合に、例えば、隣り合う撮像画像間での手ブレ量が10画素であるとする。この場合、1枚目の撮像画像を基準画像としてしまうと、1枚の画像の撮像が無限小の時間で行うことができるとしても、最大で、70画素の手ブレが生じることになる。従って、信号処理回路7は、最大で70画素の手ブレに対応することができるように設計する必要がある。
これに対して、中間画像を基準画像とする場合、即ち、撮像画像4011乃至4018のうちの、例えば、4枚目の撮像画像4014を基準画像とする場合、最大の手ブレ量は40画素になる。従って、信号処理回路7は、最大で40画素の手ブレに対応することができるように設計すればよいため、信号処理回路7としてのハードウエアの設計の容易化を図ることができる。
第8実施の形態で説明した一連の処理は、その他の実施の形態と同様に、専用のハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。第8実施の形態で説明した一連の処理をソフトウエアにより実行させる場合、他の実施の形態と同様に、例えば、デジタルカメラ1は、図41で示したコンピュータにプログラムを実行させることにより実現することができる。
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
上述した例では、デジタルカメラ1の撮像素子4を、単板センサで構成し、撮像素子4が出力する1画素につき1個の色信号から、1画素につき3個の色信号を有する画像を推定するようにしたが、撮像素子4は、単板センサでなくてもよい。即ち、撮像素子4としては、1画素につき所定のn個の色信号を出力するものを採用し、画像推定処理では、1画素につきn個の色信号から、1画素につき(n+1)個以上の色信号を有する画像を推定するようにすることができる。
また、上述した例では、1枚目の撮像画像または中間画像を基準画像として、ターゲット画像の基準画像に対する位置関係を検出したが、1枚目の撮像画像および中間画像以外の、任意の撮像画像を基準画像として、ターゲット画像の基準画像に対する位置関係を検出するようにすることも可能である。
さらに、本発明は、上述したように、デジタルスチルカメラに採用することができる他、デジタルビデオカメラ等にも採用することができる。
1 デジタルカメラ, 2 レンズ, 3 絞り, 4 撮像素子, 5 相関2重サンプリング回路, 6 A/Dコンバータ, 7 信号処理回路, 8 タイミングジェネレータ, 9 D/Aコンバータ, 10 ビデオエンコーダ, 11 モニタ, 12 コーデック, 13 メモリ, 14 バス, 15 CPU, 16 入力デバイス, 21 シフト回路, 22−1乃至N フレームメモリ, 23−1乃至(N−1) 動き検出回路, 24 演算回路, 25 コントローラ