以下、本発明の一実施形態としてカメラに適用した例について説明する。このカメラは、撮像部を有し、この撮像部によって被写体像を画像データに変換し、この変換された画像データに基づいて、被写体像を本体の背面に配置した表示部にライブビュー表示する。撮影者はライブビュー表示を観察することにより、構図やシャッタタイミングを決定する。レリーズ操作時には、画像データが記録媒体に記録される。記録媒体に記録された画像データは、再生モードを選択すると、表示部に再生表示することができる。
また、このカメラは、比較明合成処理によって合成画像を生成する比較明合成モードを設定することができる。比較明合成モードが設定されると、撮像素子から画像データが読み出される毎に、撮像した画像データと記憶されている画像データのそれぞれ対応する画素位置の画素データを比較し、明るい方の画素データに置き換えた画素データを合成して画像を生成する。この比較明合成モードによって星空を長時間撮影すると、星の光跡が写しこまれた画像を得ることができる。
また、比較明合成モードが設定された際に、自動車のヘッドライトのような突発的な不要光が照射された場合には、このときの画像を記憶しておき(例えば、図2AのS15、図4Bの画像55)、この画像に基づいて突発的な不要光によって露出オーバーとなった補正用画像を生成する(例えば、図2BのS31、図4Cの画像56)。そして、補正用画像を用いて、露出オーバーとなった部分を消去した減算画像を生成する(例えば、図2BのS33、図4Dの画像57)。この減算画像と、突発的な不要光の影響を受けていないベース画像(例えば、図2AのS11、図4Bおよび図4Eの画像53)を用いて比較明合成する。この合成処理によって、光跡が途切れることなく、かつ突発的な不要光の影響を除去した比較明合成画像を得ることができる。
図1は、本発明の一実施形態に係るカメラの主として電気的構成を示すブロック図である。本実施形態におけるカメラは、撮像部1、画像処理部10、システム制御部20、バス31とこれに接続された各部を有する。
撮像部1は、レンズ2と、メカニカルシャッタ3と、イメージセンサ4を有している。なお、本実施形態においては、レンズがカメラ本体と一体に構成されていることを想定して説明する。しかし、レンズが交換レンズとしてカメラ本体に対して着脱自在に構成されていても勿論構わない。この場合には、撮像素子はカメラ本体側に配置され、交換レンズとカメラ本体の間で、データや制御命令等の通信用の通信回路を設ければよい。
レンズ2は、イメージセンサ4上に被写体光像(被写体の光学像)を結像する光学系である。レンズ2の内のフォーカスレンズは、システム制御部20からの制御信号に基づいて、レンズ2の光軸方向に移動し、焦点調節が行われる。レンズ2は、内部に光学絞りを備えている。光学絞りは、絞り値に応じて開口の大きさが変化し、イメージセンサ4上への光量を調節する。絞り値は、露出量を調節するための制御パラメータである。
メカニカルシャッタ3は、レンズ2の光軸上であって、イメージセンサ4の前側に配置される。メカニカルシャッタ3は、レンズ2からの撮影光束をイメージセンサ4上に導く露出時間(シャッタ速度)を制御する。メカニカルシャッタ3として、例えばフォーカルプレーンシャッタを採用すると、シャッタ先幕及び後幕を開閉することにより、レンズ2からの撮影光束をイメージセンサ4へ到達させることができ、あるいは撮影光束がイメージセンサ4に到達しないように遮光することができる。このとき、シャッタ先幕が走行開始してからシャッタ後幕が走行開始するまでの時間がシャッタ速度である。メカニカルシャッタ3は、システム制御部20によって算出されたシャッタ速度に基づいて、シャッタの開口時間が制御される。なお、メカニカルシャッタ3としては、フォーカルプレーンシャッタに限られず、例えば、レンズシャッタでもよく、またメカニカルシャッタを廃止し、電子シャッタのみでもよい。
イメージセンサ4は、CMOSイメージセンサやCCDイメージセンサ等の撮像素子である。撮像素子は、2次元上に複数の画素が配列されており、画素毎に電気信号に変換する。レンズ2により結像された被写体光像は、撮像素子の各画素によって電気信号に変換され、画像データが生成される。生成された画像データは画像処理部10およびバス31に出力される。イメージセンサ4は、複数の画素を有し、入射光を光電変換し、画像信号を生成する撮像素子として機能する。また、イメージセンサ4は、被写体像を撮像して画像データを生成し出力する撮像素子として機能する。
バス31は、カメラ内の各部の間で信号の送受信を行うための信号線である。図1に示す例においては、バス31には、撮像部1、画像処理部10、距離情報判定部15、露出判定部16、システム制御部20、内部メモリ33、外部メモリ36、表示部37、入力IF(Interface)38、条件設定部39、およびタッチパネル40が接続されている。なお、図1には外部メモリ36はカメラの内部に配置するように記載されているが、この外部メモリ31は、例えばカメラに着脱自在のメモリカード等により構成するようにしてもよく、カメラに固有の構成でなくても構わない。
画像処理部10は、画像処理回路を有し、イメージセンサ4から出力された画像データに種々の画像処理を施す。画像処理部10は、画像データ合成部11、および現像処理部14を有する。
画像データ合成部11は、画像合成回路を有し、複数枚の画像データを合成して少なくとも1枚の合成画像データを生成する。この画像データ合成部11は、比較明合成部12とフィルタ処理部13を有する。
比較明合成部12は、比較明合成回路を有し、比較明合成処理を行う。比較明合成処理は、概略、2つの画像の対応する画素の画素データを比較し、明るい方の画素データに置き換えて比較明合成画像を生成する処理である。具体的には、以下のような処理を行う。比較明合成部12は、イメージセンサ4から読み出した画像データや、内部メモリ33に記憶されている複数枚の画像データについて、イメージセンサ4の同位置に配置される画素の画素データ同士を比較する。そして、比較明合成部12は、画素データを比較した結果の何れか大きい方、すなわち明るい方の画素データを用いて比較明合成画像を生成する。このような処理を、全ての画素位置について行うことによって、比較明合成画像の各画素データが、最も明るい画素データのみで構成される。比較明合成部12は、撮像素子により所定の露光時間で露光され出力される画像データを繰り返し比較明合成する画像データ合成部として機能する(例えば、図2Aおよび図3AのS17参照)。
フィルタ処理部13は、フィルタ処理回路を有し、イメージセンサ4から出力された画素データに対してフィルタ処理を施す。フィルタ処理部13によって行うフィルタ処理としては、注目画素の周りの画素値の中央値を算出するメディアンフィルタ、注目画素の近傍の画素値の平均値を算出する平均化フィルタ等がある。
現像処理部14は、現像処理回路を有し、生成されたRAW画像データに対して種々の現像処理を施す。現像処理としては、デモザイキング処理、ホワイトバランス調整処理、ノイズリダクション処理、YC信号生成処理、ガンマ補正処理、リサイズ処理、画像圧縮処理などがある。リサイズ処理は、イメージセンサ4から読み出された画像データの画素数を他の画素数に変換する処理であり、この処理によって、例えば、表示部37の表示画素数に合わせることができる。
距離情報判定部15は、測距回路またはAF(Auto focus)回路を有し、被写体の距離を判定する。距離情報は、コントラストAFや位相差AF等によって、取得する。コントラストAFは、イメージセンサ4からの画像データの高周波成分のピーク位置から焦点調節する方法であり、合焦位置におけるフォーカスレンズ位置に基づいて距離情報を得ることができる。また位相差AFは、イメージセンサ4の撮像面に、フォーカスレンズからの光束を瞳分割して受光する位相差検出用画素を配置し、この位相差検出用画素の出力から位相差を算出する。この位相差から距離情報が得られる。また、位相差AFとしては、イメージセンサ4の撮像面に位相差検出用画素を配置する以外にも、専用の位相差検出用のセンサを配置し、このセンサからの出力に基づいて算出するようにしてもよい。さらに、発光した光が物体に反射して受信するまでの時間を測定して、被写体までの距離を算出するTOF(Time of Flight)を利用して、距離情報を取得してもよい。
露出判定部16は、露出判定回路を有し、イメージセンサ4からの画像データを用いて、露出オーバー、適正露出、または露出アンダーであるか否かを判定する。この露出判定部16は、タッチパネル40等によって設定された露出対象範囲における画像データが露出オーバーであるか否かを判定することができる(例えば、図2AのS11参照)。
ストロボ17は、カメラ本体に内蔵されたキセノン管やLED等の照明用の発光素子を有し、本撮影時にシステム制御部20からの発光命令に応じて被写体に向けて照明光を照射することができる。外部ストロボ18は、カメラ本体に装着可能なストロボである。外部ストロボ18は、外部ストロボ本体内にキセノン管やLED等の照明用の発光素子を有し、本撮影時にシステム制御部20からの発光命令に応じて被写体に向けて照明光を照射することができる。
表示部37は、TFT(Thin Film Transistor)液晶や有機EL(Electro Luminescence)などの表示パネルを有する。表示部37は、カメラ本体の背面に設けられた背面表示部、あるいは接眼部を通して表示を観察するEVF(電子ビューファインダ:Electronic View Finder)等として配置される。表示部37は、画像処理部10によって画像処理された画像を表示する。
入力IF38は、撮影者の操作を受けてカメラに対する各種の設定や指示を行うための操作部である。入力IF38は、例えば、カメラの電源をオン/オフするための電源釦、あるいは撮影開始および終了を操作するためのレリーズ釦等の操作部材を備え、さらに、背面表示部等の前面に設けられたタッチパネル40等を備えている。タッチパネル40は、ユーザがタッチした位置等を検出し、バス31に出力する。タッチパネル40が備えられると、タッチ操作によって設定や指示を入力することができる。
条件設定部39は、表示部37に表示されるメニュー画面において、カメラの撮影条件や撮影した画像の処理に関する条件を設定する。
内部メモリ33は、電気的書き換え可能な揮発性メモリである。内部メモリ33は、イメージセンサ4から読み出された画像データ、あるいは画像処理部10が画像処理を行っている途中の画像データを記憶する(後述する基本画像データ記録部33a、減算用画像データ記録部33b参照)。また、内部メモリ33は、カメラの動作に必要な各種の処理プログラムや設定値なども記憶する記憶部である。システム制御部20内のCPUは、内部メモリ33に記憶された処理プログラムに従って、カメラ内の各部の制御を行う。内部メモリ3は、例えば、フラッシュメモリ、SDRAM等の不揮発性メモリあるいは揮発性メモリによって、あるいはこれらを組合せることによって構成されている。
内部メモリ33は、基本画像データ記録部33aと減算用画像データ記録部33bを有する。基本画像データ記録部33aは、比較明合成処理を行うために、繰り返し撮影を行う際の最初に撮影された画像データを記録するための領域である(例えば、図2Aおよび図3AのS11参照)。基本画像データ記録部33aは、撮像素子から出力され、露光量が適切な画像データを基本画像データとして記憶する基本画像データ記憶部として機能する(例えば、図2Aおよび図3AのS11参照)。基本画像データ記憶部は、繰り返し露光され出力される画像データのうちで最初に露光され出力される画像データを上記基本画像データとして記憶する(例えば、図2Aおよび図3AのS9参照)。
また、減算用画像データ記録部33bは、露出対象範囲が露出オーバーとなった場合に、その時の画像データを記録するための領域である(例えば、図2Aおよび図3AのS13参照)。減算用画像データ記録部33bは、撮像素子から出力され、露光量が過大な画像データを減算用画像データとして記憶する減算用画像データ記憶部として機能する(例えば、図2Aおよび図3AのS15参照)。基本画像データ記憶部と減算用画像データ記憶部は、同一のメモリ内の配置されている。もちろん、基本画像データ記憶部と、減算用画像データ記憶部を、別々のメモリに配置してもよい。
外部メモリ36は、電気的に書き換え可能な不揮発性メモリであり、カメラ本体に装填自在のメモリカード等、あるいはカメラ本体の内部に固定された不揮発性の記憶媒体である。外部メモリ36は、画像処理部10において記録用に画像処理された画像データを記録し、また再生時には、記録された画像データが読み出される。外部メモリ36から読み出された画像データは、カメラの外部に出力可能である。
システム制御部20は、コントローラであり、またCPU(Central Processing Unit)と、周辺回路等を有するプロセッサである。システム制御部20は、内部メモリ33に記憶されている処理プログラムに従って、カメラ内の各部を制御する。
システム制御部20は、減算用画像データをフィルタ処理して補正用画像データとし(例えば、図2BのS31、図3AのS16参照)、画像データ合成部の出力する合成画像データから、補正用画像データを減算して第2の合成画像データを生成し(例えば、図2BのS33、図3BのS21参照)、第2の合成画像データと基本画像データ記憶部に記憶された基本画像データとを比較明合成する(例えば、図2BのS33、図3BのS21参照)制御部として機能する。
制御部は、フィルタ処理部に、減算用画像データを平滑化フィルタによりフィルタ処理させ、補正用画像データとる(例えば、図2BのS31、図3AのS16参照)。上述の平滑化フィルタによる処理は、フィルタ処理を施す注目画素の周囲に位置する画素の画素データにより注目画素の画素データを補間する処理である。制御部は、フィルタ処理として、減算用画像データをユーザ操作により、指定画素や指定範囲の画素を他のレベルに置き換えて、補正画像データを生成させる。制御部は、フィルタ処理として、撮影画像に距離情報がある場合に、距離情報に応じた被写体の画素を他のレベルに置き換えて、上記補正画像データを生成させる。
次に、図2Aおよび図2Bに示すフローチャートを用いて、本実施形態に係る比較明合成処理について説明する。このフローは、システム制御部20内のCPUが内部メモリ33に記憶されたプログラムに従って、カメラ内の各部を制御することにより実現する。このフロー(後述する図3A、図3Bも同様)では、比較明合成に必要な処理について記載し、他の機能を実現するための処理については省略してある。
図2Aに示すフローが開始すると、まず、撮影条件を設定する(S1)。このステップでは、条件設定部39において、絞り値、シャッタ速度値、ISO感度等の撮影条件を設定する。この設定は、ユーザが入力IF38によって、手動で設定してもよく、またシステム制御部20が、イメージセンサ4によって取得した画像データに基づいて被写体輝度値を検出し、この輝度値に基づいて、自動的に撮影条件を設定してもよい。
撮影条件を設定すると、次に、「露出対象範囲」を指定する(S3)。露出対象範囲は、突発光等の不要光が発生した場合であっても、画像の中で適正露出に保持したい被写体の範囲である。この指定は、ユーザがタッチパネル40等を用いて、範囲を指定してもよく、またシステム制御部20が、自動的に設定してもよい。例えば、距離情報判定部15によって検出された距離情報に基づいて、至近側の被写体の位置する範囲を設定してもよい。また、システム制御部20が、イメージセンサによって取得した画像データを解析することにより、至近側の被写体の位置する範囲を設定してもよい。また、このステップでは、システム制御部20は、露出オーバーとして検出する際に使用する閾値も設定する。閾値は、設計値として予め設定しておいてもよく、またユーザが手動で設定してもよい。
露出対象範囲を設定すると、次に、撮影開始の操作をする(S5)。ユーザは表示部37に表示されたライブビュー画像を観察し、シャッタタイミングと判断すると、入力IF38の内のレリーズ釦を操作するか、または表示部37の画面(タッチパネル)に対してタッチ操作する。このステップでは、レリーズ釦が操作されたか否か、またはタッチ操作がなされたか否かを判定する。この判定の結果、レリーズ釦が操作されたか、タッチ操作がなされた場合には、撮影を開始する。撮影が開始すると、画像処理部10は、イメージセンサ4からの画像データに対して画像処理を施す。
続いて、1枚目の撮影か否かを判定する(S9)。比較明合成処理する場合には、撮影が開始すると、システム制御部20は、イメージセンサ4から所定のフレームレートに従って、繰り返し画像データの読み出しを行う。そして、読み出された画像データに対して、画像処理を施した後に、内部メモリ33に一時記憶する。このステップでは、1枚目の撮影に基づく画像データであるか否かを判定する。
ステップS9における判定の結果、1枚目の撮影であった場合には、ベース画像として保存する(S11)。ここでは、システム制御部20は、1枚目の撮影で取得された画像データを、「ベース画像」として、内部メモリ33内の基本画像データ記録部33aに記録する。
一方、ステップS9における判定の結果、1枚目の撮影でなかった場合、すなわち2枚目以降の撮影の場合には、露出対象範囲の露出がオーバーしているか否かを判定する(S13)。ここでは、露出判定部16が、ステップS3において指定された露出対象範囲の画像データの明るさが閾値を超えているか否かを判定する。後述する図4Bの画像55は、画像データの明るさがオーバーしている例であり、至近側にある被写体が、所謂、白飛びとなっている。
ステップS13における判定の結果、露出対象範囲の露出がオーバーしていた場合には、減算用画像として保存する(S15)。このステップでは、システム制御部20は、露出がオーバーと判定された画像データを、「減算用画像」として、内部メモリ33内の減算用画像データ記録部33bに記録する。
ステップS13における判定の結果、露出対象範囲の露出がオーバーしていない場合、またはステップS15において、減算用画像として記録すると、次に、比較明合成し、合成画像として保存する(S17)。このステップでは、比較明合成部12が比較明合成処理を行う。このように、1枚目の撮影画像データは、比較明合成処理を行わない状態で、内部メモリ33に一時記憶する。2枚目の撮影画像データを取得すると、1枚目の撮影画像データと2枚目の撮影画像データの対応する画素位置における画素データを比較し、明るい方の画素データを合成することにより比較明画像データとして記憶する。全画素について、比較し明るい方の画素データを合成して、1回目の合成画像が生成され、この合成画像データは内部メモリ33に一時記憶される。以後、N枚目の撮影画像データを取得するたびに、一時記憶された合成画像データ((N-1)枚目までの合成画像)とN枚目の撮影画像データについて、画素毎に比較し、明るい方の画素データに置き換えて合成画像を生成し、保存する。
ステップS17において合成画像を保存すると、またはステップS11においてベース画像を保存すると、次に、画像をモニタ(表示部37)に表示する(S19)。ここでは、システム制御部20が、途中経過として、ステップ17において生成した合成画像を表示部37に表示させる。なお、1枚目の撮影の場合には、ステップS11において保存されたベース画像を表示する。また、ステップS17において生成される合成画像は、露出オーバーしている範囲について、露出オーバーしたままで合成処理されているので、突発光の影響を受けた画像がモニタに表示される。
次に、撮影終了動作か否かを判定する(S23)。ユーザは、比較明合成処理用の撮影を終了する場合には、再度レリーズ釦を操作するか、または表示部37の画面に対してタッチ操作を行う。このステップでは、システム制御部20が、これらの終了動作が行われたか否かを判定する。この判定の結果、終了動作が行われていない場合には、ステップS7に戻り、比較明合成処理用の撮影を続行する。
ステップS23における判定の結果、撮影終了動作が行われた場合には、撮影を終了する(S25)。このステップでは、システム制御部20は、イメージセンサ4による撮影処理を停止させる。
撮影終了動作を行うと、次に、露出オーバーの画像が含まれているか否かを判定する(S27)。前述したように、撮影の最中に、ステップS13において、露出対象範囲の露出がオーバーしているか否かを判定した。このステップでは、撮影動作の終了後に、システム制御部20が、撮影画像の中に露出オーバーの画像があったか否かを判定する。
ステップS27における判定の結果、露出オーバーの画像が含まれていなかった場合には、合成画像を最終画像として外部メモリに保存する(S29)。この場合には、露出オーバーの画像が含まれていなかったことから、白飛び部分を補正しなくてもよい。そこで、システム制御部20は、ステップS17において、記憶した比較明合成画像を最終画像として、外部メモリ36に記録する。
一方、ステップ27における判定の結果、露出オーバーの画像が含まれていた場合には、ステップS31以下において、突発的な不要光を除去した比較明合成画像を生成する。まず、減算用画像にフィルタ処理し、「補正用画像」として保存する(S31)。ここでは、フィルタ処理部13が、ステップS15において保存した減算用画像に対して、フィルタ処理を施す。言い換えると、撮影画像に露出オーバーの画像が含まれる場合、すなわち、「減算用画像」が内部メモリに保存される場合は、「減算用画像」にフィルタ処理を実施し、露出オーバーとなった部分以外を補正し、フィルタ処理後の画像を「補正用画像」として内部メモリ33に保存する。例えば、図4Bを用いて後述するように、露出オーバーとなった画像55(減算用画像)にフィルタ処理を施すと、星の映像が消え、突発光によって露出オーバーとなった被写体の部分が残る画像56(補正用画像)となる。
ステップS31(後述する図3AのステップS16も同様)において、フィルタ処理部13が行うフィルタ処理としては、例えば、以下のような処理がある。
(1)メディアンフィルタにより星の輝点を削除する。
(2)平均化フィルタにより星の輝点を削除する。
(3)輪郭検出によって、露出対象範囲に指定した対象物を検出し、それ以外のレベルを黒レベルに置き換える。
(4)ユーザ操作によって範囲を指定し、この範囲内の画素データを0LSBに置き換える。LSBは、least significant bitの略であり、二進数において最小値ビットである。ユーザ操作による範囲の指定としては、タッチパネル40によって領域を指定してもよく、被写体を選択して、それ以外を置き換えるようにしてもよい。
(5)距離情報判定部15によって対象物の距離情報が得られる場合には、露出対象範囲に指定した対象物と異なる距離の対象物に対応する画素を黒レベルに置き換えるようにしてもよい。
本実施形態におけるフィルタ処理部13は、メディアンフィルタや平均フィルタのような狭義の意味のフィルタ処理に限られない。すなわち、指定された露出対象範囲(減算用画像として必要な被写体)以外の画素データは、全て黒レベルや0LSBにしても、問題ない。また、補正については周囲の画素情報を元にした補正も含めるようにしてもよいことから、他のレベルに置き換えるようにしてもよい。
ステップS31において、補正用画像を保存すると、次に、比較明合成処理を行う(S33)。ここでは、まず、画像処理部10またはシステム制御部20が、「合成画像」の画像データから、「補正用画像」の画像データを減算する。すなわち、ステップ17において生成され保存されている合成画像データから、ステップS31において保存された補正用画像データを減算する。この減算は、対応する画素位置の画素データ毎に行う。すなわち、この処理では、露出オーバーの画像を用いて比較明合成された合成画像から、露出オーバーしている部分以外の画像を消去した画像(補正用画像)を減算している。この減算処理によって得られる画像(減算画像)は、不要光で露出オーバーとなった被写体が消去され、一方、星の光跡はそのまま残っている。
減算処理(「合成画像」-「補正用画像」)によって露出オーバーとなった部分(被写体)を消去すると、次に、減算処理した画像(減算画像)とベース画像を用いて比較明合成処理を行う。ベース画像は、ステップS11において保存された1枚目の撮影画像である。撮影開始時には、適正露出となるように撮影条件が設定されることから、ベース画像は適正露出で撮影された画像である。減算処理した画像(減算画像)は、前述したように、星の光跡は残しつつ露出オーバーしている部分(被写体)が消去されている。またベース画像は適正露出で撮影された画像である。この2つの画像を用いて、比較明合成処理を行うことにより、星の光跡はそのまま残っているが、突発的な不要光は除去された画像を合成することができる。
ステップS33において、比較明合成を行うと、比較明合成画像を外部メモリに保存する(S35)。ここでは、システム制御部20は、ステップS33において生成した比較明合成画像を、外部メモリ36に記録する。ステップS29またはステップS35において画像を外部メモリに保存すると、本フローを終了する。
このように、本フローにおいては、最初の撮影画像をベース画像として保存し(S11)、また、2回目以降の撮影画像が、露出がオーバーしていた場合には、その画像を減算用画像として保存している(S15)。そして、イメージセンサ4から画像データが出力される毎に、比較明合成を行って合成画像を保存している(S17)。撮影が終了すると、露出オーバー画像がある場合には、減算用画像に対してフィルタ処理を施した補正用画像を保存し(S31)、合成画像から補正用画像を減算した減算画像を生成し、この減算画像とベース画像を用いて比較明合成処理を行って、最終的な比較明合成画像を生成している(S33)。このため、露出オーバーとなった部分を消去し、適正露出に置き換えた画像を得ることができる。
なお、本実施形態においては、ベース画像は、1枚目の撮影画像を用いている。しかし、ベース画像は、指定された露出対象範囲が適正露出で撮影された画像であれば良いので、2枚目以降であってもよい。すなわち、露出対象範囲の露出が適正であれば、1枚目に限られない。
また、本実施形態においては、ステップS13において、露出対象範囲の露出がオーバーしていると判定されることが、複数回ありうる。この場合には、減算用画像データ記憶部33bは、少なくとも第1の減算用画像データと第2の減算用画像データを記憶することを可能にしておく。そして、合成画像データから第1の減算用画像データに対応する第1の補正用画像データを減算して第2の合成画像データを生成し、この第2の合成画像データと基本画像データ(ベース画像)とを比較明合成し、この比較明合成した画像データから第2の減算用画像データに対応する第2の補正用画像データを減算して第3の合成画像データを生成し、第3の合成画像データと基本画像データを比較明合成すればよい。
また、第1の減算用画像データと第2の減算用画像データを比較明合成し、合成した画像データを減算用画像データとする。この減算用画像データが作成できれば、ステップS31において、減算用画像データをフィルタ処理して、補正用画像データを作成できる。さらに、別の方法として、減算用画像データを複数記録し、記録した減算用画像データ同士を比較明合成し、補正用の減算用画像データを作成してもよい。この場合も減算用画像データが作成できれば、ステップ31において、補正用画像データを作成することができる。
次に、図3Aおよび図3Bに示すフローチャートを用いて、本実施形態に係る比較明合成処理の変形例について説明する。このフローも、システム制御部20内のCPUが内部メモリ33に記憶されたプログラムに従って、カメラ内の各部を制御することにより実現する。
前述の本発明の一実施形態における比較明合成処理は、撮影動作が終了した後に、露出オーバーとなった被写体(部分)を消去し、この部分が適正露出となるような比較明合成処理を行っていた。これに対して、本変形例は、比較明合成用に撮影を行っている最中に、露出オーバーとなった被写体(部分)を消去し、適正露出となるような比較明合成処理を行っている。図3Aおよび図3Bに示すフローチャートにおいて、図2Aおよび図2Bと同じ処理を行うステップについては、同一のステップ番号を付し、詳しい説明を省略する。
図3Aに示す比較明合成処理のフローが開始すると、まず、撮影条件を設定し(S1)、露出対象範囲を指定し(S3)、撮影開始操作がなされると(S5)、撮影を行う(S7)。撮影が1枚目か否かを判定し(S9)、1枚目であった場合には、ベース画像として保存する(S11)。ステップS11においてベース画像として保存すると、または撮影が1枚目でない場合には、次に、露出対象範囲の露出がオーバーしているか否かを判定する(S13)。
ステップS13における判定の結果、露出対象範囲の露出がオーバーの場合には、減算用画像として保存する(S15)。続いて、減算用画像にフィルタ処理し、補正用画像として保存する(S16)。ここでは、ステップS15において保存した減算用画像に対して、ステップS31と同様のフィルタ処理を施す。図2A、図2Bに示したフローにおいては、撮影動作終了後にフィルタ処理を施していたが、本変形例においては、撮影中に減算用画像にフィルタ処理を施すようにしている。
ステップS13における判定の結果、露出がオーバーしている場合、またはステップS16において、フィルタ処理し、補正用画像として保存すると、次に、比較明合成処理を行い合成画像として保存する(S17)。
次に、露出対象範囲の露出がオーバーしているか否かを判定する(S20)。ここでは、露出判定部16が、ステップS13と同様に、露出対象範囲の露出がオーバーしているか否かを判定する。この判定の結果、露出がオーバーしていた場合には、比較明合成を行う(S21)。ここでは、まず、画像処理部10またはシステム制御部20が、「合成画像」の画像データから、「補正用画像」の画像データを減算する。すなわち、ステップ17において生成され保存されている合成画像データから、ステップS16において保存された補正用画像データを減算する。この減算処理は、ステップS33と同様であることから、詳しい説明を省略する。
ステップS21において、減算処理(「合成画像」-「補正用画像」)によって露出オーバーとなった部分の画像を消去すると、次に、比較明合成部12は、ステップS33と同様に、減算処理した画像(減算画像)とベース画像を用いて比較明合成処理を行う。この比較明合成処理もステップS33と同様であることから、詳しい説明を省略する。図2A、図2Bに示したフローにおいては、撮影動作終了後に減算画像とベース画像を用いて、比較明合成処理を施していたが、本変形例においては、撮影中にこの比較明合成処理を施すようにしている。ステップS21において生成された比較明合成による合成画像の画像データは内部メモリ33に一時記憶される。
ステップS20における判定の結果、露出対象範囲の露出がオーバーしていない場合、またはステップS21において比較明合成を行うと、次に、合成画像をモニタに表示する(S22)。ステップS21において減算処理(「合成画像」-「補正用画像」)によって露出オーバーとなった部分を消去し、この減算処理された画像(減算画像)とベース画像を用いて、比較明合成処理を行っていることから、この合成画像は突発的な不要光は除去された画像となっている。すなわち、ステップS22において表示される合成画像は、突発的な不要光は除去されている。
次に、撮影終了動作か否かを判定する(S23)。この判定の結果、撮影動作が終了していない場合には、ステップS7に戻り、比較明合成用の撮影を行う。一方、ステップS23における判定の結果、撮影動作が終了した場合には、撮影を終了する(S25)。
撮影を終了すると、次に、合成画像を最終画像として外部メモリに保存する(S29)。ここでは、システム制御部20は、ステップS17またはS21において保存された合成画像を、外部メモリ36に記録する。ステップS21において保存された合成画像は、前述したように、撮影中に突発的な不要光は除去されている。このため、図2A、図2Bのフローの場合と異なり、撮影動作終了後に、突発的な不要光を除去する必要がない。合成画像を外部メモリ29に保存すると、本フローを終了する。
このように、本フローにおいては、最初の撮影画像をベース画像として保存し(S11)、また、最初以外の2番目以降の撮影画像の露出対象範囲の露出がオーバーしていた場合(S13:Yes)には、その画像を減算用画像として保存し(S15)、この減算用画像にフィルタ処理を施して補正用画像として保存している(S16)。そして、露出対象範囲の露出がオーバーしている場合(S20:Yes)には、合成画像から補正用画像を減算し、この減算画像とベース画像を用いて比較明合成を行っている(S21)。このように、本変形例においては、撮影中に、フィルタ処理および減算処理を行って、突発的な不要光を除去した合成画像を生成し(S21参照)、この合成画像を表示している(S22参照)。このため、不要光が含まれる画像を表示することはなく、ユーザは撮影中であっても、不要光を意識しないで撮影に集中することができる。
次に、図4Aないし図4Eを用いて、本発明の一実施形態および変形例における画像処理について、説明する。図4Aに示す画像51は、ユーザが意図する最終画像である。この画像51は、空に星の光跡MLTが複数写っており、また至近側に撮影対象範囲として指定された被写体Ob(図4Aでは、被写体は木)が写っている。画像52は、突発的な不要光の影響を受けた画像を判別しこの画像を比較明合成しない場合に、比較明合成処理によって生成された合成画像である(特許文献1参照)。この場合には、光跡MLTの各軌跡は、箇所MLTbにおいて途切れてしまう。本発明の実施形態やその変形例は、この軌跡の途切れを防止する。
図4Bに示す画像53は、1枚目の撮影で取得したベース画像である(図2Aおよび図3AのS11参照)。この画像53には、至近側に被写体Obが写っており、また空に複数の星STが点状に写っており適切な露出で撮影されている。画像54は、複数回の撮影を行い、画像データを比較明合成している状態で、突発的な不要光により撮影対象範囲の被写体Obが露出オーバーとなった場合において、比較明合成処理を行った後の画像である。すなわち、星STは突発的な不要光の影響を受けないが、被写体Obは突発的な不要光の影響によって露出オーバーとなっている。このような露出オーバーが生じた画像は、ユーザの意図する画像と異なるので、露出オーバーを補正する。この露出オーバーとなった被写体Obを補正するために、まず、露出オーバーとなったフレームの画像55を、減算用画像として保存する(図2Aおよび図3AのS15参照)。この画像55は、複数の星STと露出オーバーとなった近距離側の被写体Obが写っている。
続いて、図4Cに示すように、露出オーバーとなった画像55(減算用画像)に対してフィルタ処理を行い(図2BのS31、図3AのS16参照)、画像56(補正用画像)を生成する。フィルタ処理は、注目画素(この場合は星)の画素値を、注目画素の周囲の画素の中央値や平均値に置き換える等の処理である。星の周囲の画素値は小さいことから、フィルタ処理部13が画像55にフィルタ処理を施すと、星の位置の画素値は小さくなる。この結果、星STが消えた画像56となる。しかし、被写体Obは、面積が広く複数の露出オーバーの画素データが隣接することから、フィルタ処理を施しても、露出オーバーのままで消去されず残っている。
次に、図4Dに示すように、画像54(合成画像)から画像56(補正用画像)を減算することにより、画像57(減算画像)を生成する(図2BのS33、図3BのS21参照)。すなわち、画像54(合成画像)は、撮影対象範囲の被写体Obが露出オーバーとなった場合の比較明合成後の画像である。また、画像56(補正用画像)は、前述のようにフィルタ処理を施し、星STを除去し、露出オーバーとなっている被写体Obのみが写っている画像である。画像54から画像56を減算することにより、不要光で露出オーバーとなった被写体Obが消えた画像57を得ることができる。この画像57には光跡MFTは写っている。
画像57(減算画像)を生成すると、次に、図4Eに示すように、画像57(減算画像)と画像53(ベース画像)を用いて比較明合成処理、または画像54と画像53の加算処理を行う(図2BのS33、図3BのS21参照)。画像57の光跡MLTは、突発的な不要光の影響を受けておらず、また突発的な不要光の影響を受けた被写体Obは除去されている。また、画像53(ベース画像)の被写体Obは、前述のように適正露出で撮影されている。星STは写っているが、比較明合成処理または加算処理を行う際には、光跡MLTに重なる。このため、画像57と画像53を用いて比較明合成処理、または加算処理を行った画像58は、被写体Obが適正露出となると共に、光跡MLTが途切れることがない。すなわち、画像58は、ユーザが意図した画像51と同じになる。
以上説明したように、本発明の一実施形態や変形例においては、被写体像を撮像素子によって撮像して画像データを生成し出力し(例えば、図2AのS5)、撮像素子により所定の露光時間で露光され出力される画像データを、画像データ合成部によって繰り返し比較明合成している(例えば、図2AのS17)。また、撮像素子から出力され、露光量が適切な画像データを基本画像データとして基本画像データ記憶部に記憶し(例えば、図2AのS11)、撮像素子から出力され、露光量が過大な画像データを減算用画像データとして減算用画像データ記憶部に記憶している(例えば、図2AのS15)。そして、減算用画像データをフィルタ処理して補正用画像データとし(例えば、図2BのS31)、画像データ合成部の出力する合成画像データから、補正用画像データを減算して第2の合成画像データを生成し、第2の合成画像データと基本画像データ記憶部に記憶された基本画像データとを比較明合成している(例えば、図2BのS33)。このため、突発的な不要光がある場合であっても、ユーザの意図する画像を比較明合成によって取得できる。
なお、本発明の一実施形態や変形例においては、適正な露出で撮影された画像として、1枚目の画像を基本画像データ記憶部に記憶している。しかし、1枚目の画像でなくても、適正露出で撮影されれば、2枚目以降の画像であってもよい。また、減算用画像から補正用画像を作成する際にフィルタ処理を施しているが、狭義のフィルタ処理に限らず、周囲の画素データを補間演算することによって、補正してもよく、また指定範囲の画素データのレベルを他のレベルに置き換える等、種々の演算処理や画像処理を行ってもよい(フィルタ処理として上述した(1)~(5)を参照)。
また、本発明の一実施形態や変形例においては、距離情報判定部15、露出判定部14等を、システム制御部20とは別体の構成とした。しかし、各部の全部または一部をソフトウエアで構成し、システム制御部20内のCPUによって実行するようにしても勿論かまわない。また、画像処理部10内の各部は、ハードウエア回路で構成する以外にも、ヴェリログ(Verilog)によって記述されたプログラム言語に基づいて生成されたゲート回路等のハードウエア構成でもよく、またDSP(Digital Signal Processor)等のソフトを利用したハードウエア構成を利用してもよい。さらに、FPGA(Field Programmable Gate Array)等の集積回路で構成されたプロセッサにおける各回路部であってもよい。または、1つ以上のCPUで構成されるプロセッサが、記録媒体に記録されたコンピュータプログラムを読み込んで実行することにより、各部としての機能を実行するようにしても構わない。これらは適宜組み合わせてもよいことは勿論である。
また、本発明の一実施形態や変形例においては、撮影のための機器として、デジタルカメラを用いて説明したが、カメラとしては、デジタル一眼レフカメラでもミラーレスカメラでもコンパクトデジタルカメラでもよく、ビデオカメラ、ムービーカメラのような動画用のカメラでもよく、さらに、携帯電話、スマートフォン、携帯情報端末、パーソナルコンピュータ(PC)、タブレット型コンピュータ、ゲーム機器等に内蔵されるカメラ、医療用カメラ、顕微鏡等の科学機器用のカメラ、自動車搭載用カメラ、監視用カメラでも構わない。いずれにしても、複数の画像データを合成することが可能な撮影機器であれば、本発明を適用することができる。
また、本明細書において説明した技術のうち、主にフローチャートで説明した制御に関しては、プログラムで設定可能であることが多く、記録媒体や記録部に収められる場合もある。この記録媒体、記録部への記録の仕方は、製品出荷時に記録してもよく、配布された記録媒体を利用してもよく、インターネットを介してダウンロードしたものでもよい。
また、本発明の一実施形態においては、フローチャートを用いて、本実施形態における動作を説明したが、処理手順は、順番を変えてもよく、また、いずれかのステップを省略してもよく、ステップを追加してもよく、さらに各ステップ内における具体的な処理内容を変更してもよい。
また、特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず」、「次に」等の順番を表現する言葉を用いて説明したとしても、特に説明していない箇所では、この順で実施することが必須であることを意味するものではない。
本発明は、上記実施形態にそのまま限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素の幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。