(57)【要約】【課題】  撮像データの振れを効果的に補正する。【解決手段】  撮像部によって時分割露光された複数の撮像データを入力し(S1201)、複数の撮像データを合成用画像または動き検出用画像に分配する(S1202、S1203)。そして、動き検出用画像の撮像データから時分割露光の際の撮像部の動き量を検出し(S1205)、合成用画像を合成した合成撮像データを生成する(S1204)。そして、分配を示す分配パターンおよび動き量に基づき、合成撮像データの振れを補正する(S1207)。【選択図】  図11
2010273141.tif 000002
【特許請求の範囲】
【請求項１】
撮像部によって時分割露光された複数の撮像データを入力する入力手段と、
前記複数の撮像データを合成用画像または動き検出用画像に分配する分配手段と、
前記動き検出用画像の撮像データから前記時分割露光の際の前記撮像部の動き量を検出する検出手段と、
前記合成用画像を合成した合成撮像データを生成する合成手段と、
前記分配手段による分配を示す分配パターンおよび前記動き量に基づき、前記合成撮像データの振れを補正する補正手段とを有することを特徴とする画像処理装置。
【請求項２】
前記分配手段は、前記複数の撮像データをランダムに合成用画像または動き検出用画像に分配することを特徴とする請求項1に記載された画像処理装置。
【請求項３】
前記分配手段は、前記複数の撮像データのうち、最初に露光された撮像データおよび最後に露光された撮像データを動き検出用画像に分配することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項４】
前記分配手段は、前記時分割露光の直後に露光された撮像データを動き検出用画像に分配することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項５】
前記分配手段は、前記時分割露光の直前および直後に露光された撮像データを動き検出用画像に分配することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項６】
前記分配手段は、前記動き量が所定の閾値未満の場合、前記合成用画像に分配する撮像データの割合を増加することを特徴とする請求項1から請求項5の何れか一項に記載された画像処理装置。
【請求項７】
前記補正手段は、前記分配パターンと前記動き量に基づき、点像分布関数を作成する作成手段、および、前記点像分布関数を用いて、前記合成撮像データをデコンボリューションする手段を有することを特徴とする請求項1から請求項6の何れか一項に記載された画像処理装置。
【請求項８】
撮像部によって時分割露光された複数の撮像データを入力し、
前記複数の撮像データを合成用画像または動き検出用画像に分配し、
前記動き検出用画像の撮像データから前記時分割露光の際の前記撮像部の動き量を検出し、
前記合成用画像を合成した合成撮像データを生成し、
前記分配を示す分配パターンおよび前記動き量に基づき、前記合成撮像データの振れを補正することを特徴とする画像処理方法。
【請求項９】
コンピュータ装置を制御して、請求項1から請求項7の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像データの振れ補正に関する。
【背景技術】
【０００２】
ディジタル画像は、パーソナルコンピュータを利用して簡単に100%超の拡大表示が可能であり、拡大画像においては僅かな手振れによる画像の暈けも目立つ。そのため、ディジタルカメラの撮像デバイスの高解像度化に伴い、撮影時の手振れを補正する処理が注目されている。
【０００３】
手振れの補正方法には、ハードウェアによる補正方法と、ソフトウェアによる補正方法がある。ハードウェアによる補正方法は、カメラにジャイロセンサを搭載し、露光中、ジャイロセンサの出力信号に基づき、カメラの振動を打ち消すようにレンズや撮像デバイスを駆動して手振れを低減する。レンズ光学系による手振れ補正は、特許文献1などに述べられている。
【０００４】
ハードウェアによる補正方法は、部品点数の増加、製造コストの増加という問題がある。安価なディジタルカメラで同様の機能を実現する場合、ソフトウェアによる補正方法が望まれる。
【０００５】
ソフトウェアによる補正方法には、短時間露光によって得た画像（以下、短時間露光画像）と、長時間露光によって得た画像（以下、長時間露光画像）を合成する方法が提案されている（例えば特許文献2）。また、短時間露光画像を複数取得して、それら画像を合成する方法が提案されている（例えば特許文献3や特許文献4）。
【０００６】
特許文献2の方法は、短時間露光画像を用いて長時間露光画像の高周波成分を補正して、画像の暈けを修復する。特許文献3の方法は、時分割露光によって得た複数の短時間露光画像の間の差を小さくするように画像の位置合わせを行って、それら画像を合成し、画像の暈けを修復する。同様に、特許文献4の方法は、暈けを補正した後の複数枚の画像を、画像の位置を合わせながら合成して、画像の暈けを修復する。
【０００７】
しかし、特許文献3や4の方法には次の課題がある。画像の暈けを適切に修復するには、複数の短時間露光画像を、それらの振れ量に応じて、適切に合成する。言い換えれば、適切な画像の暈けの修復には、高精度な振れ量の取得が必要である。従って、短時間露光画像について、その直前または直後に撮影された短時間露光画像との間の振れ量を算出する必要がある。しかし、振れ量を高精度に算出する処理や、振れ量に合わせて画像を変形し合成する処理は、計算コストが非常に高く、連写速度の低下や、バッファリングが可能な撮影数の低下を招く。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開2002-214657公報
【特許文献２】特開2002-258351公報
【特許文献３】特開2006-74693公報
【特許文献４】特開2006-86762公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は、撮像データの振れを効果的に補正することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１１】
本発明にかかる画像処理は、撮像部によって時分割露光された複数の撮像データを入力し、前記複数の撮像データを合成用画像または動き検出用画像に分配し、前記動き検出用画像の撮像データから前記時分割露光の際の前記撮像部の動き量を検出し、前記合成用画像を合成した合成撮像データを生成し、前記分配を示す分配パターンおよび前記動き量に基づき、前記合成撮像データの振れを補正することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、撮像データの振れを効果的に補正することができる。
【図面の簡単な説明】
【００１３】
【図１】ディジタルカメラの外観図と垂直断面図。
【図２】ディジタルカメラの制御、撮影および画像処理に関する構成例を示すブロック図。
【図３】コード化露光処理によって画像の暈けを補正する処理を説明するフローチャート。
【図４】画像の暈けの補正原理を概念的に表す図。
【図５】PSFの作成(S204)を説明するフローチャート。
【図６】一般的な回転運動におけるPSFの一例を示す図。
【図７】通常の露光条件である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合のPSFの形状と周波数特性を示す図。
【図８】コード化露光を行った場合のPSFの形状と周波数特性を示す図。
【図９】回転振れによって暈けた画像と回転振れによる暈けを補正した画像を示す図。
【図１０】振れ補正部の処理の概要を説明する図。
【図１１】振れ補正部の処理を説明するフローチャート。
【図１２】振り分けパターンの作成を説明するフローチャート。
【図１３】動き情報の生成を説明するフローチャート。
【図１４】動き情報を生成する画像を説明する図。
【図１５】実施例3における振り分けパターンの作成を説明するフローチャート。
【図１６】コード化露光処理によって画像の暈けを補正する処理を説明するフローチャート。
【図１７】PSFの作成を説明するフローチャート。
【図１８】開閉パターンの一例を示す図。
【発明を実施するための形態】
【００１４】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。なお、以下では、ディジタルカメラに手振れを補正する構成を組み込む例を説明する。
【実施例１】
【００１５】
［カメラの構成］
図1はディジタルカメラの外観図と垂直断面図である。
【００１６】
カメラボディ100の上部には、ビューファインダの接眼窓111、自動露出(AE)ロックボタン114、自動焦点(AF)の測距点を選択するボタン113、撮影操作をするためのレリーズボタン112がある。また、撮影モード選択ダイヤル117、外部表示部409、電子ダイヤル411などがある。
【００１７】
電子ダイヤル411は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力部である。また、LCDパネルの外部表示部409には、シャッタスピード、絞り、撮影モードなどの撮影条件や、その他の情報が表示される。
【００１８】
カメラボディ100の背面には、カメラが捉えた画像、撮影した画像、各種設定画面などを表示するLCDモニタ417、LCDモニタ417の表示をオンオフするためのスイッチ121、十字キー116、メニューボタン124などがある。なお、LCDモニタ417は透過型であるため、LCDモニタ417の駆動だけではユーザが画像を視認することはできない。そのため、LCDモニタ417の裏面には、後述するように、バックライトが必要である。
【００１９】
十字キー116は、上下左右にそれぞれ配置された四つのボタンと、中央部に配置された設定ボタンを有し、LCDモニタ417に表示されるメニュー項目などの選択や実行を指示するために用いられる。
【００２０】
メニューボタン124は、LCDモニタ417にメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する場合、メニューボタン124を押した後、十字キー116の上下左右のボタンを操作して希望の撮影モードを選択し、希望の撮影モードが選択された状態で設定ボタンを押すことで、撮影モードの設定が完了する。なお、メニューボタン124と十字キー116は、後述するAFモードの設定にも使用される。
【００２１】
撮像光学系の撮影レンズ200は、レンズマウント202を介して、カメラボディ100に着脱可能である。
【００２２】
撮影光軸201を中心とする撮影光路中に配置されたミラー203は、撮影レンズ200からの被写体光をファインダ光学系に導く位置（斜設位置）と、撮影光路外の退避位置の間でクイックリターンが可能である。
【００２３】
ミラー203によってファインダ光学系に導かれた被写体光は、ピント板204上に結像する。そして、ピント板204を通過した被写体光は、ビューファインダの視認性を向上させるコンデンサレンズ205、正立正像を復元するペンタゴナルダハプリズム206を通り、接眼レンズ208および測光センサ207に導かれる。
【００２４】
後幕209と先幕210は、フォーカルプレーンシャッタ（機械式シャッタ）を構成し、両幕209と210の開閉によって、その後方に配置された、CCDやCMOSセンサである撮像デバイス418を必要時間露光する。撮像デバイス418は、プリント板211に保持されている。プリント板211の後方には、さらにプリント板215が配置され、プリント板215の反対面にLCDモニタ417とバックライト416が配置されている。
【００２５】
さらに、カメラボディ100内には、画像データが記録される記録メディア419aと、携帯用電源である電池217がある。なお、記録メディア419aと電池217は、カメラボディ100に着脱可能である。
【００２６】
図2はディジタルカメラの制御、撮影および画像処理に関する構成例を示すブロック図である。
【００２７】
マイクロコンピュータ(CPU)402は、撮像デバイス418が出力する画像データの処理や、LCDモニタ417の表示制御をはじめとし、カメラ全体の動作を制御する。
【００２８】
スイッチ(SW1)405は、レリーズボタン112を半分押した状態（半押し状態）で閉になる。スイッチ(SW1)405が閉になるとカメラは撮影準備状態になる。スイッチ(SW2)406は、レリーズボタン112を最後まで押込んだ状態（全押し状態）で閉になる。スイッチ(SW2)406が閉になるとカメラボディ100は撮影動作を開始する。
【００２９】
レンズ制御部407は、撮影レンズ200と通信し、AF時の撮影レンズ200の駆動制御や絞り羽根の駆動制御を行う。外部表示制御部408は、外部表示部409や、ファインダ内の表示部（不図示）を制御する。スイッチセンス部410は、上述した電子ダイヤル411を含む多数のスイッチやキーから出力される信号をCPU402に伝えるためのインタフェイスである。
【００３０】
ストロボ制御部412は、X接点412aを介して接地されており、外部ストロボの発光および調光制御を行う。記録メディアドライブ419には、例えばハードディスクやメモリカードなどの記録メディア419aが装着される。
【００３１】
測距部413は、AF用に被写体に対するデフォーカス量を検出する。測光部414は、被写体の輝度を測定し、露光時間を制御する。シャッタ制御部415は、撮像デバイス418に対して適正な露光が行われるように、機械式シャッタを制御する。LCDモニタ417とバックライト416は、上述したように表示装置を構成する。
【００３２】
画像処理部425は、ディジタル信号処理プロセッサ(DSP)などから構成される。動き情報検出部426は、ジャイロセンサによって手振れ等によるカメラの動きを検出する。動き情報検出部426の出力は、カメラの振動を打ち消すように撮影レンズ200や撮像デバイス418を駆動するために利用される。
【００３３】
露光条件生成部427は、振れによる画像の暈けを補正するための露光条件を生成し、生成した露光条件に基づき電子シャッタを制御する。なお、電子シャッタの制御は、撮像デバイス418に供給する掃出パルスと読出パルスによって行う。
【００３４】
さらに、CPU402には、アナログ-ディジタル変換器(A/D)423、画像データをバッファするバッファメモリ424などが接続されている。
【００３５】
［画像データの取得］
詳細は後述するが、A/D423および画像処理部425は、測光部414によって決められた時間内において、露光条件生成部427の制御によって時分割に露光（以下、時分割露光）された画像を処理し、被写体の複数の撮像データを取得する。
【００３６】
なお、撮像データは、撮像部である撮像デバイス418から出力された信号をA/D423によりディジタルデータに変換したデモザイキング（現像処理）前のデータ（以下、RAWデータと呼ぶ場合がある）である。なお、少なくとも撮像デバイス418は撮像部を構成するが、撮像デバイス418とA/D423を合わせて、さらに撮影レンズ200を合わせて、撮像部と呼ぶ場合がある。あるいは、カメラボディ100を撮像部と呼ぶ場合がある。
【００３７】
振れ補正部428は、後述する振り分けパターンに応じて選択した撮像データを加算合成する。そして、振り分けパターン、動き情報検出部426が出力する動き情報などに基づき、合成撮像データに振れ補正処理を適用し、振れによる暈けを補正した撮像データを生成する。
【００３８】
画像処理部425は、振れ補正部428によって補正された撮像データをデモザイキングして画像データを生成し、生成した画像データに各種の画像処理を施し、画像処理後の画像データを記録メディアに格納する。なお、デモザイキング前の撮像データを記録メディアに格納してもよい。
【００３９】
［コード化露光処理の概要」
振れ補正部428は、coded exposure（以下、コード化露光）と呼ばれる技術を用いて手振れなどによる画像の暈けを補正する。コード化露光は、指定された露光時間の間にシャッタを不規則に開閉し（以下、フラッタシャッタ(flutter shutter)）、得られた画像とシャッタの開閉パターンの相関を用いて画像の暈けを補正する技術である。
【００４０】
以下では、回転方向の振れ（回転振れ）による画像の暈けを補正する場合を例にして、コード化露光処理の基本的な流れを説明する。その後、本実施例におけるコード化露光処理を説明する。
【００４１】
図3はコード化露光処理によって画像の暈けを補正する処理を説明するフローチャートである。
【００４２】
まず、フラッタシャッタにより撮影した撮影データを入力する(S401)。
【００４３】
撮像デバイス418の画素(x, y)に単位時間当りに入射する光の強度をI(x, y)、角速度をω(t)、露光時間をTとする。時刻tに、カメラにはI(x, y)を-θ(T-t)だけ回転させた情報が入射するので、撮像データIblur(x, y)は次式で表される。なお、座標系の原点は、後述する回転振れ情報が表す回転中心の位置座標に一致させる。
Iblur(x, y) = 1/T・∫th(t)I{x・cosθ(T-t)+y・sinθ(T-t), -x・sinθ(T-t)+y・cosθ(T-t)}dt
= 1/T・∫th(T-t)I{x・cosθ(t)+y・sinθ(t), -x・sinθ(t)+y・cosθ(t)}dt      …(1)
= 1/T・∫ωh(θ)/ω(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ      …(2)
= 1/T・∫ωh'(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ            …(3)
ここで、関数h(t)はシャッタの開閉を表し、シャッタ開は1、シャッタ閉は0、
積分範囲はt=0〜T、
積分範囲はω=0〜ω。
【００４４】
式(1)から式(2)の変形では、積分変数を変換した。ω(t)=dθ/dtである。また、ω(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。同様に、h(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。また、式(3)において、h'(θ)=h(θ)/ω(θ)である。
【００４５】
次に、シャッタの開閉パターンを示す露光情報を入力し(S402)、振れ角度θと時間の関係を示す回転振れ情報を入力する(S403)。そして、詳細は後述するが、回転振れ情報と露光情報に基づき、極座標上の点像分布関数(point spread function: PSF)であるh'(θ)を算出する(S404)。
【００４６】
次に、撮像データを極座標上の画像に変換する(S405)。前述したように、この変換における直交座標系の原点は、回転振れ情報が示す回転の中心座標に一致させる。極座標変換により式(3)は式(4)に変換される。
Iblur(r, Θ) = 1/T・∫ωh'(θ)I(r, Θ-θ)dθ
= 1/T・(h' * I)(r, Θ)              …(4)
ここで、式(3)における(x, y)はr(cosΘ, sinΘ)である。
【００４７】
式(4)は、平行移動に対する振れと同じ式であり、PSFであるh'(θ)によるコンボリューションを行ったものと見做すことができる。ただし、式(4)は理論的な式であり、実際のデータはディジタル値であるから、実空間から極座標空間への変換には何らかの補間が必要になる。任意の補間方法を用いることができるが、ここではバイリニア法を用いるものとする。
【００４８】
次に、詳細は後述するが、PSFの算出結果を基に式(4)のコンボリューションを打ち消すデコンボリューションを行う(S406)。デコンボリューションのアルゴリズムは、既存の任意のアルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズムなどが挙げられる。本実施例では、詳細は後述するが、開閉パターンを制御することでh'(θ)の形状をコントロールし、周波数空間上で除算を行うものとする。
【００４９】
次に、デコンボリューションによってI(r, Θ)が得られるので、I(r, Θ)を実空間表示I(x, y)に逆変換する(S407)。この逆変換も、実空間から極座標空間への変換と同様、補間処理が必要になる。そして、I(x, y)を補正後の撮像データとして出力する(S408)。
【００５０】
図4は画像の暈けの補正原理を概念的に表す図である。つまり、極座標変換によって、回転振れを角度Θ軸方向の振れ（横振れ）に変換し、画像の横振れをデコンボリューションによって除去する。そして、横振れを除去した画像を実空間に戻し、回転振れを除去した画像を得る。
【００５１】
このように、フラッタシャッタによって得た画像について、フラッタシャッタの開閉パターン（露光情報）と回転振れ情報から、回転振れによる画像の暈けを補正することができる。なお、本実施例において、回転振れ情報は動き情報検出部426から、露光情報は露光条件生成部427からそれぞれ取得することができる。
【００５２】
上記では、回転振れによる画像の暈けを補正対象にするため、撮像データを極座標に変換して処理を行う例を説明した。撮像データを極座標に変換せずに処理することで、所謂シフト振れと呼ばれる水平方向の振れ（横振れ）と垂直方向の振れ（縦振れ）による暈けを補正することも可能である。例えば、極座標へ変換する前にシフト振れによる暈けを補正し、その後、回転振れによる暈けの補正を行えばよい。
【００５３】
●PSFの作成方法
図5はPSFの作成(S204)を説明するフローチャートである。
【００５４】
まず、入力した回転振れ情報に基づき、角度θを時間で微分して角速度ω(t)を算出する(S401)。角速度ω(t)とθ(t)と組み合わせることにより、角速度をθの関数として表すことが可能になる。これをω(θ)とする。
【００５５】
次に、入力した露光情報と回転振れ情報に基づき、関数h(t)をθの関数として取得する(S402)。これをh(θ)とする。
【００５６】
次に、取得した情報に基づき、h'(θ)=h(θ)/ω(θ)をPSFとして算出する(S403)。式(3)に示すように、h'(θ)が極座標上のPSFである。
【００５７】
図6は一般的な回転運動におけるPSFの一例を示す図で、横軸は角度（ラジアン）、縦軸はPSFの値を示している。開閉パターンを0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0とし、加速運動をしているとすると、ω(θ)が増大するのでPSFであるh'(θ)の値は減少する。
【００５８】
●デコンボリューション
式(4)を周波数空間上に変換すると次式が得られる。
Iblur(f, ρ) = 1/T・H'(f, ρ)I(f, ρ)      …(5)
ここで、fはrの周波数変換に対応する変数、
ρはΘの周波数変換に対応する変数。
【００５９】
H'(f, ρ)は既知であるから、周波数空間上でIblur(f, ρ)をH'(f, ρ)で除算すれば、I(f, ρ)は原理的には求まる。しかし、ここには問題点があり、等角速度運動による振れを考え、ω(θ)が一定であるとして説明する。
【００６０】
図7(a)は通常の露光条件である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合（フラッタシャッタではなく、シャッタ開期間において連続的にシャッタが開）のPSFの形状を示す図である。図7(b)は図7(a)に示すPSFの周波数特性を示す図である。なお、図7(a)において、横軸は角度（ラジアン）、縦軸はPSFの値を表す。また、図7(b)において、横軸は角度（ラジアン）、縦軸はH'(f, ρ)の絶対値を表す。
【００６１】
図7(b)を参照すると、周期的に絶対値が0になる周波数が現れる。これは、その周波数に対応する情報の消失を表し、このような状態でデコンボリューションを行えば、情報が消失した周波数が存在することに対応する波形が現れる。そこで、情報の消失した周波数の発生を防ぐためにコード化露光を行う。言い換えれば、PSFの絶対値が0になる周波数の発生を防ぐために、シャッタの開期間において、開閉タイミングおよび開（または閉）の長さをランダムに制御して、フラッタシャッタを行う。
【００６２】
図8(a)はコード化露光を行った場合のPSFの形状を示す図、図8(b)は図8(a)に示すPSFの周波数特性を示す図である。
【００６３】
コード化露光を行うと、図8(b)に示すように、情報が消失する周波数は存在しないので、Iblur(f, ρ)をH'(f, ρ)で除算すれば、理論的に、完全なデコンボリューションが可能になる。
【００６４】
図9(a)は回転振れによって暈けた画像（シミュレーション）を示し、図9(b)は回転振れによる暈けを補正した画像を示す。
【００６５】
このように、回転振れ情報およびフラッタシャッタの開閉パターン、実空間と極座標空間の相互変換、および、デコンボリューションを用いて、一枚の画像分の撮像データから回転振れによる暈けを補正した画像を得ることができる。また、回転振れによる暈けの補正処理に必要な情報は、開閉パターン、振れ情報、開閉パターンに従って加算合成して生成した振れによる暈け画像であることがわかる。
【００６６】
［振れ補正部］
本実施例は、フラッタシャッタを採用せず、時分割露光によって得た画像を撮影画像として採用するか否かの振り分けによって、コード化露光処理と同等の処理を実現する。
【００６７】
図10は振れ補正部428の処理の概要を説明する図である。
【００６８】
振れ補正部428は、時分割露光によって撮影された多数の画像に開閉パターンに相当する振り分けパターン（分配パターン）を適用して、撮影画像として採用する画像（図の上段）と採用しない画像（図の下段）を分配する。なお、撮影画像として採用する画像を「合成用画像」、採用しない画像を「動き検出用画像」と呼ぶ。
【００６９】
次に、振れ補正部428は、撮影時間が隣接する動き検出用画像の差分を動き情報として抽出するとともに、合成用画像を合成して合成画像を生成する。そして、合成画像、振り分けパターン、動き情報に基づき補正処理を行って、振れによる暈けを補正した補正画像を生成する。
【００７０】
なお、動き検出用画像から動き情報を検出せずに、動き情報検出部426から動き情報を取得してもよい。動き情報検出部426から動き情報を取得すれば、振れ量の演算が不要になり、高速かつ高精度な動き情報を得ることができる。
【００７１】
図11は振れ補正部428の処理を説明するフローチャートである。
【００７２】
振れ補正部428は、測光部414によって決められた露光時間内において、露光条件生成部427の制御によって時分割露光された多数の撮像データを取得する(S1201)。そして、詳細は後述するが、合成用画像に対応する状態を‘1’、動き検出用画像に対応する状態を‘0’とする振り分けパターンを作成する(S1202)。
【００７３】
次に、振れ補正部428は、振り分けパターンに従い、取得した撮像データそれぞれについて、合成用画像か動き検出用画像かを判定する(S1203)。そして、合成用画像は、順次、合成して合成画像を生成する(S1204)。この合成処理は、撮像データの同座標の画素データ同士を単純加算する処理でよい。このような合成処理を行うことで、フラッタシャッタによって得られる撮像データと同等の撮像データを得ることができる。また、振れ量の検出(S1205)は、詳細は後述するが、注目する動き検出用画像と、その直前の動き検出用画像の間で被写体の変位を算出し、算出した変位を二つの動き検出用画像間の振れ量とする。
【００７４】
次に、振れ補正部428は、時分割露光された撮像データすべてについて合成処理または振れ量の検出を行ったか否かを判定し(S1206)、未処理の撮像データがある場合は、ステップS1203からS1205の処理を繰り返す。
【００７５】
時分割露光された撮像データすべてに対する合成処理および振れ量の検出が終了すると、振れ補正部428は、振れ補正処理を行う(S1207)。つまり、ステップS1202で作成した振り分けパターン、および、ステップS1205で検出した振れ量をまとめた動き情報を用いて、ステップS1204で作成した合成画像に振れ補正処理を適用して、振れによる暈けを補正した撮像データを生成する。そして、ゲイン調整処理を行い(S1208)、撮像データを出力する。
【００７６】
測光部414によって設定された露光時間分の露光を行えば適正露光の撮像データが得られる。しかし、時分割露光によって露光時間の一部は電子シャッタが閉じた状態になる上、合成処理に使用しない動き検出用画像があることから、合成後の撮像データは露出不足になる。そこで、ゲイン調整処理が必要になるが、合成後の撮像データの各画素データに掛ける調整係数Gは次式で示される。
G = T/(t×n)・n/v = T/(t×v)      …(6)
ここで、Tは設定された露光時間、
tは時分割露光における各撮像データの露光時間(t＜T)、
nは時分割露光によって撮影した画像の数(n＞1)、
vは合成用画像の数(v＜n)。
【００７７】
なお、露光時間Tの期間において時分割露光した画像を、一旦、バッファメモリ424にバッファリングした後、ステップ1201以降の処理を行えばよい。しかし、時分割露光を行いながら、振り分けパターンの生成、振り分け、振り分け後の合成処理、振れ量の検出を行ってもよい。
【００７８】
このように、時分割露光した画像を振り分けパターンに基づき振り分けることで、撮影画像と動き情報を同時に取得し、コード化露光と同等の振れ補正処理を実現することができる。とくに、動き情報検出部426がない、あるいは、動き情報検出部426はあってもその出力を利用できない場合でも、手振れ等による画像の暈けを補正することができる。
【００７９】
また、画像の変位が少ない場合、つまり振れが小さい場合は、時分割露光した各画像を合成用画像に選択し易い振り分けパターンを作成することで、画質を向上させることができる。
【００８０】
●振り分けバターンの作成
上記の振れ補正処理おいて正しく補正を行うには、振り分けパターンは周期性をもたないことが必須である。例えば、撮像サイズと同じサイズの畳み込みを行う場合、当該サイズに相当する数値列において、周期的なパターンが生じないようにする必要がある。従って、振れ補正部428は、ランダムな振り分けパターンを作成する。
【００８１】
ただし、ランダムな振り分けパターンの場合、低周波成分を多く含む画像について、擬似輪郭が発生する場合がある。そのため、全押し状態（スイッチ(SW2)406が閉）になった後、最初に取得した画像を解析し、当該画像が含む低周波成分に応じて振り分けパターンを決定してもよい。
【００８２】
例えば、図10に示すように、時分割露光された六枚の画像があり、二、三、五枚目を合成用画像、一、四、六枚目を動き検出用画像にする場合、振り分けパターンh(t)={0, 1, 1, 0, 1, 0}になる。上述したように、このh(t)を動き情報で除算すればPSFであるh'(θ)を得ることができる。
【００８３】
図12は振り分けパターンの作成を説明するフローチャートである。
【００８４】
振れ補正部428は、露光条件生成部427から時分割露光される画像の数nを取得する(S1301)。そして、一枚目の画像は動き検出用画像として振り分けパターンに‘0’を設定し(S1302)、画像数nをデクリメントする(S1303)。
【００８５】
次に、振れ補正部428は、画像数nが1か否かを判定し(S1304)、n=1の場合は、最後の画像は動き検出用画像として振り分けパターンに‘0’を設定し(S1305)、振り分けパターンの作成を終了する。
【００８６】
一方、n＞1の場合、振れ補正部428は、乱数Rを発生し(S1306)、乱数Rと振り分けパターンの値が‘1’になる確率をPを比較する(S1307)。そして、R≧Pの場合は合成用画像として振り分けパターンに‘1’を設定し(S1308)、R＜Pの場合は動き検出用画像として振り分けパターンに‘0’を設定し(S1309)、処理をステップ1303に戻す。なお、確率Pは例えば50%に設定するが、上述したように、画像の変位が少ない場合は、時分割露光した各画像を合成用画像に選択し易い振り分けパターン、つまり確率Pを高く設定して振り分けパターンを作成してもよい。
【００８７】
このように、時分割露光の開始時と終了時の画像は動き検出用画像に、その他の画像は確率Pに応じて合成用画像にそれぞれ振り分けることで、周期性がない振り分けパターンを作成することができる。
【００８８】
●動き情報の生成
振れ補正部428が動き検出用画像から検出する動き情報は、水平方向の変位（以下、水平振れ）、垂直方向の変位（以下、垂直振れ）、回転方向の変位（以下、回転振れ）を示す。振れ補正部428は、まず、水平振れと垂直振れを検出し、次に、回転振れを検出する。これは、手振れの特性から回転振れよりも、水平振れと垂直振れの方が大きいと予想されるためである。なお、動き情報検出部426の出力を利用して、カメラの振動を打ち消すように撮影レンズ200や撮像デバイス418を駆動して水平振れと垂直振れを補正する場合は、水平振れと垂直振れの検出は不要である。
【００８９】
図13は動き情報の生成を説明するフローチャートである。
【００９０】
振れ補正部428は、注目する動き検出用画像（以下、注目画像）をm×n画素のブロックに分割する(S1401)。そして、ブロックごとに直前の動き検出用画像（以下、前画像）に対する動きベクトルを算出する(S1402)。注目ブロックに対応する前画像のブロック（以下、前ブロック）を、その中心から±S画素の範囲で移動して、注目ブロックと前ブロックの類似度を計算する。そして、最も類似度が高い移動後の前ブロックの中心と、注目ブロックの中心を結ぶベクトルを動きベクトルとする。類似度は、例えば、注目ブロックの各画素の画素値と、前ブロックの各画素の画素値の平均二乗誤差の逆数とする。
【００９１】
そして、例えば、各ブロックの動きベクトルの水平成分の平均値を水平振れ、各ブロックの動きベクトルの垂直成分の平均値を垂直振れとして算出する(S1403)。続いて、算出した水平振れと垂直振れ分、注目画像を移動して、水平方向と垂直方向の位置を前画像に一致させ(S1404)、回転振れを算出する(S1405)。つまり、注目画像を回転して、注目画像の画素と、対応する前画像の画素の間の差分を計算し、複数の画素の差分の平均値が最小になる角度を回転振れとして算出する。
【００９２】
このように、時分割露光によって撮影した画像群から、周期性をもたない振り分けパターンに基づき合成用画像と動き検出用画像を選択し、合成用画像を単純に合成処理して合成画像を生成する。また、動き検出用画像から動き情報を生成する。そして、振り分けパターンおよび動き情報を用いて、合成画像に好適な振れ補正を施すことができる。
【００９３】
さらに、振れ補正における画像合成においては、画像の位置合わせや画像の変形などの処理が不要であり、処理負荷を低減することができる。また、動き検出用画像から動き情報を検出することができ、ジャイロセンサなどのハードウェアを追加することなく振れ補正を行うことができる。
【実施例２】
【００９４】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００９５】
実施例1においては、時分割露光した画像と振り分けパターンを使用してコード化露光と同等の処理を実現する方法を説明した。また、実施例1では、振り分けパターンの生成方法の一例を説明した。実施例2では、振り分けパターンの別の生成方法を説明する。
【００９６】
図14は動き情報を生成する画像を説明する図である。
【００９７】
まず、動き情報を得るには、少なくとも、シャッタ閉からシャッタ開に移行した時点の画像と、シャッタ開からシャッタ閉に移行した時点の画像が必要である。つまり、振り分けパターンによって分配した動き検出用画像から動き情報を生成する場合、実施例1で説明したように、時分割露光によって取得した最初の画像と最後の画像は、常に、動き情報の生成に利用する必要がある（図14(a)）。
【００９８】
しかし、時分割露光した画像の多くを合成用画像に分配した方が合成画像のSN比（サンプリング・ノイズ比）の点では有利になる。言い換えれば、設定された露光時間内に時分割露光された画像はできるだけ合成用画像に分配したい。
【００９９】
そこで、実施例2においては、露光時間が経過した後、さらに一画像分だけ露光して、露光時間後に最後の画像（時分割露光の直後の画像）を取得するようにする（図14(b)）。このようにすれば、合成用画像を一画像増やして画質を向上させることができる。さらに、露光の開始直前の画像をキャッシュして、キャッシュした画像を最初の画像とする（図14(c)）。こうすれば、合成用画像を二画像増やして画質を向上させることができる。とくに、露光時間が短い場合、言い換えれば、時分割露光によって取得する画像の数nが少ない場合に、図14(b)(c)に示す方法は有効である。
【０１００】
なお、図14(c)の方法は、全押し状態（スイッチ(SW2)406が閉）になるまで、常に、一画像をキャッシュし続ける必要があり、消費電力の面で不利になる。そこで、半押し状態（スイッチ(SW1)405が閉）後、さらには露光時間などが設定された後、キャッシュを開始することが望ましい。
【実施例３】
【０１０１】
以下、本発明にかかる実施例3の画像処理を説明する。なお、実施例3において、実施例1、2と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１０２】
上記では、振り分けパターンをランダムパターンにする方法を説明した。合成用画像と動き検出用画像をランダムに振り分ける場合、画像の変位量に関係なく動き検出用画像に振り分けることになる。その結果、実質的な露光量が減少し、露光量の減少を補うゲイン調整処理の調整係数が大きくなり、ノイズが増加する問題がある。
【０１０３】
時分割露光によって短時間露光した複数の画像を取得し、これら画像を振り分けることで手振れ補正処理を実現する場合、所定の露光時間の画像を常に得ることができる。そこで、短時間露光した画像を解析して、画像の変位が少ない場合、画像を画像合成用に積極的に振り分ければ、動きが少ない場合は露光量を増加させ、ノイズの低減が可能になる。
【０１０４】
つまり、振り分けパターンをランダムパターンにするのは上記と同様であるが、画像の変化が少ない場合は確率Pを増加して、合成用画像に分配する画像の割合を増加する。また、画像の変化が大きい場合は、確率Pに下限値を設定する。なお、確率Pの上限値および下限値は、例えば、Pmax=65%およびPmin=50%にする。
【０１０５】
図15は実施例3における振り分けパターンの作成を説明するフローチャートである。ステップS1311において確率Pの更新処理を行う点が、図12に示した振り分けパターンの作成処理と異なる点である。確率Pの更新処理(S1311)は、次のようになる。
【０１０６】
処理対象の画像の画素と、その直前の画像の対応する画素ごとに二乗誤差を計算し、二乗誤差の平均値ΔGを算出する。そして、ΔGと所定の閾値Gdを比較して、ΔG＜Gd（ΔGが閾値未満）の場合は確率Pを所定値（例えば1%）増加する。ただし、確率Pが上限値Pmaxに達している場合は確率Pを増加しない。また、ΔG≧Gdの場合は、確率Pを下限値Pminに戻す。なお、確率Pの初期値は下限値Pminである。
【０１０７】
このような処理を行うと、時分割露光された画像間に大きな変化がない場合は徐々に確率Pが上昇し、時分割露光された画像間に大きな変化が生じると確率Pを初期値に戻すことができる。
【０１０８】
なお、簡単のために、平均二乗誤差ΔGを用いて画像の変化を表す例を説明したが、より適切に確率Pを設定するには、最大事後確率推定などを用いる方法が考えられる。
【０１０９】
また、手振れ等によるカメラの動きを検出するジャイロセンサなどがある場合、当該センサの出力に応じて確率Pを変化させることができる。例えば、当該センサが角速度センサの場合、ステップS1311において、角速度ωが所定値α未満の場合は確率Pを所定値ずつ増加し、所定値β（＞α）以上の場合には確率Pを最小値に戻す。
【０１１０】
画像の変位を基に、確率Pを更新処理すれば、被写体が動いていると、その動きの影響を受けることになる。センサの出力を利用すれば、カメラの動き情報を基に、確率Pを制御することができ、より適切な結果を得ることができる。
【０１１１】
このように、画像の変化またはカメラの動きを検出するセンサの出力に基づき確率Pを制御して、振り分けパターンを作成することで、本実施例の振れ補正における露光量の低下を抑制して、高画質の合成画像を得ることができる。
【０１１２】
勿論、センサの出力と、時分割露光された画像の解析結果を併用して、確率Pを制御してもよい。
【実施例４】
【０１１３】
以下、本発明にかかる実施例4の画像処理を説明する。なお、実施例4において、実施例1〜3と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【０１１４】
図3においては、コード化露光処理によって回転振れによる画像の暈けを補正する処理を説明した。以下では、回転振れに加えて、水平振れと垂直振れによる画像の暈けを補正する処理を説明する。
【０１１５】
図16はコード化露光処理によって画像の暈けを補正する処理を説明するフローチャートである。
【０１１６】
ステップS401、S402の処理は、図3と同じ処理である。続いて、水平振れ情報を入力し(S1703)、水平振れ情報と露光情報に基づき、水平方向のPSFを算出して(S1704)、PSFの算出結果を基にデコンボリューションを行う(S1705)。次に、垂直振れ情報を入力し(S1706)、垂直振れ情報と露光情報に基づき、垂直方向のPSFを算出して(S1707)、PSFの算出結果を基にデコンボリューションを行う(S1708)。以降の処理（S403〜S408）は、図3と同じ、回転振れによる画像の暈けを補正する処理である。
【０１１７】
つまり、水平振れと垂直振れによる画像の暈けを補正する処理は、撮像データを極座標上の画像に変換する処理と、その逆変換処理を行わない以外は、回転振れによる画像の暈けを補正する処理と同様の処理である。
【０１１８】
図17はPSFの作成（S1704、S1707）を説明するフローチャートである。
【０１１９】
まず、入力した水平または垂直振れ情報に基づき、水平または垂直方向の移動速度v(t)を算出する(S1801)。次に、露光情報h(t)を移動速度v(t)で除算し(S1802)、除算結果h'(t)=h(t)/v(t)をPSFとして出力する(S1803)。
【０１２０】
［変形例］
上記の実施例においては、所定の時間で露光する時分割露光を説明したが、不均等に分割露光することもできる。
【０１２１】
上記の時分割露光によって画像の暈けを補正する処理においては、周期性をもたない振り分けパターンによって、合成用画像と動き検出用画像を分配した。不均等に分割露光する場合、分割露光した画像を合成用画像と動き検出用画像に例えば交互に振り分ければよい。
【０１２２】
図18は開閉パターンの一例を示す図である。なお、図18に示す開閉パターンは、状態値‘0’と‘1’の配列ではなく、状態値と持続時間tで表現される。この開閉パターンから露光情報h(t)を作成し、h(t)をθの関数に変換し、動き情報で除算すれば、PSFとしてh'(θ)が得られる。
【０１２３】
図18に示す開閉パターンにおいて、シャッタ開状態h(t)=‘1’において取得した画像は合成用画像に振り分け、シャッタ閉状態h(t)=‘0’において取得した画像は動き検出用画像に振り分ければよい。
【０１２４】
このように、上述した画像の暈けを補正する処理は、必ずしも時分割露光を行わなくてもよく、フラッタシャッタのような露光時間が不規則な分割露光にも適用することができる。
【０１２５】
本発明の目的は、次のようにしても達成される。上記実施例の機能または先に説明したフローチャートを実現するコンピュータプログラムを記録した記録媒体または記憶媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）に前記コンピュータプログラムを実行させる。この場合、記録媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのコンピュータプログラムと、そのコンピュータプログラムを記憶する、コンピュータが読み取り可能な記録媒体は本発明を構成する。
【図１】
2010273141.tif 000003
【図２】
2010273141.tif 000004
【図３】
2010273141.tif 000005
【図４】
2010273141.tif 000006
【図５】
2010273141.tif 000007
【図６】
2010273141.tif 000008
【図７】
2010273141.tif 000009
【図８】
2010273141.tif 000010
【図１０】
2010273141.tif 000011
【図１１】
2010273141.tif 000012
【図１２】
2010273141.tif 000013
【図１３】
2010273141.tif 000014
【図１４】
2010273141.tif 000015
【図１５】
2010273141.tif 000016
【図１６】
2010273141.tif 000017
【図１７】
2010273141.tif 000018
【図１８】
2010273141.tif 000019
【図９】
2010273141.tif 000020