(57)【特許請求の範囲】
【請求項１】
撮像光学系を有し、フォーカスブラケット撮影を行って複数の画像を得る撮像装置であって、
フォーカスブラケット撮影の前の撮影によって得られた画像から複数の被写体を検出する検出手段と、
前記画像に応じて得られた距離マップに基づいて前記複数の被写体のそれぞれと前記撮像装置との距離を被写体距離として求める第１の算出手段と、
前記被写体距離と予め設定された条件とに応じて前記複数の被写体のそれぞれについて合焦する合焦位置の間隔である合焦間隔とその回数である合焦回数とを決定する決定手段と、
前記被写体距離、前記合焦間隔、および前記合焦回数に応じて合焦位置を求める第２の算出手段と、
前記合焦位置で前記フォーカスブラケット撮影によって連続的に撮影を行って複数の画像を得る撮影手段と、
を有し、
前記第２の算出手段は、前記複数の被写体のいずれかが存在する位置に前記合焦位置が設定され、前記複数の被写体のいずれも存在しない位置に前記合焦位置が設定されないように前記合焦位置を求めることを特徴とする撮像装置。
【請求項２】
前記予め定められた条件は、予め前記被写体距離が長くなるにつれて前記合焦間隔を粗くする条件であることを特徴とする請求項１に記載の撮像装置。
【請求項３】
前記予め定められた条件は、前記撮像光学系の特性であることを特徴とする請求項１に記載の撮像装置。
【請求項４】
前記検出手段によって検出された被写体の特性を判定して被写体特性を得る判定手段を備え、
前記予め定められた条件は前記被写体特性であることを特徴とする請求項１に記載の撮像装置。
【請求項５】
前記判定手段によって前記被写体特性として前記被写体が所定の凹凸を有する被写体であると判定されると、前記第２の算出手段は前記合焦間隔を細かくすることを特徴とする請求項４に記載の撮像装置。
【請求項６】
前記判定手段によって前記被写体特性として前記被写体が所定の長さを超える奥行きを有しているとされた場合には、前記被写体が前記所定の長さを超える奥行きを有していない場合に比べて、前記第２の算出手段は前記合焦回数を増やすことを特徴とする請求項４に記載の撮像装置。
【請求項７】
前記判定手段によって前記被写体特性として前記被写体が人又は動物であるとされると、前記第２の算出手段は前記合焦間隔を細かくすることを特徴とする請求項４に記載の撮像装置。
【請求項８】
前記第２の算出手段は、前記被写体距離に応じて合焦範囲を求めて、当該合焦範囲において前記合焦回数を決定することを特徴とする請求項１に記載の撮像装置。
【請求項９】
前記検出手段によって複数の被写体が検出された際、当該複数の被写体について前記第２の算出手段で算出された前記合焦位置が同一であると、前記合焦位置が同一の被写体の１つについて前記撮影手段による撮影を行うように制御する制御手段を有することを特徴とする請求項１〜８のいずれか１項に記載の撮像装置。
【請求項１０】
前記検出手段によって複数の被写体が検出された際、当該複数の被写体について前記第２の算出手段で算出された前記合焦位置の距離の差が所定の値未満であると、前記合焦位置が同一の被写体の１つについて前記撮影手段による撮影を行うように制御する制御手段を有することを特徴とする請求項１〜８のいずれか１項に記載の撮像装置。
【請求項１１】
前記合焦間隔の少なくとも一部は等間隔であることを特徴とする請求項１〜１０のいずれか１項に記載の撮像装置。
【請求項１２】
撮像光学系を有し、フォーカスブラケット撮影を行って複数の画像を得る撮像装置であって、
フォーカスブラケット撮影の前の撮影によって得られた画像から被写体を検出する検出手段と、
前記画像に応じて得られた距離マップに基づいて前記被写体と前記撮像装置との距離を被写体距離として求める第１の算出手段と、
前記検出手段によって検出された被写体の特性を判定して被写体特性を得る判定手段と、
前記被写体距離と前記被写体特性とに応じて前記被写体について合焦する合焦位置の間隔である合焦間隔とその回数である合焦回数とを決定する決定手段と、
前記被写体距離、前記合焦間隔、および前記合焦回数に応じて合焦位置を求める第２の算出手段と、
前記合焦位置で前記フォーカスブラケット撮影によって連続的に撮影を行って複数の画像を得る撮影手段と、
を有し、
前記判定手段によって前記被写体特性として前記被写体が所定の凹凸を有する被写体であると判定されると、前記第２の算出手段は前記合焦間隔を細かくすることを特徴とする撮像装置。
【請求項１３】
撮像光学系を有し、フォーカスブラケット撮影を行って複数の画像を得る撮像装置の制御方法であって、
フォーカスブラケット撮影の前の撮影によって得られた画像から複数の被写体を検出する検出ステップと、
前記画像に応じて得られた距離マップに基づいて前記複数の被写体のそれぞれと前記撮像装置との距離を被写体距離として求める第１の算出ステップと、
前記被写体距離と予め設定された条件とに応じて前記複数の被写体のそれぞれについて合焦する合焦位置の間隔である合焦間隔とその回数である合焦回数とを決定する決定ステップと、
前記被写体距離、前記合焦間隔、および前記合焦回数に応じて合焦位置を求める第２の算出ステップと、
前記合焦位置で前記フォーカスブラケット撮影によって連続的に撮影を行って複数の画像を得る撮影ステップと、
を有し、
前記第２の算出ステップでは、前記複数の被写体のいずれかが存在する位置に前記合焦位置が設定され、前記複数の被写体のいずれも存在しない位置に前記合焦位置が設定されないように前記合焦位置を求めることを特徴とする制御方法。
【請求項１４】
撮像光学系を有し、フォーカスブラケット撮影を行って複数の画像を得る撮像装置で用いられる制御プログラムであって、
前記撮像装置が備えるコンピュータに、
フォーカスブラケット撮影の前の撮影によって得られた画像から複数の被写体を検出する検出ステップと、
前記画像に応じて得られた距離マップに基づいて前記複数の被写体のそれぞれと前記撮像装置との距離を被写体距離として求める第１の算出ステップと、
前記被写体距離と予め設定された条件とに応じて前記複数の被写体のそれぞれについて合焦する合焦位置の間隔である合焦間隔とその回数である合焦回数とを決定する決定ステップと、
前記被写体距離、前記合焦間隔、および前記合焦回数に応じて合焦位置を求める第２の算出ステップと、
前記合焦位置で前記フォーカスブラケット撮影によって連続的に撮影を行って複数の画像を得る撮影ステップと、
を実行させ、
前記第２の算出ステップでは、前記複数の被写体のいずれかが存在する位置に前記合焦位置が設定され、前記複数の被写体のいずれも存在しない位置に前記合焦位置が設定されないように前記合焦位置を求めることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置、その制御方法、および制御プログラムに関し、特に、静止画を撮像するための撮像装置に関する。
【背景技術】
【０００２】
従来、画像再生の際に、画像を撮像した際の撮影シーンに存在する被写体（人物又は物体）に合焦させた画像を生成するようにした撮像装置が知られている（特許文献１参照）。
【０００３】
さらに、ぼけ付加処理における画質の劣化を防止するため、ぼけ方の異なる複数の画像から被写体距離を算出するようにした撮像装置がある（特許文献２参照）。ここでは、複数の画像間の位置ずれに応じて、画像中の領域毎に求められた被写体距離に対する信頼度に応じて、被写体距離を変更するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２０１７５２号公報
【特許文献２】特開２０１３−２３９１１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところが、特許文献１に記載の撮像装置では、ユーザーが指定した焦点距離に応じた画像を生成した際に、撮影の際の焦点距離で得られた画像と比較するとその画質が劣ってしまう。
【０００６】
また、特許文献２に記載の撮像装置においては、画像再生の際にユーザー所望の被写体に合焦させた画像を得ることが困難であり、そして、合焦可能な全ての距離について所謂フォーカスブラケッティング撮影を行うとなると、極めて無駄が多い。
【０００７】
従って、本発明の目的は、画像再生の際にユーザー所望の被写体に合焦してしかも高画質の画像を得ることのできる撮像装置、その制御方法、および制御プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記の目的を達成するため、本発明による撮像装置は、撮像光学系を有し、フォーカスブラケット撮影を行って複数の画像を得る撮像装置であって、フォーカスブラケット撮影の前の撮影によって得られた画像から複数の被写体を検出する検出手段と、前記画像に応じて得られた距離マップに基づいて前記複数の被写体のそれぞれと前記撮像装置との距離を被写体距離として求める第１の算出手段と、前記被写体距離と予め設定された条件とに応じて前記複数の被写体のそれぞれについて合焦する合焦位置の間隔である合焦間隔とその回数である合焦回数とを決定する決定手段と、前記被写体距離、前記合焦間隔、および前記合焦回数に応じて合焦位置を求める第２の算出手段と、前記合焦位置で前記フォーカスブラケット撮影によって連続的に撮影を行って複数の画像を得る撮影手段と、を有し、前記第２の算出手段は、前記複数の被写体のいずれかが存在する位置に前記合焦位置が設定され、前記複数の被写体のいずれも存在しない位置に前記合焦位置が設定されないように前記合焦位置を求めることを特徴とする。
【０００９】
本発明による制御方法は、撮像光学系を有し、フォーカスブラケット撮影を行って複数の画像を得る撮像装置の制御方法であって、フォーカスブラケット撮影の前の撮影によって得られた画像から複数の被写体を検出する検出ステップと、前記画像に応じて得られた距離マップに基づいて前記複数の被写体のそれぞれと前記撮像装置との距離を被写体距離として求める第１の算出ステップと、前記被写体距離と予め設定された条件とに応じて前記複数の被写体のそれぞれについて合焦する合焦位置の間隔である合焦間隔とその回数である合焦回数とを決定する決定ステップと、前記被写体距離、前記合焦間隔、および前記合焦回数に応じて合焦位置を求める第２の算出ステップと、前記合焦位置で前記フォーカスブラケット撮影によって連続的に撮影を行って複数の画像を得る撮影ステップと、を有し、前記第２の算出ステップでは、前記複数の被写体のいずれかが存在する位置に前記合焦位置が設定され、前記複数の被写体のいずれも存在しない位置に前記合焦位置が設定されないように前記合焦位置を求めることを特徴とする。
【００１０】
本発明による制御プログラムは、撮像光学系を有し、フォーカスブラケット撮影を行って複数の画像を得る撮像装置で用いられる制御プログラムであって、前記撮像装置が備えるコンピュータに、フォーカスブラケット撮影の前の撮影によって得られた画像から複数の被写体を検出する検出ステップと、前記画像に応じて得られた距離マップに基づいて前記複数の被写体のそれぞれと前記撮像装置との距離を被写体距離として求める第１の算出ステップと、前記被写体距離と予め設定された条件とに応じて前記複数の被写体のそれぞれについて合焦する合焦位置の間隔である合焦間隔とその回数である合焦回数とを決定する決定ステップと、前記被写体距離、前記合焦間隔、および前記合焦回数に応じて合焦位置を求める第２の算出ステップと、前記合焦位置で前記フォーカスブラケット撮影によって連続的に撮影を行って複数の画像を得る撮影ステップと、を実行させ、前記第２の算出ステップでは、前記複数の被写体のいずれかが存在する位置に前記合焦位置が設定され、前記複数の被写体のいずれも存在しない位置に前記合焦位置が設定されないように前記合焦位置を求めることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、被写体距離と予め設定された条件とに応じて合焦間隔と合焦回数とを決定するようにしたので、必要最小限のフォーカスブラケット撮影を行って、画像再生の際にユーザー所望の被写体に合焦してしかも高画質の画像を得ることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態による撮像装置の一例についてその構成を示すブロック図である。
【図２】図１に示すカメラで行われる撮像処理の一例を説明するためのフローチャートである。
【図３】図２に示す被写体検出処理の一例を説明するためのフローチャートである。
【図４】被写体検出処理の結果得られた被写体検出結果を示す被写体リストの一例を示す図である。
【図５】図２に示す合焦間隔および合焦回数算出処理の一例を説明するためのフローチャートである。
【図６】図２の示す焦点面距離算出処理を説明するためのフローチャートである。
【図７】焦点面距離検出処理の結果得られた焦点面距離データの一例を示す図である。
【図８】図１に示すカメラにおいて撮像される撮影シーンの一例を示す図である。
【図９】図８に示す撮影シーンにおける被写体位置と合焦位置との関係を説明するための図である。
【図１０】図１に示すカメラで得られた画像を表示する画像表示装置の一例であるパーソナルコンピュータ（ＰＣ）の構成を示すブロック図である。
【図１１】図１０に示す画像表示装置（ＰＣ）で用いられるユーザーインターフェイスの一例を示す図である。
【図１２】図１に示すＰＣで行われる画像表示処理を説明するためのフローチャートである。
【図１３】図２に示す合焦間隔および合焦回数算出処理の他の例を説明するためのフローチャートである。
【図１４】図１に示すカメラで用いられる被写体距離と合焦間隔と関係の一例を示す図である。
【図１５】本発明の第２の実施形態に係るカメラで行われる被写体検出結果（被写体特性情報）が登録された被写体リストの一例を示す図である。
【図１６】本発明の第２の実施形態によるカメラで行われる合焦間隔および合焦回数算出処理を説明するためのフローチャートである。
【図１７】本発明の第２の実施形態によるカメラで行われた合焦間隔および合焦回数算出処理の結果である合焦間隔および合焦回数算出結果の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下に、本発明の実施の形態による撮像装置の一例について図面を参照して説明する。
【００１４】
［第１の実施形態］
［撮像装置の構成］
図１は、本発明の第１の実施形態による撮像装置の一例についてその構成を示すブロック図である。
【００１５】
図示の撮像装置は、例えば、デジタルスチルカメラ（以下単にカメラと呼ぶ）であり、撮像部１００を有している。撮像部１００は、撮像光学系、ＣＣＤ又はＣＭＯＳセンサーなどの撮像素子、およびＡ／Ｄ変換部（ともに図示せず）を備えており、撮像素子は撮像光学系を介して結像した光学像に応じた電気信号（アナログ信号）を出力する。そして、このアナログ信号はＡ／Ｄ変換部によってＡ／Ｄ変換および所定の信号処理が行われて、画像データとして出力される。
【００１６】
ＣＰＵ１０１はカメラ全体の制御を司る。ＲＯＭ１０２には、ＣＰＵ１０１の動作処理手順（例えば、カメラの電源をＯＮした際の処理、および基本入出力処理などのプログラム）が記憶されている。ＲＡＭ１０３はＣＰＵ１０１のメインメモリとして用いられる。さらに、ＲＡＭ１０３には後述する処理を行うための制御プログラムを含む各種プログラムがＲＯＭ１０２などからロードされて、ＣＰＵ１０１によって実行される。そして、ＲＡＭ１０３はＣＰＵ１０１が各種処理を実行する際のワークエリアとしても用いられる。
【００１７】
ＣＰＵ１０１は表示装置１０４に、処理に応じて各種表示を行う。例えば、ＣＰＵ１０１は、記憶媒体に記憶された画像データなどを表示装置１０４に表示する。入力装置１０５はボタンなどが備えられており、ユーザーは入力装置１０５を操作してカメラに対して各種指示を与える。なお、入力装置１０５には、電源スイッチおよびレリーズボタンなどが含まれている。
【００１８】
記録媒体装着ユニット（メディアドライブ）１０６には、記憶媒体が装着され、ＣＰＵ１０１は当該記録媒体に画像データなどを記憶するとともに、記録媒体に記憶された画像データなどを読み出す。ネットワークインターフェイス（Ｉ／Ｆ）１０７は通信回線１０９を介してコンピュータネットワーク（Ｎｅｔｗｏｒｋ）１１０と接続される。ＣＰＵ１０１はネットワークインターフェイス１０７を介してコンピュータネットワーク１１０上に存在するサーバコンピュータ又はパーソナルコンピュータと画像データなどを送受信する。
【００１９】
なお、上述の各ブロック（ユニット）はシステムバス（アドレスバス、データバス、および制御バス）によって相互に接続されている。
【００２０】
［撮像処理］
図２は、図１に示すカメラで行われる撮像処理の一例を説明するためのフローチャートである。なお、図示のフローチャートに係る処理は、ＣＰＵ１０１がＲＡＭ１０３に展開された制御プログラムを実行することによって行われる。
【００２１】
ここでは、ユーザーが入力装置１０５に備えられたレリーズボタンを押し下げると、ＣＰＵ１０１は、ユーザーによる撮像操作があったと判定して、撮像処理を開始する。なお、以下の説明においては、被写体の距離および奥行きの単位はｃｍとする。
【００２２】
撮像処理を開始すると、ＣＰＵ１０１は、撮像部１００を制御して仮撮影を行う（ステップＳ２０１）。そして、ＣＰＵ１０１は仮撮影の結果得られた画像データを一旦ＲＡＭ１０３に記録する。
【００２３】
続いて、ＣＰＵ１０１は、ステップＳ２０１で得られた画像データに応じて、距離マップを作成する（ステップＳ２０２）。なお、距離マップとは、被写体像を規定する画素の各々ついてカメラと被写体との距離（被写体距離）を数値化したデータである。距離マップの作成に当たっては、例えば、前述の特許文献２に記載の手法が用いられる。そして、ＣＰＵ１０１は当該距離マップをＲＡＭ１０３に記録する。
【００２４】
続いて、ＣＰＵ１０１は、ステップＳ２０２において作成した距離マップを参照して被写体を検出して、被写体毎の被写体距離を求める（ステップＳ２０３）。なお、被写体検出の手法については後述する。
【００２５】
次に、ＣＰＵ１０１は、内蔵カウンタのカウント値ｉに１をセットする（ステップＳ２０４）。そして、ＣＰＵ１０１は、カウント値ｉが画像データにおける被写体（例えば、人物および物体）の数以下であるか否かを判定する（ステップＳ２０５）。
【００２６】
カウント値ｉが被写体数以下であると（ステップＳ２０５において、ＹＥＳ）、ＣＰＵ１０１は、ステップＳ２０３で得られた被写体距離に基づいて合焦位置の間隔およびその回数を求める（ステップＳ２０６）。以下合焦位置の間隔を合焦間隔と呼び、合焦を行って撮影する回数を合焦回数と呼ぶ。なお、合焦間隔および合焦回数の算出については後述する。
【００２７】
次に、ＣＰＵ１０１は、被写体距離と合焦間隔および合焦回数とに基づいて撮像素子から合焦位置までの物理的な距離（以下、焦点面距離と呼ぶ）を算出し、ＲＡＭ１０３に焦点面距離リストとして記憶する（ステップＳ２０７）。なお、焦点面距離の算出および焦点面距離リストについては後述する。そして、ＣＰＵ１０１は、カウント値ｉを”＋１”インクリメントして（ステップＳ２０８）、ステップＳ２０５の処理に戻る。
【００２８】
カウント値ｉが被写体数を超えると（ステップＳ２０５において、ＮＯ）、ＣＰＵ１０１は、ＲＡＭ１０３から焦点面距離リストを読み込み、撮像部１００を制御して焦点面距離リストに記録された距離に合焦するようフォーカスレンズを駆動して連続撮影を行う（ステップＳ２０９）。そして、ＣＰＵ１０１は、連続撮影の結果得られた複数の画像データを、一回の撮像操作で得られた一群の画像群として距離マップと関連づけてメディアドライブ１０６によって記憶媒体に記憶する。なお、画像群を構成する画像データの各々は個別のヘッダ情報を有し、当該ヘッダ情報には焦点面距離を示す焦点面距離情報が保持される。
【００２９】
続いて、ＣＰＵ１０１は、合焦位置を無限遠として、撮像部１００を制御して撮影を行う。そして、ＣＰＵ１０１は当該無限遠で得られた画像データを、ステップＳ２０９で得られた画像群の１つとしてメディアドライブ１０６によって記憶媒体に記憶する（ステップＳ２１０）。その後、ＣＰＵ１０１は撮像処理を終了する。
【００３０】
［被写体検出処理］
図３は、図２に示す被写体検出処理の一例を説明するためのフローチャートである。また、図４は、被写体検出処理の結果得られた被写体検出結果を示す被写体リストの一例を示す図である。
【００３１】
図３および図４を参照して、被写体検出処理を開始すると、まず、ＣＰＵ１０１は、ＲＡＭ１０３から距離マップを読み込む（ステップＳ３００）。そして、ＣＰＵ１０１は、距離マップと同一の画素数を有する探索領域判定用データを作成して、ＲＡＭ１０３に記憶する（ステップＳ３０１）。この探索領域判定用データは、後述のステップＳ３０３以降の処理において、距離マップの全体について被写体検出処理が完了したか否かを判定する際に用いられる。なお、探索領域判定データは、その作成直後においては、全画素の画素値を”０”として未探索領域とする。
【００３２】
続いて、ＣＰＵ１０１は、被写体数をカウントするためのカウンタのカウント値ｏｂｊＣｏｕｎｔに１をセットする（ステップＳ３０２）。そして、ＣＰＵ１０１は、ＲＡＭ１０３に記憶した探索領域判定用データを参照して、未探索領域が存在するか否かを判定する（ステップＳ３０３）。未探索領域が存在するか否かを判定する際には、ＣＰＵ１０１は探索領域判定用データの各画素を参照して、画素値”０”の画素が存在するか否かに応じて未探索領域が存在するか否かを判定する。
【００３３】
未探索領域が存在しないと（ステップＳ３０３において、ＮＯ）、ＣＰＵ１０１は、被写体検出処理が完了したとして、ＲＡＭ１０３に記憶された探索領域判定用データを破棄する（ステップＳ３１４）。そして、ＣＰＵ１０１は被写体検出処理を終了する。
【００３４】
一方、未探索領域が存在する場合には（ステップＳ３０３において、ＹＥＳ）、ＣＰＵ１０１は、ＲＡＭ１０３に記憶された探索領域判定用データを参照して、未探索領域、つまり、画素値が”０”の画素の座標を取得する。そして、ＣＰＵ１０１は当該座標に対応する距離マップの画素値を参照して、未探索領域に最も近い距離の画素を探索する（ステップＳ３０４）。
【００３５】
次に、ＣＰＵ１０１は、ステップＳ３０４において探索した距離、つまり、最も近い距離を変数ｄｉｓＣｌｏｓｅにセットする（ステップＳ３０５）。そして、ＣＰＵ１０１は、被写体を検出する際の境界を判定するため、ステップＳ３０４において探索した画素（つまり、注目画素）を境界画素として、ＲＡＭ１０３に記憶する（ステップＳ３０６）。
【００３６】
続いて、ＣＰＵ１０１は、境界画素と当該境界画素に隣接する全ての画素について、境界画素との距離の差が所定の閾値ｄｉｓＴｈ未満であるか否かを判定する（ステップＳ３０７）。なお、ここでは、閾値ｄｉｓＴｈは、例えば、１ｃｍとする。距離の差が閾値ｄｉｓＴＨ未満の画素が存在あると（ステップＳ３０７において、ＹＥＳ）、ＣＰＵ１０１は、距離の差が閾値ｄｉｓＴＨ未満である画素を境界画素としてＲＡＭ１０３に記憶する（ステップＳ３０８）。
【００３７】
続いて、ＣＰＵ１０１は、距離マップを参照して、境界画素および境界画素で囲まれた領域において、未探索領域に最も近い距離の画素から最も遠い境界画素の距離を変数ｄｉｓＦａｒにセットする（ステップＳ３０９）。そして、ＣＰＵ１０１はステップＳ３０７の処理に戻る。
【００３８】
距離の差が閾値ｄｉｓＴＨ未満の画素が存在しないと（ステップＳ３０７において、ＮＯ）、ＣＰＵ１０１は、境界画素および境界画素で囲まれた領域における画素の数が所定の閾値ｏｂｊＭｉｎＰｉｘより大きいか否かを判定する（ステップＳ３１０）。画素数が閾値ｏｂｊＭｉｎＰｉｘより大きいと（ステップＳ３１０において、ＹＥＳ）、ＣＰＵ１０１は注目する被写体が十分な面積を占めているとして、境界画素および境界画素で囲まれた領域が１つの被写体であるとする。そして、ＣＰＵ１０１は、図４に示す被写体リストに当該被写体を記憶する。なお、被写体リストはＲＡＭ１０３に記憶される。
【００３９】
次に、ＣＰＵ１０１は、被写体カウンタのカウント値ｏｂｊＣｏｕｎｔを”＋１”インクリメントする（ステップＳ３１２）。そして、ＣＰＵ１０１は、ＲＡＭ１０３に記憶された探索領域判定用データについて、境界画素および境界画素に囲まれた領域の画素値を”１”として探索済み領域とする（ステップＳ３１３）。その後、ＣＰＵ１０１はステップＳ３０３の処理に戻る。
【００４０】
画素数が閾値ｏｂｊＭｉｎＰｉｘ以下であると（ステップＳ３１０において、ＮＯ）、ＣＰＵ１０１は注目する被写体が被写体として十分な面積を占めていないとして、ステップステップＳ３１３の処理に進む。なお、閾値ｏｂｊＭｉｎＰｉｘは、例えば、距離マップを構成する画素数の２０分の１とする。
【００４１】
図４に示す被写体リストには、被写体Ｎｏ．欄４０１、距離欄４０２、および奥行き欄４０３が備えられており、ここでは、被写体として「カブトムシ」、「本」、「子供」、および「お母さん」が例に挙げられている。被写体Ｎｏ．４０１は、注目する被写体を一意に特定するための識別番号である。なお、被写体Ｎｏ．４０１には、カウント値ｏｂｊＣｏｕｎｔが用いられる。
【００４２】
距離４０２は、注目する被写体の距離を示し、距離４０２には、変数ｄｉｓＣｌｏｓｅが用いられる。奥行き４０３は、注目する被写体の奥行きを示し。奥行き４０３には、最も遠い距離ｄｉｓＦａｒから最も近い距離ｄｉｓＣｌｏｓｅを減算した結果が用いられる。
【００４３】
［合焦間隔および合焦回数算出処理］
図５は、図２に示す合焦間隔および合焦回数算出処理の一例を説明するためのフローチャートである。
【００４４】
合焦間隔および合焦回数算出処理を開始すると、ＣＰＵ１０１は、前述のカウンタｉのカウント値を読み込む（ステップＳ５００）。そして、ＣＰＵ１０１はＲＡＭ１０３に記憶された被写体リストからｉ番目の被写体に関する距離（ｄｉｓｔａｎｃｅ）および奥行き（ｄｅｐｔｈ）を読み込む（ステップＳ５０１）。
【００４５】
続いて、ＣＰＵ１０１は、被写体距離ｄｉｓｔａｎｃｅが所定の第１の距離閾値（ここでは、例えば、２０ｃｍ）未満であるか否かを判定する（ステップＳ５０２）。ｄｉｓｔａｎｃｅ＜２０ｃｍであると（ステップＳ５０２において、ＹＥＳ）、ＣＰＵ１０１は被写体との距離が極めて近いとして、合焦間隔ｉｎｔｅｒｖａｌに”２”をセットし、合焦回数（つまり、撮影回数）ｒｅｐＣｎｔに”４”をセットする（ステップＳ５０３）。
【００４６】
一方、Ｄｉｓｔａｎｃｅ≧２０ｃｍであると（ステップＳ５０２において、ＮＯ）、ＣＰＵ１０１は被写体距離ｄｉｓｔａｎｃｅが所定の第２の距離閾値（ここでは、例えば、３００ｃｍ）未満であるか否かを判定する（ステップＳ５０４）。ｄｉｓｔａｎｃｅ＜３００ｃｍであると（ステップＳ５０４において、ＹＥＳ）、ＣＰＵ１０１は被写体との距離が中距離であるとして、合焦間隔ｉｎｔｅｒｖａｌに”１０”をセットし、合焦回数ｒｅｐＣｎｔに”２”をセットする（ステップＳ５０５）。
【００４７】
ｄｉｓｔａｎｃｅ≧３００ｃｍであると（ステップＳ５０４において、ＮＯ）、ＣＰＵ１０１は遠距離であるとして、合焦間隔ｉｎｔｅｒｖａｌに”５０”をセットし、合焦回数ｒｅｐＣｎｔに”１”をセットする（ステップＳ５０６）。
【００４８】
ステップＳ５０３、Ｓ５０５、又はＳ５０６の処理の後、ＣＰＵ１０１は、下記の式（１）で示す関係が真となるか又は偽となるかについて判定をする（ステップＳ５０７）。
【００４９】
ｄｅｐｔｈ＞ｉｎｔｅｒｖａｌ×（ｒｅｐＣｎｔ＋１）      （１）
式（１）で示す関係が真であると、つまり、成り立つと（ステップＳ５０７において、ＹＥＳ）、ＣＰＵ１０１は上述の合焦間隔および合焦回数では、対象とする被写体の奥行きに関して必要となる撮影が不足するとして、式（２）によって合焦回数を改めて算出する（ステップＳ５０８）。そして、ＣＰＵ１０１は合焦間隔および合焦回数算出処理を終了する。
【００５０】
ｒｅｐＣｎｔ＝ｄｅｐｔｈ÷ｉｎｔｅｒｖａｌ      （２）
一方、式（１）で示す関係が偽であると、つまり、成り立たないと（ステップＳ５０７において、ＮＯ）、ＣＰＵ１０１は、上述の合焦間隔および合焦回数によって対象とする被写体の奥行きに関して撮影が十分であるとして、合焦間隔および合焦回数算出処理を終了する。
【００５１】
［焦点面距離算出処理］
図６は、図２の示す焦点面距離算出処理を説明するためのフローチャートである。また、図７は、焦点面距離検出処理の結果得られた焦点面距離データ（焦点面距離リスト）の一例を示す図である。
【００５２】
図６および図７を参照して、焦点面距離算出処理を開始すると、ＣＰＵ１０１は、図２に示すステップＳ２０６の処理で求めた合焦間隔（ｉｎｔｅｒｖａｌ）および合焦回数（ｒｅｐＣｎｔ）とｉ番目の被写体に係る被写体距離（ｄｉｓｔａｎｃｅ）をＲＡＭ１０３から読み込む（ステップＳ６０１）。そして、ＣＰＵ１０１は、処理カウンタｋに”０”をセットする（ステップＳ６０２）。
【００５３】
続いて、ＣＰＵ１０１は、処理カウンタｋのカウント値が合焦回数ｒｅｐＣｎｔより小さいか否かを判定する（ステップＳ６０３）。処理カウンタｋのカウント値≧合焦回数ｒｅｐＣｎｔであると（ステップＳ６０３において、ＮＯ）、ＣＰＩ１０１は焦点面距離算出処理を終了する。
【００５４】
一方、処理カウンタｋのカウント値＜合焦回数ｒｅｐＣｎｔであると（ステップＳ６０３において、ＹＥＳ）、ＣＰＩ１０１は、次の式（３）によって焦点面距離ｆｏｃｕｓＤｉｓを算出する（ステップＳ６０４）。
【００５５】
ｆｏｃｕｓＤｉｓ＝ｄｉｓｔａｎｃｅ＋ｉｎｔｅｒｖａｌ×ｋ      （３）
次に、ＣＰＵ１０１は、ＲＡＭ１０３に記憶された焦点面距離リストに、ステップＳ６０４で求めた焦点面距離ｆｏｃｕｓＤｉｓと同一の焦点同距離が存在するか否かを判定する（ステップＳ６０５）。焦点面距離ｆｏｃｕｓＤｉｓと同一の焦点同距離が存在しないと（ステップＳ６０５において、ＮＯ）、ＣＰＵ１０１は、当該焦点面距離ｆｏｃｕｓＤｉｓに合焦Ｎｏ．を付与して焦点面距離リストに記憶する（ステップＳ６０６）。
【００５６】
この合焦Ｎｏ．は、図７に参照番号７０１で示すように、処理対象の焦点面距離を一意に特定するため番号であり、前述の処理カウンタｋのカウント値が用いられる。なお、合焦Ｎｏ．を決定する際には、ＣＰＵ１０１は焦点面距離リストに記憶された合焦Ｎｏ．のうち最も大きい番号を１つインクリメントして、合焦Ｎｏ．とする。また、焦点面距離７０２には、ステップＳ６０４の処理で得られた焦点面距離ｆｏｃｕｓＤｉｓが記憶される。
【００５７】
続いて、ＣＰＵ１０１は処理カウンタｋのカウント値を”＋１”インクリメントする（ステップＳ６０７）。そして、ＣＰＵ１０１はステップＳ６０３の処理に戻る。なお、焦点面距離ｆｏｃｕｓＤｉｓと同一の焦点同距離が存在する（ステップＳ６０５において、ＹＥＳ）、ＣＰＵ１０１は、ステップＳ６０７の処理に進む。
【００５８】
このようにして、図４に示す被写体について、図７に示す合焦Ｎｏ．１〜合焦Ｎｏ．１４の焦点面距離が焦点面距離リストに記憶される。
【００５９】
［被写体位置と合焦位置との関係］
図８は、図１に示すカメラにおいて撮像される撮影シーンの一例を示す図である。また、図９は、図８に示す撮影シーンにおける被写体位置と合焦位置との関係を説明するための図である。
【００６０】
いま、図１に示すカメラを用いて、図８に示す撮影シーンを撮像するとする。図９において、カメラ９０１に対して、箱９０２、本９０３、子供９０４、および母親９０５の順にその距離が遠くなる。前述の被写体検出処理の後、図４に示す被写体リストが得られたとする。そして、当該被写体リストについて焦点面距離算出処理を行って、図７に示す合焦Ｎｏ．１〜合焦Ｎｏ．１４の焦点面距離が得られる。
【００６１】
図９において、参照番号９０６〜９１９の各々は合焦位置であって、図７に示す合焦Ｎｏ．１〜合焦Ｎｏ．１４の焦点面距離に対応する。合焦位置９０６〜９１３はそれぞれ合焦Ｎｏ．１〜合焦Ｎｏ．８の焦点面距離に対応しており、カメラ９０１から近距離に位置する箱９０２および本９０３の位置まではその合焦間隔が短くなっていることが分かる。
【００６２】
合焦位置９１４〜９１８は、合焦Ｎｏ．９〜合焦Ｎｏ．１３の焦点面距離に対応しており、焦点位置９１２を含めて、カメラ９０１から中距離に位置する子供９０４までの合焦間隔が等間隔になっていることが分かる。合焦位置９１９は合焦Ｎｏ．１４の焦点面距離に対応しており、カメラ９０１から遠距離に位置する母親９０５の位置と合焦位置が一致していることが分かる。なお、合焦位置９１８〜９１９の間においては被写体が存在しないので、合焦位置は存在しない。
【００６３】
［画像表示装置として動作するＰＣ］
図１０は、図１に示すカメラで得られた画像を表示する画像表示装置の一例であるパーソナルコンピュータ（ＰＣ）の構成を示すブロック図である。
【００６４】
図示のＰＣは、ＣＰＵ１００１を有しており、ＣＰＵ１００１はＰＣ全体の制御を司る。ＲＯＭ１００２には、ＣＰＵ１００１の動作処理手順（例えば、コンピュータの立ち上げ処理および基本入出力処理などのプログラム）が記憶されている。ＲＡＭ１００３はＣＰＵ１００１のメインメモリとして用いられる。
【００６５】
なお、ＲＡＭ１００３には後述の処理を行うための制御プログラムを含む各種プログラムがハードディスクドライブ（ＨＤＤ）１００５などからロードされて、ＣＰＵ１００１によって実行される。また、ＲＡＭ１００３はＣＰＵ１００１が各種処理を実行する際のワークエリアとして用いられる。
【００６６】
ＨＤＤ１００５はアプリケーションプログラム、データ、およびライブラリなどの保存、そして、読み込み用に用いられる。入力装置１００６はポインティングデバイスおよびキーボードなどを有している。ディスプレイ１００４はＣＰＵ１００１の制御下で各種表示が行われる。
【００６７】
記憶媒体装着ユニット（メディアドライブ）１００７には着脱可能に記憶媒体が装着される。当該記録媒体には、例えば、図１に示すカメラによって撮影の結果得られた画像データが記録されている。そして、メディアドライブ１００７は、ＣＰＵ１００１の制御下で記録媒体に記憶された画像データを読み出す。
【００６８】
ネットワークインターフェイス（Ｉ／Ｆ）１００８は、通信回線１０１０を介してコンピュータネットワーク１０１１と接続される。このネットワークインターフェイス１００８によって、ＰＣは外部機器と画像データなどの各種データを送受信する。なお、上述の各ブロックは、システムバス（アドレスバス、データバス、および制御バス）によって相互に接続されている。
【００６９】
以下の説明では、処理対象の画像データは、既にＨＤＤ１００５に保存されているものとする。
【００７０】
［画像表示装置のユーザーインターフェイス］
図１１は、図１０に示す画像表示装置（ＰＣ）で用いられるユーザーインターフェイスの一例を示す図である。なお、ここでは、ユーザーが画像再生の際に焦点位置を変更する手法について説明する。
【００７１】
ＰＣのディスプレイ１００４には、図１１に示すユーザーインターフェイスが表示されているものとする。図示のユーザーインターフェイスには、ファイル読み込みメニュー１１０１が表示される。ユーザーが入力装置１００６を用いてファイル読み込みメニュー１１０１を選択すると、ＣＰＵ１００１はファイル読み込み指示があったと判定してファイルオープンダイアログをディスプレイ１００４に表示する。そして、ユーザーがファイルオープンダイアログにおいて画像データを選択すると、ＣＰＵ１００１はＨＤＤ１００５から選択された画像データをＲＡＭ１００３に読み込んで、画像データ表示領域１１０５に画像として表示する。
【００７２】
ユーザーが入力装置１００６を用いて、ユーザーインターフェイスに表示されたファイル保存メニュー１１０２を選択すると、ＣＰＵ１００１はファイル保存指示があったと判定して、ファイル保存ダイアログをディスプレイ１１０４に表示する。そして、ＣＰＵ１００１はユーザーが指定したファイル名で、画像データ表示領域１１０５に表示された画像をＨＤＤ１００５に保存する。
【００７３】
ユーザーが入力装置１００６を用いて、フォーカス指定ボタン１１０３を押下すると、ＣＰＵ１００１はフォーカス位置指定操作があったと判定して、フォーカス指定ボタンを凹んだ状態とする。そして、ＣＰＵ１００１は、後述のポインティングデバイスの位置を示すカーソル１１０６の形状を画像データ表示領域１１０５において変更する。つまり、カーソル１１０６は、ＰＣ起動直後においては矢印の形状をしているが、ユーザーがフォーカス指定ボタン１１０３を押し下げると、ＣＰＵ１００１はフォーカス位置指定操作があったと判定して、カーソル１１０６の形状を変更する。
【００７４】
フォーカス指定ボタン１１０３が凹んだ状態で、再びユーザーがフォーカス指定ボタン１１０３を押し下げると、ＣＰＵ１００１は、フォーカス位置指定操作が解除されたものと判定して、フォーカス指定ボタン１１０３を凸状態に戻す。さらに、フォーカス指定ボタン１１０３が凹んだ状態で、画像上において任意の箇所が選択されると、ＣＰＵ１００１はフォーカス位置指定が完了したと判定して、後述する画像表示処理を実行するととともに、フォーカス指定ボタン１１０３を凸状態に戻す。
【００７５】
ユーザーが入力装置１００６を用いて終了ボタン１１０４を押し下げると、ＣＰＵ１００１は終了指示があったと判定して画像表示を終了する。
【００７６】
ユーザーが所望の画像データに対して焦点の位置を変更する際には、まずユーザーはファイル読み込みメニューにおいて所望の画像データを選択する。そして、フォーカス指定ボタン１１０３を押下した後、ユーザーは画像データ表示領域１１０５において焦点を合わせたい所望の位置にカーソルを移動して当該位置を選択する（フォーカス位置指定操作）。
【００７７】
これによって、ＣＰＵ１００１は後述する画像表示処理を行って、ユーザーが選択した位置に合焦の画像を画像データ表示領域１１０５に表示する。
【００７８】
［画像表示処理］
図１２は、図１に示すＰＣで行われる画像表示処理を説明するためのフローチャートである。
【００７９】
前述のようにして、フォーカス位置指定操作があると、ＣＰＵ１００１は画像表示処理を開始する。ＣＰＵ１００１は、ユーザーが画像データ表示領域１１０５において位置選択を行ったか否かを判定する（ステップＳ１２０１）。画像データ表示領域１１０５において位置選択を行っていないと判定すると、つまり、画像データ表示領域１１０５の外で選択したと判定すると（ステップＳ１２０１において、ＮＯ）、ＣＰＵ１００１は、ユーザーが終了ボタン１１０４を押し下げたか否かを判定する（ステップＳ１２０２）。
【００８０】
終了ボタン１１０４を押し下げたと判定すると（ステップＳ１２０２において、ＹＥＳ）、ＣＰＵ１００１は画像表示処理を終了する。一方、終了ボタン１１０４の押し下げを行っていないと判定すると（ステップＳ１２０２において、ＮＯ）、ＣＰＵ１００１はステップＳ１２０１の処理に戻る。
【００８１】
画像データ表示領域１１０５において位置選択を行ったと判定すると（ステップＳ１２０１において、ＹＥＳ）、ＣＰＵ１００１はユーザーが選択した選択位置の座標を読み込む（ステップＳ１２０３）。続いて、ＣＰＵ１００１は、ＨＤＤ１００５から表示中の画像データに関連付けられた距離マップをＲＡＭ１００３に読み込み、選択位置座標における距離（つまり、被写体距離）を距離マップから検索する（ステップＳ１２０４）。
【００８２】
次に、ＣＰＵ１００１は、ステップＳ１２０４において検索した距離が予め設定された閾値以上であるか否かを判定する（ステップＳ１２０５）。なお、ここの閾値は、例えば、１０００ｃｍとする。距離が閾値以上であると（ステップＳ１２０５において、ＹＥＳ）、ＣＰＵ１００１は、焦点面距離が無限遠である画像データＨＤＤ１００５からＲＡＭ１００３に読み込んで、画像データ領域１１０５に表示する（ステップＳ１２０６）。そして、ＣＰＵ１００１はステップＳ１２０１の処理に戻る。
【００８３】
距離が閾値未満であると（ステップＳ１２０５において、ＮＯ）、ＣＰＵ１００１は、ステップＳ１２０４において検索した距離と一致する焦点面距離の画像データがＨＤＤ１００５に存在するか否かを判定する（ステップＳ１２０７）。距離と一致する焦点面距離の画像データが存在すると（ステップＳ１２０７において、ＹＥＳ）、ＣＰＵ１００１は、上記の距離と一致する焦点面距離の画像データをＨＤＤ１００５からＲＡＭ１００３に読み込んで、画像データ領域１１０５に表示する（ステップＳ１２０８）。そして、ＣＰＵ１００１はステップＳ１２０１の処理に戻る。
【００８４】
距離と一致する焦点面距離の画像データが存在しないと（ステップＳ１２０７において、ＮＯ）、ＣＰＵ１００１は、ステップＳ１２０４において検索した距離に最も近い焦点面距離の画像をＲＡＭ１００３に読み込んで、画像データ領域１１０５に表示する（ステップＳ１２０９）。そして、ＣＰＵ１００１はステップＳ１２０１の処理に戻る。
【００８５】
［合焦間隔および合焦回数算出処理の他の手法］
図１３は、図２に示す合焦間隔および合焦回数算出処理の他の例を説明するためのフローチャートである。
【００８６】
図５に関連して説明した合焦間隔および合焦回数算出処理においては、被写体距離に応じて合焦間隔および合焦回数を変更するようにしたが、ここでは、被写体に応じて合焦範囲と当該合焦範囲における合焦回数を変更する。なお、図１３において、図５と同一のステップについては同一の参照符号を付して説明を省略する。
【００８７】
ステップＳ５０２において、ｄｉｓｔａｎｃｅ＜２０ｃｍであると（ステップＳ５０２において、ＹＥＳ）、ＣＰＵ１０１は被写体との距離が極めて近いとして、合焦範囲ｒａｎｇｅに”８”をセットし、合焦回数ｒｅｐＣｎｔに”４”をセットする（ステップＳ１３０３）。一方、Ｄｉｓｔａｎｃｅ≧２０ｃｍであると（ステップＳ５０２において、ＮＯ）、ＣＰＵ１０１は、ステップＳ５０４において被写体距離ｄｉｓｔａｎｃｅが所定の第２の距離閾値未満であるか否かを判定する。ｄｉｓｔａｎｃｅ＜３００ｃｍであると（ステップＳ５０４において、ＹＥＳ）、ＣＰＵ１０１は被写体との距離が中距離であるとして、合焦範囲ｒａｎｇｅに”２０”をセットし、合焦回数ｒｅｐＣｎｔに”２”をセットする（ステップＳ１３０５）。
【００８８】
ｄｉｓｔａｎｃｅ≧３００ｃｍであると（ステップＳ５０４において、ＮＯ）、ＣＰＵ１０１は遠距離であるとして、合焦範囲ｒａｎｇｅに”０”をセットし、合焦回数ｒｅｐＣｎｔに”１”をセットする（ステップＳ１３０６）。
【００８９】
ステップＳ１３０３、Ｓ１３０５、又はＳ１３０６の処理の後、ＣＰＵ１０１は、次の式（４）によって合焦間隔ｉｎｔｅｒｖａｌを求める（ステップＳ１３０７）。
【００９０】
ｉｎｔｅｒｖａｌ＝ｒａｎｇｅ÷ｒｅｐＣｎｔ      （４）
続いて、ＣＰＵ１０１は、下記の式（５）で示す関係が真となるか又は偽となるかについて判定をする（ステップＳ１３０８）。
【００９１】
ｄｅｐｔｈ＞ｒａｎｇｅ      （５）
式（５）で示す関係が真であると、つまり、成り立つと（ステップＳ１３０８において、ＹＥＳ）、ＣＰＵ１０１は上述の合焦範囲ｒａｎｇｅでは、対象とする被写体の奥行きに関して必要となる撮影が不足するとして、前述の式（２）によって合焦回数ｒｅｐＣｅｎｔを改めて算出する（ステップＳ１３０９）。そして、ＣＰＵ１０１は合焦間隔および合焦回数算出処理を終了する。
【００９２】
一方、式（５）で示す関係が偽であると、つまり、成り立たないと（ステップＳ１３０８において、ＮＯ）、ＣＰＵ１０１は、上述の合焦範囲ｒａｎｇｅによって対象とする被写体の奥行きに関して撮影が十分であるとして、合焦間隔および合焦回数算出処理を終了する。
【００９３】
図１３で説明した処理を行った後、図６で説明した焦点面距離算出処理を行えば、被写体距離に応じて合焦範囲と当該合焦範囲における合焦回数を変更しても、図７で説明した焦点面距離を算出することができる。
【００９４】
なお、図１２で説明した画像表示処理においては、閾値の一例として１０００ｃｍを用いるようにしたが、距離マップで表現可能な距離の上限を閾値としてもちいるようにしてもよい。例えば、被写体が３００ｃｍ以上遠距離離れていると、被写体距離を正確に算出することができないのであれば、当該３００ｃｍが閾値とされる。また、被写体が２０００ｃｍ以上遠距離離れていると被写体距離を正確に算出することができないのであれば、当該２０００ｃｍが閾値とされる。
【００９５】
また、図３で説明した被写体検出処理においては、閾値ｄｉｓＴｈを１ｃｍとしたが、被写体距離に応じて当該閾値を変更するようにしてもよい。例えば、被写体距離ｄｉｓＣｌｏｓｅが小さく、つまり、被写体距離が短い場合には、閾値も小さくする。一方、被写体距離ｄｉｓＣｌｏｓｅが大きく、つまり、被写体距離が長い場合には、閾値も大きくする。
【００９６】
これによって、カメラに近い被写体に対しては、細かい精度で被写体を検出し、遠い被写体については、粗い精度で被写体を検出することができるので、適切な精度で被写体検出処理を行うことができる。
【００９７】
さらに、図３で説明した被写体検出処理においては、閾値ｏｂｊＭｉｎＰｉｘを、距離マップを構成する画素数の２０分の１としたが、被写体距離ｄｉｓＣｌｏｓｅおよびｄｉｓＦａｒに応じて、上記の閾値を変更するようにしてもよい。ここでは、被写体距離が遠くなる程、被写体は小さくなるので、被写体が遠くなる程、閾値を小さくすることになる。
【００９８】
ところで、画像再生の際にユーザーが指定した合焦位置と一致する画像がない場合には、検索した距離に最も近い焦点面距離の画像を表示するようにしたが、互いに焦点面距離が隣接する２枚の画像を合成するようにしてもよい。この場合には、撮影の際に合焦した画像よりも劣化した画像になるが、被写体距離に応じて適切な間隔で撮影が行われているので、従来に比べて高画質の画像が得られる。
【００９９】
また、合焦間隔および合焦回数算出処理において、閾値として２０ｃｍおよび３００ｃｍを用いたが、当該閾値はカメラの光学的な特性に応じて可変としてもよい。さらには、２回の判定ではなく、判定回数を増やしてもよい。また、被写体距離が短い場合には、合焦間隔を細かくなるようにするとともに合焦回数を多くなるようにし、被写体距離が長い場合には、合焦間隔が粗くなるようにするとともに合焦回数を少なくなるように閾値を変更してもよい。
【０１００】
図１４は、図１に示すカメラで用いられる被写体距離と合焦間隔と関係の一例を示す図である。
【０１０１】
図１４に示す関係を用いると、前述の式（１）で示す判定式が変更となるが、いずれにしても被写体の奥行きが算出された合焦間隔および合焦回数で十分であるか否かが判定できればよい。また、合焦回数については、被写体の奥行きに対して十分であり、かつ被写体距離に対応した合焦間隔および合焦回数で撮影できればよい。
【０１０２】
このように、本発明の第１の実施形態では、被写体がカメラに近い場合には、合焦間隔を細かくして撮影する。よって、近距離の被写体について所望の位置に合焦した画像が得られる。さらには、被写体がカメラから遠い場合には合焦間隔が粗くして撮影する。これによって、無駄な撮影を防止することができる。
【０１０３】
また、被写体距離が同一又は所定の距離未満である場合には、重複して撮影を行わないので、無駄な撮影を防止することができる。さらに、奥行きがある場合には、合焦位置を等間隔とするので、奥行きがある被写体についても途中の位置で合焦した画像を得ることができる。そして、上述のように、必要最小限のフォーカスブラケット撮影を行うことによって、画像再生の際にユーザーが所望する人物又は物体に合焦した高画質な画像を得ることができる。
【０１０４】
［第２の実施形態］
続いて、本発明の第２の実施形態に係るカメラについて説明する。なお、第２の実施形態に係るカメラの構成は、図１に示すカメラと同様であるので、ここでは説明を省略する。
【０１０５】
前述の第１の実施形態においては、被写体距離に応じて合焦間隔を変更する場合について説明したが、ここでは、被写体距離と被写体の特性とに応じて合焦間隔を変更する場合について説明する。なお、被写体の特性とは、例えば、凹凸のある被写体であるか否か、人物又は動物であるか否かなどをいう。
【０１０６】
また、第１の実施形態においては、被写体毎の合焦間隔を被写体距離に応じて一意に定まった間隔を用いたが、ここでは、被写体距離と被写体の特性とに応じて、合焦間隔を算出するための係数を変更する場合について説明する。
【０１０７】
［被写体の特性取得］
前述の図３に示すステップＳ３０７の処理において、境界画素と隣接する画素との距離の差分を算出する。この際、凹凸の少ない物体であれば、当該差分は正の値に偏るか又は負の値に偏る。一方、凹凸の多い物体であれば、当該差分においては正の値と負の値とが交互に出現する。
【０１０８】
そこで、図３に示すステップＳ３０７の処理とステップＳ３０８の処理との間に、正の差分を合算する第１の合算処理と負の差分を合算する第２の合算処理とを追加する。さらに、図３に示すステップＳ３１０の処理とステップＳ３１１の処理との間において、正の差分の合算値と負の差分の合算値の絶対値を合計する処理を行う。そして、絶対値の合計値が所定の閾値以上である場合に、ＣＰＵ１０１は凹凸のある物体であると判定して、ＲＡＭ１０３に記憶された被写体リストに登録する。
【０１０９】
被写体が人又は動物であるかを判定する際には、既知の人検出処理および動物検出処理が用いられる。例えば、図３に示すステップＳ３０７の処理とステップＳ３０８の処理との間で、ＣＰＵ１０１は境界画素および境界画素で囲まれた領域と人検出結果又は動物検出結果が示す領域とが一致しているか否かを判定する。一致している場合には、ＣＰＵ１０１は人又は動物と判定して、ＲＡＭ１０３に記憶された被写体リストに当該判定結果を登録する。
【０１１０】
図１５は、本発明の第２の実施形態に係るカメラで行われる被写体検出結果（被写体特性情報）が登録された被写体リストの一例を示す図である。なお、図１５において、図４に示す例と同一の要素については同一の参照番号を付す。
【０１１１】
図１５に示す被写体リストでは、被写体Ｎｏ．４０１、距離（被写体距離）４０２、および奥行き４０３に加えて、人物又は動物１４０４および凹凸１４０５が備えられている。そして、ＣＰＵ１０１は被写体が人物又は動物であると判定すると、人物又は動物１４０４に真（ＴＲＵＥ）を登録する。また、ＣＰＵ１０１は被写体が人物又は動物でないと判定すると、人物又は動物１４０４に偽（ＦＡＬＳＥ）を登録する。
【０１１２】
さらに、ＣＰＵ１０１は被写体に凹凸があると判定すると、凹凸１４０５に”あり”を登録する。そして、ＣＰＵ１０１は被写体に凹凸がないと判定すると、凹凸１４０５に”なし”を登録する。
【０１１３】
［被写体の距離および特性に応じた合焦間隔および合焦回数の算出］
図１６は、本発明の第２の実施形態によるカメラで行われる合焦間隔および合焦回数算出処理を説明するためのフローチャートである。
【０１１４】
ここでは、カメラの光学的な特性に対応する合焦間隔を基準として、被写体距離および被写体特性に応じて係数を変更して合焦間隔および合焦回数を算出する例について説明する。なお、図１６において、図５に示すステップと同一のステップについては同一の参照符号を付して説明を省略する。
【０１１５】
図５で説明したステップＳ５００の処理の後、ＣＰＵ１０１は、予めＲＯＭ１０２に記憶されたカメラの光学特性を示す光学情報を読み込む（ステップＳ１５０１）。そして、ＣＰＵ１０１はリフォーカス可能な距離を得る。ここで、光学情報はカメラのレンズ性能および撮像素子の性能を数値化した情報であり、リフォーカス可能な距離は光学情報に応じて算出される。
【０１１６】
続いて、ＣＰＵ１０１は、基準となる合焦間隔ｂａｓｅＩｎｔｅｒｖａｌにリフォーカス可能距離をセットする（ステップＳ１５０２）。ここでは、リフォーカス可能距離を２０ｃｍとする。そして、ＣＰＵ１０１は、基準となる合焦回数ｂａｓｅＲｅｐＣｎｔに初期値として”１”をセットする（ステップＳ１５０３）。
【０１１７】
次に、ＣＰＵ１０１は、ステップＳ５０１において図１５に示す被写体リストからｉ番目の被写体に係る距離と奥行きとを読み込む。そして、ＣＰＵ１０１は、ｉ番目の被写体について図１５に示す人又は動物列１４０４がＴＲＵＥであるか否かを判定する（ステップＳ１５０５）。人又は動物１４０４がＴＲＵＥであると（ステップＳ１５０５において、ＹＥＳ）、ＣＰＵ１０１は被写体が人又は動物であると判定して、被写体特性合焦間隔係数ｉｎｔＣｏｅｆに”０．２５”をセットするとともに、被写体特性合焦回数係数ｒｅｐＣｏｅｆに”４”をセットする（ステップＳ１５０６）。
【０１１８】
人又は動物１４０４がＦＡＬＳＥであると（ステップＳ１５０５において、ＮＯ）、ＣＰＵ１０１は被写体が人又は動物ではないと判定して、ｉ番目の被写体に係る凹凸１４０５が”あり”であるか否かを判定する（ステップＳ１５０７）。凹凸１４０５が”あり”であると（ステップＳ１５０７において、ＹＥＳ）、ＣＰＵ１０１は被写体が凹凸のある物体であると判定して、被写体特性合焦間隔係数ｉｎｔＣｏｅｆに”０．５”をセットするとともに、被写体特性合焦回数係数ｒｅｐＣｏｅｆに”２”をセットする（ステップＳ１５０８）。
【０１１９】
凹凸１４０５が”なし”であると（ステップＳ１５０７において、ＮＯ）、ＣＰＵ１０１は被写体が凹凸のない物体であると判定して、被写体特性合焦間隔係数ｉｎｔＣｏｅｆに”１”を代入するセットするとともに、被写体特性合焦回数係数ｒｅｐＣｏｅｆに”１”をセットする（ステップＳ１５０９）。
【０１２０】
ステップＳ１５０６、Ｓ１５０８、又はＳ１５０９の処理の後、ＣＰＵ１０１は、図５で説明したステップＳ５０２の処理を行う。そして、被写体距離ｄｉｓｔａｎｃｅが２０ｃｍ未満であると（ステップＳ５０２において、ＹＥＳ）、ＣＰＵ１０１は、被写体距離合焦間隔係数ｄｉｓＩｎｔＣｏｅｆに”０．２”をセットするとともに、被写体特性合焦回数係数ｄｉｓＲｅｐＣｏｅｆに”４”をセットする（ステップＳ１５１１）。
【０１２１】
被写体距離ｄｉｓｔａｎｃｅが２０ｃｍ以上であると（ステップＳ５０２において、ＮＯ）、ＣＰＵ１０１は、図５で説明したステップＳ５０４の処理を行う。そして、被写体距離ｄｉｓｔａｎｃｅが３００ｃｍ未満であると（ステップＳ５０４において、ＹＥＳ）、ＣＰＵ１０１は被写体距離合焦間隔係数ｄｉｓＩｎｔＣｏｅｆに”１”をセットするとともに、被写体特性合焦回数係数ｄｉｓＲｅｐＣｏｅｆに”２”をセットする（ステップＳ１５１３）。
【０１２２】
一方、被写体距離ｄｉｓｔａｎｃｅが３００ｃｍ以上であると（ステップＳ５０４において、ＮＯ）、ＣＰＵ１０１は被写体距離合焦間隔係数ｄｉｓＩｎｔＣｏｅｆに”４”をセットするとともに、被写体特性合焦回数係数ｄｉｓＲｅｐＣｏｅｆに”１”をセットする（ステップＳ１５１４）。
【０１２３】
ステップＳ１５１１、Ｓ１５１３、又はＳ１５１４の処理の後、ＣＰＵ１０１は、合焦間隔ｉｎｔｅｒｖａｌおよび合焦回数ｒｅｐＣｎｔをそれぞれ式（６）および式（７）を用いて算出する（ステップＳ１５１５）。
【０１２４】
ｉｎｔｅｒｖａｌ＝ｂａｓｅＩｎｔｅｒｖａｌ×ｉｎｔＣｏｅｆ×ｄｉｓＩｎｔＣｏｅｆ      （６）
ｒｅｐＣｎｔ＝ｂａｓｅＲｅｐＣｎｔ×ｒｅｐＣｏｅｆ×ｄｉｓＲｅｐＣｏｅｆ      （７）
続いて、ＣＰＵ１０１は、図５で説明したステップＳ５０７の処理を行って、式（１）が成り立つと、ステップＳ５０８の処理を行った後、合焦間隔および合焦回数算出処理を終了する。一方、式（１）が成り立たないと、ＣＰＵ１０１は合焦間隔および合焦回数算出処理を終了する。
【０１２５】
図１７は、本発明の第２の実施形態によるカメラで行われた合焦間隔および合焦回数算出処理の結果である合焦間隔および合焦回数算出結果の一例を示す図である。
【０１２６】
なお、図１７に示す例では、図１６に示すステップＳ５０７の処理においてその判定結果が”偽”である場合、つまり、ステップＳ１５１５の処理で得られた合焦間隔および合焦回数によって対象の被写体の奥行きについて撮影が十分である場合が示されている。
【０１２７】
合焦間隔および合焦回数算出結果（以下単に合焦結果と呼ぶ）は、被写体特性１６０１を有しており、この被写体特性１６０１は図１６に示すステップＳ１５０５およびＳ１５０７の処理に応じて得られる。被写体距離１６０２は、図１６に示すステップＳ５０２およびＳ５０４の処理に応じて得られる。被写体特性合焦間隔計数１６０３は、図１６に示すステップＳ１５０６、Ｓ１５０８、およびＳ１５０９の処理で決定された被写体特性合焦間隔係数ｉｎｔＣｏｅｆに対応する。
【０１２８】
被写体距離合焦間隔計数１６０４は、図１６に示すステップＳ１５１１、Ｓ１５１３、およびＳ１５１４の処理で決定された被写体距離合焦間隔係数ｄｉｓＩｎｔＣｏｅｆに対応する。被写体特性合焦回数係数１６０５は、図１６に示すステップＳ１５０６、Ｓ１５０８、Ｓ１５０９の処理で決定された被写体特性合焦回数係数ｒｅｐＣｏｅｆに対応する。被写体距離合焦回数係数１６０６は、図１６に示すステップＳ１５１１、Ｓ１５１３、およびＳ１５１４で決定された被写体距離合焦間隔係数ｄｉｓＩｎｔＣｏｅｆに対応する。
【０１２９】
合焦間隔１６０７は、図１６に示すステップＳ１５１５の処理で求められた合焦間隔ｉｎｔｅｒｖａｌに対応する。そして、合焦回数１６０８は、図１６に示すステップＳ１５１５の処理で求められた合焦回数ｒｅｐＣｎｔに対応する。
【０１３０】
なお、被写体特性１６０１において、人・動物は被写体が人又は動物であることを示し、凹凸は被写体に凹凸があることを示す。また、普通は被写体が人および動物でなく、かつ凹凸がないことを示す。
【０１３１】
なお、図１６に示す合焦間隔および合焦回数算出処理では、閾値として２０ｃｍおよび３００ｃｍを用いたが、当該閾値はカメラの光学的な特性に応じて可変としてもよい。さらには、２回の判定ではなく、判定段回数を増やしてもよい。また、被写体距離に応じて被写体距離合焦間隔係数および被写体距離合焦回数係数を線形的に変更するようにしてもよい。
【０１３２】
この場合、前述の式（１）で示す判定式が変更となるが、いずれにしても被写体の奥行きが算出された合焦間隔および合焦回数で十分であるか否かが判定できればよい。また、合焦回数については、被写体の奥行きに対して十分であり、かつ被写体距離に対応した合焦間隔および合焦回数で撮影できればよい。
【０１３３】
このように、本発明の第２の実施形態では、カメラの近傍に、複雑な凹凸を有する被写体が存在すると、合焦間隔を細かくする。よって、花および虫などをマクロ撮影する際にユーザーの所望する合焦位置で画像を得ることができる。
【０１３４】
また、被写体が人又は動物である場合には、注目する被写体と推定して、合焦間隔を細かくする。これによって、人又は動物を撮影する際にユーザーが所望する合焦位置で画像を得ることができる。
【０１３５】
さらに、光学系の特性によって、合焦間隔を変更するようにしたので、無駄な撮影を省いて必要最小限の撮影で済ますことができる。そして、必要最小限のフォーカスブラケット撮影（連続的な撮影）を行うことによって、画像再生の際にユーザー所望の人物又は物体に合焦した高画質な画像を得ることができる。
【０１３６】
上述の説明から明らかなように、ＣＰＵ１０１は被写体距離と予め定められた条件とに応じて合焦間隔および合焦回数を決定する。ここで、予め定められた条件とは、被写体距離の長さ、撮像光学系の特性、および被写体の特性などである。また、図１に示す例では、ＣＰＵ１０１が検出手段、第１の算出手段、決定手段、第２の算出手段、判定手段、および制御手段として機能する。また、ＣＰＵ１０１および撮像部１００は撮影手段として機能する。
【０１３７】
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１３８】
例えば、上記の実施の形態の機能を制御方法として、この制御方法を撮像装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを撮像装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１３９】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１４０】
１００  撮像部
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  表示装置
１０５  入力装置
１０６  メディアドライブ
１０７  ネットワークインターフェイス（Ｉ／Ｆ）
１０９  通信回線
１１０  コンピュータネットワーク（Ｎｅｔｗｏｒｋ）
【図１】
0006521715.tif 000002
【図２】
0006521715.tif 000003
【図３】
0006521715.tif 000004
【図４】
0006521715.tif 000005
【図５】
0006521715.tif 000006
【図６】
0006521715.tif 000007
【図７】
0006521715.tif 000008
【図８】
0006521715.tif 000009
【図９】
0006521715.tif 000010
【図１０】
0006521715.tif 000011
【図１１】
0006521715.tif 000012
【図１２】
0006521715.tif 000013
【図１３】
0006521715.tif 000014
【図１４】
0006521715.tif 000015
【図１５】
0006521715.tif 000016
【図１６】
0006521715.tif 000017
【図１７】
0006521715.tif 000018