以下、本発明の一実施の形態を図に従って説明する。
(第1の実施の形態)
図1(A)は各実施の形態に共通するデジタルカメラ1の正面図、(B)は背面図、(C)は側面透視図である。このデジタルカメラ1の本体2には、その上面部に半押し機能を備えたレリーズ釦(シャッタースイッチ)3と電源スイッチ4とが配置されており、正面部にはグリップ部5、ストロボ6及び撮像レンズ部の受光窓7が配置されている。また、背面部には、モード切替スイッチ8、ズーム操作キー9、カーソルキー10、手振れ量表示のオン・オフキーとして兼用される決定/OKキー11、手振れ量表示のオン・オフキーとして兼用されるDISPキー12、メニューキー13及び電子ファインダとしても機能するLCDからなる表示部14が配置されているとともに、電池収納部15が設けられている。また、内部には垂直方向の角速度を検出する第1加速度センサ16と水平方向の角加速度を検出する第2角速度センサ17が配置されているとともに、回動式ミラー18、レンズ群19及び撮像素子20等が配置されている。
図2は、デジタルカメラ1の概略的回路構成を示すブロック図である。このデジタルカメラ1は、制御手段100、撮影制御手段101及び画像処理手段102を備えており、制御手段100は、ブレ軽減モードの選択手段103と印刷用紙サイズの選択手段104とを有している。撮影制御手段101は、ブレ量判定手段108、露出設定手段109、感度/利得制御手段111及び露出不足量判定手段112を有している。ブレ量判定手段108には、前記量選択手段103、104からの出力が与えられるとともに、ブレ検出センサ105、106からの信号がブレ検出手段107を介して入力される。露出設定手段109は露出時間タイマー110を備え、測光手段113からの信号とブレ量判定手段108からの判定結果が入力され、露出不足量判定手段112には露出時間タイマー110からの時間情報が入力される。
画像処理手段102は、切替手段115、116、輝度変換手段116及びブレ補正手段117を有している。輝度変換手段116及びブレ補正手段117を経由した画像データ、及びこれらを経由しない画像データは、両切替手段114、115の切り替え動作に応じて選択的に画像圧縮/符号化手段118に与えられる。画像圧縮/符号化手段118は、これら画像データを圧縮及び符号化処理し、この処理された画像データは画像記録手段119に記録される。
一方、撮影光学系120の光軸上には、絞り121、シャッター122及び撮像手段123が配置されている。撮影光学系120は光学系制御部124により制御され、絞り121は絞り駆動部125により、シャッター122はシャッター駆動部126により、撮像手段123はドライバ&タイミング手段127により、それぞれ駆動される。信号処理手段128は、撮像手段123からのアナログ信号を処理するとともにデジタル信号に変換し、このデジタル画像信号は画像バッファ129を介して、前記画像信号処理手段102の切替手段114に入力されるように構成されている。
図3は、デジタルカメラ1の具体的回路構成を示すブロック図である。図において、操作部23は、前記レリーズ釦3や電源スイッチ4等の図1に示したスイッチやキー群等で構成され、このスイッチ及びキー群の操作情報は、入力回路24を介して、制御部25に入力される。制御部25は、CPU及びその周辺回路と、CPUの作業用メモリであるRAM等から構成されるマイクロコンピュータであり、各部を制御する。
この制御部25には、表示メモリ26、表示駆動ブロック27、画像バッファメモリ28、画像信号処理部29、圧縮符号化/伸長復号化部30、静止画/動画画像メモリ31、プログラムメモリ32、データメモリ33、メモリIF34、外部I/Oインターフェース35、通信制御ブロック36、電源制御ブロック37及び撮影制御部38が接続されている。表示メモリ26には、表示部14に表示される各種表示データが一時的に記憶される。表示駆動ブロック27は、前記表示部14を駆動し、画像バッファメモリ28は、画像データを処理する際等において一時的に格納する。
画像信号処理部29は、後述する撮像素子から制御部25が取り込んだ画像信号に対する各種処理を実行するDSPからなる。圧縮符号化/伸長復号化部30は、この画像信号処理部で処理された画像データを記録時には伸長処理し、記録した画像データを再生する際には伸長復号化する。静止画/動画画像メモリ31は、レリーズ釦3の操作により撮像された画像データ(静止画像データ)を記録保存する。プログラムメモリ32は、後述するフローチャートに示す制御部25の制御プログラムを格納しており、データメモリ33は各種データが予め格納されているとともに画像データ以外の他のデータを格納する。メモリIF34は、着脱自在な外部メモリ媒体39に接続されている。外部I/Oインターフェース35は、USBコネクタ40に接続され、通信制御ブロック36は無線LAN等送受信部41を介してアンテナ42に接続され、電源制御ブロック37には、電池43が接続されている。電池43からの電力は電源制御ブロック37及び制御部25を介して各部に供給される。
前記撮影制御部38には、前記ストロボ6の照射角を駆動する照射各駆動部44、照射を駆動するストロボ照明駆動部45とが接続されているとともに、測光、測距センサ46の受光角を駆動する受光角駆動部47、測光、測距センサ46から色温度を検出して出力する色温度検出部48、測光データを検出して出力する測光部49及び測距データを検出して出力する測距部50が接続されている。さらに前記撮影制御部38には、前記第1及び第2角速度センサ17、17が各々角速度検出部51、52、積分器53、54を介して接続されている。
一方、ズームレンズユニット55には、前記回動式ミラー18、レンズ群19及び撮像素子20が配置されているとともに、この回動式ミラー18を回転駆動する駆動機構56、前記レンズ群19中に介挿された絞り57が設けられており、また、撮像素子20の前面にはシャッター58が配置されている。
さらに、前記撮影制御部38には、電動ミラーY方向駆動部59、電動ミラーX方向駆動部60、フォーカスレンズ駆動部61、ズームレンズ駆動部62、絞り駆動部63、シャッター駆動部64、映像信号処理部65及びタイミング制御&ドライバ66が接続されている。電動ミラーY方向駆動部59は、駆動機構56を駆動して回動式ミラー18を上下方向に動作させるものであり、電動ミラーX方向駆動部60は左右方向に動作させるものである。フォーカスレンズ駆動部61は、レンズ群19中のフォーカスレンズを駆動するものであり、ズームレンズ駆動部62は、ズーム操作キー9の操作に応じて被写体像を拡大または縮小すべくレンズ群19中ズームレンズを駆動するものである。また、絞り駆動部63は前記絞り57を駆動するものであり、シャッター駆動部64は前記シャッター58を駆動するものである。前記映像信号処理部65は、撮像素子20からのアナログ信号をデジタル信号に変換するA/D回路及びこのA/D回路からのデジタル撮像信号を保持するCDSと、CDSから撮像信号を供給されるアナログアンプであるゲイン調整アンプ(AGC)等からなる。
図4は、本実施の形態の処理手順を示すフローチャートであり、図5は同実施の形態の動作を示すタイミングチャートである。制御部25はプログラムメモリ32に格納されているプログラムに基づき、図4に示すフローチャートに従って処理を実行する。先ず、ユーザーによる操作部23での操作により、撮影モードが設定されているか否かを判断する(ステップS101)。撮影モードが設定されていない場合には、その他のモード処理を実行する(ステップS102)。撮影モードが設定されている場合には、露出条件などの撮影条件を設定するとともに(ステップS103)、測光処理、AF処理を実行し(ステップS104)。被写体像のスルー画像を表示部14に表示させる(ステップS105)。したがって、ユーザはこの表示部14に表示されたスルー画像を見ながら、このデジタルカメラ1の向きを調整する等してシャッターチャンスを伺う。
一方、制御部25は、レリーズ釦3が半押しされたか否かを判断する(ステップS106)。シャッターチャンスとなった時点でユーザがレリーズ釦3を半押しすると(図5(a))、ステップS106の判断がYESとなる。したがって、ステップS106からステップS107に進み、両加速度センサ16、17により検出されている当該デジタルカメラ1の垂直方向及び水平方向のブレ量を検出して(図5(g))、データメモリ33に順次記録する(ステップS107)。さらに、このデータメモリ33に順次記録しているブレ量の履歴をスルー画像とともに表示部14に表示する(ステップS108)。したがって、このステップS108でのにより、図6(A)に示すように、表示部14には、被写体のスルー画像141とともにブレ量の履歴142が表示され、このブレ量の履歴142において右端が現時点のブレ量143である。よって、ユーザはこの現時点のブレ量143を視認することにより、ブレ量が少なくなった時点で実際の撮影動作(レリーズ釦3の全押し)を行うことができる。
引き続き、測光処理、AF処理、若しくはAE/AFロック処理を実行するとともに(ステップS109)、レリーズ釦3が全押し(図5(b))されたか否かを判断し(ステップS110)、全押しされなかった場合にはステップS106に戻る。したがって、レリーズ釦3を半押ししていたユーザが半押しを解除すると、ステップS106の判断がNOとなり、ステップS106からステップS111に進む。そして、このステップS111で前記ステップS109でロックしたAE/AFロックを解除し、その他のキー処理に移行した後(ステップS112)、リターンする。
他方、ユーザが半押ししていたレリーズ釦3を全押しすると、ステップS110の判断がYESとなる。したがって、ステップS110からステップS113に進み、測光値と露出条件に応じて露出タイマーを設定し、タイマー計時を開始する(ステップS113、図5(k))。また、両加速度センサ16、17により検出されている当該デジタルカメラ1の垂直方向及び水平方向のブレ量を検出して、データメモリ33に順次記録する(ステップS114)。さらに、AE/AFロック済みであるか否かを判断し(ステップS115)、ロック済みでない場合には、測光処理、AF処理を実行する(ステップS116)。
引き続き、操作部23での操作により予めブレ軽減撮影モードが設定されているか否かを判断し(ステップS117)、設定されていない場合にはステップS118の処理を行うことなく、ステップS119に進む。設定されている場合には、前記ステップS114で検出した検出ブレ量は所定値以内であるか否かを判断する(ステップS118)。検出ブレ量が所定値以内であるである場合、及びブレ量軽減撮影モードが設定されてない場合には、撮影条件に応じて露出/撮影動作を開始し(ステップS119、図5(l))、このステップS119での処理により、シャッター58が開いて撮像素子20が露出状態となる。
次に、前記露出タイマーにより計時している露出時間が終了となったか否か、つまり露出タイマーの残時間が「0」となったか否かを判断し(ステップS120)、露出時間が終了となってない場合には、ステップS114に戻って、このステップS114からの処理を繰り返し実行する。
このステップS114からの処理が実行された際、所定値を超えるブレ量が検出されると、ステップS118の判断がNOとなる。したがって、このステップS118からステップS121に進み、露出/撮影動作を停止させてシャッター58を閉じ(図5(j))、露出タイマーの計時を停止させる(ステップS121、図5(k))。さらに、露出不足時間つまり露出タイマーの残存時間(図5(1))が所定値以上であるか否かを判断し(ステップS122)、所定値以上でない場合にはステップS123の処理を実行することなく、ステップS125に進む。また、所定値以上である場合には、露出不足時間(図5(l))つまり露出タイマーの残存時間に応じて、撮影画像に露出補正処理(図5(m)(n))を実行した後(ステップS123)、ステップS125に進む。なお、このステップS123の処理内容の詳細については後述する。
一方、前記ステップS120での判断がYESとなった場合、つまり検出ブレ量が所定値以内である状態で、露出時間が終了し露出タイマーの残存時間が「0」となった場合には、ステップS124で露出/撮影動作を停止させてシャッター58を閉じる。そして、このステップS123又はステップS122、ステップS123に続くステップS125では、撮影画像を圧縮、符号化し(ステップS125、図5(n))、この圧縮、符号化した撮影画像を外部メモリ媒体39に記録する(ステップS126)。さらに、撮影画像をレビュー表示し、撮影時のブレ量、補正の有無を表示する(ステップS127)。このステップS127での処理により、図6(B)に示すように、表示部14はスルー画像141を表示していた状態から、撮影画像144を表示した状態に移行するとともに、撮影時のブレ量145、及び補正があった場合にはこれを示す補正有りマーク146が表示されることとなる。
なお、前記ステップS118及びS127で実行するブレ量の表示は、図6に示した表示形態に限らず、図7に示す表示形態としてもよい。すなわち、(A)は、垂直方向のブレ量147と水平方向のブレ量148とを表示部14の下部と右側部に表示する例である。(B)は、ピッチ、ヨー、ロールの3軸周りの各ブレ量149を表示する例である。(C)は、ブレ量の履歴データ150とともに、許容できるブレ量の指標線151を表示する例である。
図8〜図10は、前記角速度センサ16、17の具体的構成例を示す図である。図8は、三角柱の音片型振動ジャイロ70を示すものであり、三角柱の振動子にはエリンバー等の恒弾性金属71が用いられ、これに圧電セラミックス72、端子73〜75を設けた構成である。この音片型振動ジャイロ70は、発振回路76、位相補正回路77、差動増幅器78、同期検波器79、直流増幅器80に接続されて回路構成される。かかる音片型振動ジャイロ70をもちいることにより、共振型の高感度の利点を生かしながら、振動方向の稜線のトリミングにより振動姿勢や他辺に影響を与えずに共振周波数を調整できる利点がある。そして、一辺a、長さl、質量m、ヤング率Y、密度ρの振動子の共振周波数frは、
fr=(m2a/4πl2)√(Y/6ρ)等で求めることができる。
図9は、セラミックバイモルフ振動子を用いた圧電式の振動ジャイロ81であり、支持ピン(兼リード線)81a、圧電素子82を有している。この振動ジャイロ81は、HPF82、LPF83等に接続されて回路構成される。
図10は、圧電セラミックを用いた圧電振動ジャイロ84であり、検出電極85、振動電極86、検出電極87当を有している。この振動ジャイロ84は、同図(C)に示したように接続されて回路構成される。
これらの振動ジャイロ70、81、84では、各図(C)に示すような回路によって、回転によって生ずるコリオリの力を圧電素子で電圧信号に変換し、角速度に比例した電圧を検出できる。手ブレ検出に用いる場合には、動かない地面上に立って撮影する場合、一般に3〜10Hz程度の手ブレが多いが、歩きながら撮影する場合にはやや高い10〜18Hz程度、列車や車両に乗って撮影する場合には20〜25Hz程度のブレも発生するので、0.5〜25Hz程度のブレの発生に対応できるように、応答性:50Hz、検出範囲±360deg/sec程度の超小型センサが利用できる。
また、周囲温度の変化による静止時出力の温度ドリフトを除去するために、センサ出力に(カットオフ周波数fc=0.3〜0.5Hz程度の)HPF(ハイパスフィルタ)を接続してDC成分を除去し、またセンサ内部の振動ノイズ(20〜25Hz付近等)を除去するために、応答周波数以上の高周波成分を除去する(カットオフ周波数fc=1kHz〜4kHz程度の)LPF(ローパスフィルタ)を接続する。手ブレによる振動をジャイロにより角速度信号として検出し、マイコン回路などで積分演算して角度変位に変換し、角速度及び角度変位に基づいて手ブレ補正量を決定することができる。
あるいは、前記振動ジャイロなどの角速度センサを設ける代わりに、CCDなど撮像手段からの撮像映像信号から連続するフレームの画像などを読み込んで前後のフレーム画像を比較し、その差分や相関度から動きベクトル(像ブレの方向や量)を検出するなど、画像処理により像ブレ量を検出するブレ検出手段をもうけてもよい。画像処理による像ブレ検出では、連続する撮像信号の前後の画像を、それぞれ複数ブロックに分割し、隣接する連続画像間の各ブロックの動きベクトルの方向を求め、各ブロックの動きベクトルが一定の方向であるか否かを判別し(ブロックマッチング法)、全体が特定方向に同じ量だけ移動していれば、手ブレやカメラワークによる像ブレと判断し、ブロック毎にバラバラ、若しくは所定ブロックだけが特定方向に移動していれば、手ブレではなく、被写体の移動等と判断すればよい。
(第2の実施の形態)
図11は、本発明の第2実施の形態における処理手順を示すフローチャートであり、図12は同実施の形態の動作を示すタイミングチャートである。この実施の形態は、撮影後に画像を印刷する印刷用紙サイズや表示部14の画面大きさなど、再生出力時の画像サイズに応じて、許容ブレ量を算出し、それに基づいてブレ軽減撮影を行うようにするものである。
制御部25はプログラムメモリ32に格納されているプログラムに基づき、このフローチャートに従って処理を実行する。先ず、露出条件などの撮影条件を設定するとともに(ステップS201)、ユーザによる操作部23での操作に応じて印刷用紙のサイズを選択する(ステップS202)。さらに、ユーザによる操作部23での操作により、「印刷した画像を当該印刷用紙の対角距離から観賞する」が選択されたか否かを判断する(ステップS203)。これが選択された場合には、下記例示式を用いて画像サイズYに応じて、許容ボケδを設定する(ステップS204)。
(例)許容ボケδ=(画像サイズY/用紙サイズSp)×用紙サイズSp×tan(3′)=Y×tan(3′)
これが選択されず、「一定の明視距離から観賞する」が選択された場合には、下記例示式を用いて印刷用紙サイズSpに応じて許容ボケδを設定する(ステップS205)。
また、「印刷した画像を当該印刷用紙の対角距離から観賞する」が選択されず、「一定の明視距離から観賞する」が選択された場合には、下記例示式を用いて印刷用紙サイズSpに応じて許容ボケδを設定する(ステップS205)。
(例)許容ボケδ=(Y/Sp)×250(mm)×tan(3′)
次に、測光処理、ズーム処理、AF処理を実行し(ステップS206)、レンズ焦点距離情報(f)読み込む(ステップS207)。そして、下記例示式を用い、許容ボケ量δと、レンズ焦点距離f、及び、設定露出時間T(秒)に応じて、許容ブレ量を設定する(ステップS208)。
(例)許容ブレ量(角度)θB=2×tan−1(δ/2f)
許容ブレ量(角速度)ωB=θB/T
このように、前記許容ブレ量は、例えは、撮像サイズ(対角)Yに応じて、若しくは、査撮像サイズYと印刷用紙への引き伸ばし倍率とに応じて、許容ボケ(許容錯乱円径)δを求め、許容ボケδと撮影レンズの焦点距離fに応じて、許容ボケδに相当する画角を、許容できるブレ角度θとして求める。また、許容ボケθBと設定された露出時間T(秒)とから許容できるブレ角度ωBを算出して指標値として設定及び表示する。
すなわち、撮影画角θは、焦点距離f(mm)と画像サイズ(対角)Y(mm)とから、画角θ=2×tan−1(Y/2f)、
ブレとボケでは見え方や印象は異なるが、同程度の寸法で許容できると見なした場合には、許容ブレ角度(θB)/画角(θ)=許容ボケ(δ)/画像サイズ(Y)と、略比例すると考えることができ、
許容ブレ角度θB=2×2×tan−1(δ/2f)
許容ブレ角速度ωB=許容ブレ角度θB/露出時間T=2×tan−1(δ/2f)/T、
と設定できる。
他方、印刷用紙サイズなど再生出力時の画像サイズにより、許容錯乱円径δが異なるので、許容ブレ量をそれに応じて可変設定できるのが望ましい。人間の肉眼で細かなものを見分けられる能力には個人差があるが、一般に、角度にして1分(1′)程度とされるが、写真など連続して調子が変化している対象では、少し緩めの角度で2〜3分(2′〜3′)程度とされ、これより小さいものはボケていることが分からず、シャープに見えると言われる。これを基準に考えると、明視距離(約25cm)だけ離れて写真や印刷画像を観察するとき、印刷画像上での許容ボケ(許容錯乱円径)δPは、
δP(mm)=明視距離250(mm)×tan(2′〜3′)=0.15〜0.22m、
となり、この程度のボケの大きさまで人間の眼にはボケとして気付かないことになる。
一方、写真はその大きさに応じて、例えは、写真の対角寸法に相当する距離から眺めるのが自然であるという考え方もある。これを基準に、対角が27cmと明視距離に近い八つ切り判(216×165、対角271.8mm)では、約0.2mmのボケまでは許され、35mm判フィルム(36×24mm、対角43.3mm)から八つ切り判への引き伸ばし倍率は6倍だからとして、35mm判の許容ボケは、0.2÷6=0.33mmが、一般的な35mm判フィルムの許容ボケ、即ち許容錯乱円径(Permissible Circle of Confusion)として採用されている。
この方法では、印刷用紙サイズや引き伸ばし倍率に限らず、フィルムやCCDの画像サイズに応じて、所定の視野角度(2′〜3′)以内の許容錯乱円径であればよく、換算に便利であるが、いつも同じ八つ切り判で利用するわけではない。この換算法では、用紙サイズや引き伸ばし倍率が大きい場合ほど、荒いピントやボケ、ブレも許されることとなる。しかし、用紙サイズや引き伸ばし倍率が大きい場合でも、ポスターや写真展など近くで見る時、ピントやボケ、ブレが目立つことがあり、視角の角度だけで許容ボケを決めるのが不都合である場合には、前述の明視距離から観察すると考えて、どの用紙サイズで印刷する化に応じて算出すべきである。
したがって、
(1)印刷用紙サイズSpの相当距離から眺める場合、印刷用紙上の許容ボケδpは、
δp=Sp(mm)×tan(3′)。
これは、画像サイズYを印刷用紙サイズSpまで引き伸ばしたものであるから、引き伸ばし倍率(=印刷用紙サイズSp/撮像サイズY)で割り算して、撮像サイズ(対角)Y(mm)に換算すると、撮像面上での許容ボケδは、
δ=(Y/Sp×tan(3′)=Y(mm)×tan(3′)、
となり、印刷用紙サイズSpに関係なく、撮像サイズYに応じて設定できる。したがって、この場合の許容ボケδに相応する許容ブレ角度θBと許容ブレ角速度ωBは、
θB=2×tan−1(δ/2f)=2×tan−1{Y×tan(3′)/2f}、
ωB=θB/T=2×tan−1{Y×tan(3′)/2f}/T、
(2)一方、印刷距離を明視距離(約25cm)から眺めて観察する場合、印刷用紙上の許容ボケδpは、
δp=250(mm)×tan(3′)
これを、同様に、撮像サイズ(対角)Y(mm)に換算すると、撮像面での許容ボケδは、
δ=(Y/Sp)×250(mm)×tan(3′)、
となり画像サイズYと印刷用紙サイズSpとの比、若しくは、引き伸ばし倍率の逆数に応じて設定できる。したがって、この場合許容ボケδに相応する許容ブレ角度θBと許容ブレ角速度ωBは、
θB=2×tan−1(δ/2f)=2×tan−1{(Y/Sp)×250(mm)×tan(3′)/2f}、
ωB=θB/T=2×tan−1{(Y/Sp)×250(mm)×tan(3′)/2f}/T
そして、ステップS208に続くステップS209では、レリーズ釦3が押下されて撮影が開始されたか否かを判断し(ステップS209)、レリーズ釦3が押下されていない場合には、その他のキー処理を実行する(ステップS210)。また、レリーズ釦3が押下されたならば、測光量と設定露出条件に応じて、露出タイマーを設定し、タイマー計時を開始する(ステップS211)。また、両加速度センサ16、17により検出されている当該デジタルカメラ1の垂直方向及び水平方向のブレ量を検出して、データメモリ33に順次記録する(ステップS215)。
引き続き、操作部23での操作により予めブレ軽減撮影モードが設定されているか否かを判断し(ステップS213)、設定されていない場合にはステップS214の処理を行うことなく、ステップS215に進む。設定されている場合には、前記ステップS212で検出した検出ブレ量は許容ブレ量以内であるか否かを判断する(ステップS214)。検出ブレ量が許容ブレ量以内であるである場合、及びブレ量軽減撮影モードが設定されてない場合には、撮影条件に応じて露出/撮影動作を開始し(ステップS215)、このステップS215での処理により、シャッター58が開いて(図12(a))撮像素子20が露出状態となる。
次に、前記露出タイマーにより計時している露出時間が終了となったか否か、つまり露出タイマーの残時間が「0」となったか否かを判断し(ステップS216)、露出時間が終了となってない場合には、ステップS212に戻って、このステップS212からの処理を繰り返し実行する。
このステップS212からの処理が実行された際、許容ブレ量を超えるブレ量が検出されると、ステップS214の判断がNOとなる。したがって、このステップS214からステップS218に進み、露出/撮影動作を停止させてシャッター58を閉じ(図12(b))、露出タイマーの計時を停止させる(ステップS221)。さらに、露出不足時間つまり露出タイマーの残存時間)が所定値以上であるか否かを判断し(ステップS219)、所定値以上でない場合にはステップS220の処理を実行することなく、ステップS221に進む。また、所定値以上である場合には、露出不足時間(図5(l))つまり露出タイマーの残存時間に応じて、撮影画像に露出補正処理(図5(m)(n))を実行した後(ステップS220)、ステップS221に進む。なお、このステップS221の処理内容の詳細についても後述する。
一方、前記ステップS216での判断がYESとなった場合、つまり検出ブレ量が許容ブレ量以内である状態で、露出時間が終了し露出タイマーの残存時間が「0」となった場合には、ステップS217で露出/撮影動作を停止させてシャッター58を閉じる。そして、このステップS217又はステップS219、ステップS220に続くステップS221では、撮影画像を圧縮、符号化し(ステップS221、図5(n))、この圧縮、符号化した撮影画像を外部メモリ媒体39に記録する(ステップS222)。
なお、本実施の形態においては、機械的なシャッター58を用いた場合を示したが、電子シャッタを用いた場合には、図12(c)のタイミングチャートに示すようにどうさすることとなる。
(露出補正処理)
図13は、第1の実施の形態におけるステップS123、及び第2の実施の形態おけるステップS220で実行される画像処理による露出補正処理の処理内容を示す概念図である。入力した画像f(i,j)の各画素の輝度値(又は階調値、印刷の場合は濃度値)、あるいは、その周辺の画素配列に、所定の変換表などを参照しながら、画像処理演算を施し、出力画像g(i,j)、又は、所望の特徴量を出力するものである。変換表としては、例えば、輝度変換などの入出力特性の変換式や、変換用のルックアップテーブル(変換表)、加重マトリックス(行列)、空間フィルタ係数などの演算子(オペレータ)等を利用すればよい。
画像演算処理には、(1)「点処理演算」としては、輝度や濃度のヒストグラム変換処理、2値化処理、座標変換処理、画像間演算など、(2)該当点と周囲8点等を対象とする「局所処理演算」としては、ノイズ除去演算、微分演算、積和演算、フィルタ演算、エッジ抽出処理、膨張収縮処理、細線化処理など、(3)画像全体に演算を施す「大局処理演算」としては、フーリエ変換などの直交変換演算、テクスチャー解析処理などを適用できる。以下、このような画像処理のモデルに準じて、画像処理による露出補正処理の例として、輝度分布の変換処理について説明する。
図14は、入力された画像の輝度分布ヒストグラム(輝度分布図)P(x)を、線形若しくは非線形の変換式によって、異なる特性の出力輝度分布ヒストグラムP(y)に変換するもので、露出条件やコントラストの悪い劣化画像などの補整に利用できる。
同図(a)は、線形の変換式
(0≦x<aのとき):y=u、
(0≦x≦bのとき):y={(v−u)/(b−a)}{x−a}+u、
(b<x≦xmaxのとき):y=v、
等を用いて、ダイナミックレンジが、a−b間と狭いコントラストの悪い入力画面の輝度分布P(x)を、u−v間に伸張して広げ、コントラストや中間階調の濃度表現を改善する例である。変換式の定数の設定を変えれば、ダイナミックレンジ幅の拡大だけでなく、逆に幅の収縮や、輝度分布の平行シフト(全体の輝度を上げる、下げる)等にも応用できる。
同図(b)は、y=v(x/b)2等の、非線形の変換式により、画像の輝度を(輝度が低いものほど)全体に暗くする。
同図(c)は、同じく、y=−v{(x−b)/b}2+v、あるいは、y/v=log(1+μ・x//b)/log(1+μ)等の、非線形の変換式により、画像の輝度を(輝度が高いものほど)全体に明るくする補正処理の例である。
同図(d)は、(0≦x<b/2のとき):y=(v/2)(2x/b)2、
(b/2)≦x≦bのとき:y=−(v/2){2(x−b)/b}2+v、
等の、S字状の非線形の変換式を用いて、輝度が高い領域の輝度をより上げ、輝度が低い領域の輝度をより下げて、中間階調領域を引き伸ばす処理を行い、コントラストを改善する画質補正処理の例である。
このように、線形又は非線形の変換式を適宜選択することにより、また、係数や定数を設定することにより、画質の輝度分布を伸張や収縮、移動、変換することができる。例えば、同図(a)の線形の輝度分布変換を用いて、輝度分布を感度範囲(ダイナミックレンジ)一杯に拡大して露出補正する場合には、変換後の輝度分布の下限値uが感度範囲の輝度階調値に、上限値vが輝度階調値の略最大限に設定すればよい。
図15は、図14(a)の線形の輝度分布変換式を例にした、第1の実施の形態におけるステップS123、及び第2の実施の形態おけるステップS220で実行される露出補正処理の処理内容を示すフローチャートである。すなわち、撮影済の画像データ(f)を入力し(ステップS301)、この画像fの画像データファイルの画素数情報から、横画素数(m)、縦画素数(n)を得る(ステップS302)。さらに、画像fの輝度分布の各階調毎の画素頻度数を計数し、輝度分布(ヒストグラム)を集計する(ステップS303)。また、画像fの輝度分布の最小階調値(a)、最大階調値(b)を取り込む(ステップS304)。次に、変換後の輝度分布の所望の下限階調値(u)、上限階調値(v)を設定する(ステップS305)。
引き続き、i=0(ステップS306)、j=0(ステップS307)として初期値を設定し、画像fの画素(i,j)の階調値f(i,j)を取り込む(ステップS308)。そして、この取り込んだ画素(i,j)の階調値f(i,j)が最小階調値aよりも小さいか否かを判断し(ステップS309)、f(i,j)<aであり最小階調値aよりも小さい場合には、画素(i,j)の階調値f(i,j)の変換後の階調値g(i,j)を下限階調値uに変換する(ステップS310)。
また、ステップS309の判断がNOである場合には、画素(i,j)の階調値f(i,j)が最大階調値bよりも大きいか否かを判断し(ステップS311)、最大階調値bよりも大きい場合には、画素(i,j)の階調値f(i,j)の変換後の階調値g(i,j)を上限階調値vに変換する(ステップS310)。また、ステップS311の判断がNOである場合には、a≦f(i,j)≦bの関係にある。この場合には、下記変換式を用いて、画素(i,j)の階調値f(i,j)を変換する。
g(i,j)={(v/u)/(b/a)}{f(i,j)−a}+u
そして、ステップS310、S312、S313のいずれかに続くステップS314では、jの値をインクリメントする(ステップS314)。引き続き、このインクリメントしたjの値がn−1以上(n:縦画素数)となったか否かを判断し(ステップS318)、j>n−1となるまで、ステップS308からの処理を繰り返す。したがって、j>n−1となるまでに、ステップS308〜S315の処理がn回繰り返されることとなり、これにより縦一列の画素に対する変換処理が完了する。
また、j>n−1となったならば、iの値をインクリメントする(ステップS316)。引き続き、このインクリメントしたiの値がm−1以上(m:横画素数)となったか否かを判断し(ステップS318)、i>m−1となるまで、ステップS317からの処理を繰り返す。したがって、i>m−1となるまでに、ステップS308〜S317の処理はm回繰り返されることとなり、これにより、横画素数m、縦画素数nからなる画像fの全画素変換が完了することとなる。
図16(a)(b)及び図17(c)(d)は、前述した輝度分布の変換による露出補正の例を示す図である。
図16(a)においては、線形変換を用いて露出不足に応じて輝度を明るくするために、露出アンダーになってしまった輝度分布を右側に(輝度が明るくなる方に)平行シフトして強める処理を行う。例えば、変換式[g(i,j)={(v−u)/(b−a)}{f(i,j)−a}+u]において、u=a+α、v=b+αとして、輝度分布を平行移動変換する場合に、露出時間や露出量が不足しているほど、定数α=(u−a)が大きくなるように設定すれば、露出量が不足した場合ほど、輝度分布が右側(輝度が明るい方)に平行移動するように変換される。
また、図16(b)に示すように、露出が不足していた場合ほど、輝度分布が広がるように変換してもよい。例えば、c=b−a、d=v−u、また、輝度分布の拡大率をα=(d/c)とすると、露出が不足していた場合ほど、
α=(d/c)=(v−u)/(b−a)
が大きくなるように設定すればよい。すなわち、
v=u+d=u+α(b−a)
となるように設定すればよい。又は、u=0若しくは階調min値、v=255若しくは階調maxに設定して、輝度分布が感度範囲(ダイナミックレンジ)一杯にできるだけ広がるように変換してもよい。u=0、v=255等に設定した場合には、露出不足の大小に拘わらず、自動的に輝度分布を感度範囲一杯に広がるように変換され、露出が不足していた場合ほど、輝度分布がより広げられる。
図17(c)では、非線形の輝度変換を行って、輝度分布が全体により明るくなるように、あるいは、輝度分布の中間階調領域を引き伸ばして、コントラストが上がるようにする例である。
図17(d)では、RGBなど各色別や色差信号別に、その輝度分布を求めて、R(赤)成分、B(青)成分の分布幅が、Y(全体輝度)成分やG(緑)成分の輝度分布の幅と略同じように広がるように変換する。すなわち、uR=aR,vR=uR,vR=uR+(bG−aG)、及び、vB=bB,uB=vB,uB=vBー(bG−aG)となるように設定する。若しくは、R(赤)成分やB(青)成分の輝度や階調の分布が、G(緑)成分の輝度分布の中央値Medianv(若しくは、最頻値、平均値など)を中心に、広がって分布するように変換することもできる。
つまり、uR=uB=MedianG−(bG−aG)/2、vR=vB=MedianG+(bG−aG)/2等と設定する。あるいは、R(赤)成分や、B(青)成分の分布の中央値(若しくは、最頻値、平均値など)などの統計値が、G(緑)成分の分布とそれと略同じになるように変換してもよい。R(赤)成分の分布が左側(暗)方向に片寄り露出アンダーで、また、B(青)成分が右側(明)方向に片寄り露出オーバーなど、RGB成分が色差信号別に輝度分布に片寄りがある場合等にも、R(赤)成分の分布は右側(明)方向に分布域を広げ、逆に、B(青)成分の分布は左側(暗)方向に分布域が広がるように補正することができる。
なお、以上においては、主に所定の変換式により輝度分布を変換する処理により露出不足を補うための露出補正処理を行う方法について説明した。しかし、前述のように輝度分布を変換する代わりに、前記撮影動作を、1回のシャッター操作により2〜8枚など複数枚の画像を連続して露出撮影し複数枚の連続撮影画像が得られるようにし、撮影された複数枚の画像データの各画素毎に同じ位置の画素信号同士をそれぞれ加算する画素加算処理を行い、露出不足を補正した1枚の画像を合成して記録する画像合成処理によっても、画像の輝度値を高める露出補正若しくはコントラストの改善を行うことができる。このような方法を用いた露出補正を行ってもよい。
すなわち、例えば図11のフローチャートにおいて、露出/撮影動作を停止させてシャッター58を閉じ、露出タイマーの計時を停止させ(ステップS221)、露出不足時間つまり露出タイマーの残存時間に応じて、撮影画像に露出補正処理を実行する際に(ステップS220)、再度露出/撮影動作させてシャッター58を複数回開閉させる。さらに、これにより撮影された複数枚の画像と、ステップS221の処理で撮影された画像の対応する画素を加算して単一の画像を生成する露出補正処理を行ってもよい。
(第3の実施の形態)
図18は、本発明の第3の実施の形態の処理手順を示すフローチャートであり、第1の実施の形態におけるステップS123、及び第2の実施の形態おけるステップS220の処理内容を示すフローチャートである。すなわち、撮影済の画像データ(f)と露出不足時間情報とを入力し(ステップS401)、画像fの輝度分布を集計する(ステップS402)。また、画像fの輝度分布の最小階調値(a)、最大階調値(b)を取り込み(ステップS403)、露出不足時間に応じて、露出補正値(P)を設定する(ステップS404)。次に、補正生成枚数(N=2k+1)と露出補正量(輝度分布変換)の間隔ΔPを設定する(ステップS405)。さらに、P=P−k×ΔPにより、露出補正値Pの初期値を算出し(ステップS406)、補正済み枚数Lを初期値「0」にリセットする(ステップS407)。
次に、P=P+L×ΔPにより、露出補正量を更新設定し(ステップS408)、このステップS408での処理により設定された露出補正量(P)に応じて、輝度分布の変換量を設定する(ステップS409)。例えば、上限、下限の階調値(u,v)をu=a、v=P×(b−a)と設定する。また、下記に例示した輝度分布の変換式を用いて、画像データf(i,j)の露出補正処理を実行する(ステップS410)。
(例)g(i,j)={(v−u)/(b−a)}{f(i,j)−a}+u
そして、変換後の画像データg(i,j)を画像バッファメモリ28に記録する(ステップS411)。また、変換後の画像g(i,j)をモニター(表示部14)にヒストグラムとともに表示する(ステップS412)。さらに、補正済み枚数Lをインクリメントし(ステップS13)、この補正済み枚数LがN以上となったか否かを判断し(ステップS414)、L≧Nとなるまで、ステップS408からの処理を繰り返す。したがって、L≧Nとなるまでに、ステップS408〜S414の処理がN回繰り返されることとなり、よって、ステップS412の表示処理もN回繰り返されることとなる。これにより、図19に示すように、表示部14にはN回分(図示では3回分)の露出補正処理後の変換画像160と、対応する露出補正処理後の輝度分布ヒストグラム161が表示されることとなる。無論、図示したように(露出補正(やや弱)(中)(やや強))各画像の露出補正処理後の輝度分布ヒストグラム161は各々異なることとなる。なお、同図に示すように、撮影画像(オリジナル)162と当該撮影画像の輝度分布ヒストグラム163も表示させることが好ましい。
また、L≧Nとなったならば、生成した複数画像、又は選択された画像を符号化し外部メモリ媒体39に記録する(ステップS415)。つまり、生成した複数画像(図19においては「1」「2」「3」)を全て外部メモリ媒体39に記録し、あるいは表示部14を視認して操作部23での操作によりユーザが選択した画像を外部メモリ媒体39に記録する。
(第4の実施の形態)
図20は、本発明の第4の実施の形態の処理手順を示すフローチャートであり、第1の所定値以上のブレが生じた場合、露出不足でもシャッターを閉動作させて、撮影後に露出補正するが、露出時間が極端に短い場合はブレ検出値を第2の所定値に変更して露出動作を継続し、撮影後にブレ補正処理及び/又は露出補正処理して記録するようにしたものである。
ユーザーによる操作部23での操作により、撮影モードが設定されると、制御部25はプログラムメモリ32に格納されているプログラムに基づき、このフローチャートに従って処理を実行する。先ず、露出条件などの撮影条件を設定するとともに(ステップS501)、測光処理、AF処理を実行し(ステップS502)。被写体像のスルー画像を表示部14に表示させる(ステップS503)。したがって、ユーザはこの表示部14に表示されたスルー画像を見ながら、このデジタルカメラ1の向きを調整する等してシャッターチャンスを伺う。
一方、制御部25は、レリーズ釦3が操作されて撮影開始指示があったか否かを判断すし(ステップS504)、撮影開始指示がない場合には、その他のキー処理を実行する(ステップS505)。また、レリーズ釦3が操作されて撮影開始指示があった場合には、測光値と露出条件に応じて露出タイマーを設定し、タイマー計時を開始する(ステップS506)。また、両加速度センサ16、17により検出されている当該デジタルカメラ1の垂直方向及び水平方向のブレ量を検出して、データメモリ33に順次記録する(ステップS507)。さらに、操作部23での操作により予めブレ軽減撮影モードが設定されているか否かを判断し(ステップS508)、設定されていない場合にはステップS509の判断を行うことなく、ステップS510に進む。設定されている場合には、前記ステップS507で検出した検出ブレ量は第1の所定値以内であるか否かを判断する(ステップS509)。
検出ブレ量が第1の所定値以内であるである場合、及びブレ量軽減撮影モードが設定されてない場合には、撮影条件に応じて露出/撮影動作を開始し(ステップS510)、このステップS510での処理により、シャッター58が開いて撮像素子20が露出状態となる。次に、前記露出タイマーにより計時している露出時間が終了となったか否か、つまり露出タイマーの残時間が「0」となったか否かを判断し(ステップS511)、露出時間が終了となってない場合には、ステップS507に戻って、このステップS507からの処理を繰り返し実行する。
しかし、レリーズ釦3が操作された直後に、第1の所定値を超えるブレ量が検出されると、ステップS509の判断がNOとなる。したがって、このステップS509からステップS512に進み、露出済み時間は所定以上であるか否かを判断する(ステップS512)。露出済み時間が所定以上である場合には、露出/撮影動作を停止させてシャッター58を閉じ、露出タイマーの計時を停止させる(ステップS513)。さらに、露出不足時間つまり露出タイマーの残存時間に応じて、撮影画像に露出補正処理を実行した後(ステップS514)、ステップS525に進む。
また、前記ステップS512での判断の結果、露出済み時間が所定未満であり露出時間が極端に短い場合には、両加速度センサ16、17により検出されている当該デジタルカメラ1の垂直方向及び水平方向のブレ量を検出して、データメモリ33に順次記録する(ステップS515)。次に、このステップS515で検出した検出ブレ量は第2の所定値以内(第1の所定値<第2の所定値)以内であるか否かを判断する(ステップS516)。検出ブレ量が第2所定値以内である場合には、撮影条件に応じて露出/撮影動作を開始し(ステップS517)、このステップS517での処理により、シャッター58が開いて撮像素子20が露出状態となる。次に、前記露出タイマーにより計時している露出時間が終了となったか否か、つまり露出タイマーの残時間が「0」となったか否かを判断し(ステップS518)、露出時間が終了となってない場合には、ステップS515に戻って、このステップS515からの処理を繰り返し実行する。そして、露出時間が終了し露出タイマーの残存時間が「0」となった場合には(ステップS518;YES)、露出/撮影動作を停止させてシャッター58を閉じる(ステップS519)。引き続き、検出ブレ量に応じて、撮影画像にブレ補正処理を実行した後(ステップS520)、ステップS515に進む。
また、ステップS516での判断の結果、検出ブレ量が第2の所定値を超える場合には(ステップS516:NO)、露出/撮影動作を停止させてシャッター58を閉じ、露出タイマーの計時を停止させる(ステップS521)。さらに、検出ブレ量に応じて、撮影画像にブレ補正処理を実行し(ステップS522)、かつ、露出不足時間つまり露出タイマーの残存時間に応じて、撮影画像に露出補正処理を実行した後(ステップS523)、ステップS525に進む。
一方、前記ステップS511での判断がYESとなった場合、つまり検出ブレ量が第1の所定値以内である状態で、露出時間が終了し露出タイマーの残存時間が「0」となった場合には、ステップS524で露出/撮影動作を停止させてシャッター58を閉じる。そして、このステップS524又はステップS514、ステップS520、ステップS523に続くステップS525では、撮影画像を圧縮、符号化し(ステップS525)、この圧縮、符号化した撮影画像を外部メモリ媒体39に記録する(ステップS526)。さらに、撮影画像をレビュー表示し、撮影時のブレ量、補正の有無を表示する(ステップS527)。このステップS527での処理により、図6(B)に示すように、表示部14はスルー画像141を表示していた状態から、撮影画像144を表示した状態に移行するとともに、撮影時のブレ量145、及び補正があった場合にはこれを示す補正有りマーク146が表示されることとなる。
図21は、前記ステップS520及びS522で実行されるブレ補正処理の処理内容を示すフローチャートである。まず、概略について説明すると、撮影した画像に対し、フーリエ変換、離散フーリエ変換(DFT)を施し(ステップS601)、劣化画像のフーリエ変換画像を生成する(ステップS602)。また、PSF法、ゼロクロス法、又はHough変換法、逆フィルター法等で、p(u,v)又はPSFを推定し(ステップS603)、直線ブレの評価値、ブレ方向角度(θ)、ブレ距離(L)を算出する(ステップS604)。また、直線ブレ(θ方向に周期1/Lでゼロ交差)をP(u,v)=sin(πfL)/πfL、(f=ucosθ+vsinθ)により算出し(ステップS605)、I(u,v)=G(u,v)/P(u,v)を演算し(ステップS609)、i(x,y)=Σu=0 M−1Σv=0 n−1I(u,v)W1 −uxW2 −vy(ただし、W1=exp(−j2π/M)、W2=exp(−j2π/N))により逆フーリエ変換する(ステップS610)。
あるいは、同様にPSF法、ゼロクロス法、又はHough変換法、逆フィルター法等で、p(u,v)又はPSFを推定し(ステップS606)、直線ボケの評価値、焦点の広がり半径(r)の計算を行う(ステップS604)。また、焦点ボケ(周期1.01π/rで、同心円状のゼロ交差)をP(u,v)=2・J1(r−R)/r・R、(J1=1時の第1種ベッセル関数)により算出し(ステップS608)、前記ステップS609及びS610の処理を実行する。
すなわち、本実施の形態は、ブレが生じた画像、若しくは焦点ボケが生じた画像など劣化画像を、フーリエ変換などにより周波数領域の画像信号に変換した後、ブレやボケを生じさせたPSF(焦点分布関数、点広がり関数)を推定し、推定されたPSF関数に基づいて、周波数領域の劣化画像に対して、推定されたPSF関数を逆関数などで演算し、得られた周波数領域の画像を逆フーリエ変換などにより空間領域の画像信号に戻す留ことにより、ブレ画像やボケ画像の補正処理や画像の復元を行うものである。
一般に、PSF法による画像復元では、ブレやボケのない本来の画像i(x,y)が、ブレやボケを生じさせる劣化成分p(x,y)により劣化した画像を劣化画像と見なして、
g(x、y)=p(x,y)*i(x,y) (*はコンボリューション(畳み込み積分)演算である)とすると、
p(x,y)をPSF(Point Spread Function、点像分布関数)や、LSF(Line Spread Function、線分布関数)などとして求めて、劣化させたブレやボケの劣化成分p(x,y)を推定し、p(x,y)がうまく推定できれば、本来の画像i(x,y)をデコンボリューション(逆畳み込み積分)演算により画像復元できる方法である。
つまり、撮影画像など劣化した画像g(x、y)を、フーリエ変換などで周波数軸に変換し、G[u,v]を求めると、
G[u,v]=P[u,v]・I[u,v](コンボリューションは、周波数軸上では、フーリエ変換同士のかけ算となる)であるので、その劣化成分P[u,v]を周波数領域で推定し、P[u,v]が推定できれば、逆フィルタとして、1/P[u,v]を計算して求め、G[u,v]に乗算すれば、以下のように、本来の画像i(x,y)を演算により復元できる。
I[u,v]=G[u,v]/P[u,v](フーリエ変換同士の割り算)
i(x,y)=逆フーリエ変換{I[u,v]}
=Σu=0 M−1Σv=0 n−1・I(u,v)W1 uxW2 vy(ただし、W1=exp(−j2π/M)、W2=exp(−j2π/N))、
ちなみに、画像(x,y)のフーリエ変換F[u,v]は、離散フーリエ変換(DFT)では、
F[u,v]=(1/MN)Σx=0 M−1Σv=0 N−1f(x,y)W1 uxW2 vy
(ただし、W1=exp(−j2π/M)、W2=exp(−j2π/N))
離散コサイン変換(DCT)では、
F[u,v]=(4√MN)C(u)C(v)・ΣxΣvf(x,y)・cos{(2x+1)uπ/2M}cos{(2y+1)uπ/2N}
ただし、C(u)、C(v)=1√2(u,v=0)、C(u)、C(v)=1(u,v≠0)
等で計算できるが、高速フーリエ変換(FFT)用バタフライ型演算など、各種の高速計算アルゴリズムが開発されているので、それらを利用してもよい。
以下では、このPSF法におけるPSFやP[u,v]の推定方法を、直線ブレ量の推定や焦点や焦点ボケ量の推定に用いて、推定された直線ブレ量の推定や焦点ボケ量に基づいて、「直線ブレ」画像や「焦点ボケ」画像を復元する例で説明する。一般に、ブレやボケのない画像f(x,y)をフーリエ変換したG[u,v]の振幅の分布は、前記ステップS602における(b)のようにな直線ブレのパターンとなり、中央付近の高周波成分がブレ角度に従って、数本の細長い傾斜した楕円状に抜けたり歪んだりしたパターンが現れる。
また、焦点ボケした劣化画像g(x、y)をフーリエ変換したG[u,v]は、(d)のような焦点ボケパターンとなり、中央部の高周波成分が同心円状に抜けたり歪んだりしたパターンとなる。同様に、直線ブレと焦点ボケが共に生ずると、(c)のような、両方の特徴を合わせ持ったパターンとなる。
図22は、ブレ量、ボケ量の推定法の例を示す図である。(a)は、ブレ検出手段により露出中に検出されたブレ量及びその履歴データからブレ量のブレの方向を求める方法である。(b)は、連続する撮像信号から像ブレの移動ベクトル(方向・距離)などを検出して、ブレ量の方向を求める方法である。(c)は、前記のような撮影中のブレ検出情報がない場合でも、画像データ自体からブレの量や方向を推定できるPSF法などの推定方法である。ブレ検出手段により検出精度が低い場合や処理速度が遅い場合には、撮影後の劣化画像から、PSF法又はゼロ点交差法やHough換算法などにより、ブレの方向やブレ量を推定することもできる。
(C)のPSF法で求める場合には、例えば、ゼロ点交差法やHough換算法などにより、直線ブレの場合には、フーリエ変換のG[u,v]の振幅値が周期1/Lでゼロ交差する方向の、ブレの方向角度(θ)と、ブレの距離又はそのが素数(L)を推定計算でき、また、焦点ボケの場合には、同じくG[u,v]の振幅値が周期1.01×π/rでゼロ交差する同心円状の、焦点の広がりの半径又はその画素数(r)を、推定計算できるので、これら推定されたブレ量やボケ量を用いて、直線ブレ画像や焦点ボケ画像の補整や復元を行えばよい。
(PSF法によるブレ方向とブレ距離の推定)
図22(c)は、従来のPSF法での、ブレ方向(θ)とブレ距離(L)、焦点ボケの広がり半径(r)の推定方法であり、ブレ方向(θ)は、G[u,v]の縦/横の相対比(R)から算出し、また、ブレ距離(L)若しくは焦点広がり半径(r)は、復元画像iL、iL+1を順次計算して求め、その相関値C(L)から逆算するか、相関値C(L)が所定値以上の相関度に飽和するまで繰り返して求める。しかし、この方法では、計算に時間がかかるので、次のような多階調Hough換算で求める方法もある。
図23は、PSF法と多階調Hough換算によるブレ方向(θ)、ブレ距離(L)若しくは、焦点ボケの広がり半径(r)の推定方法を示す図である。直線ブレなどの劣化画像G[u,v]のフリーエ・スペクトルの中央部の円内を、(複数点を通る直線の推定や検出などに広く用いられる)Hough換算法により、θ−ρ空間上の多階調の二次元画像に変換し、H(θ,ρ)値の角度θ毎に切り出したHθ(ρ)波形を比較して、
そのエントロピー E(θ)=ΣρPlog2(1/P)(0°≦θ<180°)を求め、
E(θ)が最小となる角度θが、直線ブレ方向(θ)と推定できる。
(ただし、P=(θ,ρ)/HSUM(θ)、HSUM(θ)は円内画素値の合計で、HSUM(θ=Σ(−R≦0≦R)H(θ,ρ)である。)
また、ぶれた方向(θ)のHθ(ρ)波形の極小点の周期(T1)を求めると、ブレ距離(L)=1/TLが求まる。
また、H(θ,ρ)をθ軸方向に0°〜179°まで平均化したC(ρ)波形、
C(ρ)=ΣρHθ(ρ)/180(0°≦θ<180°)
を作成し、C(θ)波形の極小点の周期(Tr)から、焦点ボケの広がりの半径(r)は、
半径(r)=1.01×π×Trより求まる。
MN)C(u)C(v)・ΣxΣvf(x,y)・cos{(2x+1)uπ/2M}cos{(2y+1)uπ/2N}
(Hough換算)
ちなみに、Hough換算(ハフ変換、ヒュー変換とも呼ぶ)では、(ρ=x/cosθ+y・sinθ)の変換式により、一般に二次元座標x−y平面上の点は、θ−ρ明面上の曲線に、また、x−y平面上の直線は、θ−ρ明面上の点に、それぞれ変換、逆変換できる。例えば、x−y平面上の点A,B,Cを通る直線Lを求めたい場合には、点A,B,Cを変換した、θ−ρ平面上の曲線A′,B′,C′が交差する交点P(θ,ρ)を求めると、その点P(θ1,ρ1)を、x−y平面上に逆変換し、ゼロ点から下ろした垂線の長さがρLで、垂線の角度がθLとなる直線Lが、求める直線である。
Hough換算は、このように二次元画像の中から直線領域を抽出する等、画像処理分野では広く用いられているので、詳細は省略するが、前述の多階調Hough換算では、このHough換算の配列H(θ,ρ)の明度(階調を持つ輝度や濃度)を、H(θ,ρ)=f(x,y)として、多階調の二次元画像として定義し、前述のような複数曲線の交点を求める場合には、明度(階調値)を加算して、階調値が最も大きくなる点を交点として、近似計算により迅速に求めることができる。
前述のように、ゼロクロス法、あるいは、多階調Hough換算等により、劣化画像g(x、y)を周波数軸上にフーリエ変換したG[u,v]から、直線ブレ画像の方向(角度θ)と直線ブレの距離(画素数L)、あるいは、焦点ボケ画像の焦点広がり半径(画素数r)を、前記のような演算により推定し、これらに基づいて、画像処理により、ブレを補正したり、ブレの少ない画像を復元したりすることができる。
(画像の復元、補正処理)
図24は、ブレ、ボケ画像の画像処理により復元処理若しくは補正処理の例を示すフローチャートであり、前述したPSF法等を用いて、手ブレなどによる直線ブレ画像や、ピンボケなど焦点ボケ画像を補正するものである。すなわち、先ず本来の画像i(x,y)を取得し(ステップS701)、g(x,y)=p(x,y)*i(x,y)により(*はコンボリューション演算)、撮影処理を実行する(ステップS702)。次に、劣化画像g(x、y)を取り込み(ステップS703)、
G(u,v)=P(u,v)・1(u,v)、
G(u,v)=(1/MN)Σx=0 M−1Σv=0 N−1g(x,y)W1 uxW2 vy、
(ただし、W1=exp(−j2π/M)、W2=exp(−j2π/N))
により劣化画像フーリエ変換を実行する(ステップS704)。
さらに、ステップS705で同ステップ内に示した例示式を用いて、所定のPSF関数、LSF関数、逆フィルター[1/P(u,v)]を生成し(ステップS705)、又は、ステップS706内に例示した式を用いて、逆フィルター法により、インバースフィルター[1/P(u,v)]の推定と生成を行う(ステップS706)。あるいは、ゼロ点交点法等による推定処理を実行し(ステップS707)、P(u,v)=2・J1(r・R)/r・R(J1=1次の第1種ベッセル関数)により、焦点ボケ(周期1.01π/rで、同心円状のゼロ交差)を求める(ステップS708)。又は、角速度センサなど検出ブレ量を読み込み(ステップS709)、P(u,v)=sin(πfL)/πfL(f=ucosθ+vsinθ)により、直線ブレ(θ方向に周期1/Lでゼロ交差)を求める(ステップS708)。
そしてこれらステップS705、S706,S708,S710のいずれかに続くステップS711では、I(u,v)=G(u,v)/P(u,v)により、1/P(u,v)フィルター処理(デコンボリューション)を実行する(ステップS711)。また、i(x,y)=Σu=0 M−1Σv=0 n−1I(u,v)W1 −uxW2 −vy(ただし、W1=exp(−j2π/M)、W2=exp(−j2π/N))により逆フーリエ変換を行い(ステップS712)、これにより得られる復元画像又はブレ・ボケ低減画像i(x,y)を記録保存する。
本例において、本来の画像i(x,y)が、ブレやボケなどの劣化要因p(x,y)により劣化した画像g(x、y)を、フーリエ変換してG[u,v]を求め、その周波数空間上のパターンから、周波数空間上での劣化要因P(u,v)を推定する方法、あるいは、直線ブレの方向(角度θ)や、直線ブレの距離(画素数L)、あるいは、焦点ボケの広がり半径(画素数r)等を推定する方法については、図22、図23等で説明した通りである。
本例では、これらによって求めたP[u,v]から、あるいは、直線ブレの場合には、直線ブレ方向(角度θ)、直線ブレの距離(画素数L)から、P[u,v]=sin(πfL)/πfL(ただし、f=cosθ+sinθ)を求め、焦点ボケの場合には、焦点広がり半径(画素数r)から、
P[u,v]=2・J1(r・R)/r・R(だたし、J1:1次の第1種ベッセル関数)を求め、
1/P(u,v)を逆フィルタとしてデコンボリューション(逆畳み込み積分)演算を行う。すなわち、
I(u,v)=G[u,v]/P[u,v]、
i(x,y)=逆フーリエ変換{i(x,y)}=Σu=0 M−1Σv=0 n−1I(u,v)W1 −uxW2 −vy(ただし、W1=exp(−j2π/M)、W2=exp(−j2π/N))
により、ブレやボケのない、本来の画像に近い画像i(x,y)を復元でき、ブレ画像の補正処理を行うことができる。
勿論、前記以外の方法、例えは、一般的なPSF関数(点像分布関数)若しくはLSF関数(線像分布関数)等を用いて、前述の画像の劣化要因を表し、例えば、入力された劣化画像g(x、y)、真の画像をf(x,y)、PSF関数=p(x,y)とすると、
g(x、y)=∫0 Y∫0 Xf(x′,y′)p(x′−x′,y′−y′)dx′ dy′
と表すことができ、
前記のPSF関数(点画像分布関数)p(x,y)としては、次式などが用いられる。
PSF=p(x,y)=255exp[−{(x−x0)2+(y−y0)2}/δ2]
このとき、P[u,v]=(1/MN)ΣxΣyP(x,y)W1 uxW2 vy
等を求めて、すなわち、ブレやボケのPSF(点像分布関数)のフーリエ変換の逆数をフィルタ係数(逆フィルタ、インバースフィルタ)1/P[u,v]としてもちいてもよい。あるいは、最小2乗法により、元の撮影画像と補正画像との2乗平均誤差が最小となるように定義されるウィナーフィルタK[u,v]等をもちいてもよい。また、以上に説明した画像処理によるブレ補正処理に限ることなく、その他の画像処理や補正処理を用いてブレを補正変換したり、ブレの少ない画像を復元したりするように構成してもよい。
すなわち、図25は、画像処理による画素加算処理を示す図である。図示のように、同一画像内の同一色(RGB)の近隣の4〜9画素の信号を加算して、1つの画素信号に合成して、画素が1/(4〜9)の画像データを生成するようにしてもよい。
(第5の実施の形態)
図26は、本発明の第5実施の形態における処理手順を示すフローチャートであり、デジタルカメラ1が光学的のブレ補正装置を搭載していることを前提とするものである。制御部25はプログラムメモリ32に格納されているプログラムに基づき、このフローチャートに従って処理を実行する。先ず、ユーザーによる操作部23での操作により、撮影モードが設定されているか否かを判断する(ステップS801)。撮影モードが設定されていない場合には、設定モードが選択されたか否かを判断し(ステップS802)、設定モードが選択されていない場合には、その他のモード処理に移行する(ステップS805)。
設定モードが選択されている場合には、手ブレ補正の設定が選択されたか否かを判断し(ステップS803)、選択された場合には、ユーザ操作に応じて、光学式ブレ補正モード、あるいはブレ軽減モードを設定する(ステップS804)。また、手ブレ補正の設定が選択されていない場合には、その他の設定処理に移行する(ステップS806)。
また、ステップS801での判断の結果、撮影モードが設定されている場合には、撮影条件を設定し(ステップS807)、露光処理、WB処理を実行するとともに(ステップS808)、ズーム処理、AF処理を実行し(ステップS809)、被写体像のスルー画像を表示部14に表示させる(ステップS810)。したがって、ユーザはこの表示部14に表示されたスルー画像を見ながら、このデジタルカメラ1の向きを調整する等してシャッターチャンスを伺う。
一方、制御部25は、レリーズ釦3が押下されて撮影指示があったか否かを判断し(ステップS811)、撮影指示がない場合にはその他のキー処理を実行する(ステップS812)。シャッターチャンスとなった時点でユーザがレリーズ釦3を押下すると、ステップS811の判断がYESとなる。したがって、ステップS811からステップS813に進み、測光値と露出条件に応じて露出タイマーを設定し、タイマー計時を開始する(ステップS813)。また、両加速度センサ16、17により検出されている当該デジタルカメラ1の垂直方向及び水平方向のブレ量を検出して、データメモリ33に順次記録する(ステップS814)。
次に、光学式ブレ補正モードが設定されているか否かを判断し(ステップS815)、設定されている場合には、前記ステップS814で検出した検出ブレ量に応じてブレ補正装置を駆動するブレ補正処理を実行する(ステップS816)。引き続き、撮影条件に応じて露出/撮影動作を開始し(ステップS817)、このステップS817での処理により、シャッター58が開いて撮像素子20が露出状態となる。さらに、、前記露出タイマーにより計時している露出時間が終了となったか否か、つまり露出タイマーの残時間が「0」となったか否かを判断し(ステップS818)、露出時間が終了となってない場合には、ステップS814に戻る。
しかし、ステップS815での判断の結果、光学式ブレ補正モードが設定されていない場合には、ブレ軽減撮影モードが設定されているか否かを判断する(ステップS819)。設定されていない場合にはステップS820の判断を行うことなく、ステップS821に進む。設定されている場合には、前記ステップS814で検出した検出ブレ量は所定値以内であるか否かを判断する(ステップS820)。検出ブレ量が所定値以内であるである場合、及びブレ量軽減撮影モードが設定されてない場合には、撮影条件に応じて露出/撮影動作を開始し(ステップS819)このステップS819での処理により、シャッター58が開いて撮像素子20が露出状態となる。しかる後に、前記ステップS818に進む。
そして、このステップS814からの処理が繰り返し実行された際、所定値を超えるブレ量が検出されると、ステップS820の判断がNOとなる。したがって、このステップS820からステップS8212に進み、露出/撮影動作を停止させてシャッター58を閉じ(図5(j))、露出タイマーの計時を停止させる(ステップS822、図5(k))。さらに、露出不足時間つまり露出タイマーの残存時間(図5(1))が所定値以上であるか否かを判断し(ステップS823)、所定値以上でない場合にはステップS824の処理を実行することなく、ステップS826に進む。また、所定値以上である場合には、露出不足時間(図5(l))つまり露出タイマーの残存時間に応じて、撮影画像に露出補正処理(図5(m)(n))を実行した後(ステップS824)、ステップS826に進む。
一方、前記ステップS818での判断がYESとなった場合には、ステップS825で露出/撮影動作を停止させてシャッター58を閉じる。そして、このステップS825又はステップS823、ステップS824のいずれかに続くステップS826では、撮影画像を圧縮、符号化し(ステップS826、図5(n))、この圧縮、符号化した撮影画像を外部メモリ媒体39に記録する(ステップS827)。さらに、撮影画像をレビュー表示し、撮影時のブレ量、補正の有無を表示する(ステップS828)。このステップS828での処理により、図6(B)に示すように、表示部14はスルー画像141を表示していた状態から、撮影画像144を表示した状態に移行するとともに、撮影時のブレ量145、及び補正があった場合にはこれを示す補正有りマーク146が表示されることとなる。
なお、実施の形態において、図1に示した外部構造のデジタルカメラ1に本発明を適用するようにしたが、これに限ることなく、静止画及び動画撮影機能を備えた携帯電話、大型のデジタルカメラ、本体と蓋体とからなり一方にLCDファインダーを備え他方にモニターを備える二つ折りのデジタルカメラ、ユーザーの操作により当該ユーザー自身を撮影可能なデジタルカメラ、隣接した二つの画面を有し両画面に連続する単一のスルー画像を表示させるデジタルカメラ等、他の構造からなる撮像装置、あるいは撮像機能を備えた携帯電話等の各種機器に本発明を適用することができる。