(第1の実施形態)
以下、本発明を具体化した第1の実施形態を図面に従って説明する。
図1に示すように、デジタルカメラ(以下、「カメラ10」という)は、焦点調節を行うためのフォーカスレンズ11などの複数のレンズからなるレンズ部12(図1ではフォーカスレンズ11のみ図示)と、レンズ部12を通過した光をレンズ部12の像空間側において結像させて撮像する撮像素子13とを備えている。なお、撮像素子13は、CMOS(Complementary Metal Oxide Semiconductor)型、又は、CCD(Charge Coupled Device)型のイメージセンサからなる。
撮像素子13の出力側には、画像処理エンジン14がA/D変換回路15を介して接続されている。そして、撮像素子13からアナログ信号として出力される画素信号は、A/D変換回路15においてデジタル信号に変換された後に画像処理エンジン14に入力される。
画像処理エンジン14は、カメラ10の各種の動作を統括的に制御するMPU16(Micro Processing Unit)を備えている。そして、MPU16は、撮像素子13から入力された画素信号に対し、色補間処理、階調補正、ホワイトバランス処理及び輪郭補償等の画像処理を施すことにより所定の画像を生成する。
画像処理エンジン14には、データバス17を介して不揮発性メモリ18、バッファメモリ19、インターフェース部(以下、「I/F部20」という)及びモニタ21が接続されている。
不揮発性メモリ18は、画像処理エンジン14を動作させるためにMPU16が実行するプログラムを格納している。なお、本実施形態では、不揮発性メモリ18は、図2にフローチャートで示す合焦制御用の画像処理プログラムなどを格納している。そして、MPU16は、不揮発性メモリ18に格納された合焦制御用の画像処理プログラムを実行することにより、領域抽出部24、位置取得部25、合焦領域設定部26及びモード設定部27として機能する。また、不揮発性メモリ18は、MPU16が合焦制御用の画像処理プログラムを実行する際に使用するデータベース30を格納している。
バッファメモリ19は、例えば、撮影画像、画像処理過程の画像、画像処理後の画像及び画像圧縮後の画像などを一時的に格納している。
I/F部20は、メモリカード31が着脱自在に装着されるカードスロット(図示略)を有している。そして、I/F部20は、画像処理エンジン14によって生成された画像をI/F部20に装着されたメモリカード31に出力したり、メモリカード31に記憶されている画像を画像処理エンジン14に出力したりする機能を有している。
モニタ21には、バッファメモリ19に一時的に格納されている画像や、I/F部20に装着されたメモリカード31に格納されている画像が画像処理エンジン14によって出力されて表示される。
また、画像処理エンジン14には、レリーズボタン32及び操作部33が接続されている。レリーズボタン32は、半押し操作又は全押し操作がなされた際に操作信号を画像処理エンジン14に入力する。操作部33は、メニューボタン、セレクトボタン、決定ボタン及び電源ボタン等により構成されており、押圧操作がなされた際に操作信号を画像処理エンジン14に入力する。
次に、本実施形態の画像処理エンジン14のMPU16が実行する合焦制御処理ルーチンの概要を図2のフローチャートを参照しながら説明する。
さて、MPU16は、カメラ10が電源ON状態となると、図2に示す合焦制御処理ルーチンを開始する。そして、ステップS10において、MPU16は、撮像素子13から出力された画素信号を取り込んでスルー画を生成し、生成したスルー画をモニタ21に表示させる。
続いて、ステップS11において、MPU16の領域抽出部24は、領域抽出ステップとして、先のステップS10において生成したスルー画のうち、人が注目されることが想定される領域となる特定領域の一例としてマスクを抽出する。この場合、スルー画に対してラベリング処理を行うことにより、スルー画からマスクが抽出される。ここで、ラベリング技術とは、スルー画から特徴量ごとに画素データを検出し、検出された画素データが互いに近接した画素領域のうちスルー画内での位置が隣接する画素領域を順次検出してグループ化することにより、スルー画からマスクを抽出する技術である。そして、本実施形態では、ラベリング処理に用いる特徴量としては、動きベクトル、色相、彩度、明度、テクスチャ(模様)、コントラスト等が含まれる。
なお、MPU16の領域抽出部24は、スルー画に対してパターン認識処理を行うことにより、スルー画からマスクを抽出してもよい。例えば、MPU16の領域抽出部24がパターン認識処理の一種である顔認識処理をスルー画に対して行うことによりスルー画から人物の顔を認識し、認識された人物の顔をマスクとして抽出してもよい。
そして、MPU16の領域抽出部24は、スルー画から抽出したマスクの画像を、例えばExif(Exchangeable Image File Format)形式でバッファメモリ19に格納する。
そして次に、ステップS12において、MPU16は、先のステップS11において抽出されたマスクのマスク評価値を算出する。この場合、MPU16は、例えば、先のステップS11においてラベリング処理で用いた特徴量を評価項目としてマスクの評点を算出し、算出した評点の合計値に基づいてマスク評価値を算出する。なお、図7に示す例では、スルー画から3つのマスクa3,b3,c3が抽出されている。そして、図8(a)において「測定値3」として示すように、これらのマスクa3,b3,c3のマスク評価値として、「4」、「5」、「3」という数値がそれぞれ算出されている。また、図8(b)において「測定値4」として示す例では、スルー画に含まれる3つのマスクa4,b4,c4のマスク評価値として、「3」、「4」、「2」という数値がそれぞれ算出されている。そして、MPU16は、算出したマスク評価値を、マスクの画像の付加情報としてバッファメモリ19に格納する。
続いて、ステップS13において、MPU16の位置取得部25は、位置取得ステップとして、先のステップS11においてスルー画から抽出されたマスクのデフォーカス量に基づいてマスクの距離を取得し、取得したマスクの距離をマスクの画像の付加情報としてバッファメモリ19に格納する。なお、マスクのデフォーカス量は、例えば特開2011−186452号公報に記載のように、マスクのエッジにおける軸上色収差の評価値に基づいて算出される。
そして次に、ステップS14において、MPU16の領域抽出部24は、先のステップS11において抽出されたマスクの分離・統合処理ルーチンを行う。
ここで、マスクの分離・統合処理ルーチンの詳細を図3に示すフローチャートを用いて説明する。
図3に示すように、ステップS40において、MPU16の領域抽出部24は、先のステップS11において抽出されたマスクの中に、距離の異なる複数の小領域を含むマスクがあるか否かを判定する。具体的には、MPU16の領域抽出部24は、マスクのエッジの中に他のエッジと比較して距離が異なるエッジがあるか否かを判定する。そして、MPU16の領域抽出部24は、距離の異なる複数の小領域を含むマスクがある(ステップS40=YES)と判定した場合、その処理をステップS41に移行する。
そして次に、ステップS41において、MPU16の領域抽出部24は、先のステップS40において複数の小領域を含むと判定されたマスクを複数の小領域に分割し、分割した各々の小領域を新たなマスクとして抽出する。そして、MPU16の領域抽出部24は、新たに抽出したマスクの画像を、例えばExif形式でバッファメモリ19に格納する。また、MPU16の領域抽出部24は、先のステップS13において取得された小領域の距離を、各々が対応する新たなマスクの距離として取得する。さらに、MPU16の領域抽出部24は、取得された新たなマスクの距離を該マスクの付加情報としてバッファメモリ19に格納した上で、その処理をステップS42に移行する。
一方、MPU16の領域抽出部24は、先のステップS40において距離の異なる複数の小領域を含むマスクがない(ステップS40=NO)と判定した場合、ステップS41の処理を経ることなく、その処理をステップS42に移行する。
そして、ステップS42において、MPU16の領域抽出部24は、先のステップS11において抽出されたマスクの中に、スルー画内での配置が隣り合うとともに距離が近接したマスクの組み合わせがあるか否かを判定する。具体的には、MPU16の領域抽出部24は、まず、先のステップS11において抽出されたマスクの重心位置を算出し、スルー画内における重心位置同士の距離が閾値未満であるマスクの組み合わせを抽出する。そして、MPU16の領域抽出部24は、抽出された組み合わせにおけるマスク同士の距離の差を算出し、算出された差が閾値未満であるか否かを判定する。
そして、MPU16の領域抽出部24は、スルー画内での配置が隣り合うとともに距離が近接したマスクの組み合わせがある(ステップS42=YES)と判定した場合、判定された組み合わせのマスクがスルー画における同一の被写体に含まれる領域であると判断し、その処理をステップS44に移行する。
一方、MPU16の領域抽出部24は、スルー画内での配置が隣り合うとともに距離が近接したマスクの組み合わせがない(ステップS42=NO)と判定した場合、その処理をステップS43に移行する。
そして、ステップS43において、MPU16の領域抽出部24は、先のステップS11において抽出されたマスクの中に、動きベクトルが近接するとともに距離が近接したマスクの組み合わせがあるか否かを判定する。具体的には、MPU16の領域抽出部24は、まず、撮影周期ごとに撮像素子13に繰り返し撮影されるスルー画のフレーム画像の中から先のステップS11において抽出されたマスクの位置を随時検出する。続いて、MPU16の領域抽出部24は、前後のフレーム画像におけるマスクの位置の変化量を動きベクトルとして算出する。さらに、MPU16の領域抽出部24は、先のステップS11において抽出されたマスクの中から、動きベクトルの差分が閾値未満であるマスクの組み合わせを抽出する。そして、MPU16の領域抽出部24は、抽出された組み合わせにおけるマスク同士の距離の差を算出し、算出された差が閾値未満であるか否かを判定する。
そして、MPU16の領域抽出部24は、動きベクトルが近接するとともに距離が近接したマスクの組み合わせがある(ステップS43=YES)と判定した場合、判定された組み合わせのマスクがスルー画における同一の被写体に含まれる領域であると判断し、その処理をステップS44に移行する。
そして、ステップS44において、MPU16の領域抽出部24は、先のステップS42又は先のステップS43において、スルー画における同一の被写体に含まれる領域であると判断された組み合わせのマスクを統合して一つの新たなマスクを抽出する。そして、MPU16の領域抽出部24は、新たに抽出したマスクの画像を、例えばExif形式でバッファメモリ19に格納する。また、MPU16の領域抽出部24は、先のステップS13において取得された統合前の複数のマスクの距離の平均値を、統合された新たなマスクの距離として取得する。さらに、MPU16の領域抽出部24は、取得された新たなマスクの距離を該マスクの付加情報としてバッファメモリ19に格納した上で、図3に示すマスクの分離・統合処理ルーチンを終了し、その処理を図2に示す合焦制御処理ルーチンに戻す。
一方、MPU16の領域抽出部24は、動きベクトルが近接するとともに距離が近接したマスクの組み合わせがない(ステップS43=NO)と判定した場合、ステップS44の処理を経ることなく図3に示すマスクの分離・統合処理ルーチンを終了し、その処理を図2に示す合焦制御処理ルーチンに戻す。
そして次に、図2に示すように、ステップS15において、MPU16の位置取得部25は、先のステップS13、ステップS41又はステップS43において取得したマスクの距離に基づいてフォーカスマップを算出する。ここで、フォーカスマップとは、スルー画に含まれる各々のマスクのデフォーカス量に基づいて算出されるマスクの距離の分布を意味している。また、マスクの距離の分布とは、マスクの全体における各々のマスクの距離のばらつきを意味しており、スルー画に含まれる複数のマスクの相対的な位置関係によって規定される。
具体的には、MPU16の位置取得部25は、まず、スルー画の奥行方向における近接側から無限遠側にかけてのマスクの距離を複数の距離範囲に分割する。本実施形態では、これらの距離範囲が、スルー画の奥行方向における近接側から順に、「近接域」、「至近域」、「中景域」、「遠景域」及び「無限遠域」としてそれぞれ設定されている。そして、MPU16の位置取得部25は、各々のマスクの距離を、スルー画の奥行方向において分割されたこれらの距離範囲に分類する。
図5に示す例では、スルー画に含まれる3つのマスクa1,b1,c1の距離が何れも比較的小さな値となっており、全てのマスクa1,b1,c1がスルー画の奥行方向における近接側に位置していることを示している。この場合、図6において「測定値1」として示すように、カメラ10からの距離が最も近い距離範囲である「近接域」に対し、全てのマスクa1,b1,c1の距離が偏った状態で分類されている。また、図6において「測定値2」として示す例では、カメラ10からの距離が最も遠い距離範囲である「無限遠域」に対し、全てのマスクa2,b2,c2の距離が偏った状態で分類されている。
続いて、ステップS16において、MPU16のモード設定部27は、先のステップS15において算出されたフォーカスマップに基づいて画像の撮影モードが判定可能であるか否かを判定する。そして、MPU16のモード設定部27は、スルー画から算出したフォーカスマップに基づいて画像の撮影モードが判定可能である(ステップS16=YES)と判定した場合には、その処理をステップS17に移行する。
そして次に、ステップS17において、MPU16のモード設定部27は、先のステップS16において判定された撮影モードを、カメラ10における画像の撮影モードとして設定する。そして、MPU16は、焦点調整(AF)の設定、露出調整(AE)の設定、及び、ホワイトバランス調整(AWB)に関するカメラ10の設定を制御した上で、その処理をステップS18に移行する。
具体的には、図6において「測定値1」として示す例では、スルー画に含まれる全てのマスクの距離が「近接域」に偏った状態のフォーカスマップがスルー画から算出される。そのため、MPU16のモード設定部27は、スルー画に含まれる全てのマスクの距離が「近接域」に偏った状態のフォーカスマップに基づいて、その時点においてカメラ10が被写体を接写していると判断し、カメラ10における画像の撮影モードとして「マクロモード」を設定する。
また、図6において「測定値2」として示す例では、スルー画に含まれる全てのマスクの距離が「無限遠域」に偏った状態のフォーカスマップがスルー画から算出される。そのため、MPU16のモード設定部27は、スルー画に含まれる全てのマスクの距離が「無限遠域」に偏った状態のフォーカスマップに基づいて、その時点においてカメラ10が風景を撮影していると判断し、カメラ10における画像の撮影モードとして「風景モード」を設定する。
一方、MPU16のモード設定部27は、スルー画から算出したフォーカスマップに基づいて画像の撮影モードが判定可能ではない(ステップS16=NO)と判定した場合には、ステップS17の処理を経ることなく、その処理をステップS18に移行する。
そして、ステップS18において、MPU16の合焦領域設定部26は、不揮発性メモリ18に格納されているデータベース30を読み出す。このデータベース30には、スルー画から算出されるフォーカスマップに対する比較対象となる比較要素の距離の分布と、スルー画に含まれるマスクの中から合焦の対象となる合焦マスクを設定する際の基準として比較要素の中から設定される基準合焦要素とが関連付けられて格納されている。
具体的には、図9において「基準分布1」として示す比較要素の距離の分布では、3つの比較要素ra1,rb1,rc1の距離が「近接域」、「至近域」及び「中景域」にそれぞれ位置している。また、この分布では、3つの比較要素ra1,rb1,rc1のうち、スルー画の奥行方向において相対的に無限遠側となる「中景域」に位置する比較要素rc1が基準合焦要素として設定されている。
また、図9において「基準分布2」として示す比較要素の距離の分布では、3つの比較要素ra2,rb2,rc2の距離が「至近域」、「中景域」及び「遠景域」にそれぞれ位置している。また、この分布では、3つの比較要素ra2,rb2,rc2のうち、スルー画の奥行方向において相対的に近接側となる「至近域」に位置する比較要素ra2が基準合焦要素として設定されている。
また、図9において「基準分布3」として示す比較要素の距離の分布では、3つの比較要素ra3,rb3,rc3の距離が「中景域」、「遠景域」及び「無限遠域」にそれぞれ位置している。また、この分布では、3つの比較要素ra3,rb3,rc3のうち、スルー画の奥行方向において相対的に近接側に位置する「中景域」と、相対的に無限遠側に位置する「無限遠域」との間となる「遠景域」に位置する比較要素rb3が基準合焦要素として設定されている。
すなわち、本実施形態では、比較要素のうち最も近接側に位置する比較要素が基準合焦要素として一律に設定されておらず、比較要素の分布に応じて該分布を構成する比較要素のうち基準合焦要素として設定される比較要素が多様に設定されている。なお、図9に示す例では、分布を構成する比較要素の数が3つとなっているが、分布を構成する比較要素の数としては、複数であれば任意の数を採用できる。
そして次に、ステップS19において、MPU16の合焦領域設定部26は、先のステップS15において算出したフォーカスマップと、先のステップS18において読み出した比較要素の距離の分布とを照合する分布照合処理ルーチンを行う。
ここで、分布照合処理ルーチンの詳細を図4に示すフローチャートを用いて説明する。
図4に示すように、ステップS60において、MPU16の合焦領域設定部26は、先のステップS15において算出したフォーカスマップを構成する各々のマスクの距離と、先のステップS18において読み出した分布を構成する各々の比較要素の距離との差分を算出する。
なお、図7に示す例では、スルー画に含まれる3つのマスクa3,b3,c3の距離が離散した値となっており、これらマスクa3,b3,c3がスルー画の奥行方向に距離を隔てて配置されている。この場合、図9において「測定値3」として示すように、フォーカスマップは、3つのマスクa3,b3,c3の距離が「近接域」、「至近域」及び「中景域」にそれぞれ位置している。そして、MPU16の合焦領域設定部26は、図9において「測定値3」として示すフォーカスマップと、図9において「基準分布1」として示す比較要素の距離の分布とを比較する場合には、ステップS60において以下のような処理を行う。すなわち、MPU16の合焦領域設定部26は、マスクa3,b3,c3及び比較要素ra1,rb1,rc1の間における1対1の全ての組み合わせについて、マスクの距離と比較要素の距離との差分を算出する。
そして次に、ステップS61において、MPU16の合焦領域設定部26は、先のステップS60において算出した距離の差分が最小となるマスクと比較要素との組み合わせを抽出する。なお、MPU16の合焦領域設定部26は、図9における上記の例では、各々のマスクa3,b3,c3について3つの比較要素ra1,rb1,rc1との距離の差分をそれぞれ算出し、算出された距離の差分が最小となる比較要素を各々のマスクa3,b3,c3との組み合わせの対象として抽出する。この場合、「近接域」に位置するマスクa3と、「近接域」に位置する比較要素ra1とが組み合わされる。また、「至近域」に位置するマスクb3と、「至近域」に位置する比較要素rb1とが組み合わされる。また、「中景域」に位置するマスクc3と、「中景域」に位置する比較要素rc1とが組み合わされる。
続いて、ステップS62において、MPU16の合焦領域設定部26は、先のステップS61において抽出された全ての組み合わせについて、マスクと比較要素との距離の差分が閾値未満であるか否かを判定する。この閾値は、フォーカスマップと比較要素の距離の分布とを照合する上で、各々のマスクに対応する比較要素があるか否かを判定する際の基準値となっている。なお、MPU16の合焦領域設定部26は、図9における上記の例では、全てのマスクa3,b3,c3について各々の距離範囲が一致する比較要素ra1,rb1,rc1が存在するため、先のステップS61において抽出された全ての組み合わせについて、マスクa3,b3,c3と比較要素ra1,rb1,rc1との距離の差分が閾値未満であると判定する。そして、MPU16の合焦領域設定部26は、先のステップS61において抽出された全ての組み合わせについて、マスクと比較要素との距離の差分が閾値未満である(ステップS62=YES)と判定した場合には、その処理をステップS63に移行する。
そして、ステップS63において、MPU16の合焦領域設定部26は、不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布のうち、その時点で比較の対象とされている比較要素の距離の分布が、先のステップS15において算出されたフォーカスマップに対して照合可能であると判定する。なお、MPU16の合焦領域設定部26は、図9における上記の例では、「基準分布1」として示す比較要素の距離の分布が、「測定値3」として示すフォーカスマップに対して照合可能であると判定する。その後、MPU16の合焦領域設定部26は、図4に示す分布照合処理ルーチンを終了し、その処理を図2に示す合焦制御処理ルーチンに戻す。
一方、MPU16の合焦領域設定部26は、先のステップS62において抽出された全ての組み合わせについて、マスクと比較要素との距離の差分が閾値未満でない(ステップS=NO)と判定した場合には、その処理をステップS64に移行する。
そして、ステップS64において、MPU16の合焦領域設定部26は、不揮発性メモリ18にデータベース30として格納された全ての比較要素の距離の分布が、先のステップS15において算出されたフォーカスマップとの比較のために読み出されたか否かを判定する。そして、MPU16の合焦領域設定部26は、不揮発性メモリ18にデータベース30として格納された全ての比較要素の距離の分布が読み出されていない(ステップS64=NO)と判定した場合、その処理をステップS65に移行する。
そして、ステップS65において、MPU16の合焦領域設定部26は、不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布のうち、先のステップS15において算出されたフォーカスマップとの比較のために読み出す分布を変更する。なお、MPU16の合焦領域設定部26は、図9に示す例では、フォーカスマップとの比較のために読み出される比較要素の距離の分布を「基準分布1」から「基準分布2」に変更する。その後、MPU16の合焦領域設定部26は、その処理をステップS60に戻し、ステップS60〜ステップS62、ステップS64、ステップS65の処理を繰り返す。
一方、MPU16の合焦領域設定部26は、不揮発性メモリ18にデータベース30として格納された全ての比較要素の距離の分布が、先のステップS15において算出されたフォーカスマップとの比較のために読み出された(ステップS64=YES)と判定した場合、その処理をステップS66に移行する。
そして、ステップS66において、MPU16の合焦領域設定部26は、不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布の中に、先のステップS15において算出されたフォーカスマップに対して照合可能な分布は存在しないと判定する。
なお、図9において「測定値4」として示すフォーカスマップでは、3つのマスクa4.b4,c4の距離が「近接域」、「中景域」及び「遠景域」にそれぞれ位置している。そして、この分布は、不揮発性メモリ18に格納された全ての比較要素の距離の分布(図9において「基準分布1」、「基準分布2」及び「基準分布3」として示す)に対して照合可能となっていない。すなわち、不揮発性メモリ18に格納された何れの分布も、「測定値4」として示すフォーカスマップにおける全てのマスクa4,b4,c4について、各々の距離範囲が一致する比較要素が存在する分布とはなっていない。そのため、MPU16の合焦領域設定部26は、不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布の中に、図9において「測定値4」として示すフォーカスマップに対して照合可能な分布は存在しないと判定する。その後、MPU16の合焦領域設定部26は、図4に示す分布照合処理ルーチンを終了し、その処理を図2に示す合焦制御処理ルーチンに戻す。
そして次に、ステップS20において、MPU16の合焦領域設定部26は、先のステップS19において、不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布の中に、スルー画から算出されたフォーカスマップに対して照合された分布があったか否かを判定する。そして、MPU16の合焦領域設定部26は、スルー画から算出されたフォーカスマップに対して照合された比較要素の距離の分布がある(ステップS20=YES)と判定した場合には、その処理をステップS21に移行する。
そして次に、ステップS21において、MPU16の合焦領域設定部26は、先のステップS19においてフォーカスマップに対して照合された比較要素の距離の分布の中から基準合焦要素を読み出す。図9において「測定値3」として示すフォーカスマップでは、図9において「基準分布1」として示す比較要素の距離の分布における基準合焦要素として比較要素rc1が読み出される。
続いて、ステップS22において、MPU16の合焦領域設定部26は、スルー画から算出されたフォーカスマップを構成するマスクの中から、先のステップS21において読み出した基準合焦要素と対応するマスクの画像の付加情報としてフラグ情報を書き込んだ上で、その処理をステップS24に移行する。すなわち、MPU16の合焦領域設定部26は、スルー画から算出されたフォーカスマップを構成するマスクの中から、先のステップS19において基準合焦要素と対応付けられたマスクの画像の付加情報としてフラグ情報を書き込む。図9において「測定値3」として示すフォーカスマップでは、先のステップS19において比較要素rc1と対応付けられたマスクc3の画像の付加情報に対してフラグ情報が書き込まれる。
一方、MPU16の合焦領域設定部26は、スルー画から算出されたフォーカスマップに対して照合された比較要素の距離の分布がない(ステップS20=NO)と判定した場合には、その処理をステップS23に移行する。
そして、ステップS23において、MPU16の合焦領域設定部26は、スルー画に含まれるマスクの距離の大小関係に基づいてマスクの画像の付加情報に対してフラグ情報を書き込んだ上で、その処理をステップS24に移行する。具体的には、MPU16の合焦領域設定部26は、一例として、スルー画に含まれるマスクのうち、距離が最も小さいマスク、即ち、スルー画の奥行方向において最も近接側に位置するマスクの画像の付加情報に対してフラグ情報を書き込む。図9において「測定値4」として示すフォーカスマップでは、このフォーカスマップを構成するマスクa4,b4,c4のうち、距離が最も小さいマスクa4の画像の付加情報に対してフラグ情報が書き込まれる。
そして次に、ステップS24において、MPU16の合焦領域設定部26は、先のステップS22又はステップS23においてフラグ情報が書き込まれたマスクのマスク評価値に対して距離評価値を加算する。なお、図8(a)において「測定値3」として示す例では、フォーカスマップを構成するマスクa3,b3,c3のうち、マスクc3の画像の付加情報に対してフラグ情報が書き込まれている。そのため、先のステップS12において算出したマスクc3のマスク評価値である「3」に対し、距離評価値として「5」という数値が加算される。その結果、マスクc3の評価値は、「8」という数値となる。また、図8(b)において「測定値4」として示す例では、フォーカスマップを構成するマスクa4,b4,c4のうち、マスクa4の画像の付加情報に対してフラグ情報が書き込まれている。そのため、先のステップS12において算出したマスクa4のマスク評価値である「3」に対し、距離評価値として「5」という数値が加算される。その結果、マスクa4の評価値は「8」という数値となる。
続いて、ステップS25において、MPU16の合焦領域設定部26は、合焦領域設定ステップとして、スルー画から算出されたフォーカスマップを構成するマスクのうち、先のステップS25において算出されるマスクの評価値の合計が最も高いマスクを、スルー画において合焦の対象となる合焦マスクとして設定する。なお、図8(a)において「測定値3」として示す例では、フォーカスマップを構成するマスクa3,b3,c3のうち、先のステップS24において距離評価値が加算されたマスクc3が合焦マスクとして設定される。また、図8(b)において「測定値4」として示す例では、フォーカスマップを構成するマスクa4,b4,c4のうち、先のステップS24において距離評価値が加算されたマスクa4が合焦マスクとして設定される。
そして次に、ステップS26において、MPU16は、レリーズボタン32の半押し操作がなされたか否かを判定する。そして、MPU16は、レリーズボタン32の半押し操作がなされた(ステップS26=YES)と判定した場合、その処理をステップS27に移行する。
そして、ステップS27において、スルー画のうち、先のステップS25において設定された合焦マスクを対象としたコントラストAFを実行した上で、その処理をステップS28に移行する。その結果、スルー画が合焦マスクにおいて合焦された状態となる。
一方、MPU16は、レリーズボタン32の半押し操作がなされていない(ステップS26=NO)と判定した場合、ステップS27の処理を経ることなく、その処理をステップS28に移行する。
そして、ステップS28において、MPU16は、撮影指示信号が入力されたか否かを判定する。この撮影指示信号は、レリーズボタン32が全押しされた際に画像処理エンジン14に操作信号として入力される。なお、モニタ21がタッチパネルである場合には、モニタ21が画像の撮影のためにタッチ操作された際に撮影指示信号が操作信号として画像処理エンジン14に入力される。そして、MPU16は、撮影指示信号が入力されていない(ステップS28=NO)と判定した場合、その処理をステップS10に戻し、撮影指示信号が入力されるまでステップS10〜ステップS28の処理を繰り返す。一方、MPU16は、撮影指示信号が入力された(ステップS28=YES)と判定した場合、その処理をステップS29に移行する。
そして、ステップS29において、MPU16は、その時点で撮像素子13から出力された画素信号に基づいて生成している静止画を撮影画像として不揮発性メモリ18に格納する。
次に、上記のように構成されたカメラ10の作用について、特に、MPU16がスルー画に含まれるマスクの中から合焦の対象となる合焦マスクを設定する際の作用に着目して以下説明する。
さて、本実施形態では、MPU16は、スルー画に含まれるマスクの距離の分布としてフォーカスマップを算出し、算出されたフォーカスマップを不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布と比較する。そして、MPU16は、フォーカスマップと照合された分布における比較要素のうち、基準合焦要素として設定された比較要素に対応するマスクのマスク評価値に対して距離評価値を加算する。
すなわち、MPU16は、スルー画に含まれるマスクについて、人が注目することが想定される度合の指標としてマスク評価値を算出した上で、基準合焦要素に対応する一部のマスクのマスク評価値に対して距離評価値を加算する。
特に、本実施形態では、MPU16は、マスクの全体における各々のマスクの距離のばらつきを意味するフォーカスマップに基づいて、距離評価値が加算されるマスクを設定する。そのため、MPU16は、必ずしも、マスク評価値が最も高いマスクを合焦マスクとして設定するわけではなく、スルー画の奥行方向におけるマスク同士の相対的な位置関係を考慮した上で合焦マスクを設定する。
また、本実施形態では、不揮発性メモリ18にデータベース30として格納されている比較要素の距離の分布は、比較要素の分布に応じて該分布を構成する比較要素のうち基準合焦要素として設定される比較要素が多様に設定されている。すなわち、不揮発性メモリ18にデータベース30として格納されている比較要素の距離の分布は、比較要素のうち最も近接側に位置する比較要素が基準合焦要素として一律に設定されていない。
そのため、MPU16は、スルー画から算出したフォーカスマップを、不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布のうち何れの分布に対して照合したかに応じて、スルー画に含まれるマスクのうち合焦マスクとして設定するマスクを多様に変更する。したがって、MPU16は、スルー画のうち人が注目することが想定される領域の候補として複数のマスクを抽出した場合であっても、これらのマスクのうち最も近接側に位置するマスクを合焦マスクとして一律に設定することはない。
上記第1の実施形態によれば、以下に示す効果を得ることができる。
(1)スルー画に含まれるマスク同士におけるスルー画の奥行方向の相対位置に基づいて合焦マスクが設定される。そのため、スルー画において合焦対象となる領域を多様に設定することができる。
(2)スルー画に含まれるマスクの全体の距離のばらつきに基づいて合焦マスクが設定される。そのため、スルー画において合焦対象となる領域を更に多様に設定することができる。
(3)スルー画から算出されるフォーカスマップを、不揮発性メモリ18にデータベース30として格納された比較要素の距離の分布に対して照合する。そのため、スルー画から算出されたフォーカスマップに適した態様で、スルー画において合焦対象となる領域を多様に設定することができる。
(4)マスクのエッジにおける軸上色収差の評価値に基づいてマスクの距離が取得されるため、スルー画の焦点調節のためにフォーカスレンズ11を動かすことなく、マスク同士のスルー画の奥行方向における相対位置を取得することができる。
(5)スルー画からのマスクの抽出結果に対してマスクの距離のデータを組み合わせることにより、スルー画から抽出された複数のマスクが一つの被写体から抽出されたマスクであると判定された場合には、これらのマスクが統合される。そのため、スルー画に含まれる各々の被写体を一つのマスクとして抽出する精度が高められる。したがって、スルー画の奥行方向におけるマスク同士の相対位置を、スルー画の奥行方向における被写体同士の相対位置として正確に取得することができる。
(6)スルー画からのマスクの抽出結果に対してマスクの距離のデータを組み合わせることにより、スルー画から抽出した一つのマスクに複数の被写体から抽出された小領域が含まれると判定された場合には、マスクが複数の小領域に分割される。そのため、スルー画に含まれる各々の被写体を一つのマスクとして抽出する精度が高められる。したがって、スルー画の奥行方向におけるマスク同士の相対位置を、スルー画の奥行方向における被写体同士の相対位置として正確に取得することができる。
(7)スルー画から算出されたフォーカスマップに基づいて、画像の撮影に適した撮影モードを自動的に設定することができる。
(8)スルー画から算出したフォーカスマップが、スルー画に含まれる全てのマスクがスルー画の奥行方向における近接側に偏っている状態を示している場合、カメラ10が被写体を接写した状態であると判定される。そして、その撮影に適した撮影モードであるマクロモードにカメラ10の撮影モードを自動的に設定することができる。
(9)スルー画から算出したフォーカスマップが、スルー画に含まれる全てのマスクがスルー画の奥行方向における無限遠側に偏っている状態を示している場合、カメラ10が風景を撮影していると判定される。そして、その撮影に適した撮影モードである風景モードにカメラ10の撮影モードを自動的に設定することができる。
(第2の実施形態)
次に、第2の実施形態について説明する。なお、第2の実施形態は、マスクの距離及び配置の組み合わせの分布に基づいて合焦マスクが設定される点が第1の実施形態と異なる。したがって、以下の説明においては、第1の実施形態と相違する構成について主に説明し、第1の実施形態と同一又は相当する構成については同一符号を付して重複説明を省略する。
図10に示すように、本実施形態のMPU16が実行する合焦制御処理ルーチンにおいて、ステップS100〜ステップS103の各処理は第1の実施形態における図2のステップS10、ステップS11、ステップS13、ステップS14の各処理と同様である。
そして、ステップS104において、MPU16の位置取得部25は、先のステップS101において抽出されたマスクの重心位置を算出した上で、算出された重心位置とスルー画の画角の中心点とのずれ量をマスクの配置として取得する。
図11及び図12に示す例では、スルー画に含まれる6つのマスクa21〜f21の重心位置Ga〜Gfとスルー画の画角の中心点Pとのずれ量Ra〜Rfがマスクa21〜f21の配置としてそれぞれ取得される。そして、MPU16の位置取得部25は、取得したマスクの配置をマスクの画像の付加情報としてバッファメモリ19に格納する。
続いて、ステップS105において、MPU16の位置取得部25は、先のステップ102において取得されたマスクの距離と、先のステップS104において取得されたマスクの配置とに基づいてフォーカスマップを算出する。ここで、本実施形態のフォーカスマップは、スルー画に含まれる各々のマスクの距離及び配置の組み合わせの分布を意味している。この場合、マスクの距離及び配置の組み合わせの分布とは、マスクの全体における各々のマスクの距離及び配置の組み合わせのばらつきを意味している。なお、図12に示す例では、横軸を画角の中心点からのずれ量とし、縦軸をマスクの距離とした座標系において、各々のマスクの距離及び配置の組み合わせを座標系においてプロットした場合に、プロットした座標から求まる近似曲線Sがフォーカスマップとして算出される。
そして次に、ステップS106において、MPU16のモード設定部27は、第1の実施形態における図2のステップS16の処理と同様にして、先のステップS105において算出されたフォーカスマップに含まれるマスクの距離の分布に基づいて、画像の撮影モードが判定可能であるか否かを判定する。なお、MPU16のモード設定部27は、先のステップS105においてフォーカスマップとして算出したマスクの距離及び配置の組み合わせの分布に基づいて、画像の撮影モードが判定可能であるか否かを判定してもよい。
そして、MPU16のモード設定部27は、スルー画から算出したフォーカスマップに基づいて画像の撮影モードが判定可能である(ステップS106=YES)と判定した場合には、その処理をステップS107に移行する。
そして次に、ステップS107において、MPU16のモード設定部27は、第1の実施形態における図2のステップS17の処理と同様にして、先のステップS106において判定された撮影モードを、カメラ10における画像の撮影モードとして設定した上で、その処理をステップS108に移行する。
一方、MPU16のモード設定部27は、スルー画から算出したフォーカスマップに基づいて画像の撮影モードが判定可能ではない(ステップS106=NO)と判定した場合には、ステップS107の処理を経ることなく、その処理をステップS108に移行する。
そして、ステップS108において、MPU16の合焦領域設定部26は、先のステップS101において抽出されたマスクのうち、スルー画の画角の中心点からのずれ量が相対的に小さいマスク群を第1マスク群として設定し、スルー画の画角の中心点からのずれ量が相対的に大きいマスク群を第2マスク群として設定する。なお、図11及び図12に示す例では、スルー画に含まれる6つのマスクa21〜f21のうち、マスクa21〜c21が第1マスク群として設定されるとともに、マスクd21〜f21が第2マスク群として設定される。
そして次に、ステップS109において、MPU16の合焦領域設定部26は、先のステップS108において設定された第1マスク群及び第2マスク群の距離の平均値T1及び平均値T2をそれぞれ算出する。なお、図12に示す例では、第1マスク群の距離の平均値T1が「(La+Lb+Lc)/3」として算出されるとともに、第2マスク群の距離の平均値T2が「(Ld+Le+Lf)/3」として算出される。
続いて、ステップS110において、MPU16の合焦領域設定部26は、先のステップS109において算出された第1マスク群の距離の平均値T1が第2マスク群の距離の平均値T2よりも大きいか否かを判定する。そして、MPU16の合焦領域設定部26は、第1マスク群の距離の平均値T1が第2マスク群の距離の平均値T2よりも大きい(ステップS110=YES)と判定した場合には、その処理をステップS111に移行する。
そして、ステップS111において、MPU16の合焦領域設定部26は、先のステップS108において設定された第1マスク群のうち、距離が最も大きいマスクをスルー画において合焦の対象となる合焦マスクとして設定する。すなわち、MPU16の合焦領域設定部26は、第1マスク群の距離の平均値T1が第2マスク群の距離の平均値T2よりも大きい場合には、スルー画に含まれるマスクの配置パターンが、スルー画の画角の周辺側から中心側にかけてマスクの距離が次第に大きくなるように連続的に配置される「パースペクティブパターン」であると判断する。そして、MPU16の合焦領域設定部26は、「パースペクティブパターン」において人が注目することが想定される領域として、スルー画に含まれるマスクのうち最奥側のマスクを合焦マスクとして設定する。
一方、MPU16の合焦領域設定部26は、第1マスク群の距離の平均値T1が第2マスク群の距離の平均値T2以下である(ステップS110=NO)と判定した場合には、その処理をステップS112に移行する。
そして、ステップS112において、MPU16の合焦領域設定部26は、スルー画に含まれるマスクの距離の大小関係に基づいて合焦マスクを設定する。具体的には、MPU16の合焦領域設定部26は、一例として、スルー画に含まれるマスクのうち、距離が最も小さいマスク、即ち、スルー画の奥行方向において最も近接側に位置するマスクを合焦マスクとして設定する。
そして以後、MPU16は、ステップS113〜ステップS116において、第1の実施形態における図2のステップS26〜ステップS29の各処理と同様の処理を経て、撮影画像を生成する。
上記第2の実施形態によれば、上記第1の実施形態の効果(1)、(4)〜(9)に加え、以下に示す効果を得ることができる。
(10)スルー画内での配置と組み合わされたマスクの全体の距離のばらつきに基づいて合焦マスクが設定される。そのため、スルー画において合焦の対象となる領域を更に多様に設定することができる。
(第3の実施形態)
次に、第3の実施形態について説明する。なお、第3の実施形態は、マスクの距離及び配置の組み合わせの分布に基づく合焦マスクの設定の態様が第2の実施形態と異なる。したがって、以下の説明においては、第2の実施形態と相違する構成について主に説明し、第2の実施形態と同一又は相当する構成については同一符号を付して重複説明を省略する。
図13に示すように、本実施形態のMPU16が実行する合焦制御処理ルーチンにおいて、ステップS200〜ステップS203の各処理は第2の実施形態における図10のステップS100〜S103の各処理と同様である。
そして、ステップS204において、MPU16の位置取得部25は、先のステップ202において取得されたマスクの距離、及び、マスクの配置に基づいてフォーカスマップを算出する。この場合、MPU16の位置取得部25は、スルー画内におけるマスクの重心位置をマスクの配置として取得し、取得した重心位置をマスクの距離と組み合わせることによりフォーカスマップを算出する。
そして次に、ステップS205において、MPU16のモード設定部27は、第2の実施形態における図10のステップS106の処理と同様にして、先のステップS204において算出されたフォーカスマップに含まれるマスクの距離の分布に基づいて画像の撮影モードが判定可能であるか否かを判定する。そして、MPU16のモード設定部27は、スルー画から算出したフォーカスマップに基づいて画像の撮影モードが判定可能である(ステップS205=YES)と判定した場合には、その処理をステップS206に移行する。
続いて、ステップS206において、MPU16のモード設定部27は、第2の実施形態における図10のステップS107の処理と同様にして、先のステップS205において判定された撮影モードを、カメラ10における画像の撮影モードとして設定した上で、その処理をステップS207に移行する。
一方、MPU16のモード設定部27は、スルー画から算出したフォーカスマップに基づいて画像の撮影モードが判定可能ではない(ステップS205=NO)と判定した場合には、ステップS206の処理を経ることなく、その処理をステップS207に移行する。
そして、ステップS207において、MPU16の合焦領域設定部26は、先のステップS201において抽出されたマスクのうち、上下に並列したマスクの数Nが3つ以上であるか否かを判定する。この場合、MPU16の合焦領域設定部26は、一例として、左右方向におけるマスク同士の重心位置のずれ量が所定の閾値未満であって、且つ、上下方向におけるマスク同士の輪郭の距離が所定の閾値未満である場合に、判定対象のマスクが上下に並列していると判定する。そして、MPU16の合焦領域設定部26は、上下に並列したマスクの数Nが3つ以上である(ステップS207=YES)と判定した場合、その処理をステップS208に移行する。
そして次に、ステップS208において、MPU16の合焦領域設定部26は、上下に並列したN個のマスクを、最下端側から順に第1〜第Nマスクとして設定する。
続いて、ステップS209において、MPU16の合焦領域設定部26は、上下に並列したマスクのうち、最下端側から数えて何番目のマスクの距離を比較対象とすべきかを示す番号Mを初期値M=「1」に設定する。
次に、ステップS210において、MPU16の合焦領域設定部26は、上下に並列したマスクのうち、最下端側から数えてM番目に位置するマスクの距離が、その上方に隣り合う(M+1)番目のマスクの距離よりも小さいか否かを判定する。すなわち、MPU16の合焦領域設定部26は、M=「1」に設定した状態では、上下に並列したマスクのうち、最下端のマスクの距離がその上方に隣り合うマスクの距離よりも小さいか否かを判定する。そして、MPU16の合焦領域設定部26は、M番目に位置するマスクの距離が、その上方に隣り合うマスクの距離よりも小さい(ステップS210=YES)と判定した場合、その処理をステップS211に移行する。
そして次に、ステップS211において、MPU16の合焦領域設定部26は、「M<N−1」という関係式を満たすか否かを判定する。そして、MPU16の合焦領域設定部26は、「M<N−1」という関係式を満たす(ステップS211=YES)と判定した場合には、その処理をステップS212に移行する。
続いて、ステップS212において、MPU16の合焦領域設定部26は、MをM+1にインクリメントした後に、その処理をステップS210に戻す。
そして、MPU16の合焦領域設定部26は、M=「2」に設定した状態でステップS210の処理を再び行う。この場合、MPU16の合焦領域設定部26は、上下に並列したマスクのうち、最下端側から二番目のマスクの距離がその上方に隣り合うマスクの距離よりも小さいか否かを判定する。
すなわち、MPU16の合焦領域設定部26は、M番目に位置するマスクの距離が、その上方に隣り合うマスクの距離よりも小さいという条件を満たす限り、Mをインクリメントする。そして、Mがインクリメントされる度に、上下に並列したマスクのうち、比較の対象となるマスクの組み合わせが最下端側から一つずつ上方にずれていく。
そして、MPU16の合焦領域設定部26は、先のステップS210における条件を満たす間に、「M<N−1」という条件を満たさなくなった(ステップS211=NO)時点で、上下に並列した全てのマスクの組み合わせについて距離の比較が完了したと判断し、その処理をステップS213に移行する。
そして次に、ステップS213において、MPU16の合焦領域設定部26は、上下に並列したマスクのうち最上端のマスクとなる第Nマスクをスルー画において合焦の対象となる合焦マスクとして設定した上で、その処理をステップS217に移行する。すなわち、MPU16の合焦領域設定部26は、上下に並列した全てのマスクについて先のステップS210における条件を満たす場合には、スルー画に含まれるマスクの配置パターンが、台座の上に物体が載置された配置パターンであると判断する。そして、MPU16の合焦領域設定部26は、この配置パターンにおいて上下に並列したマスクのうち最上端のマスクが台座の上に載置された物体であると想定し、この最上端のマスクを合焦マスクとして設定する。
なお、図14(a)に示す例では、スルー画に含まれる3つのマスクa31〜c31が上下に並列しており、これらのマスクa31〜c31の距離は、最下端のマスクa31、中央のマスクb31、最上端のマスクc31の順に次第に大きくなる。そのため、これらのマスクa31〜c31の配置パターンは、台座の上に物体が載置された配置パターンであると判断され、これらのマスクa31〜c31のうち最上端のマスクc31が合焦マスクとして設定される。
一方、MPU16の合焦領域設定部26は、先のステップS211における「M<N−1」という条件を満たさなくなる前時点で、先のステップS210における条件を満たさなくなった(ステップS210=NO)場合、その処理をステップS214に移行する。
そして、ステップS214において、MPU16の合焦領域設定部26は、上下に並列したマスクのうち、第M〜第Nマスクを合焦マスクの候補として設定する。すなわち、MPU16の合焦領域設定部26は、上下に並列したマスクのうち、一部のマスクについては先のステップS210における条件を満たしていたことを根拠に、スルー画に含まれるマスクの配置パターンが台座の上に物体が載置された配置パターンの可能性があると推定する。そのため、MPU16の合焦領域設定部26は、上下に並列したマスクのうち上端側に位置する第M〜第Nマスクを、台座の上に載置された物体の可能性があるマスクの候補として設定する。
なお、図14(b)に示す例では、スルー画に含まれる3つのマスクa32〜c32が上下に並列しており、これらのマスクa32〜c32の距離は、最下端のマスクa32、最上端のマスクc32、中央のマスクb32の順に次第に大きくなる。そのため、最下端のマスクa32の距離が中央のマスクb32よりも小さいものの、中央のマスクb32の距離が最上端のマスクc32よりも距離が大きい。そのため、上下に並列したマスクa32〜c32のうち、中央のマスクb32及び最上端のマスクc32が合焦マスクの候補として設定される。
そして、MPU16の合焦領域設定部26は、候補となるマスクの中から合焦マスクが選択されたか否かを判定する。ここで、合焦マスクの選択の有無は、例えば、操作部33を構成するセレクトボタンや決定ボタンの押圧操作を通じて合焦マスクの選択及び決定がなされたか否かに基づいて判定される。なお、合焦マスクの選択の有無は、モニタ21がタッチパネルである場合には、モニタ21のタッチ操作を通じて合焦マスクの選択及及び決定がなされたか否かに基づいて判定されてもよい。そして、MPU16の合焦領域設定部26は、合焦マスクの選択がなされていない(ステップS214=NO)と判定した場合、合焦マスクの選択がなされるまでステップS214の処理を周期的に繰り返す。一方、MPU16の合焦領域設定部26は、合焦マスクの選択がなされた(ステップS214=YES)と判定した場合、その処理をステップS215に移行する。
そして、ステップS215において、MPU16の合焦領域設定部26は、先のステップS215において選択されたマスクを合焦マスクとして設定した上で、その処理をステップS217に移行する。
また、MPU16の合焦領域設定部26は、上下に並列したマスクの数Nが3つ未満である(ステップS207=NO)と判定した場合、その処理をステップS216に移行する。
そして、ステップS216において、MPU16の合焦領域設定部26は、スルー画に含まれるマスクの距離の大小関係に基づいて合焦マスクを設定する。具体的には、MPU16の合焦領域設定部26は、一例として、スルー画に含まれるマスクのうち、距離が最も小さいマスク、即ち、スルー画の奥行方向において最も近接側に位置するマスクを合焦マスクとして設定する。
そして以後、MPU16は、ステップS217〜ステップS220において、第2の実施形態における図10のステップS113〜ステップS116の各処理と同様の処理を経て、撮影画像を生成する。
上記第3の実施形態によれば、上記各実施形態の効果(1)、(4)〜(10)に示す効果を得ることができる。
(第4の実施形態)
次に、第4の実施形態について説明する。なお、第4の実施形態は、マスクの距離の分布を比較要素の距離の分布に照合することなく合焦マスクを設定する点が第1の実施形態と異なる。したがって、以下の説明においては、第1の実施形態と相違する構成について主に説明し、第1の実施形態と同一又は相当する構成については同一符号を付して重複説明を省略する。
図15に示すように、本実施形態のMPU16が実行する合焦制御処理ルーチンにおいて、ステップS300〜ステップS306の各処理は第1の実施形態における図2のステップS10、ステップS11、ステップS13〜ステップS17の各処理と同様である。
そして、ステップS307において、MPU16の合焦領域設定部26は、先のステップS304において算出されたフォーカスマップが、他のマスクと比較して距離が大きく外れたマスクを含むか否かを判定する。この場合、一例として、MPU16の合焦領域設定部26は、フォーカスマップを構成するマスクの中に、他の全てのマスクとの距離の差が閾値以上となるマスクが含まれるか否かを判定する。
なお、図16及び図17に示す例では、スルー画に含まれる8つのマスクa41〜h41のうち、7つのマスクa41〜g41の距離が「近接域」又は「至近域」に分類される一方で、他の一つのマスクh41の距離が「遠景域」に分類されている。そして、「遠景域」に分類されたマスクh41は、「近接域」又は「至近域」に分類された他のマスクa41〜g41と比較して距離が大きく外れたマスクとして判定される。
そして、MPU16の合焦領域設定部26は、他のマスクと比較して距離が大きく外れたマスクを含む(ステップS307=YES)と判定した場合、その処理をステップS308に移行する。
そして次に、ステップS308において、MPU16の合焦領域設定部26は、先のステップS307において他のマスクと比較して距離が大きく外れていると判定されたマスクを合焦マスクとして設定する。なお、図16及び図17に示す例では、「遠景域」に分類されたマスクh41が合焦マスクとして設定される。
一方、MPU16の合焦領域設定部26は、他のマスクと比較して距離が大きく外れたマスクを含まない(ステップS307=NO)と判定した場合、その処理をステップS309に移行する。
そして、ステップS309において、MPU16の合焦領域設定部26は、スルー画に含まれるマスクの距離の大小関係に基づいて合焦マスクを設定する。具体的には、MPU16の合焦領域設定部26は、一例として、スルー画に含まれるマスクのうち、距離が最も小さいマスク、即ち、スルー画の奥行方向において最も近接側に位置するマスクを合焦マスクとして設定する。
そして以後、MPU16は、ステップS310〜ステップS313において、第1の実施形態における図2のステップS26〜ステップS29の各処理と同様の処理を経て、撮影画像を生成する。
上記第4の実施形態によれば、上記第1の実施形態の効果(1)、(2)、(4)〜(9)に加え、以下に示す効果を得ることができる。
(11)スルー画から抽出されたマスクのうち、他のマスクと比較して距離の大きさが外れたマスクが合焦マスクとして設定される。そのため、スルー画において人が注目することが想定される領域を、スルー画において合焦の対象となる領域として好適に設定することができる。
なお、上記各実施形態は、以下のような別の実施形態に変更してもよい。
・上記第1の実施形態において、MPU16の合焦領域設定部26は、スルー画から算出したフォーカスマップを、不揮発性メモリ18に格納された比較要素の距離の分布と比較することにより分布の近似度を算出し、算出した近似度が所定の閾値以上である場合に、フォーカスマップと比較要素の距離の分布とが照合されたと判定してもよい。
・上記第2の実施形態において、MPU16の合焦領域設定部26は、以下のようにしてマスクa21〜f21の配置パターンが「パースペクティブパターン」であるか否かを判定してもよい。
すなわち、第1の変更例として、MPU16の合焦領域設定部26は、スルー画に含まれるマスクa21〜f21のうち、スルー画の画角の中心点からのずれ量が隣り合うマスク同士の距離の差分を算出し、算出された差分の正負が一定であるか否かを判定してもよい。
また、第2の変更例として、MPU16の合焦領域設定部26は、スルー画から算出したフォーカスマップを、不揮発性メモリ18に格納された比較要素の距離及び配置の組み合わせの分布と比較することにより分布の近似度を算出し、算出された近似度が所定の閾値以上であるか否かを判定してもよい。
・上記第2の実施形態において、MPU16の位置取得部25は、スルー画に含まれるマスクa21〜f21の重心位置Ga〜Gfとスルー画における任意の位置に設定される点とのずれ量をマスクa21〜f21の配置としてそれぞれ取得してもよい。
・上記第3の実施形態において、MPU16の合焦領域設定部26は、左右方向におけるマスク同士の重心位置のずれ量が閾値未満であって、且つ、上下方向におけるマスク同士の重心位置のずれ量が閾値未満である場合、判定対象のマスクが上下に並列していると判定してもよい。
・上記第3の実施形態において、MPU16は、上下に並列したマスクのうち、一部のマスクについては、上下に隣り合うマスクのうち下方のマスクの距離が上方のマスクの距離よりも大きいという条件を満たしている場合、台座の上に載置された物体の可能性があるマスクの候補にそれぞれ合焦させた複数の撮影画像を生成してもよい。
・上記第3の実施形態において、MPU16の合焦領域設定部26は、以下のようにしてマスクの配置パターンが台座の上に物体が載置された配置パターンであるか否かを判定してもよい。すなわち、MPU16の合焦領域設定部26は、スルー画から算出したフォーカスマップを、不揮発性メモリ18に格納された比較要素の距離及び配置の組み合わせの分布と比較することにより分布の近似度を算出し、算出された近似度が所定の閾値以上であるか否かを判定してもよい。
・上記各実施形態において、MPU16の位置取得部25は、例えば、位相差検出方式、コントラスト検出方式及びTOF(Time Of Flight)方式等の検出方式を用いてマスクの距離を取得してもよい。
この構成では、検出方式として位相差検出方式を用いた場合には、マスクの距離を迅速に取得することができる。
また、検出方式としてコントラスト検出方式を用いた場合には、スルー画における任意の位置にマスクが位置する場合であっても、マスクの距離を取得することができる。
・上記各実施形態において、MPU16の位置取得部25は、以下のようにしてマスクの距離を取得してもよい。すなわち、MPU16の位置取得部25は、まず、領域のボケ具合と該領域の距離とを対応付けて記憶したデフォーカスデータベースを予め不揮発性メモリ18に格納させる。そして、MPU16の位置取得部25は、スルー画におけるマスクのボケ具合を、デフォーカスデータベースに記憶された領域のボケ具合と照合することにより、マスクの距離を取得する。
この構成では、スルー画の焦点調節のためにフォーカスレンズ11を動かすことなく、マスクの距離を取得することができる。
・上記各実施形態において、スルー画から算出されるフォーカスマップは、マスクごとの距離が、数値データではなく、複数の距離範囲のうち何れの距離範囲に含まれるかを示す区分データで構成されてもよい。
この構成によれば、フォーカスマップがマスクごとの距離の数値データによって構成される場合と比較して、フォーカスマップのデータ量を低減することができる。
・上記各実施形態において、MPU16は、動画の撮影時において、各実施形態における合焦制御処理ルーチンと同様の処理を実行することにより、動画の合焦状態を制御してもよい。
・上記各実施形態において、画像の撮影機能を搭載したカメラ10以外の電子機器に対し、画像における合焦領域を設定する画像処理装置として画像処理エンジン14が搭載されてもよい。なお、画像の撮影機能を搭載した電子機器としては、例えば、ビデオカメラ、パーソナルコンピュータ、携帯電話機、携帯ゲーム機等が挙げられる。