(57)【特許請求の範囲】
【請求項１】
撮像装置により撮像された複数の撮像画像のデータそれぞれに対して乗じる重み係数からなる重み係数列を取得する第１の取得手段と、
前記撮像装置により撮像された複数の撮像画像のデータを入力する入力手段と、
前記複数の撮像画像のデータを取得する際の、該撮像画像のデータが示す撮像画像内の動きベクトルを取得する第２の取得手段と、
前記複数の撮像画像のデータそれぞれに対して前記重み係数列の対応する重み係数を乗じ、重み係数が乗じられた前記複数の撮像画像のデータを合成することにより合成画像のデータを取得する合成手段と、
前記動きベクトルと前記重み係数列とに基づいて、前記合成画像のデータを補正することにより補正画像のデータを取得する補正手段とを有し、
前記重み係数列は、少なくとも三値の重み係数であって正の重み係数と負の重み係数を有することを特徴とする画像処理装置。
【請求項２】
前記重み係数列は、１よりも大きい重み係数または−１よりも小さい重み係数を有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記重み係数列は、該重み係数列の周波数成分の合計値がより大きくなるように調整されていることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記重み係数列は、該重み係数列の周波数成分のバラツキがより小さくなるように調整されていることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
複数の重み係数からなる重み係数列に基づいて透過率を変化させながら撮像した撮像画像のデータを入力する入力手段と、
前記撮像の際の、前記撮像画像のデータが示す撮像画像内の動きベクトルを取得する取得手段と、
前記動きベクトルと前記重み係数列とに基づいて、前記撮像画像のデータを補正することにより補正画像のデータを取得する補正手段とを有し、
前記重み係数列は、少なくとも三値の重み係数を有することを特徴とする画像処理装置。
【請求項６】
コンピュータを、請求項１乃至５の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【請求項８】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の第１の取得手段が、撮像装置により撮像された複数の撮像画像のデータそれぞれに対して乗じる重み係数からなる重み係数列を取得する第１の取得工程と、
前記画像処理装置の入力手段が、前記撮像装置により撮像された複数の撮像画像のデータを入力する入力工程と、
前記画像処理装置の第２の取得手段が、前記複数の撮像画像のデータを取得する際の、該撮像画像のデータが示す撮像画像内の動きベクトルを取得する第２の取得工程と、
前記画像処理装置の合成手段が、前記複数の撮像画像のデータそれぞれに対して前記重み係数列の対応する重み係数を乗じ、重み係数が乗じられた前記複数の撮像画像のデータを合成することにより合成画像のデータを取得する合成工程と、
前記画像処理装置の補正手段が、前記動きベクトルと前記重み係数列とに基づいて、前記合成画像のデータを補正することにより補正画像のデータを取得する補正工程とを有し、
前記重み係数列は、少なくとも三値の重み係数であって正の重み係数と負の重み係数を有することを特徴とする画像処理方法。
【請求項９】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の入力手段が、複数の重み係数からなる重み係数列に基づいて透過率を変化させながら撮像した撮像画像のデータを入力する入力工程と、
前記画像処理装置の取得手段が、前記撮像の際の、該撮像画像のデータが示す撮像画像内の動きベクトルを取得する取得工程と、
前記画像処理装置の補正手段が、前記動きベクトルと前記重み係数列とに基づいて、前記撮像画像のデータを補正することにより補正画像のデータを取得する補正工程とを有し、
前記重み係数列は、少なくとも三値の重み係数を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像画像のぶれ補正技術に関するものである。
【背景技術】
【０００２】
近年の撮像装置の高画質化、高ズーム化に伴い、撮像時の手ぶれに起因する撮像画像のぶれが問題となってきており、手ぶれ補正機能付き撮像装置が広く使用されている。このような手ぶれ補正機能付き撮像装置では、手ぶれによる角速度を検出するジャイロセンサと、手ぶれを打ち消すようにレンズと撮像素子との相対的位置を制御する駆動装置とで光学的に手ぶれを補正する光学的手ぶれ補正方式が一般的である。
【０００３】
また、高速なシャッタスピードで複数の画像を取り込んだ後に、電子的にこの複数の画像の位置合わせを行い、重ね合わせることで、手ぶれの影響を抑えた画像を生成する電子的手ぶれ補正方式の撮像装置が提案されている（特許文献１）。特許文献１で提案されている電子的手ぶれ補正方法では、ジャイロセンサを必要としないため、撮像装置の小型化が実現できるだけでなく、製造コストを抑えることができる、という利点を有する。
【０００４】
更に、１枚の画像取得時における露光時のシャッターの開閉を符号化し、そのシャッター開閉の情報を用いた演算処理によりぶれ補正する技術が提案されている（特許文献２）。この技術は、Ｃｏｄｅｄ Ｅｘｐｏｓｕｒｅ（以下、符号化露光と呼称する）と呼ばれている。ジャイロセンサなどを用いてぶれ分布を計測し、さらに露光時間とぶれ分布から、画像上の点像のぼけ関数であるＰｏｉｎｔ  Ｓｐｒｅａｄ  Ｆｕｎｃｔｉｏｎ（以下、ＰＳＦと呼称する）を推定する。さらに、このＰＳＦの周波数特性を算出し、算出した周波数特性の逆特性となるフィルタ、或いはウィナーフィルタを用いてフィルタリングすることで好適なぶれ補正が可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−０７４６９３号公報
【特許文献２】ＵＳ特許２００７／０２５８７０６
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１で提案される手法では、取り込んだ画像は手ぶれを含んでいないということが前提となっており、手ぶれが発生した画像に対しては、画像間での位置合わせが良好に実現できないという課題があった。夜景シーン等の撮像には、撮像画像にノイズが印加されやすいこともあり、ノイズ低減のためには、一定時間以上の露光時間が必要となる。露光時間が長くなると、取り込んだ画像に手ぶれが含まれることになり、画像間での位置合わせが不十分となる。その結果、特許文献１において、位置合わせ後の画像を加算合成しても、手ぶれを十分に補正できないことになる。
【０００７】
特許文献２では、ＰＳＦの周波数応答値が微小な場合には、この周波数におけるぼけ補正量がその他の周波数に比べて大きくなり、好適なぶれ補正ができないという課題があった。特に、補正対象の画像にノイズが含まれる場合には、そのノイズを増幅してしまい、補正画像が著しく劣化することになる。さらに、撮像中に露光されない時間帯が発生するため、撮像画像に印加されるノイズ量が多くなる傾向にあり、ぶれ補正された画像に撮像時のノイズが残存することになってしまう。
【０００８】
本発明は以上の問題に鑑みてなされたものであり、ぶれ補正後に生じる画像劣化を抑制した好適なぶれ補正画像を生成する為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。即ち、撮像装置により撮像された複数の撮像画像のデータそれぞれに対して乗じる重み係数からなる重み係数列を取得する第１の取得手段と、
前記撮像装置により撮像された複数の撮像画像のデータを入力する入力手段と、
前記複数の撮像画像のデータを取得する際の、該撮像画像のデータが示す撮像画像内の動きベクトルを取得する第２の取得手段と、
前記複数の撮像画像のデータそれぞれに対して前記重み係数列の対応する重み係数を乗じ、重み係数が乗じられた前記複数の撮像画像のデータを合成することにより合成画像のデータを取得する合成手段と、
前記動きベクトルと前記重み係数列とに基づいて、前記合成画像のデータを補正することにより補正画像のデータを取得する補正手段とを有し、
前記重み係数列は、少なくとも三値の重み係数であって正の重み係数と負の重み係数を有することを特徴とする。
【発明の効果】
【００１０】
本発明の構成によれば、ぶれ補正後に生じる画像劣化を抑制した好適なぶれ補正画像を生成することができる。
【図面の簡単な説明】
【００１１】
【図１】（ａ）は画像処理装置の機能構成例を示すブロック図、（ｂ）はぶれ補正全体の動作を示す図。
【図２】画像処理部１０４が行う処理のフローチャート。
【図３】ステップＳ３０４における処理の詳細を示すフローチャート。
【図４】１次元フーリエ変換結果を示すグラフ。
【図５】ステップＳ３０７における処理の詳細を示すフローチャート。
【図６】重み係数列規定部１１２の機能構成例を示すブロック図。
【図７】重み係数列規定部１１２が行う処理のフローチャート。
【図８】ぶれ補正済みの画像を示す図。
【図９】画像処理装置の機能構成例を示すブロック図。
【図１０】画像処理部９００が行う処理のフローチャート。
【図１１】ステップＳ１２０９における処理の詳細を示すフローチャート。
【図１２】（ａ）は画像処理装置の機能構成例を示すブロック図、（ｂ）は撮像部１４０１の構成例を示す図。
【図１３】撮像部１４０１及び画像処理部１２００が行う処理のフローチャート。
【図１４】（ａ）は透過率パターン規定部１４０４の機能構成例を示すブロック図、（ｂ）はぶれ補正全体の動作を示す図。
【図１５】（ａ）は画像処理装置の機能構成例を示すブロック図、（ｂ）はぶれ補正全体の動作を示す図。。
【図１６】画像処理部１５００が行う処理のフローチャート。
【図１７】画像処理装置の機能構成例を示すブロック図。
【図１８】重み係数列作成部２２０１が行う処理のフローチャート。
【図１９】ステップＳ３０３における処理の詳細を示すフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載の構成の具体的な実施例の１つである。
【００１３】
［第１の実施形態］
＜画像処理装置の機能構成例について＞
先ず、本実施形態に係る画像処理装置の機能構成例について、図１のブロック図を用いて説明する。本実施形態では、この画像処理装置は、ディジタルカメラなどの撮像装置として説明する。そしてこの撮像装置は、複数回の露光を行うことで撮像される複数枚の撮像画像を用いて１枚のぶれの補正されたぶれ補正画像を生成するものである。
【００１４】
撮像部１０１は、撮像レンズ群とＣＭＯＳやＣＣＤなどの半導体撮像素子、シャッター等から構成されており、撮像対象の画像信号を生成して後段のＡ／Ｄ変換部１０３に送出する。
【００１５】
ぶれ検出部１０２は、撮像装置の姿勢変化、即ちぶれの大きさや方向を示すぶれベクトル（ぶれ情報）を検出し、検出したぶれ情報を画像処理部１０４に入力する。本実施形態では、ぶれ検出部１０２は、撮像部１０１が画像を撮像したときのぶれ情報を検出することができればよい。即ち、それぞれの撮像画像について、撮像時におけるぶれ情報が取得できればよい。
【００１６】
露光制御部１１６は、撮像部１０１における露光時間を制御する。なお、ぶれ検出部１０２と露光制御部１１６とは同期を取って動作している。即ち、露光制御部１１６により露光が開始されるとぶれ検出部１０２はぶれの検出を開始し、露光制御部１１６により露光が終了されると、ぶれ検出部１０２はぶれの検出を終了する。
【００１７】
撮像部１０１から出力される画像信号は、Ａ／Ｄ変換部１０３により所定のフォーマットを有するデジタル画像信号に変換され、画像処理部１０４に入力される。例えばＡ／Ｄ変換部１０３は、この画像信号が静止画像のものである場合には、これをＪＰＥＧ等の標準的な静止画像フォーマットを有するデジタル画像信号に変換する。また、この画像信号が動画像のものである場合には、これをＭＰＥＧ等の標準的な動画像フォーマットを有するデジタル画像信号に変換する。
【００１８】
画像処理部１０４は、Ａ／Ｄ変換部１０３から順次入力されるそれぞれのデジタル画像信号が示す撮像画像から、ぶれを補正した画像であるぶれ補正画像を生成し、生成したぶれ補正画像を画像表示部１１４や画像記録部１１５に送出する。画像処理部１０４の詳細については後述する。
【００１９】
画像表示部１１４は、ぶれ補正画像を、撮像装置が有する液晶画面に表示する。画像記録部１１５は、ぶれ補正画像を、撮像装置内のメモリや、撮像装置に着脱可能なメモリなどに記録する。
【００２０】
次に、画像処理部１０４についてより詳細に説明する。Ａ／Ｄ変換部１０３から出力されたデジタル画像信号が示す撮像画像のデータは、入力端子１０５を介して画像処理部１０４内に入力され、メモリ部１０６に格納される。上記の通り、本実施形態では、撮像部１０１は、複数回の露光を行うことで複数枚の撮像画像を撮像するので、メモリ部１０６には、それぞれの露光で撮像された撮像画像のデータが格納されることになる。
【００２１】
重み付け部１０７は、メモリ部１０６に格納されているそれぞれの撮像画像を順次読み出し、重み係数列ＤＢ（データベース）１０８に格納されている重み係数列において対応する重み値を、この読み出した撮像画像に対して乗ずる。これにより、重み付け部１０７は、メモリ部１０６に格納されているそれぞれの撮像画像に対して、対応する重み値を乗じた画像（重み付け撮像画像）を生成することができる。なお、重み係数列ＤＢ１０８に格納されている上記の重み係数列は、重み係数列規定部１１２によって予め作成（調整）されたものである。そして重み付け部１０７は、それぞれの重み付け撮像画像を合成して１つの合成画像を生成し、生成した合成画像を補正画像生成部１１１に送出する。
【００２２】
補正係数列作成部１０９は、重み係数列ＤＢ１０８に格納されている重み係数列と、入力端子１１０を介してぶれ検出部１０２から入力されたぶれ情報と、を用いて、補正画像生成部１１１で用いる補正係数列を生成する。そしてこの生成した補正係数列を補正画像生成部１１１に送出する。
【００２３】
補正画像生成部１１１は、以下に示す３つの情報を用いて、重み付け部１０７が生成した合成画像に対するぶれ補正処理を行い、最終的に出力する出力画像としてのぶれ補正画像を生成する。
【００２４】
・  露光制御部１１６により制御された露光時間（メモリ部１０６に格納されている全ての撮像画像を撮像するために要した露光時間）
・  補正係数列作成部１０９が作成した補正係数列
・  入力端子１１０を介してぶれ検出部１０２から入力されたぶれ情報
そして補正画像生成部１１１は、生成したぶれ補正画像を、出力端子１１３を介して画像表示部１１４や画像記録部１１５に送出する。なお、撮像装置を構成する各部の動作制御は、撮像装置が有するＣＰＵなどのコントローラ（不図示）により行われる。
【００２５】
＜符号化露光によるぶれ補正について＞
ここで、従来の一般的な手法である「符号化露光で使用されるシャッター開閉の情報を用いてぶれ補正を行う手法」について説明する。画素位置（ｘ，ｙ）における単位時間当たりの入射光の強度をi（ｘ，ｙ）、撮像装置のぶれ速度をａ、露光時間をＴとすると、撮像装置には時刻ｔにi（ｘ，ｙ）をａｔだけ移動させた情報が撮像装置に入射される。よって、撮像される画像iｂｌｕｒ（ｘ，ｙ）は以下の式で表現できる。
【００２６】
【数１】
0005543280.tif 000002
【００２７】
式（１）において、ｈ（ｔ）は露光条件を表す関数であり、１または０の値を取る関数である。ｈ（ｔ）＝１は、時刻ｔにおけるシャッターは開状態にあることを示しており、ｈ（ｔ）＝０は、時刻ｔにおけるシャッターは閉状態にあることを示している。ここでは説明を簡単にするために、撮像時に縦方向（ｙ方向）へのぶれが発生した場合を一例に説明する。また、ここでは撮像装置のぶれ速度ａは、撮像中は一定であるとする。ここで、実空間でのコンボリューション演算は、空間周波数上で積の形式で記述できる。したがって、撮像画像の取得過程を表現する式（１）に対して、その両辺をフーリエ変換すると以下の式を得ることができる。
【００２８】
【数２】
0005543280.tif 000003
【００２９】
式（２）において、Ｉｂｌｕｒ（ｕ，ｖ）、Ｉ（ｕ，ｖ）、Ｈ（ｕ，ｖ）はそれぞれ、iｂｌｕｒ（ｘ，ｙ）、i（ｘ，ｙ）、ｈ（ｔ）のフーリエ変換結果である。なお、ｕはｘ成分の周波数、ｖはｙ成分の周波数である。次に、式（２）をＩ（ｕ，ｖ）について数式変換すると以下の式を得ることができる。
【００３０】
【数３】
0005543280.tif 000004
【００３１】
式（３）において、露光時間Ｔは既知パラメータであり、撮像装置のぶれ速度ａは撮像装置に具備されるぶれ検出装置から獲得できるとする。Ｉｂｌｕｒ（ｕ，ｖ）、Ｈ（ｕ，ｖ）は、撮像される画像iｂｌｕｒ（ｘ，ｙ）、露光条件ｈ（ｔ）に対するフーリエ変換によって得ることが可能であるため、これらも既知となる。したがって、式（３）の演算を実施することで、撮像画像i（ｘ，ｙ）のフーリエ変換結果であるＩ（ｕ，ｖ）を導くことができる。
【００３２】
そして最後に、導出されたＩ（ｕ，ｖ）に対して逆フーリエ変換を施すことで、ぶれを含まない画像i（ｘ，ｙ）を求めることが可能となる。以上が、符号化露光で使用されるシャッター開閉の情報を用いてぶれ補正する手法である。
【００３３】
式（３）によれば、原理的にはぶれを含む画像からぶれを取り除くことが可能であるが、撮像装置の露光条件によっては、ｈ（ｔ）のフーリエ変換結果Ｈ（ｕ、ｖ）がゼロの値を取ることがある。その場合、式（３）の右辺で、いわゆる「ゼロ割」が発生し、式（３）の解であるＩ（ｕ，ｖ）を正しく求めることができず、ぶれ補正が不十分となる。この「ゼロ割」に起因する不十分なぶれ補正を回避するため、符号化露光では、シャッター開閉をランダムに行っている。
【００３４】
＜本実施形態に係るぶれ補正について＞
本実施形態では、符号化露光における露光パターンをシャッターの開閉パターンではなく、それぞれの撮像画像に対する重み値のパターン（重み係数列）によって実現する（図１（ｂ））。即ち、０と１の二値状態で構成されているｈ（ｔ）の代わりに、任意の値（正の値であっても、０であっても、負の値であっても良い）を取りうる重み値から成る重み係数列を用いる。なお、この重み係数列には、少なくとも三値が含まれていれば良いので、例えば、重み係数列は正の値を取る三値から構成されていても良い。
【００３５】
画像処理部１０４が行う処理について、同処理のフローチャートを示す図２を用いて説明する。画像処理部１０４には、撮像部１０１が時分割露光（露光時間を細かい時間単位に分割して露光する露光方式（図１（ｂ）））を行うことで撮像したＬ（Ｌ＞１）枚の撮像画像が順次、入力端子１０５を介して入力される。従って、ステップＳ３０１では、画像処理部１０４はこの入力された撮像画像をメモリ部１０６に格納する。ここで、ｌ（ｌ＝１，…，Ｌ：Ｌは露光時間Ｔ内で撮像される撮像画像の総枚数）番目にメモリ部１０６に格納された撮像画像をｉ（ｌ）と表記し、撮像画像ｉ（ｌ）中の画素位置（ｘ、ｙ）における画素値をｉ（ｘ、ｙ；ｌ）と表記する。
【００３６】
次にステップＳ３０２では重み付け部１０７は、重み係数列ＤＢ１０８に格納されている重み係数列を読み出す。この重み係数列は、Ｌ枚の撮像画像のそれぞれに対する重み値から成り、重み係数列ｗ＝［ｗ（１），…，ｗ（Ｌ）］と表記される。即ち、撮像画像ｉ（ｌ）に対する重み値はｗ（ｌ）となる。
【００３７】
ステップＳ３０３で重み付け部１０７は、Ｌ枚の撮像画像のそれぞれに対して対応する重み値を乗じてＬ枚の重み付け撮像画像を生成し、生成したＬ枚の重み付け撮像画像を合成することで、１枚の合成画像iｂｌｕｒを生成する。以下の式（４）は、１枚の合成画像iｂｌｕｒ中の画素位置（ｘ、ｙ）における画素値を求める為の式である。即ち、各画素位置について式（４）に基づく計算を行うことで、１枚の合成画像iｂｌｕｒを生成することができる。
【００３８】
【数４】
0005543280.tif 000005
【００３９】
また、Ｌ＝１５の場合における重み係数列ｗを以下に示す。
【００４０】
【数５】
0005543280.tif 000006
【００４１】
そして重み付け部１０７は、生成した１枚の合成画像iｂｌｕｒを補正画像生成部１１１に送出する。ステップＳ３０３における処理の詳細については、図１９を用いて後述する。
【００４２】
ステップＳ３０４では、補正係数列作成部１０９は、入力端子１１０を介してぶれ検出部１０２から受けたぶれ情報と、重み係数列ＤＢ１０８から読み出した重み係数列ｗと、を用いて、補正画像生成部１１１がぶれ補正で用いる補正係数列を生成する。ステップＳ３０４における処理の詳細については、図３を用いて後述する。
【００４３】
ステップＳ３０５では補正画像生成部１１１は、入力端子１１０を介してぶれ検出部１０２から入力されたぶれ情報を取得する。このぶれ情報は、Ｌ枚の撮像画像のそれぞれの撮像時にぶれ検出部１０２が検出したぶれ情報から成る。
【００４４】
ステップＳ３０６では補正画像生成部１１１は、露光制御部１１６から露光時間Ｔを取得する。そしてステップＳ３０７では補正画像生成部１１１は、ステップＳ３０５で取得したぶれ情報、ステップＳ３０６で取得した露光時間Ｔ、補正係数列作成部１０９が生成した補正係数列、を用いて、合成画像iｂｌｕｒに対するぶれ補正処理を行う。そして補正画像生成部１１１は、ぶれ補正済みの画像を出力画像として出力端子１１３を介して画像表示部１１４や画像記録部１１５に送出する。ステップＳ３０７における処理の詳細については、図５を用いて後述する。
【００４５】
＜合成画像iｂｌｕｒの生成について＞
ステップＳ３０３における処理、即ち、１枚の合成画像iｂｌｕｒを生成するための処理について、同処理のフローチャートを示す図１９を用いて説明する。ステップＳ２４０１では重み付け部１０７は先ず、変数ｌを１に初期化する。
【００４６】
ステップＳ２４０２では重み付け部１０７は、重み係数列ＤＢ１０８から取得した重み係数列のうち撮像画像ｉ（ｌ）に対する重み値であるｗ（ｌ）を取得する。ステップＳ２４０３では重み付け部１０７は、メモリ部１０６から撮像画像ｉ（ｌ）を読み出す。
【００４７】
ステップＳ２４０４では重み付け部１０７は、撮像画像ｉ（ｌ）を構成する各画素の画素値に対して、重み値ｗ（ｌ）を乗じることで、重み付け撮像画像ｌを生成する。ステップＳ２４０５では重み付け部１０７は、ｌ＝Ｌであるか否かを判断する。この判断の結果、ｌ＝Ｌである場合には処理はステップＳ２４０７に進み、ｌ＜Ｌの場合には処理はステップＳ２４０６に進む。
【００４８】
ステップＳ２４０６では重み付け部１０７は、変数ｌの値を１つインクリメントし、ステップＳ２４０２以降の処理を行う。一方、ステップＳ２４０７では重み付け部１０７は、以上の処理によって生成した重み付け撮像画像１〜重み付け撮像画像Ｌを重ね合わせることで合成した合成画像iｂｌｕｒを生成する。そして重み付け部１０７はこの生成した合成画像iｂｌｕｒを補正画像生成部１１１に送出する。
【００４９】
＜補正係数列の生成について＞
ステップＳ３０４における処理、即ち、補正係数列を生成する為の処理について、同処理のフローチャートを示す図３を用いて説明する。ステップＳ４０１では補正係数列作成部１０９は、重み係数列ＤＢ１０８から重み係数列ｗを読み出す。
【００５０】
ステップＳ４０２では補正係数列作成部１０９は、ぶれ検出部１０２から入力端子１１０を介して入力される「Ｌ枚の撮像画像のそれぞれの撮像時におけるぶれ情報」を取得する。ここで、撮像画像ｉ（ｌ）に対するぶれ情報が示すぶれベクトルのｘ成分をＳ＿ｘ（ｌ）、ｙ成分をＳ＿ｙ（ｌ）と表記する。
【００５１】
ステップＳ４０３では補正係数列作成部１０９は、撮像画像のサイズ（ここでは一例としてＰ画素×Ｑ画素のサイズとする）と同じサイズの配列ｗ’を、以下の式（６）に従って生成する（ゼロ設定）。
【００５２】
【数６】
0005543280.tif 000007
【００５３】
ステップＳ４０４では補正係数列作成部１０９は、以下の式（７）に従った計算処理を行うことで、ステップＳ４０３で生成した配列ｗ’に対して２次元のフーリエ変換を行い、配列ｗ’の２次元フーリエ変換結果Ｗを生成する。
【００５４】
【数７】
0005543280.tif 000008
【００５５】
ＦＦＴ２（）は２次元フーリエ変換を行う関数である。ｕ、ｖは何れも周波数を示し、−１≦ｕ≦１、−１≦ｖ≦１に正規化されているものとする。そしてステップＳ４０５では補正係数列作成部１０９は、この２次元フーリエ変換によって得られた重み係数列Ｗを補正係数列として、補正画像生成部１１１に送出する。
【００５６】
ここで、ｗ’（ｘ，ｙ）のうち、重み係数列ｗが格納されている箇所の１次元フーリエ変換Ｗ’（ｕ）をプロットしたグラフを図４に示す。ここでは説明を簡単にするために、縦方向（ｙ方向）へのぶれが発生した場合の１次元フーリエ変換Ｗ’（ｕ）を示した。図４において、横軸は周波数ｕを表しており、正の周波数である０≦ｕ≦１の範囲をプロットした。縦軸は各周波数の応答値を対数表記で表し、各応答値は直流成分（ｕ＝０）の値で正規化している。図４において実線が式（５）によって規定される重み係数列ｗの周波数応答値である。比較のため、以下の式（８）で設定される重み係数列ｗ２によって導かれる周波数応答値を点線で示した。
【００５７】
【数８】
0005543280.tif 000009
【００５８】
図４から、重み係数列ｗを用いると全周波数帯域で直流成分よりも高い応答値を示していることが確認できる。一方、重み係数列ｗ２で示されるように重み値を１と０の二値状態で構成すると、応答値の低い周波数が数箇所出現することが確認できる。後述するが、低い応答値の周波数が出現すると、好適なぶれ補正が実現できない。
【００５９】
本実施形態で求めた重み係数列ｗを構成するそれぞれの重み値は、対応する撮像画像に対するものであるため、Ｌ枚の撮像画像の全てをぶれ補正処理に使用することができる。特許文献１に記載される符号化露光によるぶれ補正では、撮像中に露光されない時間帯が発生するため、画像取得時に発生するランダムなノイズを多く含む傾向がある。係る点、Ｌ枚全ての撮像画像を用いてぶれ補正、或いはぶれを修正、除去する本実施形態は、画像撮像時に発生するランダムなノイズを相殺することができる。
【００６０】
＜ぶれ補正処理について＞
ステップＳ３０７における処理、即ち、重み付け部１０７が生成した合成画像に対するぶれ補正処理について、同処理のフローチャートを示す図５を用いて説明する。ステップＳ７０１において補正画像生成部１１１は、重み付け部１０７から合成画像iｂｌｕｒを取得する。ステップＳ７０２では補正画像生成部１１１は、補正係数列作成部１０９から、補正係数列Ｗ（ｕ、ｖ）を取得する。
【００６１】
ステップＳ７０３では補正画像生成部１１１は、以下の式（９）に従って合成画像iｂｌｕｒに対して２次元フーリエ変換を行うことで、合成画像iｂｌｕｒに対する２次元フーリエ変換結果Ｉｂｌｕｒを生成する。
【００６２】
【数９】
0005543280.tif 000010
【００６３】
ステップＳ７０４では補正画像生成部１１１は、以下の式（１０）を計算することで、２次元フーリエ変換結果Ｉｂｌｕｒと、補正係数列Ｗと、を用いたデコンボリューション処理を行う。
【００６４】
【数１０】
0005543280.tif 000011
【００６５】
なお、ａはぶれ情報が示すぶれベクトルの大きさである撮像装置のぶれ速度、Ｔは露光制御部１１６から取得した露光時間である。Ｉ（ｕ，ｖ）はぶれを含まない画像ｉ（ｘ，ｙ）の２次元フーリエ変換結果であり、以下の式（１１）によって定義される。
【００６６】
【数１１】
0005543280.tif 000012
【００６７】
ステップＳ７０５では補正画像生成部１１１は、以下の式（１２）を計算することで、ステップＳ７０４におけるデコンボリューション処理の結果としてのＩ（ｕ，ｖ）に対して２次元の逆フーリエ変換を行う。
【００６８】
【数１２】
0005543280.tif 000013
【００６９】
ＩＦＦＴ２（）はＦＦＴ２（）の逆変換を行う関数である。そしてステップＳ７０６では補正画像生成部１１１は、ステップＳ７０５における逆フーリエ変換の結果である画像ｉ（ｘ、ｙ）を、ぶれ補正済みの画像（出力画像）として、出力端子１１３を介して画像表示部１１４や画像記録部１１５に送出する。
【００７０】
なお、本実施形態では、式（１０）で記述されるように、周波数空間上での除算によるデコンボリューションを実施していたが、その他のデコンボリューション処理を代わりに実施しても良い。例えば、Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズムなどを用いても構わない。更に、周波数空間上でのデコンボリューション処理を実空間上でのフィルタリング処理にて置き換えて処理しても構わない。
【００７１】
重み係数列ｗによって重み付け加算された画像を用いて補正処理したぶれ補正済みの画像ｉ（ｘ，ｙ）を図８（ａ）に示す。図８（ｂ）には、重み係数列ｗ２によって重み付け合成された画像を用いて補正処理したぶれ補正済みの画像ｉ２（ｘ，ｙ）を示している。図８（ｂ）に示す如く、画像ｉ２（ｘ，ｙ）の上下端部において画像劣化が生じている。一方、図８（ａ）に示す如く、画像ｉ（ｘ，ｙ）では、画像ｉ２（ｘ，ｙ）で生じていた画像劣化を抑えることができている。連続撮像データに対し、実数値の重み値を乗じた画像を用いてぶれ補正を行うことで、画像劣化の緩和に成功していることが確認できる。
【００７２】
＜重み係数列について＞
ここでは、重み係数列ＤＢ１０８に格納されている重み係数列について説明する。この重み係数列は重み係数列規定部１１２によって生成（規定）され、重み係数列ＤＢ１０８に格納されるものであり、上記のぶれ補正処理は、重み係数列規定部１１２によって生成された重み係数列が重み係数列ＤＢ１０８に格納された後に行われる。
【００７３】
重み係数列規定部１１２の機能構成例について、図６のブロック図を用いて説明する。初期値設定部８０１は、重み係数列ｗ中の要素数Ｌを設定する。例えば式（５）の例ではＬ＝１５と設定する。
【００７４】
重み係数列生成部８０２は、要素数Ｌの重み係数列ｗ中の各重み値ｗ（ｌ）の初期値を設定する。初期値の設定方法については特に限定するものではないが、ここでは一例として、擬似乱数を用いる。この場合、擬似乱数は正規分布に従い、標準偏差が１となるような実数値を生成する。
【００７５】
補正係数列作成部８９０は、事前に何らかの方法で得たＬ個のぶれ情報と、重み係数列生成部８０２で確定された重み係数列ｗと、を用いて、補正係数列作成部１０９と同様の処理を行うことで、配列ｗ’を作成する。この「事前に何らかの方法で得たＬ個のぶれ情報」は、例えば、事前にＬ枚の撮像画像を撮像した時にぶれ検出部１０２により得たＬ個のぶれ情報である。もちろん、事前に何らかの方法で作成されたＬ個のぶれ情報であっても良い。そして更に補正係数列作成部８９０は、上記式（７）に従った計算処理を行うことで、この配列ｗ’に対して２次元のフーリエ変換を行い、配列ｗ’の２次元フーリエ変換結果Ｗを生成する。
【００７６】
評価値算出部８０３は、補正係数列作成部８９０が作成した２次元フーリエ変換結果Ｗの評価値を算出する。評価値比較部８０４は、この評価値を評価し、この評価値が評価基準よりも低い場合には、この２次元フーリエ変換結果Ｗを作り直すべく、重み係数列更新部８０６に対して重み係数列ｗの更新を指示する。重み係数列更新部８０６はこの指示を受けると、重み係数列生成部８０２に対して新たな擬似乱数を発生させるよう指示する。一方、この評価値が評価基準以上のものである場合には、この評価値を求めた２次元フーリエ変換結果Ｗを生成するために用いた重み係数列ｗ（重み係数列生成部８０２が生成した重み係数列）をメモリ部８０５に格納する。
【００７７】
重み係数列出力部８０７は、評価値比較部８０４による評価が完了すれば、メモリ部８０５に格納されている重み係数列ｗを読み出し、出力端子８０８を介して重み係数列ＤＢ１０８に格納する。
【００７８】
重み係数列規定部１１２が行う処理について、同処理のフローチャートを示す図７を用いて説明する。ステップＳ９０１では初期値設定部８０１は、重み係数列ｗ中の要素数Ｌを確定し、ステップＳ９０２では重み係数列生成部８０２は、要素数Ｌの重み係数列ｗ中の各重み値ｗ（ｌ）の初期値を設定する。
【００７９】
ステップＳ９０３では補正係数列作成部８９０は、Ｌ個のぶれ情報と、重み係数列生成部８０２で確定された重み係数列ｗと、を用いて、配列ｗ’を作成する。そして上記式（７）に従った計算処理を行うことで、この配列ｗ’に対して２次元のフーリエ変換を行い、配列ｗ’の２次元フーリエ変換結果Ｗを生成する。
【００８０】
ステップＳ９０４では評価値算出部８０３は、以下の式（１３）を計算することで、補正係数列作成部８９０が作成した２次元フーリエ変換結果Ｗの評価値Ｅｖａｌを求める。この式（１３）では、重み係数列をフーリエ変換し、そのパワーの積分値を評価値Ｅｖａｌとして算出している。
【００８１】
【数１３】
0005543280.tif 000014
【００８２】
ステップＳ９０５では評価値比較部８０４は、評価値Ｅｖａｌと閾値Ｅｖａｌ０（初期状態では０）との大小比較を行う。この大小比較の結果、Ｅｖａｌ＞Ｅｖａｌ０の場合には処理はステップＳ９０７に進み、Ｅｖａｌ≦Ｅｖａｌ０の場合には処理はステップＳ９０６に進む。
【００８３】
ステップＳ９０６では評価値比較部８０４は重み係数列更新部８０６に対して重み係数列ｗの更新を指示するので、重み係数列更新部８０６は重み係数列生成部８０２に対して新たな擬似乱数を発生させるよう指示する。これにより重み係数列生成部８０２は、新たな擬似乱数を用いて新たな重み係数列ｗを作成する。そしてこの新たな重み係数列ｗを用いてステップＳ９０３以降の処理が行われる。
【００８４】
一方、ステップＳ９０７では評価値比較部８０４は、ステップＳ９０３で生成した２次元フーリエ変換結果Ｗを生成するために用いた重み係数列ｗをメモリ部８０５に格納する。もしメモリ部８０５に既に重み係数列ｗが格納されている場合には、この重み係数列ｗに対して上書きする。更にステップＳ９０７では評価値比較部８０４は、Ｅｖａｌ０の値をＥｖａｌの値に更新する。
【００８５】
ステップＳ９０８では評価値比較部８０４は、ステップＳ９０３〜Ｓ９０７の処理が、予め定められた回数だけ行われたか否かを判断する。この判断の結果、予め定められた回数だけ行われていると判断した場合には処理はステップＳ９０９に進み、未だ予め定められた回数だけ行われていないと判断した場合には処理はステップＳ９０６に戻る。ステップＳ９０９では重み係数列出力部８０７は、メモリ部８０５に格納されている重み係数列ｗを読み出し、出力端子８０８を介して重み係数列ＤＢ１０８に格納する。
【００８６】
なお、上記の説明では式（１３）に示した式を計算した結果を評価値Ｅｖａｌとして用いているが、他の計算式を用いて計算した結果を評価値Ｅｖａｌとして用いることもできる。例えば、以下の式（１４）に従って計算される値Ｅｖａｌ２を評価値Ｅｖａｌの代わりに用いても良い。
【００８７】
【数１４】
0005543280.tif 000015
【００８８】
Ｅｖａｌ２は、補正係数列の値が総じて１となるような重み係数列をより高い評価値とする式から求められる。つまり、２次元フーリエ変換結果Ｗの各周波数における応答値の変化が少なくなるように規定する評価値である。図４（ｂ）には、式（１４）から計算される値Ｅｖａｌ２が最も大きくなるような補正係数列の一例を実線で示している。図４（ａ）と同様、１次元で補正係数列を示している。横軸は周波数ｕを表しており、正の周波数である０≦ｕ≦１の範囲をプロットした。縦軸は各周波数の応答値を対数表記で表し、各応答値は直流成分（ｕ＝０）の値で正規化している。図４（ｂ）において実線が、式（１４）から計算される値Ｅｖａｌ２が最も大きくなるような重み係数列の周波数応答値を示している。全周波数において１に近い応答値が得られていることが確認できる。この周波数応答値が１近傍となると、式（３）によるぶれ補正時に生じる画像劣化を抑えることが可能となる（図８（ｃ））。なお、図４において、点線は式（８）で設定される重み係数列によって導かれる周波数応答値を示している。
【００８９】
このように、重み係数列の値を変化させることで、画像劣化の状態を変化させることができるため、ユーザの嗜好に合った画像を提供することが可能となる。なお、ステップＳ９０６の重み係数列の更新では、擬似乱数を発生させて重み係数列の更新を行っていたが、その他の方法を用いて重み係数列を更新しても構わない。例えば、遺伝的アルゴリズムなどの最適化手法によって所望の重み係数列を求めても差し支えない。
【００９０】
また、ステップＳ９０６では、予め用意された複数の重み係数列から１つずつ選択するようにしても良い。その場合、ステップＳ９０８では、この予め用意された重み係数列の数だけステップＳ９０３〜Ｓ９０７の処理を行ったか否かを判断することになる。その場合、出力画像として生成されるぶれ補正済み画像は、予め用意された複数の重み係数列の中で、最も補正効果の高い（評価値の高い）重み係数列を用いて生成した画像となる。
【００９１】
なお、本実施形態では、縦ぶれを含む撮像画像に対するデコンボリューション処理について説明したが、デコンボリューション可能なぶれは縦ぶれに限定されるものではない。即ち、縦ぶれ以外にも、横ぶれ、斜めぶれを含む撮像画像についてもデコンボリューション処理によってぶれ補正が可能であることは言うまでもない。
【００９２】
本実施形態における撮像装置のぶれ情報は、ジャイロセンサによって検出されたぶれ情報でも構わない。また、撮像された複数の画像間の相対移動量を、画像間の相関値を求めることで導き、それらの移動量をぶれ情報として用いても差し支えない。
【００９３】
また、上記の説明では、Ｌを設定してから、要素数をＬとする重み係数列ｗを生成した。しかし、様々な要素数Ｌの重み係数列ｗを予め作成して重み係数列ＤＢ１０８に登録しておき、重み付け部１０７や補正係数列作成部１０９は、入力された撮像画像の枚数に応じた重み係数列ｗを用いるようにしても良い。
【００９４】
即ち、本実施形態には、様々な変形例が考えられるが、本実施形態の本質は次のようなものとなる。先ず、撮像装置により撮像されたＬ（Ｌ＞１）枚の撮像画像に対して乗じるＬ個の重み値を、この撮像画像の撮像時における撮像装置のぶれベクトルの方向成分で規定される位置に保持する配列を生成する。そしてこの生成した配列の周波数成分の合計値がより大きくなるように若しくは周波数成分のバラツキがより小さくなるように上記Ｌ個の重み値を調整する。
【００９５】
そして、この調整後に撮像装置により撮像されたＬ枚の撮像画像を取得する（第１の取得）と共に、取得したそれぞれの撮像画像について、撮像時における撮像装置のぶれベクトルを取得する（第２の取得）。
【００９６】
そして、第１の取得として取得したそれぞれの撮像画像に対して、Ｌ個の重み値のうち対応する重み値を乗じることで、Ｌ枚の重み付け撮像画像を生成し、生成したＬ枚の重み付け撮像画像を合成することで１枚の合成画像を生成する。
【００９７】
そして、Ｌ個の重み値を、重み値を乗じた撮像画像について第２の取得として取得したぶれベクトルの方向成分で規定される位置に保持する配列を生成する（配列生成）。
【００９８】
そしてこの生成した配列の周波数成分と、合成画像の周波数成分と、を用いてデコンボリューション処理を行い、デコンボリューション処理の結果を逆周波数変換することで、１枚の出力画像を生成する（画像生成）。
【００９９】
以上の説明により、本実施形態によれば、時分割露光により撮像された撮像画像から１枚の画像を生成する際に発生する画像劣化を抑制することができる。更に、入力された全ての撮像画像を用いてぶれ補正、或いはぶれを修正、除去する本実施形態は、画像撮像時に発生するランダムなノイズを相殺することができる。
【０１００】
［第２の実施形態］
第１の実施形態では、予め生成された重み係数列ｗを用いてぶれ補正を行ったが、本実施形態では、より良い画質を与える重み係数列ｗを求め、求めた重み係数列ｗを用いてより良い画質の画像を生成する。なお、本実施形態に係る画像処理装置も、ディジタルカメラなどの撮像装置として説明する。
【０１０１】
＜画像処理装置の機能構成例について＞
先ず、本実施形態に係る画像処理装置の機能構成例について、図９のブロック図を用いて説明する。図９に示した構成は、図１に示した画像処理部１０４に対して画像評価部１１７、重み係数列生成部１１８、メモリ部１１９を追加し、重み係数列ＤＢ１０８、重み係数列規定部１１２を削除したものを画像処理部９００としたものである。然るにこれら以外の構成要素については第１の実施形態と同じであるので、これについての説明は省略する。
【０１０２】
画像評価部１１７は、補正画像生成部１１１が生成した出力画像の画質を評価する。重み係数列生成部１１８は、重み付け部１０７、補正係数列作成部１０９が用いる重み係数列ｗを生成する。
【０１０３】
＜本実施形態に係るぶれ補正について＞
画像処理部９００が行う処理について、同処理のフローチャートを示す図１０を用いて説明する。画像処理部９００には、撮像部１０１が時分割露光を行うことで撮像したＬ（Ｌ＞１）枚の撮像画像が順次、入力端子１０５を介して入力される。従って、ステップＳ１２０１では、画像処理部９００はこの入力された撮像画像をメモリ部１０６に格納する。
【０１０４】
ステップＳ１２０２では補正画像生成部１１１及び補正係数列作成部１０９は、入力端子１１０を介してぶれ検出部１０２から入力されたぶれ情報を取得する。このぶれ情報は、Ｌ枚の撮像画像のそれぞれの撮像時にぶれ検出部１０２が検出したぶれ情報から成る。ステップＳ１２０３では補正画像生成部１１１は、露光制御部１１６から露光時間Ｔを取得する。
【０１０５】
ステップＳ１２０４では重み係数列生成部１１８は、上記ステップＳ９０１と同様にして重み係数列ｗ中の要素数Ｌを確定させる。ステップＳ１２０５では重み係数列生成部１１８は、上記ステップＳ９０２と同様にして、要素数Ｌの重み係数列ｗ中の各重み値ｗ（ｌ）の初期値を設定する。これにより重み係数列ｗは［ｗ（１），…，ｗ（Ｌ）］と表記される。
【０１０６】
ステップＳ１２０６では重み付け部１０７は、重み係数列生成部１１８から重み係数列ｗを取得する。そして重み付け部１０７は、Ｌ枚の撮像画像のそれぞれに対して対応する重み値を乗じてＬ枚の重み付け撮像画像を生成し、生成したＬ枚の重み付け撮像画像を合成することで、１枚の合成画像iｂｌｕｒを生成する。この合成画像の生成については第１の実施形態と同様、式（４）に従って行う。
【０１０７】
ステップＳ１２０７では、補正係数列作成部１０９は、ステップＳ１２０２で取得したぶれ情報と、重み係数列生成部１１８から取得した重み係数列ｗと、を用いて、第１の実施形態と同様にして、補正係数列を生成する。
【０１０８】
ステップＳ１２０８で補正画像生成部１１１は、ステップＳ１２０２で取得したぶれ情報、ステップＳ１２０３で取得した露光時間Ｔ、補正係数列作成部１０９が生成した補正係数列、を用いて合成画像iｂｌｕｒに対するぶれ補正処理を行う。このぶれ補正処理は、第１の実施形態と同様である。そして補正画像生成部１１１は、ぶれ補正済みの画像を出力画像として画像評価部１１７に送出する。
【０１０９】
ステップＳ１２０９では画像評価部１１７は、補正画像生成部１１１から受けた出力画像の画質を評価し、その評価値Ｅｖａｌ３を求める。評価値Ｅｖａｌ３を求めるための処理については後述する。
【０１１０】
ステップＳ１２１０では画像評価部１１７は、評価値Ｅｖａｌ３と閾値Ｅｖａｌ０との大小比較を行う。この閾値Ｅｖａｌ０の初期値には充分に大きな値を設定しておく。例えば、Ｅｖａｌ０＝１０００と設定しておく。この大小比較の結果、Ｅｖａｌ３＜Ｅｖａｌ０の場合には処理はステップＳ１２１１に進み、Ｅｖａｌ３≧Ｅｖａｌ０の場合には処理はステップＳ１２１２に進む。
【０１１１】
ステップＳ１２１１では画像評価部１１７は、補正画像生成部１１１から受けた出力画像をメモリ部１１９に格納する。もしメモリ部１１７に既に出力画像が格納されている場合には、この出力画像に対して上書きする。更に画像評価部１１７は、Ｅｖａｌ０の値をＥｖａｌ３の値に更新する。
【０１１２】
ステップＳ１２１２では、画像評価部１１７は、ステップＳ１２０６〜Ｓ１２１３の処理が、予め定められた回数だけ行われたか否かを判断する。この判断の結果、予め定められた回数だけ行われていると判断した場合には処理はステップＳ１２１４に進み、未だ予め定められた回数だけ行われていないと判断した場合には処理はステップＳ１２１３に戻る。ステップＳ１２１４では画像評価部１１７は、メモリ部１１９に格納されている出力画像を読み出し、出力端子１１３を介して画像表示部１１４や画像記録部１１５に送出する。
【０１１３】
一方、ステップＳ１２１３では、画像評価部１１７は重み係数列生成部１１８に対して重み係数列ｗの更新を指示するので、重み係数列生成部１１８は、新たな擬似乱数を用いて新たな重み係数列ｗを作成する。この新たな重み係数列ｗの作成については第１の実施形態と同様にして行う。そしてこの新たな重み係数列ｗを用いてステップＳ１２０６以降の処理が行われる。
【０１１４】
即ち、上記の処理では、重み係数列ｗの更新を行う毎に、更新した重み係数列ｗを用いて出力画像を生成し、生成した出力画像が従前に生成した出力画像の何れよりも画質が高い場合には、この出力画像を出力候補とする。そして、この更新を予め定められた回数だけ更新を行った時点で出力候補としている出力画像を、最終的な出力対象画像として出力する。
【０１１５】
＜評価値Ｅｖａｌ３の算出方法について＞
ステップＳ１２０９における処理、即ち、補正画像生成部１１１から出力された出力画像の画質の評価値Ｅｖａｌ３を求める為の処理について、同処理のフローチャートを示す図１１を用いて説明する。なお、本実施形態では、出力画像の補正度合いを定量的に評価する為の評価値を求める。具体的には、図８で示されるような、生成画像の端部に発生する波形状の画像歪み（リンギングと呼ばれる）の度合いを定量的に評価する。なお、リンギングは、画像生成時に特定の周波数が強調されることにより発生する。
【０１１６】
先ず、ステップＳ１３０１では画像評価部１１７は、補正画像生成部１１１から送出された出力画像（補正画像）を取得する。ステップＳ１３０２では画像評価部１１７は、この出力画像の二次微分を求める。二次微分の算出方法は、出力画像にラプラシアンフィルタを適用したコンボリューション演算によって実現する。以下の式（１５）には、ラプラシアンフィルタｆ（ｉ，ｊ）を使用したコンボリューション演算を示した。
【０１１７】
【数１５】
0005543280.tif 000016
【０１１８】
式（１５）において、ｉ２（ｘ，ｙ）は出力画像の二次微分としての画像である。ステップＳ１３０３では画像評価部１１７は、二次微分画像ｉ２（ｘ，ｙ）を用いて、出力画像に対する評価値Ｅｖａｌ３を求める。評価値Ｅｖａｌ３は、二次微分画像ｉ２（ｘ，ｙ）の画素値の標準偏差とする。
【０１１９】
図８（ｂ）に示した画像には、画像の上下端部に画像劣化（リンギング）が見受けられる。このような画像劣化に対して、評価値Ｅｖａｌ３は相対的に大きな値を示す傾向がある。画像劣化が少ない画像（図８（ａ））について上記標準偏差を求めると２８．２であるのに対し、画像劣化がある画像（図８（ｂ））について上記標準偏差を求めると５５．９である。このように、評価値Ｅｖａｌ３を手掛かりに、ぶれ補正の度合いを評価することが可能である。
【０１２０】
なお、本実施形態では、出力画像の二次微分に着目し、リンギングの度合いを評価値として導出したが、リンギングが評価できるその他の評価値を求めても構わない。例えば、出力画像の周波数を解析し、周波数応答値が相対的に高いリンギングに該当する個所を摘出することで、リンギングの評価値として扱っても構わない。
【０１２１】
以上の説明により本実施形態によれば、ぶれ補正後或いはぶれ修正・除去後の画像に発生する画像劣化の度合いを評価することで、ぶれ補正後或いはぶれ修正・除去後に発生する画像劣化のうち画像依存の劣化要素を抑制した出力画像を生成することができる。
【０１２２】
［第３の実施形態］
第１，２の実施形態では、時分割露光によって連続撮像されたそれぞれの撮像画像に対して重み値を乗じた画像を用いてぶれ補正を行った。本実施形態では、撮像装置が有する撮像センサへの入射光量を制御することにより、光学的に時間方向に重み付けされた画像を用いてぶれ補正する。本実施形態に係る画像処理装置も、ディジタルカメラなどの撮像装置として説明する。
【０１２３】
＜画像処理装置の機能構成例について＞
先ず、本実施形態に係る画像処理装置の機能構成例について、図１２（ａ）のブロック図を用いて説明する。
【０１２４】
撮像部１４０１は、第１の実施形態における撮像部１０１に加え、撮像時の入射光量を制御するための透過率可変フィルタを具備している。露光制御する露光制御部１４０２は、撮像部１４０１のシャッター開閉の制御と、透過率可変フィルタの透過率を制御する。
【０１２５】
透過率パターンＤＢ１４０３には、透過率可変フィルタの透過率推移を示す透過率パターンが格納されている。この透過率パターンは、透過率パターン規定部１４０４によって生成され、透過率パターンＤＢ１４０３に格納される。画像加算部１４０５は、メモリ部１０６から読み出したＬ枚の撮像画像を合成（加算）して１つの合成画像を生成する。補正係数列作成部１０９、補正画像生成部１１１のぞれぞれは、重み係数列ｗの代わりに透過率パターンを用いて合成画像のぶれ補正を行うために動作する。
【０１２６】
撮像部１４０１の構成例を図１２（ｂ）に示す。撮像部１４０１は、撮像レンズ部１５０１、絞り部１５０２、シャッター部１５０３、透過率が可変であるフィルタ部１５０４、撮像素子部１５０５を有している。
【０１２７】
シャッター部１５０３とフィルタ部１５０４は露光制御部１４０２によって制御され、撮影中のシャッター開閉とフィルタの透過率の変更を行う。シャッター部１５０３は、フィルタ部１５０４と連動して、被写体からの光を透過させたりして、撮像素子部１５０５に対して露光または遮光する。シャッター部１５０３としては機械式のフォーカルプレーンシャッターなどが使用できる。フィルタ部１５０４は、シャッター部１５０３が被写体からの光を透過させている期間（撮像期間）、フィルタの透過率を変化させる。本実施形態では、撮像レンズ部１５０１を介して得られる被写体の投影像の光を、任意のタイミングで吸収し、撮像素子部１５０５に入射される光量を調整する。フィルタ部１５０４の透過率を変更するタイミングは露光制御部１４０２によって制御する。フィルタ部１５０４としては液晶フィルタなどが使用できる。本実施形態では、このような撮像部１４０１を用いて第１，２の実施形態と同様、時分割露光により複数枚の撮像画像を撮像する。その際、それぞれの撮像画像について、露光期間と、フィルタ部１５０４がこの撮像画像に対して一定の透過率を保つ期間と、は連動している。即ち、撮像画像ｘを撮像するための露光期間中は、フィルタ部１５０４はこの撮像画像ｘに対して予め設定された透過率を維持するように動作している。この透過率は、透過率パターン中の各透過率のうち、この撮像画像ｘに対応する透過率ｘである。
【０１２８】
本実施形態によるぶれ補正全体の動作を図１４（ｂ）に示す。時分割露光によって取得されるそれぞれの撮像画像とフィルタの透過率とが対応している。各画像取得時には、フィルタの透過率に変化が生じない構成である。第１の実施形態では重み値を乗じて重み付けした画像を用いてぶれ補正を実施したが、本実施形態ではフィルタ部１５０４の透過率を制御して光学的にそれぞれの撮像画像に対して重み付けする。
【０１２９】
＜本実施形態に係るぶれ補正について＞
撮像部１４０１及び画像処理部１２００が行う処理について、同処理のフローチャートを示す図１３を用いて説明する。先ず、ステップＳ１６０１では、撮像部１４０１は、撮像部１４０１内の撮像素子部１５０５内に残る光の検出状態を全て読み出して初期化する。
【０１３０】
ステップＳ１６０２では露光制御部１４０２は、撮像部１４０１内のシャッター部１５０３の動作を開始して露光の状態にすると共に、フィルタ部１５０４の透過率を制御する。フィルタ部１５０４の制御が完了すると、シャッター部１５０３の動作を再度開始し、遮光の状態にする。即ち、最初に撮像する撮像画像のための準備を行う。
【０１３１】
フィルタ部１５０４の透過率は、露光制御部１４０２が参照する透過率パターンに従って撮像画像毎に変更される（もちろん連続して撮像する撮像画像間で透過率が同じである場合にはこの変更はない）。図１４（ｂ）を用いて説明したように、本実施形態では、時分割露光を用いて複数枚の撮像画像を撮像するが、各画像取得のタイミングとフィルタ部１５０４の透過率が変更されるタイミングとは同期されている。透過率パターンは、透過率パターン規定部１４０４によって予め作成され、透過率パターンＤＢ１４０３に格納されている。透過率パターン規定部１４０４の動作については後述する。
【０１３２】
画像処理部１２００には、撮像部１４０１が時分割露光を行うことで撮像したＬ枚の撮像画像が順次、入力端子１０５を介して入力される。上記の通り、それぞれの撮像画像は対応する透過率で撮像された撮像画像であり、原理的には、この時点で撮像画像には光学的な重み値が乗じていることになる。即ち、撮像画像はフィルタ部１５０４を透過した入射光から構成されるため、この撮像画像の明るさはこの撮像画像の撮像時に使用したフィルタ透過率と相関を持つ。
【０１３３】
ステップＳ１６０３では、画像処理部１２００はこの入力された撮像画像をメモリ部１０６に格納する。次にステップＳ１６０４では画像加算部１４０５は、メモリ部１０６からＬ枚の撮像画像を読み出し、読み出したＬ枚の撮像画像を合成することで、１枚の合成画像iｂｌｕｒを生成する。
【０１３４】
以下の式（１６）は、１枚の合成画像iｂｌｕｒ中の画素位置（ｘ、ｙ）における画素値を求める為の式である。ｉfilter（ｘ，ｙ；ｌ）は、撮像された複数の撮像画像のうち、ｌ番目に取得される撮像画像の画素位置（ｘ，ｙ）の画素値を表す。即ち、各画素位置について式（１６）に基づく計算を行うことで、１枚の合成画像iｂｌｕｒを生成することができる。
【０１３５】
【数１６】
0005543280.tif 000017
【０１３６】
本実施形態では、画像撮像時にフィルタ部１５０４を透過する入射光量が制御されている。そのため、第１，２の実施形態で説明したような重み付けによる加算処理は必要なく、単純な加算処理で対応できるため、ぶれ補正のために必要となる画像処理部の回路規模を縮小化することができる。
【０１３７】
ステップＳ１６０５では補正係数列作成部１０９は、入力端子１１０を介してぶれ検出部１０２から受けたぶれ情報と、透過率パターンＤＢ１４０３から読み出した透過率パターンと、を用いて、補正画像生成部１１１がぶれ補正で用いる補正係数列を生成する。ステップＳ１６０５における処理の詳細については後述する。
【０１３８】
ステップＳ１６０６では補正画像生成部１１１は、入力端子１１０を介してぶれ検出部１０２から入力されたぶれ情報を取得する。ステップＳ１６０７では補正画像生成部１１１は、露光制御部１１６から露光時間Ｔを取得する。
【０１３９】
ステップＳ１６０８では補正画像生成部１１１は、ステップＳ１６０６で取得したぶれ情報、ステップＳ１６０７で取得した露光時間Ｔ、補正係数列作成部１０９が生成した補正係数列、を用いて、合成画像iｂｌｕｒに対するぶれ補正処理を行う。このぶれ補正処理については第１の実施形態と同様にして行う。そして補正画像生成部１１１は、ぶれ補正済みの画像を出力画像として出力端子１１３を介して画像表示部１１４や画像記録部１１５に送出する。
【０１４０】
＜補正係数列の作成について＞
補正係数列の作成において、第１の実施形態では重み係数列ｗを用いていたが、本実施形態では重み係数列ｗの代わりに透過率パターンを用いる。即ち、ぶれベクトルの成分で示される位置に重み値を格納する代わりに、透過率を格納する。これ以外については第１の実施形態と同じである。
【０１４１】
＜透過率パターンについて＞
透過率パターン規定部１４０４の機能構成例について、図１４（ａ）のブロック図を用いて説明する。初期値設定部８０１は、透過率パターン中の要素数Ｌを設定する。透過率パターン生成部１７０１は、要素数Ｌの透過率パターン中の各透過率の初期値を設定する。初期値の設定方法については特に限定するものではないが、透過率は０〜１の範囲で値が変化するため、０〜１の範囲で擬似乱数を発生させた値を透過率とする。この場合、擬似乱数を用いて発生させる値の有効数字の桁数と同精度でフィルタ部１５０４の透過率を制御できることが前提となる。ここでは、有効数字の桁数を２桁とし、０〜１の範囲で擬似乱数を発生させる。
【０１４２】
補正係数列作成部１４９０は、事前に何らかの方法で得たＬ個のぶれ情報と、透過率パターン生成部１７０１で確定された透過率パターンと、を用いて、補正係数列作成部１０９と同様の処理を行うことで、配列ｗ’を作成する。そして更に補正係数列作成部１４９０は、上記式（７）に従った計算処理を行うことで、この配列ｗ’に対して２次元のフーリエ変換を行い、配列ｗ’の２次元フーリエ変換結果Ｗを生成する。
【０１４３】
評価値算出部８０３は、補正係数列作成部１４９０が作成した２次元フーリエ変換結果Ｗの評価値を算出する。評価値比較部８０４は、第１の実施形態と同様にこの評価値を評価し、この評価値が評価基準よりも低い場合には、この２次元フーリエ変換結果Ｗを作り直すべく、透過率パターン更新部１７０２に対して透過率パターンの更新を指示する。透過率パターン更新部１７０２はこの指示を受けると、透過率パターン生成部１７０１に対して新たな擬似乱数を発生させるよう指示する。一方、この評価値が評価基準以上のものである場合には、現在の２次元フーリエ変換結果Ｗを生成するために用いた透過率パターン（透過率パターン生成部１７０１が生成した透過率パターン）をメモリ部８０５に格納する。
【０１４４】
透過率パターン出力部１７０３は、評価値比較部８０４による評価が完了すれば、メモリ部８０５に格納されている透過率パターンを読み出し、出力端子８０８を介して透過率パターンＤＢ１４０３に格納する。即ち、透過率パターン規定部１４０４の動作は、重み係数列ｗの代わりに透過率パターンを用いる点を除けば、基本的には、図７のフローチャートに従った動作となる。
【０１４５】
なお、本実施形態には、様々な変形例が考えられるが、本実施形態の本質は次のようなものとなる。先ず、撮像装置がＬ（Ｌ＞１）枚の撮像画像を撮像する為に設定される、この撮像画像の撮像時に撮像装置が有する撮像センサへの光の透過率を、この撮像画像の撮像時における撮像装置のぶれベクトルの方向成分で規定される位置に保持する配列を生成する。そして、この生成した配列の周波数成分の合計値がより大きくなるように若しくは周波数成分のバラツキがより小さくなるように透過率を調整する。
【０１４６】
そしてこの調整後に撮像装置により撮像されたＬ枚の撮像画像を取得する（第１の取得）と共に、取得したそれぞれの撮像画像について、この撮像画像の撮像時における撮像装置のぶれベクトルを取得する（第２の取得）。
【０１４７】
そして、第１の取得して取得したそれぞれの撮像画像を合成することで１枚の合成画像を生成する。そして、上記透過率を、この透過率で撮像した撮像画像について第２の取得として取得したぶれベクトルの方向成分で規定される位置に保持する配列を生成する（配列生成）。そして、生成した配列の周波数成分と合成画像の周波数成分とを用いてデコンボリューション処理を行い、デコンボリューション処理の結果を逆周波数変換することで、１枚の出力画像を生成する（画像生成）。
【０１４８】
以上の説明により、本実施形態によれば、可変透過率フィルタの透過率を変化させながら撮像を行うことで光学的に重み付けされた複数枚の撮像画像を用いてぶれ補正、或いはぶれ修正、除去を行うことができる。これにより、ぶれ補正、或いはぶれ修正、除去のために必要となる画像処理部の回路規模を縮小化することができる。
【０１４９】
［第４の実施形態］
第３の実施形態では、時分割露光と同期して透過率可変フィルタの透過率を制御することで、光学的に重み付けされた複数枚の撮像画像を取得した。本実施形態では、時分割露光による撮像を行うことなくぶれ補正を行う。本実施形態に係る画像処理装置も、ディジタルカメラなどの撮像装置として説明する。
【０１５０】
本実施形態に係る画像処理装置の機能構成例について、図１５（ａ）のブロック図を用いて説明する。図１５（ａ）の構成は、図１２（ａ）の構成から、メモリ部１０６と画像加算部１４０５とを省いた構成となっている。
【０１５１】
本実施形態では、撮像部１４０１は透過率を変化させながら１枚の画像を撮像し、この画像は撮像画像として、入力端子１０５を介して画像処理部１５００に入力される。補正画像生成部１１１、補正係数列作成部１０９は、画像数が１の時の動作を、この撮像画像について行うことで、１枚の出力画像を生成する（図１５（ｂ））。
【０１５２】
画像処理部１５００が行う処理のフローチャートは、図１６に示したとおりであり、このフローチャートは、図１３のフローチャートからステップＳ１６０４を省いたものとなる。
【０１５３】
以上の説明により、本実施形態によれば、時分割露光による撮像を行うことなく、撮像画像のぶれ補正、或いはぶれ修正、除去を行うことができ、撮像画像を一時的に保持するメモリが不要となる。
【０１５４】
［第５の実施形態］
第１の実施形態では、重み係数列ｗは事前に重み係数列規定部１１２によって規定され、重み係数列ＤＢ１０８に格納されている。本実施形態では、撮像画像の枚数Ｌに応じて重み係数列ｗを解析的に求める。
【０１５５】
＜画像処理装置の機能構成例について＞
本実施形態に係る画像処理装置の機能構成例について、図１７のブロック図を用いて説明する。図１７の構成は、図１の構成から重み係数列ＤＢ１０８と重み係数列規定部１１２とを削除し、重み係数列作成部２２０１を追加した構成である。
【０１５６】
重み係数列作成部２２０１は、露光制御部１１６から供給される撮像画像枚数に応じて、好適な重み係数を作成する。その他の処理部については第１の実施形態同様である。
【０１５７】
＜重み係数列の作成について＞
重み係数列作成部２２０１が行う処理について、同処理のフローチャートを示す図１８を用いて説明する。先ず、ステップＳ２３０１では重み係数列作成部２２０１は、露光制御部１１６から撮像画像の枚数Ｌを取得する。
【０１５８】
次にステップＳ２３０２では重み係数列作成部２２０１は、予め作成された補正係数列を画像処理装置内の不図示のメモリなどから取得する。この補正係数列は、図４（ａ）に示したような、１次元の周波応答値から成る。本実施形態では、図４（ａ）の実線に示されるように、周波数応答値が相対的に高くなるように補正係数列を設定する。この補正係数列をＷ４（ｕ）とおく。なお、ｕはｘ成分の周波数である。
【０１５９】
次に、ステップＳ２３０３では重み係数列作成部２２０１は、補正係数列Ｗ４（ｕ）に対して１次元の逆フーリエ変換処理を行い、重み係数列ｗ４を求める。１次元の逆フーリエ変換処理は、以下の式（１７）に従った処理である。
【０１６０】
【数１７】
0005543280.tif 000018
【０１６１】
ＩＦＦＴ１（）は、１次元の逆フーリエ変換を表す関数である。ステップＳ２３０４では重み係数列作成部２２０１は、ステップＳ２３０３で求めた重み係数列ｗ４を重み付け部１０７や補正係数列作成部１０９に対して出力する。
【０１６２】
なお、本実施形態では、周波数応答値が相対的に高くなるように補正係数列Ｗ４を設定したが、その他の周波数応答値の特性に応じた補正係数列を設定しても良い。例えば、図４（ｂ）の実線に示されるように、全周波数において１に近い応答値が得られるように補正係数列Ｗ４を設定しても良い。
【０１６３】
また、本実施形態では、時分割露光によって撮像画像を取得する場合について説明したが、第３，４の実施形態に対しても重み係数列作成部２２０１は適用可能である。その場合には、撮影前に画像取得枚数を規定し、規定された枚数に対して好適な透過率パターンを図１８示したフローチャートに沿って生成する。
【０１６４】
以上の説明により、本実施形態によれば、撮影時に好適な重み係数列を演算によって求め、撮像画像のぶれ補正、或いはぶれ修正、除去を行うことができ、更には、重み係数列を格納する為のデータベースを保持するメモリが不要となる。なお、以上に説明した各実施形態は当業者であれば、適宜組み合わせることも可能である。
【０１６５】
［第６の実施形態］
図１（図６），９，１２（ａ）（１４（ａ）），１５（ａ），１７に示した画像処理部を構成する各部はハードウェアで実現しても良いし、メモリ部以外の一部若しくは全部をソフトウェア（コンピュータプログラム）で実現しても良い。その場合、このソフトウェアは、画像処理装置内のメモリに格納され、画像処理装置内の制御回路（ＣＰＵ等）により実行されることになる。
【０１６６】
更に、図１（図６），９，１２（ａ）（１４（ａ）），１５（ａ），１７に示した画像処理部とそれ以外の機能部とを別個の装置としても良い。例えば、ディジタルカメラなどの撮像装置と、ＰＣ（パーソナルコンピュータ）等のコンピュータ装置と、が接続されている状態において、この画像処理部をこのコンピュータ装置としても良い。
【０１６７】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005543280.tif 000019
【図２】
0005543280.tif 000020
【図３】
0005543280.tif 000021
【図４】
0005543280.tif 000022
【図５】
0005543280.tif 000023
【図６】
0005543280.tif 000024
【図７】
0005543280.tif 000025
【図９】
0005543280.tif 000026
【図１０】
0005543280.tif 000027
【図１１】
0005543280.tif 000028
【図１２】
0005543280.tif 000029
【図１３】
0005543280.tif 000030
【図１４】
0005543280.tif 000031
【図１５】
0005543280.tif 000032
【図１６】
0005543280.tif 000033
【図１７】
0005543280.tif 000034
【図１８】
0005543280.tif 000035
【図１９】
0005543280.tif 000036
【図８】
0005543280.tif 000037