画像処理装置およびその方法
【課題】 コード化露光処理における露光量の不足とノイズの増加を抑える。
【解決手段】 コード化露光処理により撮像装置の撮像データの振れを補正する際に、撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力し(S101)、コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、露光時間または絞り値を調整する(S111、S121)。そして、調整した露光時間または絞り値による露光量の不足分に相当する、撮像データのゲイン調整値を設定し(S115、S125)、開閉パターン、露光時間、絞り値に基づき撮像装置の撮影手段による撮像を制御する(S116、S126)。
【解決手段】 コード化露光処理により撮像装置の撮像データの振れを補正する際に、撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力し(S101)、コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、露光時間または絞り値を調整する(S111、S121)。そして、調整した露光時間または絞り値による露光量の不足分に相当する、撮像データのゲイン調整値を設定し(S115、S125)、開閉パターン、露光時間、絞り値に基づき撮像装置の撮影手段による撮像を制御する(S116、S126)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像データの振れ補正に関する。
【背景技術】
【0002】
ディジタル画像は、パーソナルコンピュータを利用して簡単に100%超の拡大表示が可能であり、拡大画像においては僅かな手振れによる画像の暈けも目立つ。そのため、ディジタルカメラの撮像デバイスの高解像度化に伴い、撮影時の手振れを補正する処理が注目されている。
【0003】
手振れの補正方法には、ハードウェアによる補正方法と、ソフトウェアによる補正方法がある。ハードウェアによる補正方法は、カメラにジャイロセンサを搭載し、露光中、ジャイロセンサの出力信号に基づき、カメラの振動を打ち消すようにレンズや撮像デバイスを駆動して手振れを低減する。レンズ光学系による手振れ補正は、特許文献1などに述べられている。
【0004】
ハードウェアによる補正方法は、部品点数の増加、製造コストの増加という問題がある。安価なディジタルカメラで同様の機能を実現する場合、ソフトウェアによる補正方法が望まれる。
【0005】
ソフトウェアによる補正方法には、短時間の露光によって得た画像(以下、短時間露光画像)を複数用意して合成する方法がある(例えば特許文献2)。特許文献2の発明は、手振れを許容可能な短時間の露光時間によって、連続的に撮影した複数の画像の相互の振れを補正し、合成することにより手振れ補正を実現する。
【0006】
また、シャッタの開閉パターンをコード化し、コード化した開閉パターンを利用することで手振れを補正する技術も開発されている。例えば、非特許文献1が記載する発明もその一つである。非特許文献1の発明は、ランダムにコード化された露出時間で画像を撮影し、露出時間コードの逆行列を利用して手振れを補正する。
【0007】
非特許文献1は、coded exposure(以下、コード化露光)と呼ばれる技術を用いて手振れなどによる画像の暈けを補正する。コード化露光は、指定された露光時間の間にシャッタを不規則に開閉し(以下、フラッタシャッタ(flutter shutter))、得られた画像とシャッタの開閉パターンの相関を用いて画像の暈けを補正する技術である。
【0008】
しかし、フラッタシャッタによる露光量(露光期間の露光量の積分値)は、適正露光時間シャッタを開いた場合に比べて低下し、撮影画像は暗くなる。また、ゲイン調整により撮影画像の明るさを増すことはできるが、ノイズの増加により画質が劣化する場合がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2002-214657公報
【特許文献2】特開2007-243774公報
【非特許文献】
【0010】
【非特許文献1】Coded Exposure Photography: Motion Deblurring using Fluttered Shutter, ACM SIGGRAPH 2006
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、コード化露光処理における露光量の不足とノイズの増加を抑えることを目的とする。
【課題を解決するための手段】
【0012】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【0013】
本発明にかかる画像処理は、コード化露光処理により撮像装置の撮像データの振れを補正する際に、前記撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力し、前記コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、前記露光時間または絞り値を調整し、前記調整した露光時間または絞り値による露光量の不足分に相当する、前記撮像データのゲイン調整値を設定し、前記開閉パターン、前記露光時間、前記絞り値に基づき前記撮像装置の撮影手段による撮像を制御することを特徴とする。
【発明の効果】
【0014】
本発明によれば、コード化露光処理における露光量の不足とノイズの増加を抑えることができる。
【図面の簡単な説明】
【0015】
【図1】ディジタルカメラの外観図、
【図2】ディジタルカメラの垂直断面図、
【図3】ディジタルカメラの制御、撮影および画像処理に関する構成例を示すブロック図、
【図4】コード化露光処理によって画像の暈けを補正する処理を説明するフローチャート、
【図5】画像の暈けの補正原理を概念的に表す図、
【図6】PSFの作成を説明するフローチャート、
【図7】一般的な回転運動におけるPSFの一例を示す図、
【図8】通常の露光条件である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合のPSFの形状、および、PSFの周波数特性を示す図、
【図9】コード化露光を行った場合のPSFの形状、および、PSFの周波数特性を示す図、
【図10】回転振れによって暈けた画像、および、回転振れによる暈けを補正した画像を示す図、
【図11】フラッタシャッタによる露光を説明する図、
【図12】露光条件生成部による露光量の調整を説明するフローチャート、
【図13】開閉パターンのリストの一例を説明する図、
【図14】絞り優先モードの場合の露光量の調整を説明する概念図、
【図15】シャッタ速度優先モードの場合の露光量の調整を説明する概念図、
【図16】実施例2の露光条件生成部による露光量の調整を説明するフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。なお、以下では、ディジタルカメラに手振れを補正する構成を組み込む例を説明する。
【実施例1】
【0017】
[カメラの構成]
図1はディジタルカメラの外観図である。カメラボディ100の上部には、ビューファインダの接眼窓111、自動露出(AE)ロックボタン114、自動焦点(AF)の測距点を選択するボタン113、撮影操作をするためのレリーズボタン112がある。また、撮影モード選択ダイヤル117、外部表示部409、電子ダイヤル411などがある。
【0018】
電子ダイヤル411は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力部である。また、LCDパネルの外部表示部409には、シャッタスピード、絞り、撮影モードなどの撮影条件や、その他の情報が表示される。
【0019】
カメラボディ100の背面には、カメラが捉えた画像、撮影した画像、各種設定画面などを表示するLCDモニタ417、LCDモニタ417の表示をオンオフするためのスイッチ121、十字キー116、メニューボタン124などがある。なお、LCDモニタ417は透過型であるため、LCDモニタ417の駆動だけではユーザが画像を視認することはできない。そのため、LCDモニタ417の裏面には、後述するように、バックライトが必要である。
【0020】
十字キー116は、上下左右にそれぞれ配置された四つのボタンと、中央部に配置された設定ボタンを有し、LCDモニタ417に表示されるメニュー項目などの選択や実行を指示するために用いられる。
【0021】
メニューボタン124は、LCDモニタ417にメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する場合、メニューボタン124を押した後、十字キー116の上下左右のボタンを操作して希望の撮影モードを選択し、希望の撮影モードが選択された状態で設定ボタンを押すことで、撮影モードの設定が完了する。なお、メニューボタン124と十字キー116は、後述するAFモードの設定にも使用される。
【0022】
図2はディジタルカメラの垂直断面図である。撮像光学系の撮影レンズ200は、レンズマウント202を介して、カメラボディ100に着脱可能である。
【0023】
撮影光軸201を中心とする撮影光路中に配置されたミラー203は、撮影レンズ200からの被写体光をファインダ光学系に導く位置(斜設位置)と、撮影光路外の退避位置の間でクイックリターンが可能である。
【0024】
ミラー203によってファインダ光学系に導かれた被写体光は、ピント板204上に結像する。そして、ピント板204を通過した被写体光は、ビューファインダの視認性を向上させるコンデンサレンズ205、正立正像を復元するペンタゴナルダハプリズム206を通り、接眼レンズ208および測光センサ207に導かれる。
【0025】
後幕209と先幕210は、フォーカルプレーンシャッタ(機械式シャッタ)を構成し、両幕209と210の開閉によって、その後方に配置された、CCDやCMOSセンサである撮像デバイス418を必要時間露光する。撮像デバイス418は、プリント板211に保持されている。プリント板211の後方には、さらにプリント板215が配置され、プリント板215の反対面にLCDモニタ417とバックライト416が配置されている。
【0026】
さらに、カメラボディ100内には、画像データが記録される記録メディア419aと、携帯用電源である電池217がある。なお、記録メディア419aと電池217は、カメラボディ100に着脱可能である。
【0027】
図3はディジタルカメラの制御、撮影および画像処理に関する構成例を示すブロック図である。マイクロコンピュータ(CPU)402は、撮像デバイス418が出力する画像データの処理や、LCDモニタ417の表示制御をはじめとし、カメラ全体の動作を制御する。
【0028】
スイッチ(SW1)405は、レリーズボタン112を半分押した状態(半押し状態)で閉になる。スイッチ(SW1)405が閉になるとカメラは撮影準備状態になる。スイッチ(SW2)406は、レリーズボタン112を最後まで押込んだ状態(全押し状態)で閉になる。スイッチ(SW2)406が閉になるとカメラボディ100は撮影動作を開始する。
【0029】
レンズ制御部407は、撮影レンズ200と通信し、AF時の撮影レンズ200の駆動制御や絞り羽根の駆動制御を行う。外部表示制御部408は、外部表示部409や、ファインダ内の表示部(不図示)を制御する。スイッチセンス部410は、上述した電子ダイヤル411を含む多数のスイッチやキーから出力される信号をCPU402に伝えるためのインタフェイスである。
【0030】
ストロボ制御部412は、X接点412aを介して接地されており、外部ストロボの発光および調光制御を行う。記録メディアドライブ419には、例えばハードディスクやメモリカードなどの記録メディア419aが装着される。
【0031】
測距部413は、AF用に被写体に対するデフォーカス量を検出する。測光部414は、被写体の輝度を測定し、絞りと露光時間を決定する。シャッタ制御部415は、撮像デバイス418に対して適正な露光が行われるように、機械式シャッタを制御する。LCDモニタ417とバックライト416は、上述したように表示装置を構成する。
【0032】
画像処理部425は、ディジタル信号処理プロセッサ(DSP)などから構成される。動き情報検出部426は、ジャイロセンサによって手振れ等によるカメラの動きを検出する。動き情報検出部426の出力は、カメラの振動を打ち消すように撮影レンズ200や撮像デバイス418を駆動するために利用される。
【0033】
露光条件生成部427は、詳細は後述するが、振れによる画像の暈けを補正するための露光条件を生成し、生成した露光条件に基づき電子シャッタを制御する。なお、電子シャッタの制御は、撮像デバイス418に供給する掃出パルスと読出パルスによって行う。
【0034】
さらに、CPU402には、アナログ-ディジタル変換器(A/D)423、画像データをバッファするバッファメモリ424などが接続されている。
【0035】
[画像データの取得]
A/D423および画像処理部425は、測光部414によって決められた時間に基づき露光条件生成部427の制御によって露光された画像を処理し、被写体の複数の撮像データを取得する。
【0036】
なお、撮像データは、撮像部である撮像デバイス418から出力された信号をA/D423によりディジタルデータに変換したデモザイキング(現像処理)前のデータ(以下、RAWデータと呼ぶ場合がある)である。なお、少なくとも撮像デバイス418は撮像部を構成するが、撮像デバイス418とA/D423を合わせて、さらに撮影レンズ200を合わせて、撮像部と呼ぶ場合がある。あるいは、カメラボディ100を撮像部と呼ぶ場合がある。
【0037】
振れ補正部428は、動き情報検出部426から得られる動き情報と、開閉パターン生成部429が生成したシャッタの開閉パターンを用いて撮影画像の手振れを補正する。画像処理部425は、振れ補正部428によって補正された撮像データをデモザイキングして画像データを生成し、生成した画像データに各種の画像処理を施し、画像処理後の画像データを記録メディアに格納する。なお、デモザイキング前の撮像データを記録メディアに格納してもよい。
【0038】
[コード化露光処理の概要」
振れ補正部428は、コード化露光処理により、手振れなどによる画像の暈けを補正する。手振れによる画像の暈けは、畳込積分の形式で表現することができる。垂直方向への手振れを例にとると、暈け画像は下式のように表すことができる。
Iblur(x, y) = 1/T・∫0TI(x, y+νt)h(t)dt …(1)
ここで、Iblur(x, y)は暈け画像、
Tは露光時間、
νは振れの速度、
I(x, y+vt)は被写体像、
h(t)は開閉パターン。
【0039】
式(1)をフーリエ変換すると下式が得られる。
Iblur(u, v) = 1/(νT)・I(u, v)H(u) …(2)
【0040】
式(2)を変換して下式が得られる。
I(u, v) = νT/H(u)・Iblur(u, v) …(3)
【0041】
式(3)を逆フーリエ変換すると下式が得られる。
I(x, y) = iFFT{νT/H(u)・Iblur(u, v)} …(4)
【0042】
式(4)の右辺はすべて既知のパラメータであるから、式(4)により、振れを補正した画像I(x, y)が得られたことになる。ただし、開閉パターンh(t)のフーリエ変換値H(u)=0では除算が行えないため補正不可能になる。そこで、開閉パターンのフーリエ変換値H(u)が非ゼロになるように、開閉パターンh(t)を制御するのがコード化露光処理である。
【0043】
以下では、回転方向の振れ(回転振れ)による画像の暈けを補正する場合を例にして、コード化露光処理の基本的な流れを説明する。その後、本実施例におけるコード化露光処理を説明する。
【0044】
図4はコード化露光処理によって画像の暈けを補正する処理を説明するフローチャートである。まず、フラッタシャッタにより撮影した撮影データを入力する(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 …(5)
= 1/T・∫ωh(θ)/ω(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ …(6)
= 1/T・∫ωh'(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ …(7)
ここで、関数h(t)は開閉パターンを表し、シャッタ開は1、シャッタ閉は0、
積分範囲はt=0〜T、
積分範囲はω=0〜ω。
【0045】
式(5)から式(6)の変形では、積分変数を変換した。ω(t)=dθ/dtである。また、ω(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。同様に、h(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。また、式(7)において、h'(θ)=h(θ)/ω(θ)である。
【0046】
次に、シャッタの開閉パターンを示す露光情報を入力し(S402)、振れ角度θと時間の関係を示す回転振れ情報を入力する(S403)。そして、詳細は後述するが、回転振れ情報と露光情報に基づき、極座標上の点像分布関数(point spread function: PSF)であるh'(θ)を算出する(S404)。
【0047】
次に、撮像データを極座標上の画像に変換する(S405)。前述したように、この変換における直交座標系の原点は、回転振れ情報が示す回転の中心座標に一致させる。極座標変換により式(7)は式(8)に変換される。
Iblur(r, Θ) = 1/T・∫ωh'(θ)I(r, Θ-θ)dθ
= 1/T・(h'*I)(r, Θ) …(8)
ここで、式(7)における(x, y)はr(cosΘ, sinΘ)である。
【0048】
式(8)は、平行移動に対する振れと同じ式であり、PSFであるh'(θ)によるコンボリューションを行ったものと見做すことができる。ただし、式(8)は理論的な式であり、実際のデータはディジタル値であるから、実空間から極座標空間への変換には何らかの補間が必要になる。任意の補間方法を用いることができるが、ここではバイリニア法を用いるものとする。
【0049】
次に、詳細は後述するが、PSFの算出結果を基に式(8)のコンボリューションを打ち消すデコンボリューションを行う(S406)。デコンボリューションのアルゴリズムは、既存の任意のアルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズムなどが挙げられる。本実施例では、詳細は後述するが、開閉パターンを制御することでh'(θ)の形状をコントロールし、周波数空間上で除算を行うものとする。
【0050】
次に、デコンボリューションによってI(r, Θ)が得られるので、I(r, Θ)を実空間表示I(x, y)に逆変換する(S407)。この逆変換も、実空間から極座標空間への変換と同様、補間処理が必要になる。そして、I(x, y)を補正後の撮像データとして出力する(S408)。
【0051】
図5は画像の暈けの補正原理を概念的に表す図である。つまり、極座標変換によって、回転振れを角度Θ軸方向の振れ(横振れ)に変換し、画像の横振れをデコンボリューションによって除去する。そして、横振れを除去した画像を実空間に戻し、回転振れを除去した画像を得る。
【0052】
このように、フラッタシャッタによって得た画像について、フラッタシャッタの開閉パターン(露光情報)と回転振れ情報から、回転振れによる画像の暈けを補正することができる。なお、本実施例において、回転振れ情報は動き情報検出部426から、露光情報は露光条件生成部427からそれぞれ取得することができる。
【0053】
上記では、回転振れによる画像の暈けを補正対象にするため、撮像データを極座標に変換して処理を行う例を説明した。撮像データを極座標に変換せずに処理することで、所謂シフト振れと呼ばれる水平方向の振れ(横振れ)と垂直方向の振れ(縦振れ)による暈けを補正することも可能である。例えば、極座標へ変換する前にシフト振れによる暈けを補正し、その後、回転振れによる暈けの補正を行えばよい。
【0054】
●PSFの作成方法
図6はPSFの作成(S204)を説明するフローチャートである。まず、入力した回転振れ情報に基づき、角度θを時間で微分して角速度ω(t)を算出する(S401)。角速度ω(t)とθ(t)と組み合わせることにより、角速度をθの関数として表すことが可能になる。これをω(θ)とする。
【0055】
次に、入力した露光情報と回転振れ情報に基づき、関数h(t)をθの関数として取得する(S402)。これをh(θ)とする。次に、取得した情報に基づき、h'(θ)=h(θ)/ω(θ)をPSFとして算出する(S403)。式(7)に示すように、h'(θ)が極座標上のPSFである。
【0056】
図7は一般的な回転運動におけるPSFの一例を示す図で、横軸は角度(ラジアン)、縦軸はPSFの値を示している。開閉パターンを0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0とし、加速運動をしているとすると、ω(θ)が増大するのでPSFであるh'(θ)の値は減少する。
【0057】
●デコンボリューション
式(8)を周波数空間上に変換すると次式が得られる。
Iblur(f, ρ) = 1/T・H'(f, ρ)I(f, ρ) …(9)
ここで、fはrの周波数変換に対応する変数、
ρはΘの周波数変換に対応する変数。
【0058】
H'(f, ρ)は既知であるから、周波数空間上でIblur(f, ρ)をH'(f, ρ)で除算すれば、I(f, ρ)は原理的には求まる。しかし、ここには問題点があり、等角速度運動による振れを考え、ω(θ)が一定であるとして説明する。
【0059】
図8(a)は通常の露光条件である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合(フラッタシャッタではなく、露光期間において連続的にシャッタが開)のPSFの形状を示す図である。図8(b)は図8(a)に示すPSFの周波数特性を示す図である。なお、図8(a)において、横軸は角度(ラジアン)、縦軸はPSFの値を表す。また、図8(b)において、横軸は角度(ラジアン)、縦軸はH'(f, ρ)の絶対値を表す。
【0060】
図8(b)を参照すると、周期的に絶対値が0になる周波数が現れる。これは、その周波数に対応する情報の消失を表し、このような状態でデコンボリューションを行えば、情報が消失した周波数が存在することに対応する波形が現れる。そこで、情報の消失した周波数の発生を防ぐためにコード化露光を行う。言い換えれば、PSFの絶対値が0になる周波数の発生を防ぐために、露光期間において、開閉タイミングおよび開(または閉)の長さをランダムに制御して、フラッタシャッタを行う。
【0061】
図9(a)はコード化露光を行った場合のPSFの形状を示す図、図9(b)は図9(a)に示すPSFの周波数特性を示す図である。コード化露光を行うと、図9(b)に示すように、情報が消失する周波数は存在しないので、Iblur(f, ρ)をH'(f, ρ)で除算すれば、理論的に、完全なデコンボリューションが可能になる。
【0062】
図10(a)は回転振れによって暈けた画像(シミュレーション)を示し、図10(b)は回転振れによる暈けを補正した画像を示す。
【0063】
このように、回転振れ情報およびフラッタシャッタの開閉パターン、実空間と極座標空間の相互変換、および、デコンボリューションを用いて、一枚の画像分の撮像データから回転振れによる暈けを補正した画像を得ることができる。また、回転振れによる暈けの補正処理に必要な情報は、開閉パターン、振れ情報、開閉パターンに従って加算合成して生成した振れによる暈け画像であることがわかる。
【0064】
[露光量の補正]
図11はフラッタシャッタによる露光を説明する図である。図11(a)は適正な露光が得られる露光時間(適正露光時間)、シャッタを開いた状態を示す。図11(b)は適正露光時間の期間にフラッタシャッタを適用した状態を示す。フラッタシャッタによってシャッタを開閉すれば、適正露光時間の期間内に非露光期間が存在する。従って、図11(c)に示すように、フラッタシャッタによる露光量(露光期間の露光量の積分値)は、適正露光時間シャッタを開いた場合に比べて低下し、撮影画像は暗くなる。
【0065】
図12は露光条件生成部427による露光量の調整を説明するフローチャートである。露光条件生成部427は、測光部414から露光時間t1と絞り値f1を取得する(S101)。この露光時間t1と絞り値f1は、シャッタを連続開にする場合に適正露出が得られる適正露光時間と絞り値(以下、適正絞り値)を示す。
【0066】
次に、露光条件生成部427は、複数の周期性をもたないシャッタの開閉パターンのリストから撮影に使用する開閉パターンを例えばランダムに一つ選択する(S102)。なお、開閉パターンのリストは、例えば、CPU402が内蔵するROMなどの不揮発性メモリに格納されている。
【0067】
図13は開閉パターンのリストの一例を説明する図である。リストには、各開閉パターンに関連付けて、当該開閉パターンに対応するID、当該開閉パターンを適用した場合のシャッタ開時間の割合を示す開口割合が登録されている。開閉パターンの値1はシャッタ開を、値0はシャッタ閉を示す。
【0068】
また、リストには、開閉パターンとして、一般の撮影に用いる露光時間よりも充分に長い時間のパターンを登録する。なお、周期性を持たないパターンの設計には、例えば、周期が非常に長いことで知られているメルセンヌ・ツイスタのような疑似乱数生成方法を用いればよい。そして、生成した乱数が周期性を持たないことを検証し、開閉パターンとしてリストに登録する。勿論、開閉パターンの設計に疑似乱数を用いる必要はなく、最終的に生成された開閉パターンが周期性を持たなければよい。また、周期性の検証は、開閉パターンのPSFを周波数変換し、H'(f, ρ)の絶対値がゼロになるか否かで行う。
【0069】
次に、露光条件生成部427は、選択した開閉パターンに応じた露光量の調整量を計算する(S103)。例えば、図13に示すリストから開口割合が0.5の開閉パターンを選択した場合、シャッタを連続開にする場合に比べ、露光量は0.5倍に減少する。この場合、適正露出を得るには、露光量を二倍にする調整が必要である。同様に、開口割合が0.7のパターンを選択した場合は、露光量を1.43(=1/0.7)倍にする調整が必要である。つまり、選択した開閉パターンの開口割合の逆数が露光量の調整量である。
【0070】
次に、露光条件生成部427は、撮影モードに応じて処理を分岐する(S104)。ユーザが絞り値(F値)を設定する絞り優先モードの場合は処理をステップS111に進め、ユーザがシャッタ速度を設定するシャッタ速度優先モードの場合は処理をステップS121に進める。
【0071】
絞り優先モードの場合、露光条件生成部427は、ユーザが絞り値を設定するため、露光時間またはゲインを調整して露光量を調整するが、ゲイン調整による露光量の調整はノイズを増加させる場合がある。そこで、露光条件生成部427は、できる限り露光時間を増やして露光量を調整する(S111)。例えば、適正露光時間がt1、開閉パターンの開口割合がrとすると、露光時間にt1/rを設定する(例えばr=0.5の場合、露光時間は2×t1)。
【0072】
次に、露光条件生成部427は、t1/rが設定可能か否かを判定する(S112)。つまり、露光時間が段階的にしか設定できない場合や、t1/rが設定可能な最大露光時間を超える場合など、露光時間の増加だけでは露光量を調整することができない場合がある。その場合、設定可能な露光時間で最もt1/rに近い値の露光時間t2(t1<t2<t1/r)を設定する(S113)。そして、選択した開閉パターンのランダム位置からt1/rまたはt2に相当する時間分の開閉パターンを撮影に使用する開閉パターンとして切り出す(S114)。
【0073】
図14は絞り優先モードの場合の露光量の調整を説明する概念図である。図14に示すように、露光時間を調整した後の露光時間がt2の場合、撮影後の各画素の値をゲイン調整により(t1/r/t2)倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、リストから取得した開口割合rと、切り出した開閉パターンの開口割合r'は必ずしも一致しない。そこで、露光条件生成部427は、切り出した開閉パターンの開口割合r'を計算し、(t1/r'/t2)をゲイン調整値gに設定する(S115)。そして、切り出した開閉パターン、露光時間t1/rまたはt2、ユーザが設定した絞り値f、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402などに通知する(S116)。これにより、撮影が行われる。
【0074】
他方、シャッタ速度優先モードの場合、露光条件生成部427は、ユーザがシャッタ速度を設定するため、絞り値またはゲインを調整して露光量を調整するが、ゲイン調整による露光量の調整はノイズを増加させる場合がある。そこで、露光条件生成部427は、できる限り絞り値によって露光量を調整する(S121)。例えば、適正絞り値がf1、開閉パターンの開口割合がrとすると、絞りの開口面積を1/r倍にして入射する光量を増加する。つまり、絞り値を√r×f1にする(例えばr=0.5の場合、絞り値は√0.5×f1)。
【0075】
次に、露光条件生成部427は、絞りの開口面積を1/r倍にすることが可能か否かを判定する(S122)。つまり、絞り値が段階的にしか設定できない場合や、開放絞りを超える絞り値は設定できないなど、絞り値だけでは露光量を調整することができない場合がある。その場合、設定可能な絞り値で開口面積が最も√r・f1に近い絞り値f2(f1>f2>√r・f1)を設定する(S123)。そして、選択した開閉パターンのランダム位置からユーザが設定したシャッタ速度(露光時間)に相当する時間分の開閉パターンを撮影に使用する開閉パターンとして切り出す(S124)。
【0076】
図15はシャッタ速度優先モードの場合の露光量の調整を説明する概念図である。図15に示すように、絞り値を調整した後の絞り値がf2の場合、撮影後の各画素の値をゲイン調整により(f2/(√r・f1))倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、絞り優先モードの場合と同様に、リストから取得した開口割合rと、切り出した開閉パターンの開口割合r'は必ずしも一致しない。そこで、露光条件生成部427は、切り出した開閉パターンの開口割合r'を計算し、(f2/(√r'・f1))をゲイン調整値gに設定する(S125)。そして、切り出した開閉パターン、絞り値√r・f1またはf2、ユーザが設定した露光時間t、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402に通知する(S126)。これにより、撮影が行われる。
【0077】
このようにして、露光量を調整した撮影データに対して、コード化露光処理を施せば、振れを補正した適正露出の画像を得ることができる。つまり、コード化露光による振れの補正を行う際に問題となる露光量の不足を、開閉パターンと撮影モードに応じて補償することで適正露出の撮影画像を得ることができる上、ゲイン調整を最小限にしてノイズの増加(画質劣化)を抑えることができる。
【実施例2】
【0078】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【0079】
実施例1では、リストに登録された開閉パターンを一つ選択して撮影に使用する例を説明した。実施例2では、撮影時に開閉パターンを作成する方法を説明する。
【0080】
図16は実施例2の露光条件生成部427による露光量の調整を説明するフローチャートである。露光条件生成部427は、測光部414から適正露光時間t1と適正絞り値f1を取得し(S201)、開閉パターンによってシャッタが開いている割合を示す開口割合rを決定する(S202)。開口割合rは、例えば、撮影モード、適正露光時間、適正絞り値などの撮影条件、あるいは、被写体に応じて決定する。
【0081】
例えば、ポートレートモードを利用するポートレート写真の撮影は、撮影画像中に平坦な画像領域が多数現れ、低周波成分が多い画像が得られる場合が多い。この場合、広い周波数領域に亘って応答値をもつようなランダムパターンを開閉パターンに使用すると、撮像データが不必要な周波数成分をもち、振れを補正した画像にノイズが目立つ場合がある。逆に、低周波成分を多くもつパターンを開閉パターンに使用すると、ノイズを抑えることができる。
【0082】
一般に、開口割合が0.5の場合にパターンは最も高周波成分をもち、開口割合0.5を境として開口割合が高いほどパターンの低周波側にパワーをもつ。そこで、ポートレートモードによる撮影のように、低周波成分を多く含む撮影画像が得られると考えられる場合は、開口割合を高めに設定して、撮影モードに応じた周波数特性の開閉パターンにすることができる。勿論、開口割合を高くすることで、コード化露光による露光量の減少を抑制することもできる。
【0083】
次に、露光条件生成部427は、決定した開口割合rに応じた露光量の調整量(1/r)を計算する(S203)。そして、撮影モードに応じて処理を分岐する(S204)。絞り優先モードの場合は処理をステップS211に進め、シャッタ速度優先モードの場合は処理をステップS221に進める。
【0084】
絞り優先モードの場合、露光条件生成部427は、実施例1のステップS111〜S113と同様に、露光時間を調整し(S211)、調整後の露光時間t1/rが設定可能か否かを判定する(S212)。そして、設定できない場合は、設定可能な露光時間で最もt1/rに近い値の露光時間t2(t1<t2<t1/r)を設定する(S213)。そして、決定した開口割合rに基づき、露光時間t1/rまたはt2の長さの開閉パターンを生成する(S214)。
【0085】
図14に示すように、露光時間を調整した後の露光時間がt2の場合、撮影後の各画素の値をゲイン調整により(t1/r/t2)倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、例えば乱数から生成した開閉パターンの開口割合r'は、決定した開口割合rに必ずしも一致しない。そこで、露光条件生成部427は、生成した開閉パターンの開口割合r'を計算し、(t1/r'/t2)をゲイン調整値gに設定する(S215)。そして、生成した開閉パターン、露光時間t1/rまたはt2、ユーザが設定した絞り値f、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402などに通知する(S216)。これにより、撮影が行われる。
【0086】
他方、シャッタ速度優先モードの場合、露光条件生成部427は、実施例1のステップS121〜S123と同様に、絞り値によって露光量を調整し(S221)、絞りの開口面積を1/r倍にすることが可能か否かを判定する(S222)。そして、1/r倍にすることが不可能であれば、設定可能な絞り値で開口面積が最も√r・f1に近い絞り値f2(f1>f2>√r・f1)を設定する(S223)。そして、決定した開口割合rに基づき、ユーザが設定したシャッタ速度(露光時間)t1の長さの開閉パターンを生成する(S224)。
【0087】
図15に示すように、絞り値を調整した後の絞り値がf2の場合、撮影後の各画素の値をゲイン調整により(f2/(√r・f1))倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、絞り優先モードの場合と同様に、例えば乱数から生成した開閉パターンの開口割合r'は、決定した開口割合rに必ずしも一致しない。そこで、露光条件生成部427は、切り出した開閉パターンの開口割合r'を計算し、(f2/(√r'・f2))をゲイン調整値に設定する(S225)。そして、生成した開閉パターン、絞り値f1/rまたはf2、ユーザが設定した露光時間t、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402に通知する(S226)。これにより、撮影が行われる。
【0088】
[他の実施例]
本発明の目的は、次のようにしても達成される。上記実施例の機能または先に説明したフローチャートの処理や制御を実現するプログラムを記録した記録媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(CPUやMPU)に前記プログラムを実行させる。この場合、記録媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのプログラムと、そのプログラムを記憶する、コンピュータが読み取り可能な記録媒体は本発明を構成する。
【技術分野】
【0001】
本発明は、撮像データの振れ補正に関する。
【背景技術】
【0002】
ディジタル画像は、パーソナルコンピュータを利用して簡単に100%超の拡大表示が可能であり、拡大画像においては僅かな手振れによる画像の暈けも目立つ。そのため、ディジタルカメラの撮像デバイスの高解像度化に伴い、撮影時の手振れを補正する処理が注目されている。
【0003】
手振れの補正方法には、ハードウェアによる補正方法と、ソフトウェアによる補正方法がある。ハードウェアによる補正方法は、カメラにジャイロセンサを搭載し、露光中、ジャイロセンサの出力信号に基づき、カメラの振動を打ち消すようにレンズや撮像デバイスを駆動して手振れを低減する。レンズ光学系による手振れ補正は、特許文献1などに述べられている。
【0004】
ハードウェアによる補正方法は、部品点数の増加、製造コストの増加という問題がある。安価なディジタルカメラで同様の機能を実現する場合、ソフトウェアによる補正方法が望まれる。
【0005】
ソフトウェアによる補正方法には、短時間の露光によって得た画像(以下、短時間露光画像)を複数用意して合成する方法がある(例えば特許文献2)。特許文献2の発明は、手振れを許容可能な短時間の露光時間によって、連続的に撮影した複数の画像の相互の振れを補正し、合成することにより手振れ補正を実現する。
【0006】
また、シャッタの開閉パターンをコード化し、コード化した開閉パターンを利用することで手振れを補正する技術も開発されている。例えば、非特許文献1が記載する発明もその一つである。非特許文献1の発明は、ランダムにコード化された露出時間で画像を撮影し、露出時間コードの逆行列を利用して手振れを補正する。
【0007】
非特許文献1は、coded exposure(以下、コード化露光)と呼ばれる技術を用いて手振れなどによる画像の暈けを補正する。コード化露光は、指定された露光時間の間にシャッタを不規則に開閉し(以下、フラッタシャッタ(flutter shutter))、得られた画像とシャッタの開閉パターンの相関を用いて画像の暈けを補正する技術である。
【0008】
しかし、フラッタシャッタによる露光量(露光期間の露光量の積分値)は、適正露光時間シャッタを開いた場合に比べて低下し、撮影画像は暗くなる。また、ゲイン調整により撮影画像の明るさを増すことはできるが、ノイズの増加により画質が劣化する場合がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2002-214657公報
【特許文献2】特開2007-243774公報
【非特許文献】
【0010】
【非特許文献1】Coded Exposure Photography: Motion Deblurring using Fluttered Shutter, ACM SIGGRAPH 2006
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、コード化露光処理における露光量の不足とノイズの増加を抑えることを目的とする。
【課題を解決するための手段】
【0012】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【0013】
本発明にかかる画像処理は、コード化露光処理により撮像装置の撮像データの振れを補正する際に、前記撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力し、前記コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、前記露光時間または絞り値を調整し、前記調整した露光時間または絞り値による露光量の不足分に相当する、前記撮像データのゲイン調整値を設定し、前記開閉パターン、前記露光時間、前記絞り値に基づき前記撮像装置の撮影手段による撮像を制御することを特徴とする。
【発明の効果】
【0014】
本発明によれば、コード化露光処理における露光量の不足とノイズの増加を抑えることができる。
【図面の簡単な説明】
【0015】
【図1】ディジタルカメラの外観図、
【図2】ディジタルカメラの垂直断面図、
【図3】ディジタルカメラの制御、撮影および画像処理に関する構成例を示すブロック図、
【図4】コード化露光処理によって画像の暈けを補正する処理を説明するフローチャート、
【図5】画像の暈けの補正原理を概念的に表す図、
【図6】PSFの作成を説明するフローチャート、
【図7】一般的な回転運動におけるPSFの一例を示す図、
【図8】通常の露光条件である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合のPSFの形状、および、PSFの周波数特性を示す図、
【図9】コード化露光を行った場合のPSFの形状、および、PSFの周波数特性を示す図、
【図10】回転振れによって暈けた画像、および、回転振れによる暈けを補正した画像を示す図、
【図11】フラッタシャッタによる露光を説明する図、
【図12】露光条件生成部による露光量の調整を説明するフローチャート、
【図13】開閉パターンのリストの一例を説明する図、
【図14】絞り優先モードの場合の露光量の調整を説明する概念図、
【図15】シャッタ速度優先モードの場合の露光量の調整を説明する概念図、
【図16】実施例2の露光条件生成部による露光量の調整を説明するフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。なお、以下では、ディジタルカメラに手振れを補正する構成を組み込む例を説明する。
【実施例1】
【0017】
[カメラの構成]
図1はディジタルカメラの外観図である。カメラボディ100の上部には、ビューファインダの接眼窓111、自動露出(AE)ロックボタン114、自動焦点(AF)の測距点を選択するボタン113、撮影操作をするためのレリーズボタン112がある。また、撮影モード選択ダイヤル117、外部表示部409、電子ダイヤル411などがある。
【0018】
電子ダイヤル411は、他の操作ボタンと併用してカメラに数値を入力したり、撮影モードを切り換えたりするための多機能信号入力部である。また、LCDパネルの外部表示部409には、シャッタスピード、絞り、撮影モードなどの撮影条件や、その他の情報が表示される。
【0019】
カメラボディ100の背面には、カメラが捉えた画像、撮影した画像、各種設定画面などを表示するLCDモニタ417、LCDモニタ417の表示をオンオフするためのスイッチ121、十字キー116、メニューボタン124などがある。なお、LCDモニタ417は透過型であるため、LCDモニタ417の駆動だけではユーザが画像を視認することはできない。そのため、LCDモニタ417の裏面には、後述するように、バックライトが必要である。
【0020】
十字キー116は、上下左右にそれぞれ配置された四つのボタンと、中央部に配置された設定ボタンを有し、LCDモニタ417に表示されるメニュー項目などの選択や実行を指示するために用いられる。
【0021】
メニューボタン124は、LCDモニタ417にメニュー画面を表示させるためのボタンである。例えば、撮影モードを選択、設定する場合、メニューボタン124を押した後、十字キー116の上下左右のボタンを操作して希望の撮影モードを選択し、希望の撮影モードが選択された状態で設定ボタンを押すことで、撮影モードの設定が完了する。なお、メニューボタン124と十字キー116は、後述するAFモードの設定にも使用される。
【0022】
図2はディジタルカメラの垂直断面図である。撮像光学系の撮影レンズ200は、レンズマウント202を介して、カメラボディ100に着脱可能である。
【0023】
撮影光軸201を中心とする撮影光路中に配置されたミラー203は、撮影レンズ200からの被写体光をファインダ光学系に導く位置(斜設位置)と、撮影光路外の退避位置の間でクイックリターンが可能である。
【0024】
ミラー203によってファインダ光学系に導かれた被写体光は、ピント板204上に結像する。そして、ピント板204を通過した被写体光は、ビューファインダの視認性を向上させるコンデンサレンズ205、正立正像を復元するペンタゴナルダハプリズム206を通り、接眼レンズ208および測光センサ207に導かれる。
【0025】
後幕209と先幕210は、フォーカルプレーンシャッタ(機械式シャッタ)を構成し、両幕209と210の開閉によって、その後方に配置された、CCDやCMOSセンサである撮像デバイス418を必要時間露光する。撮像デバイス418は、プリント板211に保持されている。プリント板211の後方には、さらにプリント板215が配置され、プリント板215の反対面にLCDモニタ417とバックライト416が配置されている。
【0026】
さらに、カメラボディ100内には、画像データが記録される記録メディア419aと、携帯用電源である電池217がある。なお、記録メディア419aと電池217は、カメラボディ100に着脱可能である。
【0027】
図3はディジタルカメラの制御、撮影および画像処理に関する構成例を示すブロック図である。マイクロコンピュータ(CPU)402は、撮像デバイス418が出力する画像データの処理や、LCDモニタ417の表示制御をはじめとし、カメラ全体の動作を制御する。
【0028】
スイッチ(SW1)405は、レリーズボタン112を半分押した状態(半押し状態)で閉になる。スイッチ(SW1)405が閉になるとカメラは撮影準備状態になる。スイッチ(SW2)406は、レリーズボタン112を最後まで押込んだ状態(全押し状態)で閉になる。スイッチ(SW2)406が閉になるとカメラボディ100は撮影動作を開始する。
【0029】
レンズ制御部407は、撮影レンズ200と通信し、AF時の撮影レンズ200の駆動制御や絞り羽根の駆動制御を行う。外部表示制御部408は、外部表示部409や、ファインダ内の表示部(不図示)を制御する。スイッチセンス部410は、上述した電子ダイヤル411を含む多数のスイッチやキーから出力される信号をCPU402に伝えるためのインタフェイスである。
【0030】
ストロボ制御部412は、X接点412aを介して接地されており、外部ストロボの発光および調光制御を行う。記録メディアドライブ419には、例えばハードディスクやメモリカードなどの記録メディア419aが装着される。
【0031】
測距部413は、AF用に被写体に対するデフォーカス量を検出する。測光部414は、被写体の輝度を測定し、絞りと露光時間を決定する。シャッタ制御部415は、撮像デバイス418に対して適正な露光が行われるように、機械式シャッタを制御する。LCDモニタ417とバックライト416は、上述したように表示装置を構成する。
【0032】
画像処理部425は、ディジタル信号処理プロセッサ(DSP)などから構成される。動き情報検出部426は、ジャイロセンサによって手振れ等によるカメラの動きを検出する。動き情報検出部426の出力は、カメラの振動を打ち消すように撮影レンズ200や撮像デバイス418を駆動するために利用される。
【0033】
露光条件生成部427は、詳細は後述するが、振れによる画像の暈けを補正するための露光条件を生成し、生成した露光条件に基づき電子シャッタを制御する。なお、電子シャッタの制御は、撮像デバイス418に供給する掃出パルスと読出パルスによって行う。
【0034】
さらに、CPU402には、アナログ-ディジタル変換器(A/D)423、画像データをバッファするバッファメモリ424などが接続されている。
【0035】
[画像データの取得]
A/D423および画像処理部425は、測光部414によって決められた時間に基づき露光条件生成部427の制御によって露光された画像を処理し、被写体の複数の撮像データを取得する。
【0036】
なお、撮像データは、撮像部である撮像デバイス418から出力された信号をA/D423によりディジタルデータに変換したデモザイキング(現像処理)前のデータ(以下、RAWデータと呼ぶ場合がある)である。なお、少なくとも撮像デバイス418は撮像部を構成するが、撮像デバイス418とA/D423を合わせて、さらに撮影レンズ200を合わせて、撮像部と呼ぶ場合がある。あるいは、カメラボディ100を撮像部と呼ぶ場合がある。
【0037】
振れ補正部428は、動き情報検出部426から得られる動き情報と、開閉パターン生成部429が生成したシャッタの開閉パターンを用いて撮影画像の手振れを補正する。画像処理部425は、振れ補正部428によって補正された撮像データをデモザイキングして画像データを生成し、生成した画像データに各種の画像処理を施し、画像処理後の画像データを記録メディアに格納する。なお、デモザイキング前の撮像データを記録メディアに格納してもよい。
【0038】
[コード化露光処理の概要」
振れ補正部428は、コード化露光処理により、手振れなどによる画像の暈けを補正する。手振れによる画像の暈けは、畳込積分の形式で表現することができる。垂直方向への手振れを例にとると、暈け画像は下式のように表すことができる。
Iblur(x, y) = 1/T・∫0TI(x, y+νt)h(t)dt …(1)
ここで、Iblur(x, y)は暈け画像、
Tは露光時間、
νは振れの速度、
I(x, y+vt)は被写体像、
h(t)は開閉パターン。
【0039】
式(1)をフーリエ変換すると下式が得られる。
Iblur(u, v) = 1/(νT)・I(u, v)H(u) …(2)
【0040】
式(2)を変換して下式が得られる。
I(u, v) = νT/H(u)・Iblur(u, v) …(3)
【0041】
式(3)を逆フーリエ変換すると下式が得られる。
I(x, y) = iFFT{νT/H(u)・Iblur(u, v)} …(4)
【0042】
式(4)の右辺はすべて既知のパラメータであるから、式(4)により、振れを補正した画像I(x, y)が得られたことになる。ただし、開閉パターンh(t)のフーリエ変換値H(u)=0では除算が行えないため補正不可能になる。そこで、開閉パターンのフーリエ変換値H(u)が非ゼロになるように、開閉パターンh(t)を制御するのがコード化露光処理である。
【0043】
以下では、回転方向の振れ(回転振れ)による画像の暈けを補正する場合を例にして、コード化露光処理の基本的な流れを説明する。その後、本実施例におけるコード化露光処理を説明する。
【0044】
図4はコード化露光処理によって画像の暈けを補正する処理を説明するフローチャートである。まず、フラッタシャッタにより撮影した撮影データを入力する(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 …(5)
= 1/T・∫ωh(θ)/ω(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ …(6)
= 1/T・∫ωh'(θ)・I{x・cosθ+y・sinθ, -x・sinθ+y・cosθ}dθ …(7)
ここで、関数h(t)は開閉パターンを表し、シャッタ開は1、シャッタ閉は0、
積分範囲はt=0〜T、
積分範囲はω=0〜ω。
【0045】
式(5)から式(6)の変形では、積分変数を変換した。ω(t)=dθ/dtである。また、ω(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。同様に、h(θ)は、tとθの関係を利用してθを変数に、h(t)を書き直した関数である。また、式(7)において、h'(θ)=h(θ)/ω(θ)である。
【0046】
次に、シャッタの開閉パターンを示す露光情報を入力し(S402)、振れ角度θと時間の関係を示す回転振れ情報を入力する(S403)。そして、詳細は後述するが、回転振れ情報と露光情報に基づき、極座標上の点像分布関数(point spread function: PSF)であるh'(θ)を算出する(S404)。
【0047】
次に、撮像データを極座標上の画像に変換する(S405)。前述したように、この変換における直交座標系の原点は、回転振れ情報が示す回転の中心座標に一致させる。極座標変換により式(7)は式(8)に変換される。
Iblur(r, Θ) = 1/T・∫ωh'(θ)I(r, Θ-θ)dθ
= 1/T・(h'*I)(r, Θ) …(8)
ここで、式(7)における(x, y)はr(cosΘ, sinΘ)である。
【0048】
式(8)は、平行移動に対する振れと同じ式であり、PSFであるh'(θ)によるコンボリューションを行ったものと見做すことができる。ただし、式(8)は理論的な式であり、実際のデータはディジタル値であるから、実空間から極座標空間への変換には何らかの補間が必要になる。任意の補間方法を用いることができるが、ここではバイリニア法を用いるものとする。
【0049】
次に、詳細は後述するが、PSFの算出結果を基に式(8)のコンボリューションを打ち消すデコンボリューションを行う(S406)。デコンボリューションのアルゴリズムは、既存の任意のアルゴリズムを用いればよい。例えば、周波数空間上での除算、Lucy-Richardsonのアルゴリズム、Wienerフィルタを用いたアルゴリズム、正則化フィルタを用いたアルゴリズムなどが挙げられる。本実施例では、詳細は後述するが、開閉パターンを制御することでh'(θ)の形状をコントロールし、周波数空間上で除算を行うものとする。
【0050】
次に、デコンボリューションによってI(r, Θ)が得られるので、I(r, Θ)を実空間表示I(x, y)に逆変換する(S407)。この逆変換も、実空間から極座標空間への変換と同様、補間処理が必要になる。そして、I(x, y)を補正後の撮像データとして出力する(S408)。
【0051】
図5は画像の暈けの補正原理を概念的に表す図である。つまり、極座標変換によって、回転振れを角度Θ軸方向の振れ(横振れ)に変換し、画像の横振れをデコンボリューションによって除去する。そして、横振れを除去した画像を実空間に戻し、回転振れを除去した画像を得る。
【0052】
このように、フラッタシャッタによって得た画像について、フラッタシャッタの開閉パターン(露光情報)と回転振れ情報から、回転振れによる画像の暈けを補正することができる。なお、本実施例において、回転振れ情報は動き情報検出部426から、露光情報は露光条件生成部427からそれぞれ取得することができる。
【0053】
上記では、回転振れによる画像の暈けを補正対象にするため、撮像データを極座標に変換して処理を行う例を説明した。撮像データを極座標に変換せずに処理することで、所謂シフト振れと呼ばれる水平方向の振れ(横振れ)と垂直方向の振れ(縦振れ)による暈けを補正することも可能である。例えば、極座標へ変換する前にシフト振れによる暈けを補正し、その後、回転振れによる暈けの補正を行えばよい。
【0054】
●PSFの作成方法
図6はPSFの作成(S204)を説明するフローチャートである。まず、入力した回転振れ情報に基づき、角度θを時間で微分して角速度ω(t)を算出する(S401)。角速度ω(t)とθ(t)と組み合わせることにより、角速度をθの関数として表すことが可能になる。これをω(θ)とする。
【0055】
次に、入力した露光情報と回転振れ情報に基づき、関数h(t)をθの関数として取得する(S402)。これをh(θ)とする。次に、取得した情報に基づき、h'(θ)=h(θ)/ω(θ)をPSFとして算出する(S403)。式(7)に示すように、h'(θ)が極座標上のPSFである。
【0056】
図7は一般的な回転運動におけるPSFの一例を示す図で、横軸は角度(ラジアン)、縦軸はPSFの値を示している。開閉パターンを0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0とし、加速運動をしているとすると、ω(θ)が増大するのでPSFであるh'(θ)の値は減少する。
【0057】
●デコンボリューション
式(8)を周波数空間上に変換すると次式が得られる。
Iblur(f, ρ) = 1/T・H'(f, ρ)I(f, ρ) …(9)
ここで、fはrの周波数変換に対応する変数、
ρはΘの周波数変換に対応する変数。
【0058】
H'(f, ρ)は既知であるから、周波数空間上でIblur(f, ρ)をH'(f, ρ)で除算すれば、I(f, ρ)は原理的には求まる。しかし、ここには問題点があり、等角速度運動による振れを考え、ω(θ)が一定であるとして説明する。
【0059】
図8(a)は通常の露光条件である0≦t≦Tにおいてh(t)=1、それ以外はh(t)=0の場合(フラッタシャッタではなく、露光期間において連続的にシャッタが開)のPSFの形状を示す図である。図8(b)は図8(a)に示すPSFの周波数特性を示す図である。なお、図8(a)において、横軸は角度(ラジアン)、縦軸はPSFの値を表す。また、図8(b)において、横軸は角度(ラジアン)、縦軸はH'(f, ρ)の絶対値を表す。
【0060】
図8(b)を参照すると、周期的に絶対値が0になる周波数が現れる。これは、その周波数に対応する情報の消失を表し、このような状態でデコンボリューションを行えば、情報が消失した周波数が存在することに対応する波形が現れる。そこで、情報の消失した周波数の発生を防ぐためにコード化露光を行う。言い換えれば、PSFの絶対値が0になる周波数の発生を防ぐために、露光期間において、開閉タイミングおよび開(または閉)の長さをランダムに制御して、フラッタシャッタを行う。
【0061】
図9(a)はコード化露光を行った場合のPSFの形状を示す図、図9(b)は図9(a)に示すPSFの周波数特性を示す図である。コード化露光を行うと、図9(b)に示すように、情報が消失する周波数は存在しないので、Iblur(f, ρ)をH'(f, ρ)で除算すれば、理論的に、完全なデコンボリューションが可能になる。
【0062】
図10(a)は回転振れによって暈けた画像(シミュレーション)を示し、図10(b)は回転振れによる暈けを補正した画像を示す。
【0063】
このように、回転振れ情報およびフラッタシャッタの開閉パターン、実空間と極座標空間の相互変換、および、デコンボリューションを用いて、一枚の画像分の撮像データから回転振れによる暈けを補正した画像を得ることができる。また、回転振れによる暈けの補正処理に必要な情報は、開閉パターン、振れ情報、開閉パターンに従って加算合成して生成した振れによる暈け画像であることがわかる。
【0064】
[露光量の補正]
図11はフラッタシャッタによる露光を説明する図である。図11(a)は適正な露光が得られる露光時間(適正露光時間)、シャッタを開いた状態を示す。図11(b)は適正露光時間の期間にフラッタシャッタを適用した状態を示す。フラッタシャッタによってシャッタを開閉すれば、適正露光時間の期間内に非露光期間が存在する。従って、図11(c)に示すように、フラッタシャッタによる露光量(露光期間の露光量の積分値)は、適正露光時間シャッタを開いた場合に比べて低下し、撮影画像は暗くなる。
【0065】
図12は露光条件生成部427による露光量の調整を説明するフローチャートである。露光条件生成部427は、測光部414から露光時間t1と絞り値f1を取得する(S101)。この露光時間t1と絞り値f1は、シャッタを連続開にする場合に適正露出が得られる適正露光時間と絞り値(以下、適正絞り値)を示す。
【0066】
次に、露光条件生成部427は、複数の周期性をもたないシャッタの開閉パターンのリストから撮影に使用する開閉パターンを例えばランダムに一つ選択する(S102)。なお、開閉パターンのリストは、例えば、CPU402が内蔵するROMなどの不揮発性メモリに格納されている。
【0067】
図13は開閉パターンのリストの一例を説明する図である。リストには、各開閉パターンに関連付けて、当該開閉パターンに対応するID、当該開閉パターンを適用した場合のシャッタ開時間の割合を示す開口割合が登録されている。開閉パターンの値1はシャッタ開を、値0はシャッタ閉を示す。
【0068】
また、リストには、開閉パターンとして、一般の撮影に用いる露光時間よりも充分に長い時間のパターンを登録する。なお、周期性を持たないパターンの設計には、例えば、周期が非常に長いことで知られているメルセンヌ・ツイスタのような疑似乱数生成方法を用いればよい。そして、生成した乱数が周期性を持たないことを検証し、開閉パターンとしてリストに登録する。勿論、開閉パターンの設計に疑似乱数を用いる必要はなく、最終的に生成された開閉パターンが周期性を持たなければよい。また、周期性の検証は、開閉パターンのPSFを周波数変換し、H'(f, ρ)の絶対値がゼロになるか否かで行う。
【0069】
次に、露光条件生成部427は、選択した開閉パターンに応じた露光量の調整量を計算する(S103)。例えば、図13に示すリストから開口割合が0.5の開閉パターンを選択した場合、シャッタを連続開にする場合に比べ、露光量は0.5倍に減少する。この場合、適正露出を得るには、露光量を二倍にする調整が必要である。同様に、開口割合が0.7のパターンを選択した場合は、露光量を1.43(=1/0.7)倍にする調整が必要である。つまり、選択した開閉パターンの開口割合の逆数が露光量の調整量である。
【0070】
次に、露光条件生成部427は、撮影モードに応じて処理を分岐する(S104)。ユーザが絞り値(F値)を設定する絞り優先モードの場合は処理をステップS111に進め、ユーザがシャッタ速度を設定するシャッタ速度優先モードの場合は処理をステップS121に進める。
【0071】
絞り優先モードの場合、露光条件生成部427は、ユーザが絞り値を設定するため、露光時間またはゲインを調整して露光量を調整するが、ゲイン調整による露光量の調整はノイズを増加させる場合がある。そこで、露光条件生成部427は、できる限り露光時間を増やして露光量を調整する(S111)。例えば、適正露光時間がt1、開閉パターンの開口割合がrとすると、露光時間にt1/rを設定する(例えばr=0.5の場合、露光時間は2×t1)。
【0072】
次に、露光条件生成部427は、t1/rが設定可能か否かを判定する(S112)。つまり、露光時間が段階的にしか設定できない場合や、t1/rが設定可能な最大露光時間を超える場合など、露光時間の増加だけでは露光量を調整することができない場合がある。その場合、設定可能な露光時間で最もt1/rに近い値の露光時間t2(t1<t2<t1/r)を設定する(S113)。そして、選択した開閉パターンのランダム位置からt1/rまたはt2に相当する時間分の開閉パターンを撮影に使用する開閉パターンとして切り出す(S114)。
【0073】
図14は絞り優先モードの場合の露光量の調整を説明する概念図である。図14に示すように、露光時間を調整した後の露光時間がt2の場合、撮影後の各画素の値をゲイン調整により(t1/r/t2)倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、リストから取得した開口割合rと、切り出した開閉パターンの開口割合r'は必ずしも一致しない。そこで、露光条件生成部427は、切り出した開閉パターンの開口割合r'を計算し、(t1/r'/t2)をゲイン調整値gに設定する(S115)。そして、切り出した開閉パターン、露光時間t1/rまたはt2、ユーザが設定した絞り値f、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402などに通知する(S116)。これにより、撮影が行われる。
【0074】
他方、シャッタ速度優先モードの場合、露光条件生成部427は、ユーザがシャッタ速度を設定するため、絞り値またはゲインを調整して露光量を調整するが、ゲイン調整による露光量の調整はノイズを増加させる場合がある。そこで、露光条件生成部427は、できる限り絞り値によって露光量を調整する(S121)。例えば、適正絞り値がf1、開閉パターンの開口割合がrとすると、絞りの開口面積を1/r倍にして入射する光量を増加する。つまり、絞り値を√r×f1にする(例えばr=0.5の場合、絞り値は√0.5×f1)。
【0075】
次に、露光条件生成部427は、絞りの開口面積を1/r倍にすることが可能か否かを判定する(S122)。つまり、絞り値が段階的にしか設定できない場合や、開放絞りを超える絞り値は設定できないなど、絞り値だけでは露光量を調整することができない場合がある。その場合、設定可能な絞り値で開口面積が最も√r・f1に近い絞り値f2(f1>f2>√r・f1)を設定する(S123)。そして、選択した開閉パターンのランダム位置からユーザが設定したシャッタ速度(露光時間)に相当する時間分の開閉パターンを撮影に使用する開閉パターンとして切り出す(S124)。
【0076】
図15はシャッタ速度優先モードの場合の露光量の調整を説明する概念図である。図15に示すように、絞り値を調整した後の絞り値がf2の場合、撮影後の各画素の値をゲイン調整により(f2/(√r・f1))倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、絞り優先モードの場合と同様に、リストから取得した開口割合rと、切り出した開閉パターンの開口割合r'は必ずしも一致しない。そこで、露光条件生成部427は、切り出した開閉パターンの開口割合r'を計算し、(f2/(√r'・f1))をゲイン調整値gに設定する(S125)。そして、切り出した開閉パターン、絞り値√r・f1またはf2、ユーザが設定した露光時間t、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402に通知する(S126)。これにより、撮影が行われる。
【0077】
このようにして、露光量を調整した撮影データに対して、コード化露光処理を施せば、振れを補正した適正露出の画像を得ることができる。つまり、コード化露光による振れの補正を行う際に問題となる露光量の不足を、開閉パターンと撮影モードに応じて補償することで適正露出の撮影画像を得ることができる上、ゲイン調整を最小限にしてノイズの増加(画質劣化)を抑えることができる。
【実施例2】
【0078】
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【0079】
実施例1では、リストに登録された開閉パターンを一つ選択して撮影に使用する例を説明した。実施例2では、撮影時に開閉パターンを作成する方法を説明する。
【0080】
図16は実施例2の露光条件生成部427による露光量の調整を説明するフローチャートである。露光条件生成部427は、測光部414から適正露光時間t1と適正絞り値f1を取得し(S201)、開閉パターンによってシャッタが開いている割合を示す開口割合rを決定する(S202)。開口割合rは、例えば、撮影モード、適正露光時間、適正絞り値などの撮影条件、あるいは、被写体に応じて決定する。
【0081】
例えば、ポートレートモードを利用するポートレート写真の撮影は、撮影画像中に平坦な画像領域が多数現れ、低周波成分が多い画像が得られる場合が多い。この場合、広い周波数領域に亘って応答値をもつようなランダムパターンを開閉パターンに使用すると、撮像データが不必要な周波数成分をもち、振れを補正した画像にノイズが目立つ場合がある。逆に、低周波成分を多くもつパターンを開閉パターンに使用すると、ノイズを抑えることができる。
【0082】
一般に、開口割合が0.5の場合にパターンは最も高周波成分をもち、開口割合0.5を境として開口割合が高いほどパターンの低周波側にパワーをもつ。そこで、ポートレートモードによる撮影のように、低周波成分を多く含む撮影画像が得られると考えられる場合は、開口割合を高めに設定して、撮影モードに応じた周波数特性の開閉パターンにすることができる。勿論、開口割合を高くすることで、コード化露光による露光量の減少を抑制することもできる。
【0083】
次に、露光条件生成部427は、決定した開口割合rに応じた露光量の調整量(1/r)を計算する(S203)。そして、撮影モードに応じて処理を分岐する(S204)。絞り優先モードの場合は処理をステップS211に進め、シャッタ速度優先モードの場合は処理をステップS221に進める。
【0084】
絞り優先モードの場合、露光条件生成部427は、実施例1のステップS111〜S113と同様に、露光時間を調整し(S211)、調整後の露光時間t1/rが設定可能か否かを判定する(S212)。そして、設定できない場合は、設定可能な露光時間で最もt1/rに近い値の露光時間t2(t1<t2<t1/r)を設定する(S213)。そして、決定した開口割合rに基づき、露光時間t1/rまたはt2の長さの開閉パターンを生成する(S214)。
【0085】
図14に示すように、露光時間を調整した後の露光時間がt2の場合、撮影後の各画素の値をゲイン調整により(t1/r/t2)倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、例えば乱数から生成した開閉パターンの開口割合r'は、決定した開口割合rに必ずしも一致しない。そこで、露光条件生成部427は、生成した開閉パターンの開口割合r'を計算し、(t1/r'/t2)をゲイン調整値gに設定する(S215)。そして、生成した開閉パターン、露光時間t1/rまたはt2、ユーザが設定した絞り値f、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402などに通知する(S216)。これにより、撮影が行われる。
【0086】
他方、シャッタ速度優先モードの場合、露光条件生成部427は、実施例1のステップS121〜S123と同様に、絞り値によって露光量を調整し(S221)、絞りの開口面積を1/r倍にすることが可能か否かを判定する(S222)。そして、1/r倍にすることが不可能であれば、設定可能な絞り値で開口面積が最も√r・f1に近い絞り値f2(f1>f2>√r・f1)を設定する(S223)。そして、決定した開口割合rに基づき、ユーザが設定したシャッタ速度(露光時間)t1の長さの開閉パターンを生成する(S224)。
【0087】
図15に示すように、絞り値を調整した後の絞り値がf2の場合、撮影後の各画素の値をゲイン調整により(f2/(√r・f1))倍にすれば露出の不足分を補って適正露出に調整することができる。しかし、絞り優先モードの場合と同様に、例えば乱数から生成した開閉パターンの開口割合r'は、決定した開口割合rに必ずしも一致しない。そこで、露光条件生成部427は、切り出した開閉パターンの開口割合r'を計算し、(f2/(√r'・f2))をゲイン調整値に設定する(S225)。そして、生成した開閉パターン、絞り値f1/rまたはf2、ユーザが設定した露光時間t、ゲイン調整値gをシャッタ制御部415、振れ補正部428、CPU402に通知する(S226)。これにより、撮影が行われる。
【0088】
[他の実施例]
本発明の目的は、次のようにしても達成される。上記実施例の機能または先に説明したフローチャートの処理や制御を実現するプログラムを記録した記録媒体をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(CPUやMPU)に前記プログラムを実行させる。この場合、記録媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのプログラムと、そのプログラムを記憶する、コンピュータが読み取り可能な記録媒体は本発明を構成する。
【特許請求の範囲】
【請求項1】
コード化露光処理により撮像装置の撮像データの振れを補正する画像処理装置であって、
前記撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力する入力手段と、
前記コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、前記露光時間または絞り値を調整する調整手段と、
前記調整した露光時間または絞り値による露光量の不足分に相当する、前記撮像データのゲイン調整値を設定する設定手段と、
前記開閉パターン、前記露光時間、前記絞り値に基づき前記撮像装置の撮影手段による撮像を制御する制御手段を有することを特徴とする画像処理装置。
【請求項2】
前記調整手段は、前記撮像装置に絞り優先モードが設定された場合は前記露光時間を調整し、前記撮像装置にシャッタ速度優先モードが設定された場合は前記絞り値を調整することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
さらに、前記ゲイン調整値に基づき前記撮影手段が撮像した撮像データをゲイン調整するゲイン調整手段を有することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項4】
さらに、前記開閉パターンに基づき前記撮像データに前記コード化露光処理を施す補正手段を有することを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。
【請求項5】
コード化露光処理により撮像装置の撮像データの振れを補正する画像処理方法であって、
前記撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力し、
前記コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、前記露光時間または絞り値を調整し、
前記調整した露光時間または絞り値による露光量の不足分に相当する、前記撮像データのゲイン調整値を設定し、
前記開閉パターン、前記露光時間、前記絞り値に基づき前記撮像装置の撮影手段による撮像を制御することを特徴とする画像処理方法。
【請求項6】
コンピュータ装置を制御して、請求項1から請求項4の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。
【請求項7】
請求項6に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【請求項1】
コード化露光処理により撮像装置の撮像データの振れを補正する画像処理装置であって、
前記撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力する入力手段と、
前記コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、前記露光時間または絞り値を調整する調整手段と、
前記調整した露光時間または絞り値による露光量の不足分に相当する、前記撮像データのゲイン調整値を設定する設定手段と、
前記開閉パターン、前記露光時間、前記絞り値に基づき前記撮像装置の撮影手段による撮像を制御する制御手段を有することを特徴とする画像処理装置。
【請求項2】
前記調整手段は、前記撮像装置に絞り優先モードが設定された場合は前記露光時間を調整し、前記撮像装置にシャッタ速度優先モードが設定された場合は前記絞り値を調整することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
さらに、前記ゲイン調整値に基づき前記撮影手段が撮像した撮像データをゲイン調整するゲイン調整手段を有することを特徴とする請求項1または請求項2に記載された画像処理装置。
【請求項4】
さらに、前記開閉パターンに基づき前記撮像データに前記コード化露光処理を施す補正手段を有することを特徴とする請求項1から請求項3の何れか一項に記載された画像処理装置。
【請求項5】
コード化露光処理により撮像装置の撮像データの振れを補正する画像処理方法であって、
前記撮像装置の測光手段が被写体に応じて設定した露光時間および絞り値を入力し、
前記コード化露光処理に使用するシャッタの開閉パターンにおけるシャッタ開の割合に基づき、前記露光時間または絞り値を調整し、
前記調整した露光時間または絞り値による露光量の不足分に相当する、前記撮像データのゲイン調整値を設定し、
前記開閉パターン、前記露光時間、前記絞り値に基づき前記撮像装置の撮影手段による撮像を制御することを特徴とする画像処理方法。
【請求項6】
コンピュータ装置を制御して、請求項1から請求項4の何れか一項に記載された画像処理装置の各手段として機能させることを特徴とするプログラム。
【請求項7】
請求項6に記載されたプログラムが記録されたことを特徴とするコンピュータが読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図10】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図10】
【公開番号】特開2011−4189(P2011−4189A)
【公開日】平成23年1月6日(2011.1.6)
【国際特許分類】
【出願番号】特願2009−145825(P2009−145825)
【出願日】平成21年6月18日(2009.6.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成23年1月6日(2011.1.6)
【国際特許分類】
【出願日】平成21年6月18日(2009.6.18)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]