−第1実施例−
以下、図1〜図6を参照して本発明の第1実施例を説明する。
図1は本実施例に係るカメラの制御系のブロック図である。図中符号1はカメラの動作を制御するCPUであり、このCPU1には、視線検出装置2、ブレ検出装置3、測光装置4、測距装置5、焦点距離検出装置6、姿勢検出装置7、撮影モード入力装置8および表示装置9が接続されている。
視線検出装置2は、カメラのファインダ(不図示)を覗き込む撮影者の瞳に向けて赤外光を照射し、角膜からの反射光および眼球像とから眼球の回転角度を求めて撮影画面内での撮影者の注視点を特定する。視線検出装置2が検出した注視点に関する情報はCPU1に送出される。ブレ検出装置3は例えばカメラボディの加速度や角速度により手ブレの大小を検出し、検出したブレの大きさに応じた信号をCPU1に出力する。測光装置4は、図2に示すようにn行×m列のマトリクス状に配置された受光素子PSにより撮影画面を分割測光する二次元電荷蓄積型イメージセンサである。測光装置4の素子PSの位置は、図2にも示したように撮影画面の水平方向をx軸、垂直方向をy軸方向とする二次元直交座標系の座標値により表される。なお、図2は、撮影画面が横長となるカメラの横位置の状態を示す。撮影画面が縦長となるカメラの縦位置では、撮影画面の短辺方向がx軸方向、長辺方向がy軸方向である。
測距装置5は、撮影距離(カメラのフィルム面から主要被写体までの距離)を検出し、その検出結果に応じた信号をCPU1に出力する。撮影距離の検出は、例えば撮影レンズの距離リングの回転位置に基づいて演算し、あるいは被写体に赤外光を照射して検出する。焦点距離検出装置6は、撮影レンズの焦点距離に関する情報を撮影レンズに内蔵されたROMから読み取ってCPU1に出力する。撮影レンズの交換が不可能なカメラでは、焦点距離検出装置6を省略して予めCPU1に焦点距離情報を与えてもよい。
姿勢検出装置7はカメラが横位置にあるか縦位置にあるかを検出してCPU1に出力する。既述のように、横位置とは撮影画面の長辺方向と水平方向とが一致する位置を、縦位置とは撮影画面の短辺方向と水平方向とが一致する位置をいう。撮影モード入力装置8は、例えば人物撮影を目的とするポートレートモード、風景撮影を目的とする風景モードなど、撮影目的に応じた撮影モードを撮影者が入力するためのものである。表示装置9は、露出値などの撮影情報をカメラボディ上面やファインダ内に表示する機能を備えるとともに、ブザーや合成音声、振動等による警告機能を備える。
CPU1は、各装置2〜8からの信号を必要に応じて読み込んで不図示のシャッタおよび絞りを制御し、撮影レンズを合焦位置へ駆動する。また、撮影動作に先立ってCPU1は図4および図5に示す手順により構図推定処理を行なう。以下、この構図推定処理を説明する。なお、構図推定処理は、例えばレリーズ釦の半押し操作に応答して実行するとよい。
図4に示すように、構図推定処理では、ステップS1にて撮影モード入力装置8から入力される撮影モードを読み込む。ついでステップS2では、撮影モードに応じた「判定撮影倍率a」を設定する。「判定撮影倍率a」については後述する。ステップS3では姿勢検出装置7の出力からカメラの姿勢を検出し、続くステップS4では視線検出装置2からの信号処理に必要な撮影画面の分割パターンをカメラの姿勢に応じて選択する。例えばカメラの横位置では、図3(a)に示すように撮影画面Pをv行×u列のマトリクス状の領域Wに分割したパターンが選択される。この分割パターンの分割個数(u,vの値)は上述した測光装置4の分割個数(m,nの値)と同一でも、異なってもよい。なお、以下では領域Wの位置を、測光装置4よる分割領域と同じく、撮影画面の水平方向をx軸、垂直方向をy軸方向とする二次元直交座標系の座標値により表し、任意の位置の領域をW(i,j)とする。カメラボディが縦位置に構えられたときの分割パターンは図示を省略する。
ステップS4で分割パターンを選択した後は、ステップS5にて分割パターンに対応するエリア係数αを設定する。例えば図3(a)に示す分割パターンが選択されたときには、図3(b)に示すように領域W(1,1)〜W(i,j)〜W(u,v)毎にエリア係数α(1,1)〜α(i,j)〜α(u,v)が与えられる。エリア係数α(i,j)は、撮影画面の中央から離れるほど大きく設定される。なお、エリア係数α(i,j)は、撮影画面中央からの距離に比例して増加させ、あるいは距離に対して2次以上の増加関数となるように変化させてもよい。
エリア係数αを設定した後は、ステップS6でブレ検出装置3からの信号を読み込み、続くステップS7で検出したブレ量が適正範囲か否かを判別する。ブレ量が適正範囲であればステップS8へ進み、適正範囲を越えるときはステップS17へ進む。なお、ブレ量を判定するのは、カメラブレが大きくなると構図が定まらず、撮影画面が不安定となって注視点の検出精度が悪化するからである。
ステップS8では焦点距離検出装置6からの信号により撮影レンズの焦点距離fを検出し、続くステップS9では測距装置5からの信号により撮影距離Dを求める。ステップS10では、撮影倍率βを式β=f/(D−f)によって求める。簡単のためβ=f/Dとしてもよい。
続くステップS11(図5)では、算出された撮影倍率βがステップS2で設定した判定撮影倍率a以上か否か判断する。判定撮影倍率a以上であればステップS12へ、判定撮影倍率a未満であればステップS13へ進む。ステップS12またはステップS13では、視線検出装置2が検出する注視点とステップS4,S5にて設定した分割パターン、エリア係数とに基づいて、一定時間内における撮影者の注視点の散らばり程度を表す指数(以下、離散指数と呼ぶ。)Eを演算する。以下、この離散指数Eの演算処理を図6により説明する。
図6の処理では、まずステップS101にて離散指数Eの演算周期を設定するタイマを起動する。続くステップS102では視線検出装置2が検出する注視点の位置を読み込み、その位置が図3(a)の領域W(1,1)〜W(u,v)のいずれに属するかを識別する。次のステップS103では注視点が存在する領域W(i,j)に関してのみ注視点の存在時間t(i,j)を積算する。この後、ステップS104にて視線検出装置2からの信号により注視点の位置を確認する。続くステップS105では、ステップS104で確認した注視点の属する領域W(i,j)がそれまでの領域から変化しているか否かを判別する。領域W(i,j)が変化していれば、ステップS106にて存在時間t(i,j)を積算する領域を新たな領域に変更してステップS107へ進む。領域W(i,j)に変化がなければステップS106を省略してステップS107へ進む。
ステップS107ではステップS101で起動したタイマの積算時間が所定秒時に達したか否か判別し、達していなければステップS103に戻って上述の処理を繰り返す。ステップS107でタイムアップと判断したときはステップS108ですべての領域W(i,j)に関する存在時間t(i,j)の積算を終了し、続くステップS109で下式により離散指数Eを演算する。
E=Σ(α(i,j)×t(i,j)) ……(i=1〜u,j=1〜v) この式から明らかなように、離散指数Eは図3(c)に示す領域W(1,1)〜W(u,v)毎の注視点の存在時間t(1,1)〜t(u,v)に、図3(b)に示す領域W(i,j)毎のエリア係数α(i,j)を乗算した値の総和である。ステップS109の終了後は図5に示す処理へ復帰する。
再び図5に戻って説明する。離散指数Eの演算後はステップS14またはステップS15に進み、演算された離散指数Eが基準値b,c以上か否か判断する。基準値b,c以上であればステップS16へ進み、表示装置9により構図が良好である旨を撮影者に知らしめる。一方、ステップS14,S15にて離散指数Eが基準値b,c未満のときはステップS17へ進み、表示装置9のブザー等により撮影者に対して警告を発する。なお、基準値b,cはb<cの関係にある。
以上の処理によれば、撮影画面の中央から離れるほどエリア係数α(i,j)が大きくなるので、撮影者が撮影画面の中央部を集中的に注視したときはステップS12またはステップS13で演算される離散指数Eが小さくなり、ステップS14またはステップS15で基準値b,c未満と判定されてステップS17で警告が発せられる可能性が高まる。反対に、撮影者が撮影画面の周辺も満遍なく注視すれば離散指数Eが大きくなり、ステップS14またはステップS15で基準値b,c以上と判定されてステップS16で構図良好表示がなされる可能性が高くなる。撮影者の注視点が撮影画面の中央部に集中する場合は、撮影者が主要被写体のみを注視し、背景に考慮を払っていないので、構図不良が生じる可能性が高い。したがってステップS17での警告は、撮影者に対して構図確認を催促する情報として有効に機能する。なお、構図判定ができないほどカメラブレが大きいときもステップS17にて警告が発せられる。
本実施例では、撮影者の注視点分布に基づいて構図不良を推定するので、撮影画面内の水平線等の検出が困難な低輝度時やローコントラスト時でも機能が損われない。なお、本実施例では撮影画面の周辺のみを注視したときも離散指数Eが高くなって警告が発せられない可能性が高くなる。しかしながら、撮影者が意識して撮影画面の周辺を注視するときは、構図の決定に何等かの意図が含まれていると考えて差し支えなく、警告を与えなくとも不都合はない。
実施例では撮影倍率βと判定撮影倍率aとの大小関係に応じて基準値b,cが変更され、しかもb<cである。このため、注視点の散らばり程度が同程度であっても、撮影倍率βが小さいとき、すなわちβ<aの場合(ステップS13,15側)がβ≧aの場合(ステップS12,14側)よりも警告が発せられる可能性が高くなる。これは、撮影倍率βが小さくなるほど主要被写体が撮影画面内に占める大きさが減少し、撮影画面の周辺を注視して構図の良否を確認する必要性が高まるためである。
判定撮影倍率aを撮影モードに応じて変更するのも撮影画面周辺の注視の必要度を考慮したためである。例えばポートレートモードでは主要被写体たる人物が大きく捕えられかつ背景がぼけるので背景を注視する必要が薄れて判定撮影倍率aを小さく設定しても差し支えないのに対し、風景モードでは撮影画面の隅々まで注視する必要が高まるので判定撮影倍率aも高く設定する必要がある。なお、撮影画面の中央部のエリア係数が、風景モードよりもポートレートモードで大きくなるように変化させてもよい。
図7に示すように表示装置9に構図警告装置9Aとブレ警告装置9Bとを設け、図8に示すように、ステップS14またはステップS15で構図不良と推定したときにはステップS17に進んで構図警告装置9Aで構図確認の催促を、ステップS7でブレ大と判定したときはステップS18へ進んでブレ警告装置9Bによりブレの警告を与えてもよい。
撮影画面内で一定時間内に注視点が最も集中する領域を主要被写体の位置として特定し、かかる位置から離れるほどエリア係数α(i,j)が大きくなるように設定することで、主要被写体からの注視点の散らばりの程度に応じて離散指数Eを増減させることも可能である。図9に示すように撮影画面Pに複数の焦点検出領域AFを設定し、いずれか一つの領域を選択可能としたカメラでは、選択された焦点検出領域AFから注視点が離れるほどエリア係数α(i,j)が大きくなるようにしてもよい。この場合、焦点検出領域AFの選択は、撮影者が指示するものでも、カメラ側が自動的に選択するものでもよい。撮影者の視線に基づいて焦点検出領域AFを選択するカメラであっても、選択された焦点検出領域AFから離れるほどエリア係数α(i,j)が大きくなるように設定すればよい。また、焦点検出領域AFの位置に係わりなく撮影画面の中央から離れるほどエリア係数α(i,j)を大きく設定した場合において、撮影者の視線により焦点検出領域AFを選択する場合には、選択される焦点検出領域AFに一時的に視線が集中するので、その間の注視点分布情報を離散指数Eの演算データに取り込まないようにすればよい。
−第2の実施例−
図10〜図22により本発明の第2実施例を説明する。なお、本実施例は、上述した第1実施例に対してCPU1での構図推定処理を変更したものである。したがって、第1実施例との共通部分には同一符号を付してその説明を省略し、構図推定処理の特徴部分を説明する。
図10は本実施例の構図推定処理の一部を示すものである。図中のステップS11は上述した第1実施例のステップS11と共通し、ステップS11よりも前段階では図4に示すステップS1〜ステップS10が実行される。ステップS11にて撮影倍率βが判定撮影倍率aよりも大きいときはステップS21へ進み、現在の撮影画面の構図が予め定められた構図不良条件に該当する程度を表す指数(以下、構図不良指数と呼ぶ。)Gを、測光装置4の素子PS(図2参照)毎の測光値Bvに基づいて演算する。この構図不良指数Gの演算の詳細は後述する。
ステップS11で判定撮影倍率a未満のときはステップS22へ進み、離散指数Eを演算する。この離散指数Eの演算処理は図6に示すものと同一である。離散指数Eの演算後はステップS23へ進み、離散指数Eが基準値h以上か否か判断する。基準値h以上であればステップS24へ進んで構図不良指数Gを演算し、基準値h未満であればステップS25へ進んで表示装置9のブザー等により撮影者に対して警告を発する。このときの警告は、第1実施例と同様に撮影者が撮影画面の周辺の構図を確認していないことに対するものである。判定撮影倍率aおよび基準値hは、第1実施例の判定撮影倍率a、基準値b,cと一致するとは限らない。
図11は構図不良指数Gの演算処理を示すものである。この処理では、まずステップS201にて姿勢検出装置7からの出力によりカメラが横位置か否かを判断する。横位置でなければステップS202へ進み、図2に示す測光装置4の素子数mを以降の処理で用いる定数n、素子数nを以降の処理で用いる定数mとして定義する。横位置のときは素子数mが定数m、素子数nが定数nとしてそのまま使用される。このような操作を行うのは、CPU1がカメラの縦位置および横位置に拘らず撮影画面の水平方向をX軸方向、垂直方向をY軸方向として扱うため、縦位置と横位置とで測光装置4のX軸方向、Y軸方向の素子数が入れ替わるためである。
素子数m,nをカメラの姿勢に応じて定義した後は、ステップS203で、電柱や立木等の柱状物が構図不良を引き起こす程度を表す指数(以下、柱状物不良指数と呼ぶ。)G1を演算する。ステップS204では主要被写体の位置が構図 不良を引き起こす程度を表す指数(以下、主要被写体不良指数と呼ぶ。)G2を 演算する。ステップS205では、水平線や地平線等、撮影画面を二分するような水平エッジが構図不良を引き起こす程度を表す指数(以下、水平エッジ不良指数と呼ぶ。)G3を演算する。なお、これらの指数G1〜G3は構図不良を引き起 こす程度が高いほど大きくなるように設定される。各指数G1〜G3の演算手順の詳細は後述する。
指数G1〜G3の演算後はステップS206へ進み、構図不良指数Gとして各指数G1〜G3の総和(G1+G2+G3)を求める。構図不良指数Gの演算後は図1 0に示すステップS26またはステップS27に進み、演算された構図不良指数Gが基準値p,q以上か否か判断する。基準値p,q未満であればステップS28へ進み、表示装置9により構図が良好であることを撮影者に知らせる。一方、ステップS26,S27にて構図不良指数Gが基準値p,q以上のときはステップS25へ進み、表示装置9のブザー等により撮影者に対して警告を発する。なお、基準値p,qはp>qの関係にある。カメラボディのブレが大きいときにも第1実施例と同様にステップS25の処理が実行されて警告が発せられる。
図12〜図22により各指数G1〜G3の演算手順を説明する。
(1)柱状物不良指数G1の演算処理
図12,図13は柱状物不良指数G1の演算手順を示すものである。図14(a)に示すように、撮影画面Pの垂直方向に真っ直ぐ延びた状態で撮影されるべき柱状物(樹木、電柱、支柱等)X1が同図(b)に示すように傾いて撮影される と構図不良を引き起こす。このような要素を構図不良の推定に反映させるべく、図12,図13の処理では測光装置4が検出する測光値分布に基づいて撮影画面中の柱状物X1を検出し、柱状物X1のエッジ(背景との境界)eL,eRの傾きの程度を指数化する。なお、以下の説明では、図15に示すように測光装置4の素子PSのうちX座標を同じくする素子の列をy列とし、Y軸方向最下端から上側へj番目のy列をyj列と表現する。図15はカメラが横位置で、素子PSの個 数がm=30,n=20の例である。
図12に示すように、指数G1の演算では、ステップS211で走査列を指定 する変数jを初期値1に設定し、ステップS212でyj列の素子PS(1,j)〜PS(m,j)の測光値の走査を開始する。次のステップS213では、yj 列において同一測光値Bvの素子PSが所定個数A以上連続するか否か判断する。連続するときはステップS214に進み、ステップS213の条件に該当する測光値Bvおよび素子の組の位置を記憶する。条件に該当する素子の組が存在しないときはステップS214を省略してステップS215へ進む。
ステップS215ではyj列の走査が終了したか否かを判断し、走査途中であ ればステップS213へ戻る。yj列の走査が終了したときはステップS216 へ進み、変数jがY軸方向の素子数nに一致するか否かを判断する。一致しなければステップS217で変数jに1を加算してステップS212へ戻る。変数jが素子数nに一致するときはステップS218へ進む。
ステップS218では、ステップS214で記憶した測光値Bvのうち、すべてのy列(y1列〜yn列)に共通するものがあるか否か判断する。なお、ステップS213およびステップS218にて、各素子PSの測光値Bvが等しいか否かを判断する際には、測光値Bvの差が一定の許容範囲内にあれば同一として扱ってよい。
すべてのy列に共通する測光値Bvが存在するときはステップS219へ進み、すべてのy列間で測光値Bvの素子が所定個数C以上接しているか否か判断する。この条件が満たされているときはステップS220へ進み、複数の測光値Bvについて上記の条件が満たされたか否か判断する。複数の測光値について満たされているときはステップS221へ進み、最も低い測光値の素子の組を以降の処理対象として選択する。例えば、ステップS214にて2つの測光値Bv1,Bv2(Bv1<Bv2)の素子の組が記憶され、測光値Bv1,Bv2の素子の組いずれもがステップS218,S219の条件を満たすときは、ステップS214で記憶した測光値Bv1の素子の組を処理対象として選択される。なお、ステップS 220が否定されたときはステップS221が省略され、ステップS214で記憶された測光値Bvの素子の組がそのまま処理対象に選択される。
測光値Bvの素子の組を選択した後はステップS222(図13)へ進む。ステップS222では、選択された測光値Bvの素子のうち、y1列およびyn列で最も左側に位置する素子のX座標をそれぞれXa,Xc、y1列およびyn列で最も右側に位置する素子のX座標をそれぞれXb,Xdとして定義する。なお、y1列は撮影画面の下端、yn列は撮影画面の上端に位置する素子列である。次のステップS223では、下式によりy1列,yn列における測光値Bvの素子の左右端のずれ量ΔXL,ΔXRを求める。
ΔXL=Xc−Xa
ΔXR=Xd−Xb
ステップS224では、ΔXL,ΔXRの正負符号が一致するか否かを判断する。一致していればステップS225へ進み、ΔXLの絶対値がΔXRの絶対値よりも小さいか否か判断する。小さければステップS226へ進み、ΔXRの絶対値に 応じて指数G1を設定する。ΔXLの絶対値がΔXRの絶対値よりも大きいときは ステップS227に進み、ΔXLの絶対値に応じて指数G1を設定する。なお、ΔXL,ΔXRが大きいほど指数G1も大きく設定するが、ΔXL,ΔXRに比例して 指数G1を増加させ、あるいはΔXL,ΔXRに対して二次以上の増加関数で指数 G1を増加させてもよい。
ステップS218、ステップS219およびステップS224が否定判断されたときはステップS228へ進み、指数G1=0とする。ステップS226〜2 28の終了後は図11に示す処理へ復帰する。
次に、図12,図13の処理の具体例を図16に基づいて説明する。なお、測光装置4の素子の配列は図15に示す通りとし、ステップS213での所定個数A=5、ステップS219での所定個数C=4とする。
図16は、図14(b)に示す撮影画面Pと測光装置4の素子PSの配列との対応を示すものである。一般に、柱状物X1の輝度は背景部分よりも低いため、 柱状物X1上に位置する素子が背景部分よりも低い一様な測光値Bv1を検出し、背景上に位置する素子が測光値Bv1よりも一様に明るい測光値Bv2を検出するものとした。柱状物X1に対する撮影距離が短く、そこに撮影レンズのピントが 合っている状態では、背景部分が被写界深度から外れてボケるため、背景が一様に明るいと見做して差し支えない。
図16に示す撮影画面に対して図12,13の処理を適用した場合、ステップS211〜ステップS215により、y1列に関して素子PS(1,1)〜PS (7,1)が同一測光値Bv2の組として記憶され、素子PS(9,1)〜PS (14,1)が同一測光値Bv1の組として記憶され、素子PS(16,1)〜 PS(30,1)が同一測光値Bv2の組として記憶される。以下、同様の処理 がy2列〜y20列について繰り返され、y20列では素子PS(1,20)〜PS (4,20)が同一測光値Bv2の組として記憶され、素子PS(6,20)〜 PS(11,20)が同一測光値Bv1の組として記憶され、素子PS(13, 20)〜PS(20,20)が同一測光値Bv2の組として記憶される。
y1列〜y20列に共通する測光値Bv1,Bv2が存在し、測光値Bv1の素子がy列間で接する数、測光値Bv2の素子がy列間で接する数がy1列〜y20列まですべてC(=4)個以上であるため、ステップS218,ステップS219はいずれも肯定される。そして、測光値Bv1<Bv2より、ステップS220で測光値Bv1の素子の組が処理対象に選択される。ステップS221では、y1列およびy20列における測光値Bv1の素子の左右端のX座標が選ばれてXa=9,X b=14,Xc=6,Xd=11となり、ステップS223ではΔXL=6−9 =−3、ΔXR=11−14=−3となる。ΔXL,ΔXRの正負符号はともに負 であるからステップS224が肯定される。ΔXL、ΔXRの絶対値が等しいのでステップS225が肯定され、ステップS226にてΔXLの絶対値(=3)に 応じて指数G1が設定される。
以上から明らかなように、図12,図13の処理では同一測光値Bvの素子が撮影画面の水平方向へ所定個数A以上連続するか否か、および同一測光値Bvの素子が各y列間で所定個数C以上接するか否かにより、撮影画面を左右に二分する柱状物X1が存在するか否か判断される。柱状物X1が存在するときは、撮影画面の上下端における柱状物X1のエッジeL,eR(図14参照)のずれ量ΔXL、ΔXRが求められ、いずれか大きい方の値に応じて指数G1が設定される。したがって、指数G1は、柱状物の傾きが構図不良に与える影響の大小を示している。 なお、円錐体のように高さに応じて幅が変化する構造物では、撮影画面の垂直方向と平行であってもそのエッジが傾くので、単一のエッジのみを評価した場合は構図不良と誤って判断されるおそれがある。ところが、図12,図13の処理ではステップS224にて柱状物の両側のエッジの傾き方向が一致するか否かを判別するので、そのようなおそれがない。
(2)主要被写体不良指数G2の演算処理
図17および図18により主要被写体不良指数G2の演算処理(図11のステ ップS204)を説明する。図18(a)に示すように、撮影画面Pの主要被写体(この例では人物)X2が、同図(b)に示すように撮影画面Pの上端から大 きく離れ、あるいはその逆に撮影画面Pの上端に過度に接近すると構図不良を引き起こす。このような要素を構図不良の推定に反映させるべく、図17の処理では、測光装置4が検出する測光値分布に基づいて主要被写体の上端位置を検出し、その適正範囲からのずれ量を指数化する。なお、以下の説明でも、上記と同様に測光装置4の素子PSのうちX座標を同じくする素子の列をy列と呼び、Y軸方向最下端から上側へj番目のy列をyj列と表現する。
図17に示すように、指数G2の演算では、まずステップS241で走査列を 指定する変数jを初期値1に設定し、ステップS242でyj列の素子PS(1,j)〜PS(m,j)の測光値を走査する。次のステップS243では、yj列 において同一測光値Bvの素子PSがyj列の全素子数mのF%以上存在するか 否か判断する。存在するときはステップS244に進み、yj列を素子列yz1と定義してステップS246へ進む。ステップS243の条件が満たされないときはステップS245へ進み、yj列を素子列yz0と定義してステップS246へ進む。同一測光値Bvか否かの判断に際しては、図12,13の例と同様に一定の許容範囲を設けてよい。
ステップS246では変数jがY軸方向の素子数nに一致するか否か判断する。一致しなければステップS247で変数jに1を加算してステップS242へ戻る。一致するときはステップS248へ進む。ステップS248では、素子列yz0とyz1との境界が撮影画面内に存在するか否かを判断する。存在していればステップS249へ進み、境界が単数か否か判断する。単数であればステップS250へ進み、境界位置を挟んで隣接する2つのy列のいずれか一方のY座標を境界座標YLとして定義する。なお、本実施例では境界の下側のy列のY座標を 界座標とした。続くステップS251では、下式により境界座標YLが適正範囲 内か否か判断する。
K・n≦YL≦L・n
上式を満たすときはステップS252へ進み、指数G2=0とする。一方、上 式を満たさないときはステップS253へ進み、座標YLに応じて指数G2を設定する。この場合、座標YLが上式に示す適正範囲から外れる量が大きいほど指数 G2も大きくする。ステップS252,253の後は図11に示す処理に復帰す る。なお、F%は、測光装置4のX軸方向の素子数に応じて定めるが、なるべく100%に近い値が好ましい。係数K,Lは、撮影画面の上端から主要被写体の上端までの間隔の適正範囲を与えるもので、一般的なポートレート撮影ではK=0.8,L=0.9程度が好適である。
図18(b)を参照して図17の処理の具体例を説明する。図18(b)は、カメラが縦位置で、測光装置4の素子PSの個数がn=30,m=20の場合における素子PSと撮影画面Pとの対応関係を示したもので、図中の斜線部分が主要被写体X2である。なお、縦位置での素子数の取り扱いは図11のステップS 202の部分で既に説明した通りである。主要被写体X2以外の背景部分は被写 界深度から外れてボケるため、背景部分に対応する素子は、主要被写体X2に対 応する素子よりも明るい一定の測光値Bv1を検出すると見做す。また、F=1 00とした。
図18(b)に示す撮影画面に対して図17の処理を適用した場合、y1列〜 y19列に関しては、主要被写体X2と背景が混在するために同一測光値Bv1の素子PSがF(=100)%存在することはなく、ステップS243が否定される。このため、y1列〜y19列はステップS245で素子列yz0として定義される。y20列〜y30列には背景のみが存在するため同一測光値Bv1の素子がF%以上 存在し、ステップS243が肯定される。このため、ステップS244でy20列〜y30列は素子列yz1として定義される。そして、素子列yz0とyz1との境 界が一箇所だけ存在するからステップS248,S249が肯定され、ステップS250で素子列yz0の上限であるy19列のY座標「19」が境界座標YLとして定義される。
次のステップS251にてK=0.8、L=0.9とすれば、K・n=24、L・n=27であるからYL<K・nとなり、境界座標YLが適正範囲にないと判断される。したがって、ステップS253で境界座標YLとK・nとの差に応じ た指数G2が設定される。
以上から明らかなように、図17の処理では単一のy列中に同一測光値BvがF%以上存在するか否かによってそのy列中に主要被写体と背景とが混在するか否かが判別され、混在する素子列yz0と混在しない素子列yz1との境界が主要被写体の上端と見做される。そして、主要被写体の上端が適正範囲にないときは、適正範囲からのずれ量に応じて指数G2が設定される。したがって、指数G2は、主要被写体位置の不適切な程度をよく示している。なお、人物の上半身等を撮影するときは主要被写体よりも下側で背景に対応する素子が100%近くを占めることはあり得ない。このため、ステップS249により主要被写体か否かの誤判断が防止される。
(3)水平エッジ不良指数G3の演算処理
図19〜図22により水平エッジ不良指数G3の演算処理(図11のステップ S205)を説明する。図21に示すように、撮影画面Pを上下に二分するエッジX3が同図に二点鎖線L1で示すように撮影画面Pの中央を横切り、あるいは二点鎖線L2で示すように撮影画面の水平方向から傾くと構図不良を引き起こす。 このような要素を構図不良の推定に反映させるべく、図19,図20の処理では、測光装置4の検出する測光値分布に基づいて撮影画面中の水平エッジX3を検出 し、その位置や傾きの不適切な程度を指数化する。なお、以下の説明では、測光装置4の素子PSのうちY座標を同じくする素子の列をx列と呼び、X軸方向左端から右側へi番目のx列をxi列と表現する。
図19に示すように、水平エッジ不良指数G3の演算では、まずステップS2 71でx1列およびxm列を走査してそれぞれの測光値分布を検出する。x1列は 撮影画面の水平方向左端の素子列であり、xm列は右端の素子列である。次のス テップS272では、同一測光値Bvの素子がT個以上連続するか否かをx1列、xm列について判断する。x1列、xm列の双方がステップS272の条件を満た すときはステップS273へ進み、上記の条件に該当する測光値Bvおよび素子の位置を記憶する。x1列、xm列のいずれか一方でもステップS272の条件を満たさないときはステップS284(図20)へ進む。
ステップS274では、x1列、xm列に共通する二種類の測光値Bv1、Bv2がステップS273で記憶されたか否かを判断する。記憶されていればステップS275へ進み、そうでなければステップS284へ進む。ステップS275では測光値Bv1の素子と測光値Bv2の素子とがx1列、xm列中で接しているか否かを判断する。接していればステップS276へ進み、そうでなければステップS284へ進む。ステップS276では、x1列における測光値Bv1,Bv2の 素子の接点のY座標をYa,Yb、xm列における測光値Bv1,Bv2の素子の 接点のY座標をYc,Ydとして定義する。続くステップS277では、x1列、xm列の測光値Bv1,Bv2の素子の上下関係を判別する判定値J1,Jmを下式 により演算する。
J1=Ya−Yb
Jm=Yc−Yd
次のステップS278では、判定値J1,Jmの正負符号が一致するか否かを判断する。一致していればステップS279へ進み、そうでなければステップS274へ進む。ステップS279では、Ya,Ybの小さい方をx1列における境 界座標Yx1、Yc,Ydの小さい方をxm列における境界座標Yxmとして定義す る。続くステップS280(図20)では、下式により撮影画面の左右端でのエッジのずれ量ΔYを演算し、その値が許容値H0以下か否かを判断する。
ΔY=|Yx1−Yxm|
ずれ量ΔYが許容値H0以下であればステップS281へ進み、下式により境 界座標Yx1(Yxmに代えてもよい)が不適切な範囲にあるか否かを判断する。
P・n≦Yx1≦Q・n
係数P,Qは水平エッジX3が撮影画面の中央部を横切るか否かを判別するた めのもので、P=0.4、Q=0.6程度が好適である。
ステップS281の条件が満たされるときはステップS282へ進み、指数G3を最大値に設定する。ステップS280が否定されたときはステップS283 へ進み、ずれ量ΔYに応じて指数G3を設定する。この場合、ずれ量ΔYが大き いほど指数G3も大きくする。その増加の程度は、ずれ量ΔYに比例して増加さ せ、あるいはずれ量ΔYに対して二次以上の増加関数で増加させてもよい。ステップS281が否定されたときはステップS284へ進む。ステップS284では指数G3=0に設定する。ステップS282,S283,S284の終了後は 図11に示す処理へ復帰する。
図22を参照して図19,図20の処理の具体例を説明する。図22(a)は水平エッジX3が撮影画面の中央を横切る構図、同図(b)は水平エッジX3が傾く構図を測光装置4の素子PSの配列と対応させて示すものである。素子PSの配列は図15に示す通りである。ステップS272での所定個数T=4とした。簡単のため、水平エッジX3よりも上側の領域、下側の領域では測光値が均一で あると見做した。実際の撮影画面では様々な測光値が検出されるが、水平線や地平線が存在する場合にはその上下で測光値に明確な差が表われる。したがって、図19,図20の処理に際して同一測光値Bvか否かを判断する許容幅を適当に設定し、あるいは測光装置4の測光値を適当な閾値で二値化すれば、撮影画面を図22のように見做すことができる。
図22(a)の撮影画面に図19,図20の処理を適用した場合、ステップS271〜S273により、x1列に関して素子PS(1,1)〜PS(1,10)が測光値Bv1の組として、素子PS(1,11)〜PS(1,20)が測光値 Bv2の組として記憶される。x30列に関しては、素子PS(30,1)〜PS (30,10)が測光値Bv1の組として、素子PS(30,11)〜PS(3 0,20)が測光値Bv2の組として記憶される。このようにx1列、x30列に共通する二種類の測光値Bv1,Bv2が記憶され、測光値Bv1の素子と測光値B v2の素子とがx1列,x30列でそれぞれ接しているから、ステップS274,275が肯定される。このため、ステップS276では、x1列の素子PS(1, 10)、PS(1,11)のY座標「10」,「11」がYa,Ybとして定義され、x30列の素子PS(30,10)、PS(30,11)のY座標「10」,「11」がYc,Ydとして定義される。これにより、ステップS277ではJ1=J30=−1となり、いずれも負の値であるからステップS278が肯定され、ステップS279でYx1=Ya=10、Yxm=Yc=10となる。
以上のYx1、Yxmに対して、ステップS280ではΔY=0となり、この値は許容値H0以内であるからステップS280が肯定される。ステップS281で は、P=0.4、Q=0.6とすれば、n=20よりP・n=8、Q・n=12であり、Yx1=10だから水平エッジG3が撮影画面の中央部を横切ることが判 明する。そして、ステップS282により指数G3が最大値に設定される。
図22(b)の撮影画面に対しては、ステップS271〜S273によりx1 列に関して素子PS(1,1)〜PS(1,10)が測光値Bv1の組として、 素子PS(1,11)〜PS(1,20)が測光値Bv2の組として記憶される。x30列に関しては、素子PS(30,1)〜PS(30,4)が測光値Bv1の 組として、素子PS(30,5)〜PS(30,20)が測光値Bv2の組とし て記憶される。この場合も、x1列、x30列に共通する二種類の測光値Bv1,Bv2が存在し、測光値Bv1,Bv2の素子の組がx1列,x30列でそれぞれ接するからステップS274,275が肯定され、ステップS276ではx1列のPS (1,10)、PS(1,11)のY座標「10」,「11」がYa,Ybとして定義され、x30列のPS(30,4)、PS(30,5)のY座標「4」,「5」がYc,Ydとして定義される。これにより、J1=J30=−1となりい ずれも負の値であるからステップS278が肯定され、ステップS279でYx1=Ya=10、Yxm=Yc=4となる。このようなYx1、Yxmに対して、ステップS280ではΔY=6となり、例えば許容値H0=3であればステップS28 0は否定される。このため、ステップS283でずれ量ΔYに応じた指数G3が 設定される。
以上から明らかなように、図19,図20の処理では撮影画面の水平方向両端のx1列,xm列に、これらの素子列を上下に二分するエッジが存在するか否かがステップS271〜ステップS275により判断され、そのようなエッジが存在するときには、x1列,xm列の測光値の上下関係によりx1列,xm列のエッジを同一の水平エッジX3と見做してよいか否かがステップS276〜ステップS2 78で判断される。同一の水平エッジX3と判断されたときはステップS279 でその両端のY座標がYx1、Yxmとして定義される。そして、水平エッジX3の 傾きがY座標Yx1、Yxmのずれ量ΔYとして演算され、ずれ量ΔYが許容値H0 を越えるときはずれが大きいほど指数G3が大きく設定される。水平エッジX3の傾きが許容範囲であっても、それが撮影画面の中央部を横切るときにはステップS281,ステップS282により指数G3が最大値に設定される。したがって、指数G3は、水平エッジX3の位置や傾きが構図不良に与える影響の大きさをよく示している。
以上説明したように、本実施例によれば、柱状物の傾き、主要被写体の位置、水平エッジの位置および傾きが構図不良条件に該当する程度が高くなるほど構図不良指数Gが大きくなり、図10に示すステップS26またはステップS27で構図不良指数Gが基準値p,q以上となってステップS25により警告が発せられる可能性が高まる。撮影画面内に存在するエッジの種類毎に固有の構図不良条件が設定され、それらとの対比でエッジ毎に指数G1〜G3が演算されるので、従来例よりも多彩かつ正確に構図不良を推定できる。
本実施例では、基準値p>qのため撮影倍率βが判定撮影倍率a以上のときに構図良好と判断される可能性が高くなる。これは、撮影倍率βが大きくなると主要被写体が大きくなって背景中のエッジが構図の良否に与える影響が減少するためである。β≧aのとき離散指数Eの演算を省略するのは、撮影倍率βが大きくなると撮影画面の周辺を注視する必要性が低下するため、離散指数Eの演算に要する時間を省略して無駄時間の発生を防止したためである。ただし、β≧aのときでも離散指数Eを演算し、その大小に応じて警告を与えるようにしてもよい。β<aの場合、第1実施例のように離散指数Eを演算するルートを撮影倍率βに応じて2以上に分割してもよい。反対にβ<aの場合でも離散指数Eの演算を省略してもよい。撮影モードに応じて構図不良条件(例えば水平エッジX3の傾き の許容範囲)を変更することにより、撮影モード毎により正確な構図良否の推定が可能となる。指数G1〜G3と基準値p,qとの関係は、指数G1〜G3の最大値よりも基準値p,qを小さく設定し、あるいは指数G1〜G3の最大値よりも基準値p,qを大きく設定してもよい。
上述した指数G1〜G3の演算は、1または2種類を選択的に実行してもよい。例えば撮影倍率βが大きいときはポートレート撮影の可能性が大きくて背景に考慮を払う必要性が薄れるのに対して、撮影倍率βが小さいときは背景の影響が大きいので、図10のステップS11が肯定されたときには主要被写体不良指数G2のみを演算し、ステップS11が否定されたときには水平エッジ不良指数G3のみを演算してもよい。撮影モードがポートレートモードのときに主要被写体不良指数G2を、風景モードのときに水平エッジ不良指数G3を、記念撮影モードのときに柱状物不良指数G1を演算するなど、撮影モードに応じて演算手順を使い分 けてもよい。
−第3実施例−
図23〜図27を参照して本発明の第3実施例を説明する。上述した第1実施例、第2実施例との共通部分には同一符号を付し、説明を省略する。
図23に示すように、本実施例では表示装置9にブレ警告装置9Bと構図修正指示表示装置9Cとが設けられる。CPU1は撮影に先立って後述する修正方向検出処理を実行し、測光装置4が検出する測光値の分布に基づいて構図の修正方向を検出する。その結果が構図修正指示表示装置9Cにより表示される。
ブレ警告装置9Bおよび構図修正指示表示装置9Cを図24に示す。図24の装置では、カメラのファインダ視野FSの左側および上側に表示器90,91が設けられる。表示器90は三角形状の方向指示灯90U,90Lと、これらの間に配置された円形の中心灯90Cとを備える。カメラを撮影画面の短辺方向(図の上下方向)に振って構図を修正すべきときは、修正方向に対応する側の方向指示灯90Uまたは方向指示灯90Lが点灯する。短辺方向へカメラを動かす必要がないときは中心灯90Cが点灯する。表示器91は三角形状の方向指示灯91R,91Lと、これらの間に配置された円形の中心灯91Cとを備える。カメラを撮影画面の長辺方向(図の左右方向)に振って構図を修正すべきときは、修正方向に対応する側の方向指示灯91Rまたは方向指示灯91Lが点灯する。撮影画面の長辺方向にカメラを動かす必要がないときは中心灯91Cが点灯する。ブレ警告を行なうときは、表示器90,91の全灯が点滅する。構図確認を催促するときは表示器90,91の全灯が点灯したままとなる。
図25は本実施例のCPU1による構図推定手順の一部を示すものである。図中のステップS11、ステップS22、ステップS23は図10中の同一ステップと共通し、図中のステップS17,18は図8中の同一ステップと共通するので説明を省略する。ステップS11よりも前段階では図4に示すステップS1〜ステップS10が実行される。
本実施例では、ステップS11で撮影倍率βが判定撮影倍率a以上と判断したとき、およびステップS23で離散指数Eが基準値h以上と判断したときステップS31へ進んで構図修正方向の検出処理を行う。この処理の詳細は後述する。ステップS32では、ステップS31で構図の修正方向が特定されたか否かを判断する。修正方向が特定されているときはステップS33へ進み、その方向への修正を表示器90または91で表示する。ステップS32で修正方向がないと判断したときはステップS34へ進み、構図良好表示を行う。
図26は構図修正方向検出処理の詳細を示すものである。この処理では、主要被写体の上端と撮影画面の上端との間隔を適正に保つために必要な修正方向を検出する。以下の説明において、撮影画面のX軸方向、Y軸方向や測光装置4の素子PSの配置に関する表現は第2実施例と共通である。
図示の処理では、まずステップS301において、測光装置4が検出する測光値の分布に基づいて、撮影画面内での主要被写体の上端のY座標YLを求める。 この処理は図17のステップS241〜ステップS250までと同じである。すなわち、ステップS301では図17のステップS250における境界座標YL を求める。座標YLを求めた後はステップS302へ進み、図17のステップS 251と同じく座標YLが適正範囲にあるか否か判断する。座標YLが適正範囲にないときはステップS303へ進み、座標YLが適正範囲の下限(K・n)未満 か否か判断する。下限(K・n)未満であればステップS304へ進み、修正方向を「下」とする。一方、座標YLが下限(K・n)未満でなければステップS 305へ進み、修正方向を「上」とする。ステップS302で座標YLが適正範 囲のときはステップS306へ進み、「修正方向なし」とする。ステップS304〜ステップS306の終了後は図25の処理に戻る。なお、ステップS301の座標YLの検出処理において、図17のステップS248,ステップS249 に対応する条件が否定された場合はステップS306に進む。
以上の処理によれば、主要被写体の上端位置が適正範囲よりも下側に外れているときに修正方向「下」が表示器90または91で表示され、反対に上側に外れているときは修正方向「上」が表示器90または91で表示される。例えば図27(a)の構図では、主要被写体X2が撮影画面Pの下側に偏っているので、修 正方向「下」と判断されて表示器90の表示灯90Lが点灯する。表示器91側は中心灯91Cが点灯する。表示器90の指示にしたがってカメラを下側へ振ると、撮影画面内で主要被写体X2が上側へ相対移動する。図27(b)に示すよ うに主要被写体X2が適正範囲に入った状態で構図修正方向の検出が繰り返され ると、修正方向なしと判断されて表示器90の中心灯90Cが点灯する。
本実施例のように構図の修正方向を指示する場合には、撮影者が構図不良の典型例を知らないときでも、カメラの表示にしたがうだけで構図が良好な写真を撮影できる。なお、表示器90,91のいずれを用いるかはカメラの姿勢により決定する。すなわち、カメラの横位置では表示器90を用いて上下の修正を指示し、縦位置では表示器91により上下の修正を指示する。
以上の例では主要被写体の位置に関する修正方向のみを検出したが、上述した第2実施例における指数G1,G3の演算を応用すれば図14に示す柱状物X1や 図21に示す水平エッジX3の傾きの修正方向も検出できる。それらの例を図2 8,図29により説明する。
図28は柱状物の修正方向検出手順を示すものである。この例では、まずステップS311で、測光装置4が検出する測光値の分布に基づいて、撮影画面内の柱状物の傾きを検出する。この処理は、図12,図13に示す柱状物不良指数G1の演算手順におけるステップS211〜ステップS223までの処理と同じで ある。すなわち、ステップS311では図13のステップS223におけるずれ量ΔXL,ΔXRを演算する。
ずれ量ΔXL,ΔXRが求められると、続くステップS312で両者の正負符号が一致するか否かを判断する。正負が一致していないと柱状物の左右の傾き方向が相違し、修正方向を特定できないからである。ステップS312で正負が一致すると判断したときはステップS313へ進み、ずれ量ΔXR(ΔXLに代えてもよい)が正の値か否か判断する。正の値であればステップS314へ進み、修正方向を時計方向とする。ずれ量ΔXRが負の値であれば修正方向を反時計方向と する。ステップS312で正負が一致していないときはステップS316へ進み、「修正方向なし」とする。ステップS311において、図12のステップS218,219に対応する条件が否定されたときもステップS316へ進む。
図16から明らかなように、柱状物X1が撮影画面の左側へ傾くときはXc< Xaのためにずれ量ΔXRが負の値となり、反対に撮影画面の右側へ傾くときは Xc>Xaでずれ量ΔXRが正の値となる。柱状物X1が左側に傾くときは撮影画面の中心部を軸としてカメラを反時計方向に回せば傾きが小さくなり、傾きが反対のときはカメラを時計方向に回せばよい。図28の処理では、ステップS313にてずれ量ΔXRが負のときは反時計方向に、正のときは時計方向に修正方向 を定めるので、柱状物X1の傾きを修正する方向を撮影者に対して正確に指示で きる。
図29は水平エッジの修正方向検出手順を示すものである。この例では、まずステップS321で、測光装置4が検出する測光値の分布に基づいて撮影画面内の水平エッジの位置を検出する。この処理は、図19に示す水平エッジ不良指数G3の演算手順におけるステップS271〜ステップS279までの処理と同じ である。すなわち、ステップS321では、図19のステップS279における水平エッジX3の左右端のY座標Yx1,Yxmを演算する。
続くステップS322では、図20のステップS280と同じく水平エッジX3の傾きに対応したずれ量ΔYが許容値H0以下か否かを判断する。許容値H0を 越えると判断したときはステップS323へ進み、水平エッジX3の左端のY座 標Yx1が、右端のY座標Yxmよりも小さいか否か判断する。小さければステップS324へ進み、修正方向を反時計方向とする。座標Yx1が座標Yxm未満でないときはステップS325へ進み、修正方向を時計方向とする。ステップS322で傾きが許容値H0以下のときはステップS326へ進み、修正方向なしとする。ステップS321において、図19のステップS272,S274,S275,S278に対応する条件が否定されたときもステップS326へ進む。
図22(b)に示すように水平エッジX3が右下がりに傾くときはYx1>Yxm となるためにステップS323が否定され、ステップS325で構図修正方向が時計方向となる。反対に水平エッジX3が左下がりに傾くときはYx1<Yxmのた めにステップS323が肯定され、ステップS324で構図修正方向が反時計方向となる。水平エッジX3が右下がりに傾くときはカメラを撮影画面の中心部を 軸として時計方向に回せば傾きが小さくなり、傾きが反対のときはカメラを反時計方向に回せばよい。したがって、図29の処理によれば水平エッジX3の傾き を修正する方向を撮影者に対して正確に指示できる。なお、ステップS322が肯定されたときに図20のステップS281を実行し、水平エッジX3が撮影画 面の中央を横切る場合にはその旨を別に警告してもよい。
上述した図28,図29の処理は、図26の処理に代え、あるいは図26の処理に追加して行うことができる。ただし、複数の処理を実行する場合、例えば柱状物X1に対応する修正方向が時計方向で水平エッジX3に対応する修正方向が反時計方向の場合等、各処理で検出した修正方向が相互に矛盾することがあり得る。このような場合には、例えば修正方向なしとするなどの対応が必要である。修正方向として回転方向を指示するためには、図30に示す表示器92,93を用いるとよい。
図30の例では、カメラのファインダ視野FSの左右に一対の表示器92,93が設けられる。表示器92,93は、撮影画面の短辺方向上側を向く矢印状の方向指示灯92U,93Uと、下側を向く矢印状の方向指示灯92L,93Lと、撮影画面の長辺方向外側を向く方向指示灯92SR、93SLを備える。これらの指示灯には、LEDなどカメラのファインダ内表示に用いられる周知の発光手段を用いてよい。
以上の表示器92,93によれば、方向指示灯92U,93Uの点灯で上側への修正を、方向指示灯92L,93Lの点灯で下側への修正を、方向指示灯92SRの点灯で右側への修正を、方向指示灯92SLの点灯で左側への修正を指示できる。また、方向指示灯92U,93Lの同時点灯で反時計方向への修正を、方向指示灯92L,93Uの同時点灯で時計方向への修正を指示できる。
例えば図31(a)の構図では、柱状物X1が撮影画面Pの左側へ傾くので方 向指示灯92Uと93Lとを同時に点灯させる。これらの指示にしたがってカメラを反時計方向へ回転させれば、同図(b)に示すように柱状物X1の傾きが修 正される。図32(a)の構図では水平エッジX3が撮影画面P内で右下がりに 傾くので、方向指示灯93Uと92Lとを同時に点灯させる。これらの指示にしたがってカメラを時計方向へ回転させれば、同図(b)に示すように水平エッジX3の傾きが修正される。
なお、構図修正の必要がないときは全ての指示灯を消灯する。ブレ警告を行うときは全ての指示灯を点滅させる。離散指数Eに基づく構図確認の催促を行うときは全ての指示灯を点灯させればよい。
−第4実施例−
図33および図34により本発明の第4実施例を説明する。なお、本実施例は、CPU1により上述した各実施例とは異なる構図推定処理を行うものである。したがって、以下では構図推定処理の特徴部分を中心に説明する。
図33は本実施例の構図推定処理手順を示すものである。図4に示す第1実施例と対比すると、ステップS41はステップS1に、ステップS42はステップS3に、ステップS43はステップS4に、ステップS44はステップS6に、ステップS45はステップS7に対応する。そして、ステップS45でブレ量が適正範囲にないと判断したときにはステップS52へ進み、手ブレ警告を行う。
ステップS45でブレ量が適正範囲と判断したときはステップS46へ進み、視線検出装置2が検出する視線に基づいて撮影者の注視点分布を求める。この処理は、図6のステップS101〜ステップS108までに相当する。すなわち、図3(c)に示す領域W毎の注視点存在時間t(i,j)を求めるものである。注視点分布を求めた後はステップS47へ進み、注視点存在時間t(i,j)が最も大きい領域W(i,j)を主要被写体の位置として特定する。例えば人物を主要被写体とする撮影では、人物の顔に注視点が集中するので、上記の処理により主要被写体位置をほぼ正確に特定できる。主要被写体が人物以外の場合でもそこに注視点が集中することは同じであり、上記の処理がそのまま適用できる。
主要被写体位置を定めた後は、ステップS48にて撮影画面内でのエッジ位置を検出する。この処理は、第2実施例で説明した柱状物X1の左右端の座標Xa,Xb,Xc,Xd(図16参照)や、水平エッジX3の左右端の座標Ya,Yb,Yc,Yd(図22参照)を求めるものである。エッジ位置を求めた後はステップS49へ進み、主要被写体位置とエッジ位置との相対関係が構図不良とされる典型例に該当しないか否かを判断する。例えば図34(a)に示すように主要被写体X2の顔部分に対して水平エッジX3が大きく離れているときは構図良好とする。反対に、図34(b)に示すように主要被写体X2の顔部分のすぐ近くを水 平エッジX3が横切るときは構図不良と判断する。また、図14に示す柱状物X1が主要被写体X2と重なるような場合も構図不良と判断する。
ステップS49にて構図不良と判断したときはステップS50へ進み、構図不良であることを撮影者に警告した上でステップS44へ戻る。一方、構図良好と判断したときはステップS51へ進み、構図良好である旨を表示する。このように、本実施例では撮影者の注視点の分布に基づいて主要被写体位置を特定し、その位置とエッジの位置との相対関係により構図の良否を推定するので、主要被写体が撮影画面の中央部から外れていても正確に構図不良の典型例を検出できる。
なお、図3(a)に示す撮影画面の分割領域Wの個数(u,vの値)によっては人物の顔部分に対応する領域Wが複数存在することがある。このため、人物の顔部分が領域Wの何個分に相当するかを予め算出し、注視点が集中する位置を中心とした一定範囲を人物の顔部分として定めるとよい。また、撮影倍率βに応じても主要被写体の大きさが変化するので、図4に示すステップS8〜ステップS10を追加して撮影倍率βを演算し、その値に応じて主要被写体と見做す範囲を変化させるとよい。
本実施例では上述した第2実施例の指数G1〜G3の演算手順を応用してエッジ位置を求めたが、本発明はこれに限るものではない。例えば、撮影画面内でコントラストが最も大きく変化するエッジを優先して検出することで水平線や地平線、あるいは主要被写体や柱状物と背景との境界のエッジを特定してもよい。測光装置4で検出した測光値分布に微分フィルタをかけてエッジ強調を行うなど、画像処理分野において周知のエッジ検出方法を用いてエッジの位置およびその種類を特定してもよい。
図35および図36は上述した各実施例で用いることができる警告表示の例を示すものである。図35(a)は、ファインダ視野FSの下側に設けたシャッタ速度や露出情報等の表示器100の表示色または輝度を変化させて警告する例、同図(b)はファインダ視野FSの表示色または輝度を変化させて警告する例、同図(c)はファインダ視野FSのコーナの外側にドット状の警告マーク101を点灯または点滅させて警告する例、同図(d)はファインダ視野FSのコーナの内側にドット状の警告マーク102を点灯または点滅させて警告する例、図36(a)はファインダ視野FSの外側に枠状の警告マーク103を点灯または点滅させて警告する例、同図(b)はファインダ視野FSの内側に枠状の警告マーク104を点灯または点滅させて警告する例、同図(c)はファインダ視野FS内に警告メッセージ105を点灯または点滅させて警告する例、同図(d)は表示器100内に警告メッセージ106を点灯または点滅させて警告する例である。これらの警告は、離散指数Eに基づく構図確認の催促、構図不良指数Gに基づく構図不良の警告、手ブレ警告など適宜使い分けてよい。
上述した各実施例において、撮影レンズの焦点距離に応じて構図不良の判定基準を変更してもよい。例えば広角レンズの場合には背景となる山の稜線や建造物の稜線が写し込まれる可能性が高く、かつレンズのパースペクティブの関係から斜めのエッジが写し込まれがちなので、柱状物や水平エッジの傾きに対する許容範囲を大きく設定する。反対に、望遠レンズの場合には背景が単調なことが多いので、エッジの傾きに対する許容範囲を小さく設定するとよい。
以上の各実施例では、撮影モードの設定機能を備えたカメラを説明したが、そのような機能を有しないカメラでは、最適と思われる判定撮影倍率aやエリア係数α、各種の構図不良条件を定めてCPU1に与えておく。第2実施例や第3実施例で説明した水平エッジX3の検出処理は、X軸方向とY軸方向とを入れ替え ることにより撮影画面を左右に二分するエッジにも適用できる。
以上の実施例において、測光装置4およびCPU1が輝度情報検出手段を、CPU1が構図良否推定手段、エッジ検出手段、修正方向判定手段、手ブレ状態判別手段を、視線検出装置2およびCPU1が注視点情報検出手段を、表示装置9が警告手段、表示手段および手ブレ警告手段をそれぞれ構成する。