以下、本発明の実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
図1は、本発明の第1の実施形態に係る情報処理装置の概略構成を示すブロック図である。
情報処理装置(以下、「PC」とする)500は、CPU501と、RAM502、ROM503と、記憶装置504と、入力装置505と、表示装置506と、通信I/F507とを備える。また、PC500は、外部から記憶媒体510を装填することができる。これらは、システムバス508を介して互いに接続されている。
ROM503は、PC500のブートプログラムやBIOS等を記憶する。記憶装置504は、ハードディスクドライブ等で構成され、OS(オペレーティングシステム)や後述する処理をCPU501に実行させるためのプログラム、後述する画像表示アプリケーション、データ等を記憶する。これらは、CPU501の制御により必要に応じてRAM502に読み出されて実行される。RAM502は、記憶装置504からロードされたプログラムやデータを一時的に記憶するためのワークエリアを備え、CPU501が各種処理を行うために使用される。
通信I/F507は、PC500にUSBケーブル511で接続されたデジタルカメラ509等の外部機器との通信を制御するインターフェースである。記憶媒体510は、PC500に着脱可能なSDカードやコンパクトフラッシュ(登録商標)等のメモリカードで構成される。入力装置505は、ポインティングデバイスやキーボード等で構成され、ユーザによる各種の指示をCPU501に入力する。表示装置506は、CRTや液晶ディスプレイ等で構成される。CPU501は、表示装置506の表示制御を行い、例えば、画像を表示するウィンドウやボタン、アイコン、メッセージ、メニューその他のユーザインターフェース情報が表示される。
PC500では、デジタルカメラで撮影された画像データを、デジタルカメラ509とUSBケーブル等を介して通信を行うことで、または記憶媒体510からRAM502に取り込む。PC500に取り込む画像データは、被写体の特徴部分(例えば、人の顔)を自動検出して自動フォーカスする機能を有するデジタルカメラ(以下、「第1形式のデジタルカメラ」と略す)または固定位置に配置されたフォーカスポイントにピントを合わせる機能を有するデジタルカメラ(以下、「第2形式のデジタルカメラ」と略す)で撮影された画像データである。これらの画像データには、デジタルカメラ側で撮影情報が付加されている。撮影情報は、図7(a)、図7(b)に示すように、所定の形式で画像データに付加された撮影日時や縮小画像(サムネイル画像)、フォーカス情報などである。第1形式のデジタルカメラで撮影された画像データのフォーマットを図7(a)に、第2形式のデジタルカメラで撮影された画像データのフォーマットを図7(b)に示す。このように、第1形式のデジタルカメラで画像データに付加されるフォーカス情報と、第2形式のデジタルカメラで付加されるフォーカス情報とは、その内容が若干異なる。
図7(a)において、第1形式のデジタルカメラで撮影された画像データ(ファイル名:IMG_0001.jpg)の撮影情報エリアには、フォーカス登録個数Z001と、フォーカス情報Z002が格納されている。フォーカス情報Z002は、座標情報として、各フォーカスエリアの位置(座標位置)、大きさ(幅と高さ)で構成される。画像データエリアには、オリジナルの画像が格納されている。
図7(b)において、第2形式のデジタルカメラで撮影された画像データ(ファイル名:IMG_0002.jpg)の撮影情報エリアには、固定位置フォーカス位置の個数Z100と、フォーカス情報Z101が格納されている。フォーカス情報Z101は、各フォーカスポイント(フォーカス位置)に関する座標位置(x,y)、大きさ(w,h)、ピント情報(ピントの一致/不一致)で構成される。画像データエリアには、オリジナルの画像が格納されている。
図1に戻り、画像データは、所定の圧縮形式、例えば、JPEG方式でデータ圧縮がなされているが、これに限定されるものではない。記憶装置504には、圧縮・伸長を行うソフトウェアが記憶されており、RAM502に取り込んだ撮影情報を含む画像データの圧縮や圧縮された画像データの伸長処理を行う。
PC500では、第1形式のデジタルカメラと第2形式のデジタルカメラで撮影された画像を取り込んで画像表示アプリケーションにより表示装置506に表示することができる。そして、画像データに付加されたフォーカス情報を利用し、表示された画面上で被写体のピントを確認することが可能である。
次に、PC500において、画像データに付加されたフォーカス情報を利用し、画像全体と、被写体のピントが合った位置周辺の拡大画像を表示する画像再生動作について説明する。
図2は、図1のPC500にて実行される画像再生動作処理の流れを示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラム(画像表示アプリケーション)に基づいて実行される。
まず、ステップS201において、CPU501は、画像再生モードが設定されているか否かを判定する。画像再生モードとは、フォーカス情報が付加された画像を所定の表示方法でPC500の表示装置506に表示させるモードをいう。画像再生モードの設定については、図24に示すモード選択処理において、画像表示アプリケーションにより表示されたメニュー画面からモードの選択を行うことで設定されるものとする。
ステップS201の判定の結果、画像再生モードが設定されている場合、CPU501は、記憶媒体510またはデジタルカメラ509から画像データを読み込む(ステップS202)。次に、CPU501は、フォーカス確認表示モードが設定されているか否かを判定する(ステップS203)。フォーカス確認表示モードとは、表示装置506に画像を表示する際に、画像データに付加されたフォーカス情報に基づいて、画像のフォーカスエリア(または疑似フォーカスエリア)を包含する矩形領域の画像を拡大表示させるモードをいう。フォーカス確認表示モードの設定については、画像表示アプリケーションにより表示されたメニュー画面からモードの選択を行うことで設定されるものとする。疑似フォーカスエリアは、第2形式のデジタルカメラで撮影された画像上で、固定位置に配置された複数のフォーカスポイントのうちピントがあったフォーカスポイントに基づいて求めた疑似的なフォーカスエリアである。
デジタルカメラで撮影された画像におけるフォーカスエリア、フォーカスポイント(フォーカス位置)、疑似フォーカスエリアについて図3(a)〜図3(d)を参照して説明する。
701,702は、第1形式のデジタルカメラで撮影された画像であり、703,704は、第2形式のデジタルカメラで撮影された画像である。画像703,704には、9点のフォーカスポイントが固定された位置に配置されている。
画像701には、1人の被写体から顔検出機能で自動検出されたフォーカスエリア711が存在し、画像702には、2人の被写体から顔検出機能で検出された複数のフォーカスエリア721,722が存在する。一方、画像703には、1人の被写体から固定位置に配置された9点のフォーカスポイント732のうちピントが一致した2つのフォーカスポイント734,735が存在する。画像704には、2人の被写体から固定位置に配置された9点のフォーカスポイント743のうち一致したフォーカスポイント744,745,746,747が存在する。
731,741,742は、被写体から顔検出機能で自動的に検出されたフォーカスエリア711,721,722のように、固定位置に配置されたフォーカスポイントのうちピントが一致したフォーカスポイントから求めた疑似フォーカスエリアである。
図2に戻り、ステップS203の判定の結果、フォーカス確認表示モードが設定されていない場合、CPU501は、通常の画像データの表示を行う(ステップS205)。一方、フォーカス確認表示モードが設定されている場合、CPU501は、図6に示すフォーカス確認表示処理を実行する(ステップS204)。次に、ステップS206では、CPU501は、再生が終了したか否かを判定し、終了した場合はリターンする一方、終了していない場合は、ステップS202へ戻る。
フォーカス確認表示処理により表示装置506に表示される画面の一例を図4(a)〜図4(d)に示す。
図4(a)〜図4(d)において、画面801,802,803,804には、画像701〜704の全体画像と、フォーカスエリアまたは疑似フォーカスエリアを包含する画像の拡大画像が表示されている。811は全体画像の縮小画像であり、画面801の左上部に配置されている。812は被写体である。813は縮小画像811を拡大したものである。815はフォーカスエリアであり、814はフォーカスエリア815を包含する画像の拡大画像の表示エリアである。
821は全体画像の縮小画像であり、画面802の左上部に配置されている。822は2人の被写体のうちの一方である。823は縮小画像821を拡大したものである。825はフォーカスエリアであり、824はフォーカスエリア825を包含する画像の拡大画像の表示エリアである。
本実施の形態では、複数のフォーカスエリアまたは疑似フォーカスエリアのうちの1つを包含する画像を切り出して拡大表示した場合、他のフォーカスエリア(例えば、フォーカスエリア826,疑似フォーカスエリア846)については、画像を切り出して拡大表示していないので、フォーカスエリアの枠の色を変えて表示される。また、エリア824のように画像を切り出している枠を表示しないことで、どのエリアの画像を切り出して拡大表示しているかを判断することができる。
図6は、図2のステップS204のフォーカス確認表示処理の流れを示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラムに基づいて実行される。
まず、ステップS301では、CPU501は、撮影情報が画像データに付加されているか否かを判断する。撮影情報が付加されている場合は、ステップS302へ進む。一方、撮影情報が付加されていない場合は、CPU501は、画像データのオリジナル画像から縮小画像を作成する(ステップS305)。つづいて、作成した縮小画像を表示装置506に表示させ(ステップS307)、リターンする。
ステップS302では、CPU501は、画像データに含まれた撮影情報の中に縮小画像(サムネイル画像)を有するか否かを判定する。縮小画像がない場合は、画像データのオリジナル画像から縮小画像を作成し(ステップS304)、ステップS306へ進む。一方、縮小画像がある場合は、画像データの撮影情報から縮小画像を取得し(ステップS303)、ステップS306へ進む。
ステップS306では、CPU501は、作成または取得した縮小画像を表示装置506に表示させる。次に、ステップS308において、CPU501は、画像データにフォーカス情報があるか否かを判定する。フォーカス情報がない場合は、リターンする一方、フォーカス情報がある場合は、ステップS309へ進む。
ステップS309では、CPU501は、画像データからフォーカス情報を取得する。次に、CPU501は、取得したフォーカス情報が固定位置フォーカスか自動フォーカスかを判定するためのフォーカス情報判定処理を行う(ステップS310)。本処理の詳細については後述する。
次に、CPU501は、ステップS310の判定の結果、固定位置フォーカスであった場合(ステップS311でYES)、固定位置フォーカス確認表示処理を行う(ステップS312)。本処理の詳細については後述する。一方、固定位置フォーカスでない場合すなわち自動フォーカスの場合は(ステップS311でNO)、CPU501は、自動フォーカス確認表示処理を行う(ステップS313)。本処理の詳細については後述する。
図8は、図6のステップS310のフォーカス情報判定処理の詳細を示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラムに基づいて実行される。
図8において、CPU501は、固定位置フォーカスである条件として、複数のフォーカス位置があり(ステップS401でYES)、そのフォーカス位置が均等に配置されており(ステップS402でYES)、すべてのフォーカスエリアが同じサイズで(ステップS403でYES)、ピント一致(ON/OFF)情報が存在(ステップS404でYES)した場合に、固定位置フォーカスであると判断する。
図9は、図6のステップS313の自動フォーカス確認表示処理の詳細を示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラムに基づいて実行される。
ステップS501において、CPU501は、画像データから取得したフォーカス情報が複数あるか否かを判定する。複数ある場合はステップS502へ進み、複数ない場合はステップS503へ進む。
ステップS502では、CPU501は、フォーカス情報に含まれる座標情報に基づいて、画像の最も左上に配置されているフォーカスエリアを選択状態にセットする。ここで、選択状態にセットするとは、フォーカス情報に含まれる縮小画像上において、例えば、図4(a)に示すフォーカスエリア815を包含する画像814を表示させることをいう。なお、フォーカスエリアを選択状態にセットする順番は、例えば、フォーカスエリアの画像上の配置位置に限らず、フォーカスエリアの面積を基準とする方法でもよい。
次に、ステップS504では、CPU501は、縮小画像上において、選択状態にセットされていない(非選択状態にある)他のフォーカスエリアを矩形表示させる。例えば、図4(b)に示すように、フォーカスエリア826が表示される。
次に、ステップS505では、CPU501は、縮小画像上において、選択状態にセットされたフォーカスエリアを図4(a)に示すように矩形表示させる。このとき、フォーカスエリアを囲む矩形枠を目立つように強調表示するとよい。
次に、ステップS506では、CPU501は、オリジナルの画像データから選択状態にセットされているフォーカスエリアを包含する画像を切り出して、表示装置506に画面801のように拡大表示させると共に、画面801の左上部に全体画像の縮小画像811を重ね合わせて表示させる。
ステップS508では、CPU501は、フォーカス情報が複数あるか否かを判定し、複数ない場合にはリターンする。一方、複数ある場合には、ユーザからフォーカスエリアの切り替えの指示がされたか否かを判定する(ステップS509)。切り替えの指示がなされた場合は、ステップS507へ進む。
ステップS507では、CPU501は、選択状態にセットされたフォーカスエリアの選択状態を解除し、左上の位置から順に次のフォーカスエリアに切り替えて、該フォーカスエリアを選択状態にセットする。なお、上述したように、フォーカスエリアの面積を基準とする方法では、面積の大きさを基準に切り替える。
選択状態にセットされたフォーカスエリアを包含する画像を拡大表示させる場合について説明したが、フォーカスエリアが複数ある場合には、図4(b)に示すように、選択対象となっているフォーカスエリアを包含する画像のみを拡大表示させる。
フォーカスエリアが複数存在する場合は、図5(a)に示すように、複数のフォーカスエリアに応じて複数の矩形領域を画像から切り出し、各矩形領域の画像を拡大して並列に表示してもよい。並列表示することで、複数の被写体のピントを同時に確認することができ、ユーザの操作負担が減って、効率的なピント確認作業が可能となる。なお、複数のフォーカスエリアのサイズがそれぞれ異なる場合には、一画面で並列に表示させるべく、各フォーカスエリアを包含する画像の拡大率を適時調整するとよい。
次に、複数のフォーカスエリアに応じて複数の画像を切り出し、各々を拡大して並列に表示するための自動フォーカス確認並列表示処理について説明する。
図10は、自動フォーカス確認並列表示処理を示すフローチャートである。なお、本処理は、図9の処理に代えて実行される処理である。
ステップS551において、CPU501は、画像データから取得したフォーカス情報が複数あるか否かを判定する。複数ある場合はステップS552へ進み、そうでない場合はステップS553へ進む。
ステップS552では、CPU501は、フォーカスエリアの個数分、拡大表示領域を分割して表示領域を求める。例えば、フォーカスエリアが2つある場合、図5(a)に示すように、拡大表示領域を二分割して、2つのフォーカスエリアに応じて変換された2つの拡大画像を表示するための表示領域を求める。フォーカスエリアが3つある場合には、拡大表示領域が三分割される。フォーカスエリアの個数は、撮影情報内のフォーカス登録個数Z001または固定位置フォーカス位置の個数Z100に格納された値から求められる。
ステップS553では、CPU501は、縮小画像のすべてのフォーカスエリアを強調表示する。例えば、図5(a)における縮小画像中のフォーカスエリアZ22,Z23を強調表示させる。
次に、ステップS554では、CPU501は、すべてのフォーカスエリアに応じて各画像を切り出して拡大表示領域に拡大表示させ、リターンする。ここでは、ステップS552で求めた拡大表示領域にフォーカスエリアを包含する画像の拡大画像を表示させるべく、拡大表示領域のサイズに合うように、各拡大画像の大きさや配置が調整される。
図11は、図6のステップS312の固定位置フォーカス確認表示処理の詳細を示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラムに基づいて実行される。
ステップS601において、CPU501は、フォーカスポイント(フォーカス位置)の枠を表示装置506に表示させる。
次に、ステップS602では、CPU501は、図7(b)のフォーカス情報Z101に含まれるフォーカスポイントに関する座標位置や大きさ、ピント情報を用いて、図12(a)に示すように、ピントが一致しているフォーカスポイント631,632を表示画面上で強調表示させる。
次に、ステップS603では、CPU501は、ピントが一致している複数のフォーカスポイントをすべて包含するように疑似フォーカスエリアを求める。このように疑似フォーカスエリアを求めることで、被写体の特徴部分を検出しながら自動フォーカスしたときのように、ピントが一致している領域の画像の確認を行うことができる。
次に、ステップS604では、CPU501は、ステップS603で算出された疑似フォーカスエリアが複数あるか否かを判定する。複数ある場合はステップS605へ進み、複数ない場合はステップS606へ進む。
ステップS605では、CPU501は、フォーカス情報に含まれる座標情報に基づいて、画像の最も左上に配置されている疑似フォーカスエリアを選択状態にセットする。ここで、選択状態にセットするとは、上述したように、フォーカス情報に含まれる縮小画像上において、例えば、図4(c)に示すように、疑似フォーカスエリア835を包含する画像834を表示させることをいう。なお、疑似フォーカスエリアを選択状態にセットする順番は、例えば、疑似フォーカスエリアの画像上の配置位置に限らず、疑似フォーカスエリアの面積を基準とする方法でもよい。
次に、ステップS607では、CPU501は、縮小画像上において、選択状態にセットされていない(非選択状態にある)他の疑似フォーカスエリアを矩形表示させる。例えば、図4(d)に示すように、疑似フォーカスエリア846が表示される。
次に、ステップS608では、CPU501は、縮小画像上において、選択状態にセットされた疑似フォーカスエリアを図4(c)に示すように矩形表示させる。このとき、疑似フォーカスエリアを囲む矩形枠を目立つように強調表示するとよい。
次に、ステップS609では、CPU501は、オリジナルの画像データから選択状態にセットされている疑似フォーカスエリアを包含する画像を切り出して、表示装置506に画面803のように拡大表示させると共に、画面803の左上部に全体画像の縮小画像831を重ね合わせて表示させる。
ステップS611では、CPU501は、フォーカス情報が複数あるか否かを判定し、複数ない場合にはリターンする。一方、複数ある場合には、ユーザから疑似フォーカスエリアの切り替えの指示がされたか否かを判定する(ステップS612)。切り替えの指示がなされた場合は、ステップS610へ進む。
ステップS610では、CPU501は、選択状態にセットされた疑似フォーカスエリアの選択状態を解除し、左上の位置から順に次の疑似フォーカスエリアに切り替えて、該疑似フォーカスエリアを選択状態にセットする。なお、上述したように、疑似フォーカスエリアの面積を基準とする方法では、面積の大きさを基準に切り替える。
選択状態にセットされた疑似フォーカスエリアを包含する画像を拡大表示させる場合について説明したが、疑似フォーカスエリアが複数ある場合には、図4(d)に示すように、選択対象となっている疑似フォーカスエリアを包含する画像のみを拡大表示させる。
疑似フォーカスエリアが複数ある場合には、図5(b)に示すように、複数の疑似フォーカスエリアに応じて複数の画像を切り出し、各々を拡大して並列に表示してもよい。並列表示することで、複数の被写体のピントを同時に確認することができ、ユーザの操作負担が減って、効率的なピント確認作業が可能となる。なお、複数の疑似フォーカスエリアのサイズがそれぞれ異なる場合には、一画面で並列に表示させるべく、各疑似フォーカスエリアを包含する画像の拡大率を適時調整するとよい。
次に、複数の疑似フォーカスエリアに応じて複数の画像を切り出し、各々を拡大して並列に表示するための固定位置フォーカス確認並列表示処理について説明する。
図13は、固定位置フォーカス確認並列表示処理を示すフローチャートである。なお、本処理は、図11の処理に代えて実行される処理である。
ステップS651において、CPU501は、フォーカスポイント(フォーカス位置)の枠を表示装置506に表示させる。
次に、ステップS652では、CPU501は、図7(b)のフォーカス情報Z101に含まれるフォーカスポイントに関する座標位置や大きさ、ピント情報を用いて、図12(b)に示すように、ピントが一致しているフォーカスポイント641,642,643,644を強調表示させる。
次に、ステップS653では、CPU501は、ピントが一致している複数のフォーカスポイントをすべて包含するように疑似フォーカスエリアを求める。このように疑似フォーカスエリアを求めることで、被写体の特徴部分を検出しながら自動フォーカスしたときのように、ピントが一致している領域の画像の確認を行うことができる。
次に、ステップS654では、CPU501は、ステップS653で算出された疑似フォーカスエリアが複数あるか否かを判定する。複数ある場合はステップS655へ進み、複数ない場合はステップS656へ進む。
ステップS655では、CPU501は、フォーカスエリアの個数分、拡大表示領域を分割して表示領域を求める。例えば、疑似フォーカスエリアが2つある場合、図5(b)に示すように、拡大表示領域を二分割して、2つの疑似フォーカスエリアに応じて変換された2つの拡大画像を表示するための表示領域を求める。疑似フォーカスエリアが3つある場合には、拡大表示領域が三分割される。フォーカスエリアの個数は、撮影情報内のフォーカス登録個数Z001または固定位置フォーカス位置の個数Z100に格納された値から求められる。拡大表示領域は、例えば、図17(a)〜図17(d)に示すB13,B23,B33,B43である。拡大表示領域の求め方については後述する。
ステップS656では、CPU501は、縮小画像のすべての疑似フォーカスエリアを強調表示する。例えば、図5(b)における縮小画像中の疑似フォーカスエリアZ42,Z43を強調表示させる。
次に、ステップS657では、CPU501は、すべての疑似フォーカスエリアに応じて各画像を切り出して拡大表示領域に拡大表示させ、リターンする。ここでは、ステップS655で求めた拡大表示領域に疑似フォーカスエリアを包含する画像の拡大画像を表示させるべく、拡大表示領域のサイズに合うように、各拡大画像の大きさや配置が調整される。
図14は、図11のステップS603の疑似フォーカスエリア算出処理の詳細を示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラムに基づいて実行される。
ステップS701において、CPU501は、フォーカス情報に含まれるフォーカスポイントの内、ピントが一致する箇所があるか否かを判定する。具体的には、フォーカス情報Z101内のピント情報からピントが一致するフォーカス位置があるかを判定する。具体的には、CPU501は、図7(b)に示すフォーカス情報Z101に格納されるフォーカスポイント毎のピント情報(ピントの一致/不一致)を用いることでピントが一致する箇所があるか否かを判定している。例えば、図15(a)に示すように、画像901では、フォーカスポイント911の内、ピントが一致する箇所が1つもない。一方、図15(b)に示すように、画像902では、フォーカスポイント921のすべてでピントが一致している。
画像901を画像再生モードにより拡大表示した場合は、図16(a)に示す画面1001となり、画像902を画像再生モードにより拡大表示した場合は、図16(b)に示す画面1002となる。画面1001,1002において、A11,A21は縮小画像、A12,A22は拡大画像、A13,A23は縮小画像A11,A21を拡大したものである。
画面1001,1002は、いずれも固定位置に配置された自動フォーカスの中心部A15,A25の周辺画像A14,A24が切り出されて拡大表示されている。この場合、固定位置フォーカスから疑似フォーカスエリアを求める際に表示される図3(c)に示す画像703や図3(d)に示す画像704等が表示されない。
図14に戻り、ステップS702では、CPU501は、すべてのフォーカスポイントでピントが一致しているか否かを判定する。すべてのフォーカスポイントでピントが一致している場合は、ステップS704へ進み、そうでない場合は、ステップS703へ進む。
ステップS703では、CPU501は、画像の左上部を原点とし、左上に位置するフォーカスポイントから順番にピントが合っているフォーカスポイントを探し出す。ステップS705では、CPU501は、ピントが合っているフォーカスポイントがあるか否かを判定し、ピントが合っているフォーカスポイントがある場合は、見つかったフォーカスポイントに隣接したフォーカスポイントでピントが一致しているフォーカスポイントを順次探す(ステップS706,S707)。具体的には、図23(a)または図23(b)に示すように、ピントが合ったG08、G32から隣接するフォーカスポイントを探す。G01〜G06,G21〜G26はフォーカスポイント、G07,G27は検索方向を示す。ピントが合ったG08、G32から隣接するフォーカスポイントを探すエリアは、上がG09、G28、下がG12、G31、左がG11、G29、右がG10、G30となるように、ピントが合ったフォーカスエリアから最も近い位置のフォーカスエリアを対象とする。
隣接したフォーカスポイントで一致するものがなくなった場合、CPU501は、ステップS703において見つかったフォーカスポイント及び隣接するピントが合ったフォーカスポイントをグループとして、疑似フォーカスエリアを求める(ステップS708)。具体的には、図17〜図22に示す方法で疑似フォーカスエリアを求める。図17(a)、図17(b)はカメラを横位置で撮影したとき、図17(c)、図17(d)はカメラを縦位置で撮影したときを示す。
擬似フォーカスエリアが縦方向のとき、図17(a)のB12、図17(c)のB32のように、擬似フォーカスエリアが縦方向に表示され、拡大表示する領域は、幅がB14、B34、高さがB15、B35で示すように左上のB11、B31の全体画像が重ならないように縦方向の画像ができる限り拡大できる表示エリアを求める。
また、擬似フォーカスエリアが横方向のとき、図17(b)のB22、図17(d)のB42のように、擬似フォーカスエリアが横方向に表示され、拡大表示する領域は、幅がB24、B44、高さがB25、B45で示すように左上のB21、B41の全体画像が重ならないように横方向の画像ができる限り拡大できる表示エリアを求める。
図18は、図17のB11、B21、B31、B41の縮小された全体画像と擬似フォーカスエリアを拡大した図である。図19はカメラが横位置で撮影されたときの擬似フォーカスエリアを求める方法を示したものであり、図20はカメラが縦位置で撮影されたときの擬似フォーカスエリアを求める方法を示したものである。
隣接するフォーカスエリアでピントが合っているフォーカスエリアが図19(a)ではD17とD18、図20(a)ではD37とD38のように、縦方向のとき、図23で示す隣接するフォーカスエリアの縦方向の半分の距離をB15,D16のm、D35、D36のnを求め、D13,D33の高さを求める。
図19(a)、図20(a)で縦方向の擬似フォーカスエリアの高さが決定すると、全体の画像サイズの縦横比から横サイズを求めることで、擬似フォーカスエリアの領域が求まる。
図19(b)、図20(b)は隣接するフォーカスエリアでピントが合っているフォーカスエリアが、図19(b)ではD29とD28、図20(b)ではD48とD49のように、横方向のとき、図23で示す隣接するフォーカスエリアの横方向の半分の距離をD24,D25のn、D43,D44のnを求め、D26、D46の幅を求める。
図19(b)、図20(b)で横方向の擬似フォーカスエリアの幅が決定すると、全体の画像サイズの縦横比から高さのサイズを求めることで、擬似フォーカスエリアの領域が求まる。
図21と図22は、ピントが1箇所のみ合った場合、または図15(a)ようにピントが1つも合っていないとき、図15(b)のように全てのフォーカスエリアのピントが合っているときに中心に配置された1つのフォーカスエリアを基準にしたときの擬似フォーカスエリアの求め方を示したものである。
図21(a)はカメラが横位置で撮影されたとき、ピントが合ったF16を基準として、隣接するフォーカスエリアの横サイズの半分のサイズを求め、幅を確定した後で、全体画像の縦横比から高さを求める。逆に、図21(b)はカメラが立て位置で撮影されたとき、ピントが合ったF23を基準として、隣接するフォーカスエリアの縦サイズの半分のサイズを求め、高さを確定した後で、全体画像の縦横比から幅を求める。
ステップS709では、ステップS703で画像の左上を原点として順次探される、ピントが合っているフォーカスポイントをすべて確認したか否かを判定する。すべて確認してない場合は、ステップS705へ戻り、疑似フォーカスエリアを求めていく。このような処理をすることで、一又は複数の疑似フォーカスエリアが求まる。
なお、隣接するフォーカスポイントの基準は、適時変更することが可能である。本実施形態では、図18(c)に示すように、ピントが合っているC32、C33、C34、C35によって1つの擬似フォーカスエリアができる例を挙げている。しかし、例えば、C32とC35はピントが合っているが、C33とC34はピントが合っていない場合において、ピントが合っていないC33とC34が間に存在することになるが、隣接するものとして取り扱うことも可能である。これは、C33とC34が、C32とC35の間を遮断していないことによる。この場合、擬似フォーカスエリアは1つできることになる。一方、C32とC35は、隣接しないとして取り扱うことも可能である。この場合、疑似フォーカスエリアは2つできることになる。
また、本実施の形態では、図14に示すように、ピントが合っているフォーカスポイントを見つけ出し、見つけ出したフォーカスポイントから疑似フォーカスエリアを算出しているが、疑似フォーカスエリアを求める方法はこれに限られない。例えば、図30に示すように、ピントが合うフォーカスポイントのすべての組み合わせパターンに対応する疑似フォーカスエリアを予め準備しておき、パターンマッチングを行って疑似フォーカスエリアを求める方法もある。例えば、Aのフォーカスエリアのみピントが合っていた場合、パターンリストNo.1のフォーカスエリア情報が擬似フォーカスエリアとして求められる。
本実施の形態では、9点のフォーカスポイントを例示したが、9点のフォーカスポイントすべての組み合わせパターンに対応する疑似フォーカスエリアを予め準備しておく。N点フォーカスポイントの場合は、N点のフォーカスポイントすべての組み合わせパターンに対応する疑似フォーカスエリアを予め準備しておく。このようにパターンマッチング方式を採用することで、毎回疑似フォーカスエリアを算出する必要がなくなり、疑似パターンエリアを高速に求めることが可能となる。
図17(a)は、デジタルカメラを横にして撮影された画像において、ピントが一致した複数のフォーカスポイントが縦方向に並んでいたときの疑似フォーカスエリアと疑似フォーカスエリアに応じて切り出して拡大した画像を表示するエリアを示す図である。
図17(b)は、デジタルカメラを横にして撮影された画像において、ピントが一致した複数のフォーカスポイントが横方向に並んでいたときの疑似フォーカスエリアと表示エリアと疑似フォーカスエリアに応じて切り出して拡大した画像を表示するエリアを示す図である。
図17(c)は、デジタルカメラを縦にして撮影された画像において、ピントが一致した複数のフォーカスポイントが縦方向に並んでいたときの疑似フォーカスエリアと疑似フォーカスエリアに応じて切り出して拡大した画像を表示するエリアを示す図である。
図17(d)は、デジタルカメラを縦にして撮影された画像において、ピントが一致した複数のフォーカスポイントが横方向に並んでいたときの疑似フォーカスエリアと表示エリアと疑似フォーカスエリアに応じて切り出して拡大した画像を表示するエリアを示す図である。
図18は、図17(a)〜図17(d)に示す縮小画像B11,B21,B31,B41の各左上部に配置された全体画像の拡大図である。
図19(a)は、第2形式のデジタルカメラを横にして撮影し、ピントが一致した2つのフォーカスポイントD17,D18が縦方向に並んでいたときの疑似フォーカスエリアの算出方法を示す概略図である。縦位置に配置された2つのフォーカスポイント間の距離から中間位置D15,D16を求め、縦軸の長さD12を求めて、画像サイズの縦横比から横軸D14の長さを求めている。なお、カメラを横位置で撮影した場合に疑似フォーカスエリアが縦方向の場合には、画像サイズの縦横比を逆にする。また、カメラを縦位置で撮影した場合には、疑似フォーカスエリアが横方向の場合にも画像サイズの縦横比を逆にして求める。
図19(b)は、第2形式のデジタルカメラを横にして撮影し、ピントが一致した2つのフォーカスポイントD29,D28が略横方向に並んでいたときの疑似フォーカスエリアの算出方法を示す概略図である。横位置に配置された2つのフォーカスポイント間の距離から中間位置D24,D25を求め、横軸の長さD23を求めて、画像サイズの縦横比から縦軸D22の長さを求めている。
図20(a)は、第2形式のデジタルカメラを縦にして撮影し、ピントが一致した2つのフォーカスポイントD37,D38が縦方向に並んでいたときの疑似フォーカスエリアの算出方法を示す概略図である。
図20(b)は、第2形式のデジタルカメラを縦にして撮影し、ピントが一致した2つのフォーカスポイントD48,D49が横方向に並んでいたときの疑似フォーカスエリアの算出方法を示す概略図である。
図21(a)は、第2形式のデジタルカメラを横にして撮影し、ピントが一致した箇所が1つだけのときの疑似フォーカスエリアと切り出した画像を表示するエリアを示す図である。
図21(a)において、第2形式のデジタルカメラを横にして撮影した画像の場合、全体画像のE11、フォーカスエリアE12、画像の一部を切り出して表示するE14はすべて横長になる。
図21(b)は、第2形式のデジタルカメラを横にして撮影し、ピントが一致した箇所が1つだけのときの疑似フォーカスエリアと切り出した画像を表示するエリアを示す図である。
図21(b)において、第2形式のデジタルカメラを縦にして撮影した画像の場合、全体画像のE21、フォーカスエリアE22、画像の一部を切り出して表示するE24はすべて縦長となる。
図22(a)は、第2形式のデジタルカメラを横にして撮影された画像において、ピントが一致した箇所が1つだけのときの疑似フォーカスエリアの算出方法を示す概略図である。
図22(a)において、第2形式のデジタルカメラを横にして撮影した画像において、隣り合うフォーカス位置の横幅からn(F14)の長さを求めて横幅(F18)のサイズを決定し、画像サイズの縦横比から縦軸の長さを求めている。
図22(b)は、第2形式のデジタルカメラを縦にして撮影された画像において、ピントが一致した箇所が1つだけのときの疑似フォーカスエリアの算出方法を示す概略図である。
図22(b)において、第2形式のデジタルカメラを縦にして撮影した画像において、隣り合うフォーカス位置の縦幅からm(F25)の長さを求めて高さ(F22)のサイズを決定し、画像サイズの縦横比から横軸の長さを求めている。
図23(a)は、第2形式のデジタルカメラを横にして撮影された画像において、ピントが一致しているポイントから隣接するフォーカス位置を探す方法を説明する図である。
図23(a)において、デジタルカメラを横にして撮影した場合、ピントが一致しているG08を基準に隣接するフォーカス位置を求めるとき、ピント一致箇所G08から縦・横に最も近い位置に配置されているフォーカス位置を求める。
図23(b)は、第2形式のデジタルカメラを縦にして撮影された画像において、ピントが一致しているポイントから隣接するフォーカス位置を探す方法を説明する図である。
図23(b)において、同様に、ピント一致箇所G32を基準に隣接するフォーカス位置を求めるとき、ピント一致箇所G32から縦・横に最も近い位置に配置されているフォーカス位置を求める。
このように、デジタルカメラで撮影された画像データの被写体の特徴部分を自動的に検出して自動フォーカスした情報、または固定位置に自動フォーカスが配置された情報を利用することで撮影前後に効果的に被写体のピントを確認することが可能になる。
図24は、モード選択処理を示すフローチャートである。
図24において、CPU501は、画像再生モード、画像スクロールモード、画像拡大・縮小表示モードのいずれが選択されたかを判定する(ステップS2401)。この判定に応じて、上述した画像再生処理(ステップS2402)、画像スクロール処理(ステップS2403)、画像拡大・縮小表示処理(ステップS2404)を行う。
図25は、図24のステップS2403の画像スクロール処理の詳細を示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラムに基づいて実行される。なお、本処理は、上述した動作によりフォーカスエリアを表示装置506に拡大表示した後に実行される処理である。
ステップS801において、CPU501は、画像スクロールモードとなっているか否かを判定する。スクロールモードとなっている場合は、ステップS802へ進む。
ステップS802では、CPU501は、ユーザからの操作(移動指示)に従って、画像上の拡大表示されている画像(最初は、フォーカスエリアが表示される領域)を移動し、移動後の領域を拡大表示させる。ユーザは、PC500に接続されたキーボードの矢印キーによる操作またはPC500に接続されたマウスにより、画像を切り出して表示している領域をドラッグすることにより、画像をスクロールすることができる。なお、後述する第2の実施形態では、デジタルカメラの操作部による操作により画像をスクロールすることができる。
次に、ステップS803では、CPU501は、ステップS802での移動に従って、縮小画像におけるフォーカスエリアを含む矩形領域を移動させる。
このように、フォーカスエリアを包含する画像を拡大表示させた後に、ユーザによるスクロール操作を可能とさせることにより、ユーザは、少ない操作手順でフォーカスエリアの近辺の拡大画像を確認することが可能となる。
図26は、図24のステップS2404の画像拡大・縮小表示処理の詳細を示すフローチャートである。本処理は、CPU501が記憶装置504等から読み出したプログラムに基づいて実行される。なお、本処理は、上述した動作によりフォーカスエリアを表示装置506に拡大表示した後、または図25に示した処理後に実行される処理である。
ステップS901において、CPU501は、拡大・縮小表示モードであるか否かを判定する。拡大・縮小表示モードである場合は、ステップS902へ進む。
ステップS902では、CPU501は、ユーザにより拡大キーが押下されたか否かを判定する。押下された場合は、拡大表示している領域を更に拡大表示させステップS905へ進む。
ステップS903では、CPU501は、ユーザにより縮小キーが押下されたか否かを判定する。押下された場合は、拡大表示している領域を縮小表示(ステップS904)させ、縮小画像におけるプレビュー枠を拡大もしくは縮小させる。
上記第1の実施形態によれば、固定位置に配置されたフォーカスポイントにピントを合わせる機能を有する撮像装置により撮影された画像および被写体の特徴部分を自動検出して自動フォーカスする機能を有する撮影装置で撮影された画像のいずれであってもピントが一致した部分の画像の確認を容易に行うことができる。
[第2の実施の形態]
上記第1の実施形態では、本発明を情報処理装置であるPC500に適用した実施形態について説明したが、本第2の実施形態では、本発明を撮像装置であるデジタルカメラに適用した実施形態について説明する。本第2の実施形態では、被写体の特徴部分を自動的に検出して自動フォーカスした情報、または固定位置に自動フォーカスが配置された情報を記録するデジタルカメラにおいて、フォーカス情報を利用することで撮影前後に効果的に被写体のピントを確認することが可能となる。
図27は、本発明の第2の実施形態に係る撮像装置の一例としてデジタルカメラの主要な機能構成を示すブロック図である。
撮影レンズ10は、その焦点距離を連続的に変えるためのズームレンズと、ピントを調整するフォーカスレンズとから構成されている。これらのレンズは、ズーム制御部44、測距制御部42により駆動される。撮影レンズ10は、撮像素子14の撮像面上に被写体を結像する。撮像素子14は、撮像面上に結像された被写体像の光強度に応じた電気信号を出力する光電変換撮像素子であり、CCD型やMOS型の個体撮像素子が用いられる。
絞り12は、露光制御部40により稼働される。撮像素子14からのアナログ映像信号は、A/D変換器16に入力され、アナログ信号からデジタル信号に変換される。A/D変換されたデジタル信号は、ガンマ補正、ホワイトバランス補正などの種々の画像処理が画像処理部20で施される。画像表示メモリ24は、撮像素子14で撮像された複数フレーム分のデータを記憶することができるメモリである。画像処理された画像データは、画像表示メモリ24に一時記憶される。
システム制御部112は、露光制御部40やカメラ姿勢検知部106等と接続され、カメラが動作する際のシーケンス制御を行う。システム制御部112には、カメラの電源をオン/オフする電源スイッチ72、レリーズに連動してオン/オフするシャッタースイッチ62及び全押しスイッチ64、表示部54に表示されるカメラを撮影する際の各種メニュー内容を選択するための操作部70が設けられている。被写体輝度が低い場合には、フラッシュ48を発光させる。
画像表示メモリ24に記憶された画像データは、画像処理部20で変換された画像データの他に被写体の顔などの特徴位置を求めるフォーカス情報または固定位置に配置されたピント確認位置とピントが一致した場所の情報やカメラ姿勢検知部106の情報などの撮影情報も一緒に記憶される。画像表示メモリ24に記憶されたデータは、メモリカード等の記憶媒体200,210に記録される。画像データを記憶媒体200,210に記録する際には、一般的に所定の圧縮形式、例えばJPEG方式でデータ圧縮が行われる。圧縮伸長部32は、画像データや撮影情報を記憶媒体200,210に記録する際のデータ圧縮、及び記憶媒体200,210から圧縮された画像データの伸長処理を行う。
不揮発性メモリ56は記憶されたデータ等を電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM等が用いられる。メモリ52はシステム制御回路50の動作用の定数、変数、プログラム等を記憶するメモリである。通信部110は、通信機能を有する。アンテナ(有線通信の場合はコネクタ)112は、通信部110によりデジタルカメラ100を、パケット網、ネットワーク、インターネットを介して他の機器と接続する。コネクタ82,84は、電源制御部80と電源86とを接続する接続部である。電源86は、アルカリ電池やリチウム電池等の一次電池、NiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等からなる。
画像表示メモリ24に書き込まれた表示用の画像データはD/A変換回路26を介して画像表示部28により表示される。画像データを画像表示部28に逐次表示することで、電子ファインダ機能を実現することが可能である。光学ファインダ104は、画像表示部28による電子ファインダ機能を使用することなしに、光学ファインダのみを用いて撮影を行うことが可能である。
タイミング発生回路18は、メモリ制御部22及びシステム制御部112により制御される。メモリ30は撮影した静止画像や動画像を格納するためのメモリである。バリア制御部46は保護部102の動作を制御する。モードダイアルスイッチ60は、電源オフ、自動撮影モード、撮影モード、パノラマ撮影モード、動画撮影モード、再生モード、マルチ画面再生・消去モード、PC接続モード等の各機能モードを切り替え設定することができる。再生モードスイッチ66は、上記実施の形態で説明した画像再生処理を実行させるためのモードスイッチである。姿勢モードスイッチ68は、カメラを縦位置で撮影しているか横位置で撮影しているかを自動的に判断するスイッチである。
記憶媒体200は、半導体メモリや磁気ディスク等から構成される記録部202と、デジタルカメラ100との間のインターフェースであるI/F204と、デジタルカメラ100と接続を行うコネクタ206とを備える。記憶媒体210は、半導体メモリや磁気ディスク等から構成される記録部212と、デジタルカメラ100との間のインターフェースであるI/F214と、デジタルカメラ100と接続を行うコネクタ216とを備える。I/F90,94はメモリカードやハードディスク等の記憶媒体200,210とシステムバスとを接続するインターフェースである。コネクタ92,96は、メモリカードやハードディスク等の記憶媒体200,210とI/F90,94とを接続する接続部である。記憶媒体着脱検知手段98は、コネクタ92,96に記憶媒体200,210が装着されているか否かを検知するセンサである。
次に、デジタルカメラ100において、画像データに付加されたフォーカス情報を利用し、画像全体と、被写体のピントが合った位置周辺の拡大画像を表示する画像再生動作について説明する。
図28は、図27のデジタルカメラ100にて実行される画像再生動作処理の流れを示すフローチャートである。本処理は、システム制御部112が不揮発性メモリ56等から読み出したプログラムに基づいて実行される。
まず、ステップS101において、システム制御部112は、画像再生モードが設定されているか否かを判定する。本実施形態における画像再生モードは、撮影前後の画像を上記第1の実施形態で説明した表示方法でデジタルカメラ100の画像表示部28に表示させるモードである。画像再生モードの設定については、図24に示すモード選択処理において、デジタルカメラ100の操作部70の操作により設定されるものとする。
ステップS101の判定の結果、画像再生モードが設定されている場合、システム制御部112は、撮影前か否かを判定する(ステップS102)。撮影前であるときは(ステップS102でYES)、システム制御部112は、内部メモリである画像表示メモリ24から画像データを読み込む。一方、撮影後のときは(ステップS102でNO)、記憶媒体200,201等から画像データを読み込む(ステップS104)。
次に、システム制御部112は、フォーカス確認表示モードが設定されているか否かを判定する(ステップS105)。フォーカス確認表示モードは、画像表示部28に画像を表示する際に、画像データに付加されるフォーカス情報に基づいて、上記第1の実施形態と同様に、画像のフォーカスエリア(または疑似フォーカスエリア)を包含する矩形領域の画像を拡大表示させるモードである。例えば、図4(a)〜図4(d)に示す画面801〜804を画像表示部28に表示させる。フォーカス確認表示モードの設定については、操作部70の操作により設定されるものとする。疑似フォーカスエリアは、上記第1の実施形態と同様に、固定位置に配置された複数のフォーカスポイントのうちピントがあったフォーカスポイントに基づいて求めた疑似的なフォーカスエリアである。
ステップS105の判定の結果、フォーカス確認表示モードが設定されていない場合、システム制御部112は、通常の画像データの表示を行う(ステップS107)。一方、フォーカス確認表示モードが設定されている場合、システム制御部112は、図29に示すフォーカス確認表示処理を実行する(ステップS106)。次に、ステップS108では、システム制御部112は、再生が終了したか否かを判定し、終了した場合はリターンする一方、終了していない場合は、ステップS102へ戻る。
フォーカス確認表示処理により、図4(a)〜図4(d)に示すように、画面801,802,803,804には、図3(a)〜図3(d)に示した画像701〜704の全体画像と、フォーカスエリアまたは疑似フォーカスエリアを包含する画像の拡大画像が画像表示部28に表示される。
図29は、図28のステップS106のフォーカス確認表示処理の流れを示すフローチャートである。本処理は、システム制御部112が不揮発性メモリ56等から読み出したプログラムに基づいて実行される。また、本処理は、図2の処理の主体となるCPU501がシステム制御部112に変更されたものであって、同じ処理内容については同じ番号を付してその説明は省略する。
本実施形態では、第1形式のデジタルカメラまたは第2形式のデジタルカメラのいずれか一方でフォーカス確認表示処理が実行されることから、PC500とは異なり、フォーカス情報を判定する必要がない。そこで、ステップS309でシステム制御部112がフォーカス情報を取得すると、固定位置フォーカス確認表示処理(または自動フォーカス確認表示処理)を実行する(ステップS314)。
そして、デジタルカメラ100が第1形式のデジタルカメラである場合、システム制御部112は、図9(または図10)に示す自動フォーカス確認表示処理(または自動フォーカス確認並列表示処理)を実行する。一方、デジタルカメラ100が第2形式のデジタルカメラである場合、システム制御部112は、図11(または図13)に示す固定位置フォーカス確認表示処理(または固定位置フォーカス確認並列表示処理)を実行する。固定位置フォーカス確認表示処理(または固定位置フォーカス確認並列表示処理)を実行する場合には、図14に示す疑似フォーカスエリア算出処理が実行される。その結果、上記第1の実施形態で説明したように、図4(a)〜図4(d)に示すような画面が表示される。
上記第2の実施形態によれば、固定位置に配置されたフォーカスポイントにピントを合わせる機能により撮影された画像からピントが一致した部分の画像の確認を容易に行うことができる。また、被写体の特徴部分を自動検出して自動フォーカスする機能により撮影された画像からピントが一致した部分の画像の確認を容易に行うことができる。
また、本発明の目的は、以下の処理を実行することによっても達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、次のものを用いることができる。例えば、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、CD−ROM、CD−R、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、DVD+RW、磁気テープ、不揮発性のメモリカード、ROM等である。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
更に、前述した実施形態の機能が以下の処理によって実現される場合も本発明に含まれる。即ち、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行う場合である。