以下に、添付図面を参照して本発明を実施するための最良の形態について詳細に説明する。なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであって、本発明は以下の実施の形態に限定されるものではない。
図1は、本発明を適用できる撮像装置の構成を示すブロック図である。
図1において、100はデジタルカメラ等に代表される撮像装置である。10は撮影レンズ、12は絞り機能を備えるシャッタ、14は光学像を電気信号に変換する撮像素子、16は撮像素子14のアナログ信号出力をデジタル信号に変換するA/D変換部である。18は撮像素子14、A/D変換部16、D/A変換部26にクロック信号や制御信号を供給するタイミング発生部であり、メモリ制御部22およびシステム制御部50により制御される。
20は画像処理部であり、A/D変換部16からのデータあるいはメモリ制御部22からのデータに対して所定の画素補間処理や色変換処理を行う。また、画像処理部20においては、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御部50が露光制御部40、測距制御部42、ストロボ48に対して制御を行う、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(ストロボプリ発光)処理を行っている。また、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。さらに、撮像した画像データから被写体の顔の部分を顔領域として検出する顔検出処理も行っている。画像データから被写体の顔を検出すると、検出した顔の領域の位置やサイズ、顔の確からしさ等の顔情報を出力する。
22はメモリ制御部であり、A/D変換部16、タイミング発生部18、画像処理部20、画像表示メモリ24、D/A変換部26、メモリ30、圧縮・伸長部32を制御する。そして、A/D変換部16のデータが画像処理部20、メモリ制御部22を介して、あるいはA/D変換部16のデータが直接メモリ制御部22を介して、画像表示メモリ24あるいはメモリ30に書き込まれる。
24は画像表示メモリ、26はD/A変換部、28はTFT LCD等から成る画像表示部であり、画像表示メモリ24に書き込まれた表示用の画像データはD/A変換部26を介して画像表示部28により表示される。画像表示部28を用いて撮像した画像データを逐次表示すれば、電子ビューファインダー(EVF)機能を実現することが可能である。また、画像表示部28は、システム制御部50の指示により任意に表示をON/OFFすることが可能であり、表示をOFFにした場合には撮像装置100の電力消費を大幅に低減することができる。
30は撮影した静止画像や動画像を格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶量を備えている。これにより、複数枚の静止画像を連続して撮影する連写撮影やパノラマ撮影の場合、また、動画像撮影の場合にも、高速かつ大量の画像書き込みをメモリ30に対して行うことが可能となる。また、メモリ30はシステム制御部50の作業領域としても使用することが可能である。
32は適応離散コサイン変換(ADCT)等により画像データを圧縮伸長する圧縮・伸長部である。圧縮・伸長部32は、メモリ30に格納された画像を読み込んで、例えばJPEGあるいはMPEG形式で圧縮処理あるいは伸長処理を行い、処理を終えたデータをメモリ30に書き込む。
40は絞り機能を備えるシャッタ12を制御する露光制御部であり、ストロボ48と連携することによりストロボ調光機能も有するものである。42は撮影レンズ10のフォーカシングを制御する測距制御部、44は撮影レンズ10のズーミングを制御するズーム制御部、46はバリアである保護部102の動作を制御するバリア制御部である。48はストロボであり、AF補助光の投光機能、ストロボ調光機能も有している。
露光制御部40、測距制御部42はTTL方式を用いて制御されており、撮像した画像データを画像処理部20によって演算した演算結果に基づき、システム制御部50が露光制御部40、測距制御部42に対して制御を行う。
50は撮像装置100全体を制御するシステム制御部である。52はシステム制御部50の動作用の定数、変数、プログラム等を記憶するメモリである。
54はシステム制御部50でのプログラムの実行に応じて、文字、画像、音声等を用いて動作状態やメッセージ等を表示する液晶表示装置、スピーカー等の表示部である。撮像装置100の操作部近辺の視認し易い位置に単数あるいは複数個所設置され、例えばLCDやLED、発音素子等の組み合わせにより構成されている。表示部54の表示内容のうち、LCD等に表示するものとしては、動作モード表示などがある。
56は電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM等が用いられる。58、60、62、64、66、68および70は、システム制御部50の各種の動作指示を入力するための操作部であり、スイッチやダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数あるいは複数の組み合わせで構成される。
次に、これらの操作部の具体的な説明を行う。
58はモードダイアルスイッチで、電源オフ、自動撮影モード、撮影モード、パノラマ撮影モード、再生モード、マルチ画面再生・消去モード、PC接続モード等の各機能モードを切り替え設定することができる。
60はレリーズスイッチSW1で、二段階に押下できるレリーズボタンの第1段階の押下によりONとなり、AF処理、AE処理、AWB処理、EF処理等の動作開始を指示する。
62はレリーズスイッチSW2で、二段階に押下できるレリーズボタンの第2段階の押下によりONとなり、撮像素子14から読み出した信号をA/D変換部16、メモリ制御部22を介してメモリ30に画像データを書き込む露光処理、画像処理部20やメモリ制御部22での演算を用いた現像処理、メモリ30から画像データを読み出し、圧縮・伸長部32で圧縮を行い、記録媒体200に画像データを書き込む記録処理という一連の処理の動作開始を指示する。
64は加速度検知部であり、撮像装置100に加えられている振れの加速成分を検出する。66は姿勢検知部であり、撮像装置100の姿勢状態、すなわち本装置に設けられている撮像素子14の撮像面の向きの状態を検出する。そして、撮像装置100が構えられているのが縦位置(ポートレート)であるか横位置(ランドスケープ)であるか等の装置の姿勢を検出する。姿勢状態を検知するセンサとしては、例えば重力センサ等を使用する。また、加速度検知部64を使用して姿勢を検知することも可能である。
68は画像表示ON/OFFスイッチで、画像表示部28の表示のON/OFFを設定することができる。この機能により、光学ファインダ104を用いて撮影を行う際に、TFT LCD等から成る画像表示部への電源供給を遮断することにより、省電力を図ることが可能となる。
70は各種ボタンやタッチパネル等からなる操作部で、メニューボタン、セットボタン、マクロボタン、マルチ画面再生改ページボタン、ストロボ設定ボタン、単写/連写/セルフタイマー切り替えボタンがある。
80は電源制御部で、電源検出回路、DC−DCコンバータ、通電するブロックを切り換えるスイッチ回路等により構成されている。82、84はコネクタ、86はアルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター、又は外部バッテリー等からなる電源部である。
90はメモリカードやハードディスク等の記録媒体とのインターフェースである。92はメモリカードやハードディスク等の記録媒体と接続を行うコネクタである。98はコネクタ92に記録媒体200が装着されているか否かを検知する記録媒体着脱検知部である。なお、本実施の形態では記録媒体を取り付けるインターフェースおよびコネクタを2系統持つものとして説明している。もちろん、記録媒体を取り付けるインターフェースおよびコネクタは、単数あるいは複数、いずれの系統数を備える構成としても構わない。また、異なる規格のインターフェースおよびコネクタを組み合わせて備える構成としても構わない。インターフェースおよびコネクタとしては、PCMCIAカードやCF(コンパクトフラッシュ(登録商標))カード等の規格に準拠したものを用いて構成して構わない。
102は、撮像装置100のレンズ10を含む撮像部を覆うことにより、撮像部の汚れや破損を防止するバリアである保護部である。104は光学ファインダであり、画像表示部28によるEVF機能を使用すること無しに、光学ファインダのみを用いて撮影を行うことが可能である。
200はメモリカードやハードディスク等の記録媒体である。記録媒体200は、半導体メモリや磁気ディスク等から構成される記録部202、撮像装置100とのインターフェース204、撮像装置100と接続を行うコネクタ206を備えている。
図2は、本発明を適用できる撮像装置の操作部材を示す図である。
図2において、300は撮像装置の電源をON/OFFするための電源ボタンである。301はレリーズスイッチSW1,SW2を操作するための二段階に押下できるレリーズボタンであり、レリーズボタンの第1段階の押下によりレリーズスイッチSW1がONとなり、レリーズボタンの第2段階の押下によりレリーズスイッチSW2がONとなる。
撮像装置の撮影画像は画像表示部28に表示される。画像表示部28には通常LCDが使用され、静止画像および/又は動画像の再生操作等を行うための画面が表示される。302,303,304はそれぞれセットボタン、メニューボタン、十字ボタンで、撮像装置の設定変更や、再生モードにおける画像送りや動画再生の際の様々な操作に使用する。
図3(b)は、操作者が撮像装置を振ったときの加速度検出器(本実施例においては加速度センサ)によって検出された、加速度波形のX軸方向成分の一例を示すものである。なお、図3(a)のように、撮像装置の鉛直方向上向きをY軸正とし、光軸とY軸に直交する方向をX軸とする。横軸は時間、縦軸は加速度センサの出力であり、符号によって加速度の方向を表すものとする。
第1の閾値である閾値Aおよび閾値−Aは、本実施例の撮像装置が動いているか否かを判定するための閾値であるとする。静止状態において水平状態にある場合は、加速度のX軸成分は検出されないため0である。本実施例では、検出された加速度が閾値−Aより大きく閾値A未満であれば、撮像装置は動いていない状態と判定され、逆に検出された加速度が閾値−A以下または閾値A以上であれば撮像装置が動いていると判定される。
一方、第2の閾値である閾値Bおよび閾値−Bは、撮像装置が所定の振り方で振られたかを判定するための閾値である。そのため、閾値−B<閾値−A、閾値A<閾値B、即ちAとBの絶対値を比較すると、|A|<|B|という関係で設定されている。本実施例では、検出された加速度が閾値A以上であり閾値B未満であるか、若しくは閾値−A以下であり−Bより大きければ、撮像装置が動いてはいるものの所定の振り方では振られていないと判定する。その一方で、検出された加速度が閾値A以上でありかつ閾値B以上である、若しくは閾値−A以下でありかつ閾値−B以下であれば撮像装置が動いており、かつ所定の振り方で振られていると判定する。
また、閾値Cおよび閾値−Cは、撮像装置が所定の強さの範囲内で振られたかを判定するための閾値である。そのため、閾値−C<閾値−B、閾値B<閾値C、即ちBとCの絶対値を比較すると、|B|<|C|という関係で閾値が設定されているものである。よって、検出された加速度が閾値B以上であるものの閾値C未満であるか、若しくは閾値−B以下であるものの−Cより大きければ、撮像装置が所定の振り方で振られていると判定する。その一方で、検出された加速度が閾値B以上でありかつ閾値C以上であるか、若しくは閾値−B以下でありかつ閾値−C以下であれば、撮像装置の振り方が強過ぎると判定する。撮像装置を強く振ると、誤って手から離れて落下する可能性が高くなるため、撮像装置の振り方が強過ぎると判定された場合は警告する。警告の方法は表示部54に警告文を表示しても良いし、不図示のスピーカーから警告音を発しても良い。
また、撮像装置が動いていない状態(加速度波形が閾値−A以上、閾値A未満の範囲)が閾値Eの時間以上継続されていれば、振り動作が停止した位置であると判定する。この場合、撮像装置が動いていない状態、即ち加速度波形が閾値−A以上、閾値A未満の範囲が閾値Eの時間以上継続されていない状態である時は、初めに閾値A若しくは−Aを越えたときから1回の動作であるとする。
なお、図3(b)では加速度レベルの閾値として、A、B、Cの3種類の値があり、それに加えてそれぞれに異符号となる値があるため、6つの値があるように説明しているが、それぞれ異なる6種類の値としても良い。
撮像装置を振った方向を検出する一手法について、操作者が撮像装置を振ったときの加速度出力を表している図3(b)の波形と、図4から図7のフローチャートを用いて説明する。
図4は加速度検知部64が撮像装置の振り動作を検出し、システム制御部50が処理する流れを示すフローチャートである。図3(b)の波形を例にとって、撮像装置を振った動作を検出する処理を説明する。
加速度波形が図3(b)に示した閾値A若しくは閾値−Aを跨いだとき、撮像装置が振られたことを検出する処理が開始される。(ステップS701)このステップS701の動作については、後に図5を用いて詳細に説明する。
第1の加速度波形301が検出されたと判断される(S702でYes)と、次にステップS703にて第2の加速度波形302の検出処理を行う。このステップS703の動作については、後に図6を用いて詳細に説明する。
第2の加速度波形302が閾値B若しくは−Bを跨ぐと、第2の加速度波形302が検出されたと判断され(S703でYes)、ステップS705にて撮像装置が振られたか、また上に振られたか下に降られたかを判定する。このステップS705の動作については、後に図7を用いて詳細に説明する。
そして、ステップS705で撮像装置が振られたと判定されれば(ステップS705でYes)、振り動作検出を初めから再び開始する。なお、上記ステップS702又はステップS704の判定条件で何れかがNoの判定になると、振り動作検出を再び開始する。
次に、本実施例における第1の加速度波形301の検出(図4におけるステップS701)について、図3(b)の波形の一例を例にとって、図5の第1の加速度波形301を検出するためのフローチャートを詳しく説明する。
ステップS711は、加速度が閾値−A以下になったかどうかを判定する。加速度が閾値−A以下になったとき(ステップS711でYes)、第1の加速度波形301は下向きの波形として検出され(ステップS712)、第1の加速度波形301検出を終了する。
また、加速度が閾値−Aより大きい場合(ステップS711でNo)、ステップS713にて、加速度が閾値A以上になったかどうかを判定する。加速度が閾値A以上になったとき(ステップS713でYes)、第1の加速度波形301は上向きの波形として検出され(ステップS714)、第1の加速度波形301検出を終了する。
なお、ステップS713で加速度が閾値A未満の場合は、ステップS711にて加速度が閾値−Aより大きいため、閾値を跨いでおらず、波形検出が出来ない(ステップS713でNo)ため、ステップS702でNoへ進む。
続いて、本実施例における第2の加速度波形302検出(図4におけるステップS703)について、図3(b)の波形の一例を例にとって、図6の第2の加速度波形302を検出するためのフローチャートを詳しく説明する。
図4のステップS701にて第1の加速度波形301が検出された直後に、加速度が閾値−A以下になったとき(ステップS721でYes)、加速度が閾値−A以下になっている間のピーク値(最小値)を検出する。なお、加速度の検出は、システム制御部50にて制御されている加速度センサの検出周期にて検出を行っている。そのため、加速度が閾値−Aを越えてからのピーク値(最小値)を更新した際にピーク値(最小値)を上書きすることによって、閾値−Aを越えてからの検出した波形のピーク値(最小値)を測定することができる。この加速度のピーク値(最小値)が閾値−B以下となったとき(ステップS722でYes)、第2の加速度波形302は下向きの波形として検出され(ステップS723)、次の処理に移る。
しかし、ステップS722において加速度のピーク値が閾値−Bより大きく、閾値−Bを越えないまま閾値−Aを上回ってしまったら(ステップS722でNo)、図4のステップS704にてNoへ進み、加速度波形検出処理を終了する。
一方で、図4のステップS701にて第1の加速度波形301が検出された直後に、波形が閾値−Aより大きいとき(ステップS721でNo)、加速度が閾値A以上になったかどうかを判定する(ステップS724)。加速度が閾値A以上になったと判定されたとき(ステップS724でYes)、加速度が閾値A以上になっている間のピーク値(最大値)を検出する。この波形のピーク値(最大値)が、閾値Aを再び跨ぐ前に、閾値B以上となったとき(ステップS725でYes)、第2の加速度波形302は上向きの波形として検出され(ステップS726)、次の処理に移る。
しかし、ステップS726において加速度のピーク値が閾値B未満であり、閾値Bを上回らないまま閾値Aを下回ってしまったら(ステップS725でNo)、加速度波形検出処理を終了する。また、なお、ステップS724で加速度が閾値A未満の場合は、ステップS721にて加速度が閾値−Aより大きいため、閾値を跨いでおらず、波形検出が出来ない(ステップS724でNo)ため、ステップS704でNoへ進む。
次に、本実施例における振り動作判定(図4におけるステップS705)について、図3(b)の波形の一例と図7の加速度が生じる向きを検出するためのフローチャートを用いて詳しく説明する。
ステップS731においては、ステップS712にて下向きの第1の加速度波形301が検出されたかを判断する。下向きの波形であったと判定された場合(ステップS731でYes)は、ステップS732へ進む。また、下向きの波形であったと判定されなかった場合(ステップS731でNo)、つまりステップS714にて上向きの波形と判定された場合は、ステップS734へ進む。
ステップS732においては、ステップS726にて上向きの第2の加速度波形302が検出されたかを判断する。上向きと判定されていれば(ステップS732でYes)、ステップS733へ進み、ステップS733にて撮像装置は振り下ろし動作が行われたと判定される。ここで、もしステップS726にて第2の加速度波形302の向きが上向きと判定されていなかったときは(ステップS732でNo)、加速度波形検出処理を終了する。
ステップS734においては、ステップS723にて下向きの第2の加速度波形302が検出されたかを判断する。もしステップS723にて第2の加速度波形302の向きが下向きと判定されていれば(ステップS734でYes)、ステップS735へ進み、ステップS735にて撮像装置は振り上げ動作が行われたと判定される。ここで、もし下向きと判定されなかったときは(ステップS734でNo)、加速度波形検出処理を終了する。なお、振り動作検出結果は、システム制御部50の内部メモリ(不図示)あるいはメモリ52に記憶される。
以上が本実施例における振り動作判定であるが、これを前述した撮像装置に用いている。その場合、記憶部(202や212)に記憶された画像を表示部28に再生する再生モード時に、振り判定によって画像を変更する。例えば、撮像装置を振り下げた場合、ステップS733にて撮像装置が振り下ろし動作が行れたと判定され、画像を1枚送る。逆に、撮像装置を振り上げた場合、ステップS735にて撮像装置が振り上げ動作が行れたと判定され、画像を1枚戻す。このとき、画像の表示順序はファイルの名前や番号であってもよいし、撮影した日時や画像に記憶されている日時であっても構わないが、振り上げと振り下げで表示される画像の順序が逆になるようにする。但し、ランダム再生のようにランダムで画像の表示順序を決める特殊なモードがあるときは、その限りではない。また、振り検出によって実行される機能は画像送りと画像戻しに限定されず、例えば動画像の再生と停止、画像の拡大と縮小でも良い。なお、本発明に係る撮像装置中の振り判定による画像送り機能の実行例は、図9のステップS216からS219までに詳細に説明する。
次に、前述した撮像装置を用いて、図8から図14を参照しながら、本発明の実施の形態を説明する。
図8および図9は、システム制御部50が実行する本実施形態の撮像装置100の動作を説明するフローチャートである。
電源の投入により、システム制御部50は、フラグや制御変数等を初期化する(ステップS101)。そしてステップS102にて画像表示部28の画像表示をOFF状態に初期設定する。次に、ステップS103にてモードダイアル58の設定位置を判定する。モードダイアル58が撮影モードに設定されていた場合、処理をステップS104に進める。モードダイアル58が再生モードに設定されていた場合、処理を図9のステップS201に進める。
ステップS104において、システム制御部50は、画像表示ON/OFFスイッチ68の設定状態を判定する。画像表示ONに設定されていた場合、ステップS105へ進み、画像表示フラグを設定する。そして画像表示部28の画像表示をON状態に設定する(ステップS106)。その後、画像表示部28に撮像した画像データを逐次表示するスルー表示を開始する(ステップS107)。
続いて、システム制御部50は、撮像装置100の姿勢を検知する(ステップS108)。ステップS108の姿勢検知処理の詳細については図10を用いて後述する。次にステップS109にて検知した姿勢の状態をアイコンとして表示する。なお、ステップS109の姿勢アイコン表示については行わなくても良い。
一方、ステップS104において、画像表示ON/OFFスイッチ68が画像表示OFFに設定されていた場合、ステップS110へ進み、システム制御部50は画像表示フラグを解除する。そして、画像表示部28の画像表示をOFF状態に設定する(ステップS111)。画像表示OFFの場合は、画像表示部28による電子ファインダ機能を使用せず、光学ファインダ104を用いて撮影を行う。なお、前記画像表示フラグは、システム制御部50の内部メモリあるいはメモリ52に記憶される。そして、処理をステップS112に進める。
処理をステップS112において、レリーズボタン301が押されていない場合、処理をステップS103に戻す。一方、レリーズボタン301が押されていた場合、システム制御部50は、現在の撮像装置100の姿勢を検知する(ステップS113)。このステップS113における姿勢検知処理の詳細については図10を用いて後述する。ステップS113にて撮像装置100の姿勢を検知した後、システム制御部50は、撮影処理(ステップS114)を行い、撮影する。そして圧縮処理(ステップS115)を行う。撮影処理、圧縮処理に関しては、広く知られている処理であるので、ここでは割愛する。その後、システム制御部50は、ステップS113で検知した撮像装置100の姿勢情報と、ステップS114とステップS115で撮影、圧縮した撮影画像との関連付けを行う(ステップS116)。そして、撮像装置100の姿勢情報と撮影画像とを記録媒体200に記録する(ステップS117)。
記録媒体に記録される画像データのフォーマットの一例を図12に示す。図12に示すように、撮影画像データにタグを付け、タグの中に姿勢情報を記録する領域を設けている。例えば、Exifフォーマットでは、Orientationタグが姿勢情報を記録するための領域として用意されている。そして、記録を行った後、システム制御部50は処理をステップS103に戻す。
次に、ステップS103において、モードダイアルが再生モードに設定されていた場合の処理を図9を用いて説明する。
ステップS103にてモードダイアルが再生モードに設定されていた場合、システム制御部50は処理をステップS201に進め、画像表示部28の画像表示をON状態に設定する。そして、ステップS202にてシステム制御部50は、記録媒体200に記録された画像データの最終撮影番号Nmaxを読み出す(ステップS202)。なお、最終撮影番号Nmaxは、システム制御部50の内部メモリあるいはメモリ52に記憶される。
ステップS203において、システム制御部50は、再生画像番号NをN=Nmaxと設定する。なお、再生画像番号Nは、システム制御部50の内部メモリあるいはメモリ52に記憶される。そして、ステップS204において、システム制御部50は、再生画像番号Nに対応する画像データを記録媒体200から読み出し、メモリ30に記憶する。このとき、撮像装置100の撮影時の姿勢を示す姿勢情報の読み出しも併せて行い、システム制御部50の内部メモリあるいはメモリ52に記憶する。
続いて、ステップS205にて、システム制御部50は再生する画像が静止画か動画かを判別する。再生する画像が静止画か動画かの判別は、例えばファイル名の拡張子を用いて行う。画像が静止画の場合は処理をステップS206に進み、システム制御部50は圧縮・伸張部32により、ステップS204で読み出した画像データを伸張する画像伸張処理を行う。なお、伸張した画像データはメモリ30に書き込まれる。
次に、ステップS207にてシステム制御部50は、撮像装置100の姿勢を検知する。なお、姿勢検知処理の詳細については図10を用いて後述する。
次にステップS208にて、システム制御部50は、検知した再生時の姿勢情報とステップS204で読み出した撮影時の姿勢情報とから再生画像の回転角度を判定する。回転判定処理の詳細については図11を用いて後述する。
そしてステップS209にて、システム制御部50は、判定結果に基づいて画像の回転処理を行う。回転した画像データは、メモリ30に書き込まれる。続いて、ステップS210にて、システム制御部50はステップS209で回転した画像データを表示形式のデータに変換し、変換した画像データをメモリ制御部22を介して画像表示メモリ24に転送する。そして、システム制御部50は、画像表示メモリ24に転送した表示データを読み出して、メモリ制御部22、D/A変換部26を介して画像表示部28に表示する(ステップS211)。そして画像の表示を行った後、処理をステップS216に進める。
一方で、ステップS205において、再生する画像が動画であると判定した場合、システム制御部50は、処理をステップS212に進める。ステップS212にてステップS204で読み出した動画像データのうち1フレーム分を伸張する。そして伸張した画像データを表示形式の画像データに変換し(ステップS213)、表示形式に変換した画像データを画像表示部28に表示する(ステップS214)。ステップS212、ステップS213、ステップS214は、それぞれ静止画再生の処理で説明した、ステップS206、ステップS210、ステップS211と同様の処理である。
1フレーム分の伸張が終了すると、ステップS215において、システム制御部50は次のフレームが存在するかどうかを判定する。次のフレームが存在する場合は、処理をステップS212に戻して次のフレームの伸張・表示処理を行う。一方、次のフレームが存在しない場合、すなわち最終フレームを伸張・表示し終わった場合、システム制御部50は、処理をステップS216に進める。以上説明したように、動画を再生表示する場合は、回転処理は行わない。
続いて、システム制御部50は、ステップS216にて、十字ボタン304が操作されたか、撮像装置100が操作者によって振り下げられたことにより、画像送りが指示されたかどうかを判定する。なお、図7のステップS733にて撮像装置が振り下ろし動作が行われたと判定されることによって、操作者が撮像装置を振り下げたことによって画像送りが指示されたと判定する。画像送りが指示されたと判定された結果、ステップS218へ進む。そして次の画像番号を読み出し、次の画像を表示する。そして処理をステップS204に戻す。一方、ステップS216において、画像送りが指示されていない場合は、システム制御部50は、ステップS217へと進む。
一方、ステップS217においては、システム制御部50は、十字ボタン304が操作されたか、もしくは撮像装置100が振り上げられたことにより、画像戻しが指示されたかどうかを判定する。図7のステップS735にて撮像装置が振り上げ動作が行われたと判定されることによって、操作者が撮像装置を振り上げたことによって画像戻しが支持されたと判定する。画像戻しが指示されたと判定された結果、ステップS219へ進む。そして前の画像番号を読み出し、前の画像を表示する。そして処理をステップS204に戻す。ステップS217において、画像戻しが指示されていない場合、システム制御部50は処理をステップS103に戻す。
図10は、図8のステップS108、ステップS113および図9のステップS207における、システム制御部50が実行する姿勢検知処理の詳細なフローチャートである。図13は、図10の姿勢検知処理における姿勢情報を示した図であり、撮像装置100が横位置(鉛直方向0°)に位置している図を示している。
ステップS301では、姿勢検知部66によって検知された姿勢が、鉛直方向に対して−45°以上かつ45°未満であるかどうかを判定する。−45°以上かつ45°未満である場合、姿勢情報に0を設定して(ステップS302、図13で(a)の範囲)処理を終了する。
ステップS301において、撮像装置100の姿勢が鉛直方向に対して−45°以上かつ45°未満ではない場合、処理をステップS303に進め、45°以上かつ135°未満であるかどうかを判定する。45°以上かつ135°未満である場合、姿勢情報に90を設定して(ステップS304、図13で(b)の範囲)、処理を終了する。
ステップS303において、撮像装置100の姿勢が鉛直方向に対して45°以上かつ135°未満ではない場合、処理をステップS305に進め、135°以上かつ225°未満であるかどうかを判定する。135°以上かつ225°未満である場合、姿勢情報に180を設定して(ステップS306、図13で(c)の範囲)、処理を終了する。ステップS305において、撮像装置100の姿勢が鉛直方向に対して135°以上かつ225°未満ではない場合、姿勢情報に270を設定して(ステップS307、図13で(d)の範囲)処理を終了する。
なお、本実施例においては90度ごとに4等分して姿勢情報を設定する実施例を記載したが、撮像装置が置かれる状況を鑑みて、姿勢の閾値は任意に設定できる。例えば姿勢情報に0を設定するのが−60°以上かつ60°未満である場合であり、姿勢情報に90を設定するのが60°以上かつ120°未満であるように設定しても良い。姿勢情報は、システム制御部50の内部メモリあるいはメモリ52に記憶される。
図11は、図9のステップS208における、システム制御部50が実行する回転判定処理の詳細なフローチャートを示す。また、図3(b)は、加速度検出部64によって検出された加速度の変化の一例を示した図である。
ステップS501において、加速度検出部64により検出された加速度が所定の範囲内(図3(b)において−A<加速度<A)であるかどうかを判断する。加速度検出部64により検出された加速度が所定の範囲内(図3(b)において−A<加速度<A)である場合、処理をステップS502に進める。
ステップS502において、図9のステップS204で読み出した画像の撮影時の姿勢情報が0であるかどうかを判定する。撮影時の姿勢情報が0である場合、回転角度に0を設定して(ステップS503)、処理をステップS509に進める。
ステップS502において撮影時の姿勢情報が0ではない場合、ステップS504において、システム制御部50は、撮影時の姿勢情報が90であるかどうかを判定する。撮影時の姿勢情報が90である場合、システム制御部50は、回転角度に90を設定して(ステップS505)、処理をステップS509に進める。
ステップS504において、撮影時の姿勢情報が90ではない場合、ステップS506においては、システム制御部50は、撮影時の姿勢情報が180であるかどうかを判定する。撮影時の姿勢情報が180である場合、システム制御部50は、回転角度に180を設定して(ステップS507)、処理をステップS509に進める。一方、ステップS506において、撮影時の姿勢情報が180ではない場合、システム制御部50は、回転角度に−90を設定して(ステップS508)、処理をステップS509に進める。
なお、加速度および回転角度は、システム制御部50の内部メモリあるいはメモリ52に記憶される。
次に、ステップS509においてシステム制御部50は、図9のステップS207で検知した再生時の姿勢情報が0であるかどうかを判定する。再生時の姿勢情報が0である場合(ステップS509においてNo)、システム制御部50は回転角度を更新せずに処理を終了する。一方、ステップS509において、再生時の姿勢情報が0ではない場合、ステップS510に進み、システム制御部50は、再生時の姿勢情報が90であるかどうかを判定する。ステップS510において再生時の姿勢情報が90である場合、システム制御部50は、回転角度を90減算した値に設定して(ステップS511)、処理を終了する。
ステップS510において再生時の姿勢情報が90ではない場合、ステップS512において、システム制御部50は、再生時の姿勢情報が180であるかどうかを判定する。再生時の姿勢情報が180である場合、システム制御部50は、回転角度を180加算した値に設定して(ステップS513)、処理を終了する。一方、ステップS512において、再生時の姿勢情報が180ではない場合、システム制御部50は、回転角度を90加算した値に設定して(ステップS514)、処理を終了する。
このステップS209の処理によって、画像回転処理の回転角度が設定され、撮像装置の姿勢によって自動的に撮影画像の画像回転処理を行うため、良好な使用感を使用者に与えることが出来る。しかしながら、撮像装置を振って画像送り若しくは画像戻しを行う場合は、回転処理を行うと操作中に回転処理が行われてしまう。そこで、ステップS501において、加速度検出部64により検出された加速度が所定の範囲内(図3(b)において−A<加速度<A)ではない場合、システム制御部50は、回転角度を更新せずに処理を終了する。これは、加速度がA以上若しくは−A以下の場合は、図3から図7で説明した、振って画像を送る機能を使用している可能性が高いためである。これによって加速度検出部64により検出された加速度が所定の範囲内(図3(b)において−A<加速度<A)ではない場合と判定され、回転角度を更新せずに処理を終了し、画像の回転が行われずに表示が切り替わるのを防ぐことができる。
以上に説明したように、本発明においては、ステップS501において、加速度検出部64により検出された加速度が所定の範囲内ではない場合は、回転判定処理での回転角度の更新が行われない。すなわち、撮像装置100が振られたことによる加速度を検出した場合は、回転判定処理での回転角度の更新が行われない。そのため、図14に示すように、撮影画像が回転されることなく表示されるので、撮影画像を再生中の撮像装置100を振って操作する場合であっても、撮影画像を最適な状態で再生表示することが可能となる。
なお、上記実施例では撮影画像を再生中の撮像装置100を振って操作する場合を例に説明した。しかし例えばメニュー画面や画像情報のような文字情報を表示部に表示し、回転表示処理を行う場合においても応用が可能である。
上記実施例では、撮像装置を例にして説明をしてきた。しかし、画像を表示できる表示部を持つ機器であって、姿勢を検知することによって画像を回転させ、かつ加速度センサによって表示部に表示する画像を変換するような機能を搭載した携帯電話にも応用可能である。同様に、情報端末機器、携帯ゲーム機、音楽プレイヤーにも応用が可能である。
なお、本発明の目的は、以下の処理を実行することによって達成される。即ち、上述した実施の形態の機能を実現するプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出す処理である。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードは本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施の形態の機能が実現される場合も本発明に含まれる。加えて、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。