以下、本発明の実施の形態を図面を参照しながら詳細に説明する。
<撮像装置100の構成説明>
図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によって画像の切り出し、変倍処理を行うことで電子ズーム機能が実現される。また画像処理回路20においては、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてシステム制御回路50が露光制御手段40、測距制御手段42に対して制御を行う。これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理が行われる。
22はメモリ制御回路であり、A/D変換器16、タイミング発生回路18、画像処理回路20、画像表示メモリ24、D/A変換器26、メモリ30、圧縮・伸長回路32を制御する。A/D変換器16のデータは、画像処理回路20及びメモリ制御回路22を介して、或いは直接メモリ制御回路22を介して、画像表示メモリ24或いはメモリ30に書き込まれる。
24は画像表示メモリ、26はD/A変換器、28はTFT・LCD等から成る画像表示部であり、画像表示メモリ24に書き込まれた表示用の画像データはD/A変換器26を介して画像表示部28により表示される。また、画像表示部28を用いて撮像した画像データを逐次表示すれば、電子ファインダ機能を実現することが可能である。
28は画像表示部であり、システム制御回路50の指示により任意に表示をON/OFFすることが可能であり、表示をOFFにした場合には撮像装置100の電力消費を大幅に低減することができる。
30は撮影した静止画像や動画像を格納するためのメモリであり、所定枚数の静止画像や所定時間の動画像を格納するのに十分な記憶容量を備えている。これにより、複数枚の静止画像を連続して撮影する連射撮影やパノラマ撮影の場合にも、高速かつ大量の画像書き込みをメモリ30に対して行うことが可能となる。また、メモリ30はシステム制御回路50の作業領域としても使用することが可能である。
32は圧縮・伸長回路であり、適応離散コサイン変換(ADCT)、ウェーブレット変換等により画像データを圧縮伸長し、またメモリ30に格納された画像を読み込んで圧縮処理或いは伸長処理を行い、処理を終えたデータをメモリ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でのプログラムの実行に応じて、文字、画像を用いて動作状態やメッセージ等を表示する液晶表示装置等の表示部である。表示部54は、撮像装置100の操作部近辺の視認し易い位置に単数或いは複数個所設置され、例えばLCDやLED等の組み合わせにより構成されている。この表示部54は、その一部の機能が光学ファインダ104内に設置されている。
表示部54の表示内容のうち、LCD等に表示するものとしては、単写/連写撮影表示、セルフタイマー表示、圧縮率表示、記録画素数表示、記録枚数表示、残撮影可能枚数表示、シャッタースピード表示、絞り値表示、露出補正表示、フラッシュ表示等がある。また、赤目緩和表示、マクロ撮影表示、ブザー設定表示、時計用電池残量表示、電池残量表示、エラー表示、複数桁の数字による情報表示、記録媒体200の着脱状態表示、通信I/F動作表示、日付・時刻表示等がある。また、表示部54の表示内容のうち、光学ファインダ104内に表示するものとしては、合焦表示、手振れ警告表示、フラッシュ充電表示、シャッタースピード表示、絞り値表示、露出補正表示等がある。
56は電気的に消去・記録可能な不揮発性メモリであり、例えばEEPROM等が用いられる。60、62、64、66、70、及び72は、システム制御回路50の各種の動作指示を入力するための操作手段である。これら操作手段は、スイッチやダイアル、タッチパネル、視線検知によるポインティング、音声認識装置等の単数或いは複数の組み合わせで構成される。ここで、これらの操作手段の具体的な説明を行う。
60は電源スイッチ(メインスイッチ)であり、撮像装置100の電源オン、電源オフの各モードを切り替え設定することができる。また、撮像装置100に接続された各種付属装置の電源オン、電源オフの設定も合わせて切り替え設定することができる。
62は第1シャッタースイッチSW1であり、不図示のシャッターボタンの操作途中でONとなり、AF処理、AE処理、AWB処理、EF処理等の動作開始を指示する。64は第2シャッタースイッチSW2であり、不図示のシャッターボタンの操作完了でONとなり、撮像素子14から読み出した信号をA/D変換器16、メモリ制御回路22を介してメモリ30に画像データを書き込む露光処理を指示する。更には、画像処理回路20やメモリ制御回路22での演算を用いた現像処理、メモリ30から画像データを読み出し、圧縮・伸長回路32で圧縮を行い、記録媒体200に画像データを書き込む記録処理の動作開始を指示する。
66はモードダイアルスイッチであり、自動撮影モード、撮影モード、パノラマ撮影モード、再生モード、マルチ画面再生・消去モード、PC接続モード等の各機能モードを切り替え設定することができる。
70は各種ボタンやタッチパネル等からなる操作部であり、メニューボタン、セットボタン、マクロボタン、マルチ画面再生改ページボタン、フラッシュ設定ボタン、単写/連写/セルフタイマー切り替えボタン等を含む。また、メニュー移動+(プラス)ボタン、メニュー移動−(マイナス)ボタン、再生画像移動+(プラス)ボタン、再生画像移動−(マイナス)ボタン、撮影画質選択ボタン、露出補正ボタン、日付・時間設定ボタン、画像表示ON/OFFボタン等を含む。また、撮影直後に撮影した画像データを画像表示部28を用いて自動再生表示するクイックレビュー機能を設定するクイックレビュースイッチ等を含む。また、上記プラスボタン及びマイナスボタンの各機能は、回転ダイアルスイッチを備えることによって、より軽快に数値や機能を選択することが可能となる。
72はズームスイッチであり、撮影画角を望遠側にズームさせるテレスイッチ(SW)と、広角側にズームさせるワイドスイッチ(SW)とからなる。また、ズームスイッチ72を用いてズーム制御手段44に撮影レンズ10のズーミングを指示し光学ズーム操作を行ったり、画像処理回路20による画像の切り出し、変倍処理し電子ズーム操作を行ったりすることができる。
80は電源制御手段であり、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成されており、電池の装着の有無、電池の種類、電池残量の検出を行う。そして、検出結果或いはシステム制御回路50の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体200等を含む各部へ供給する。
82、84はコネクタである。86は電源手段であり、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等からなる。電源手段86は、コネクタ82、84を介して撮像装置100に電力を供給する。
90はメモリカードやハードディスク等の記録媒体とのインタフェースであり、92はメモリカードやハードディスク等の記録媒体と接続を行うコネクタである。98はコネクタ92に記録媒体200が装着されているか否かを検知する記録媒体着脱検知手段である。
102は、撮像装置100のレンズ10を含む撮像部を覆うことにより、撮像部の汚れや破損を防止するバリアである保護手段である。104は光学ファインダであり、画像表示部28による電子ファインダ機能を使用すること無しに、光学ファインダ104のみを用いて撮影を行うことを可能とする。また光学ファインダ104内には、表示部54の一部の機能、例えば、合焦表示、手振れ警告表示、フラッシュ充電表示、シャッタースピード表示、絞り値表示、露出補正表示等が設置されている。
110は通信手段であり、RS232CやUSB、IEEE1394、P1284、SCSI、モデム、LAN、無線通信等の各種通信機能を有する。112は通信手段110により撮像装置100を他の機器と接続するコネクタ或いは無線通信の場合はアンテナである。
200はメモリカードやハードディスク等の記録媒体である。記録媒体200は、半導体メモリや磁気ディスク等から構成される記録部202、撮像装置100とのインタフェース204と、撮像装置100と接続を行うコネクタ206とを備えている。
<メインルーチン>
図2は、本実施の形態に係る撮像装置100の全体的な動作を説明するフローチャートである。
電源スイッチ60が操作され電源がオンに切り替わると、ステップS201においてシステム制御回路50は、フラグや制御変数等を初期化する。
続いて、ステップS202において、システム制御回路50は、電源制御手段80により電池等により構成される電源手段86の残容量や動作情況が撮像装置100の動作に問題があるか否かを判断する。問題があるならばステップS204へ進み、表示部54を用いて所定の警告表示、また不図示のスピーカーを用いて警告音発音を行った後に、ステップS213へ進み、終了処理を行う。
ステップS202で電源手段86に問題が無いならば、ステップS203において、システム制御回路50は、記録媒体200の動作状態が撮像装置100の動作、特に記録媒体に対する画像データの記録再生動作に問題があるか否かを判断する。問題があるならばステップS204へ進み、表示部54を用いて画像や音声により所定の警告表示を行った後に、ステップS213へ進み、システム制御回路50は終了処理を行う。
ステップS203で記録媒体200の動作状態に問題が無いならば、次にステップS205、S207、S209において、システム制御回路50は、モードダイヤル66の設定位置を判断する。
静止画記録モードに設定されていたならば、システム制御回路50は、ステップS205からステップS206に進み、静止画記録モード処理を実行する。また、モードダイヤル66が動画記録モードに設定されていたならば、処理をステップS205、S207を経てステップS208に進み、動画記録モード処理を実行する。また、モードダイヤル66が再生モードに設定されていたならば、ステップS205、S207、S209を経てステップS210に進み、再生モード処理を実行する。ステップS210の再生モード処理は図3を用いて後述する。また、その他のモードに設定されていたならば、ステップS211に進み、システム制御回路50は選択されたモードに応じた処理を実行する。その他のモードとしては例えば記録媒体200に格納されたファイルの送信を行う送信モード処理、外部機器からファイルを受信して記録媒体200に格納する受信モード処理が含まれる。
ステップS205、S207、S209、S211のうちのモードダイヤル66によって設定されたモードに対応した処理を実行した後は、システム制御回路50は、ステップS212に進む。そしてステップS212において、システム制御回路50は、電源スイッチ60の設定位置を判断する。電源スイッチ60が電源オンに設定されていれば、ステップS205に戻る。一方、電源スイッチ60が電源オフに設定されていたならば、ステップS212からステップS213に進み、終了処理を行う。なお、終了処理には、例えば以下の処理が含まれる。すなわち、画像表示部28の表示を終了状態に変更し、保護手段102を閉じて撮像部を保護し、フラグや制御変数等を含むパラメータや設定値、設定モードを不揮発性メモリ56に記録し、電源供給が不要な部分への電源を遮断する。ステップS213の終了処理が完了すると、本処理を終了し、電源をOFF状態へ移行させる。
<再生モード処理>
次に図3は、本実施の形態に係る撮像装置100の再生モード処理の動作を説明するフローチャートである。図3のフローチャートは、図2のステップS210の詳細を示している。なお、図3に示される再生モード処理は、モードダイヤル66により他のモードへの切替が行われた場合や電源スイッチ60がOFFされた場合、又は割り込み処理等により終了するものとする。
ステップS301において、システム制御回路50は、記録媒体200から最新画像情報を取得する。
続いてステップS302において、システム制御回路50は、ステップS301における最新画像情報の取得が正しく行われたかどうかをチェックする。最新画像情報を取得できなかった場合はステップS304に進む。最新画像情報を取得できない場合とは、画像が一枚もないときや、メディア不良によって画像情報が取得できなかったような状態等が考えられ、ステップS304において、システム制御回路50は、画像なし等の警告表示を行う。最新画像情報が取得できれば、少なくとも画像が1枚は存在するため、ステップS303へ進む。
ステップS303において、システム制御回路50は、ステップS301で取得した最新画像情報を元に記録媒体200から最新画像ファイルを読み込みメモリ30に記憶する。
次に、ステップS305において、システム制御回路50は、ステップS303でメモリ30に読み込んである最新画像ファイルに対してファイル解析処理を行い、最新画像ファイルにおける画像の撮影情報や属性情報等を取得する。
次にステップS306において、システム制御回路50は、メモリ30に読み込んである最新画像ファイルの画像データを圧縮・伸長回路32により、画像伸長処理を行いメモリ30に書き込む。
続いてステップS307において、システム制御回路50は、メモリ30にある伸長処理済みの最新画像の表示を行う。画像の表示は次のように行われる。伸長した画像データを画像処理回路20により、表示形式のデータに変換し、メモリ制御回路22を介して画像表示メモリ24に転送する。そして、画像表示メモリ24に転送した表示データを読み出して、メモリ制御回路22、D/A変換器26を介してLCD等の画像表示部28に表示する。
ステップS307で最新画像の表示が完了すると撮像装置100は入力待ちとなり、ステップS308において、システム制御回路50は、ユーザによる操作入力があるかどうかをチェックする。ここでいう操作入力とは、ユーザによるボタン、電池蓋に対する操作や、電源の低下等を知らせるイベント等が含まれる。何も入力がなければ入力があるまで現在の状態のまま待つ。何らかの操作入力があった場合、ステップS309へ進む。
ステップS309において、システム制御回路50は、当該操作入力が操作部70に含まれる画像送りボタンの入力かどうかを判定する。操作入力が画像送りボタンであった場合はステップS310に進み、システム制御回路50は、記録媒体200から次の画像ファイルを読み込みメモリ30に記憶する。画像送りのボタンは送り方向に応じた一対のボタンで構成されており、操作されたボタンに対応する送り方向に応じて次の画像が読み込まれることになる。
次に、ステップS311において、システム制御回路50は、ステップS310でメモリ30に読み込んである次の画像ファイルに対してファイル解析処理を行い、次の画像ファイルにおける画像の撮影情報や属性情報等を取得する。
次に、ステップS312において、システム制御回路50は、メモリ30に読み込んである次の画像ファイルの画像データを圧縮・伸長回路32により、画像伸長処理を行いメモリ30に書き込む。続いてステップS313において、システム制御回路50は、メモリ30に読み込んである次の画像の表示を行う。なお、画像の表示はステップS307と同様の処理である。ステップS313における画像の表示が完了するとステップS308の入力待ちに戻る。
また、ステップS309で入力が画像送りボタンではないと判定された場合は、ステップS314に進む。ステップS314において、システム制御回路50は、当該操作入力がメニューボタンかどうかを判定する。操作入力がメニューボタンであった場合、システム制御回路50は画像表示部28に再生メニューを表示して、ステップS315に進む。
ステップS315において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、トリミングが選択されたかどうかを判定する。トリミングの選択と判定した場合は、ステップS316において、システム制御回路50は、表示中の画像の一部を切り出して画像ファイルとして記録する、トリミングモードになる。トリミングモードでは、操作部70に含まれる十字キー等を操作することにより、トリミングしたい画像の選択、切り出しサイズ及び位置の変更等が行える。トリミングモードを終えると、システム制御回路50は、ステップS308に戻り、入力待ちとなる。このトリミングモードについては図4を用いて後述する。
ステップS315でトリミングが選択されなかった場合、システム制御回路50は、ステップS317に進む。
ステップS317において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、リサイズが選択されたかどうかを判定する。リサイズの選択と判定した場合は、ステップS318において、システム制御回路50は、表示中の画像を縮小して画像ファイルとして記録する、リサイズモードになる。リサイズモードでは、操作部70に含まれる十字キー等を操作することにより、リサイズしたい画像の選択、記録サイズの変更等が行える。リサイズモードを終えると、システム制御回路50は、ステップS308に戻り、入力待ちとなる。このリサイズモードについては図7を用いて後述する。
ステップS317でリサイズが選択されなかった場合、システム制御回路50は、ステップS319に進む。
ステップS319において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、赤目補正が選択されたかどうかを判定する。赤目補正の選択と判定した場合は、ステップS320において、システム制御回路50は、表示中の画像の赤目を黒目に補正して画像ファイルとして記録する、赤目補正モードになる。赤目補正モードでは、操作部70に含まれる十字キー等を操作することにより、赤目補正したい画像の選択、補正したい目を指定する枠の追加及び削除等が行える。赤目補正モードを終えると、システム制御回路50は、ステップS308に戻り、入力待ちとなる。この赤目補正モードについては図9を用いて後述する。
ステップS319で赤目補正が選択されなかった場合、システム制御回路50は、ステップS321に進む。
ステップS321において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、上記以外の項目が選択されたかどうかを判定する。上記以外の項目の選択と判定した場合は、ステップS322において、システム制御回路50は、選択項目に応じた処理を行う。例えば、画像の消去、スライドショー、画像のプロテクトや回転等である。処理を終えると、システム制御回路50は、ステップS308に戻り、入力待ちとなる。
ステップS321でいずれの項目も選択されなかった場合、システム制御回路50は、ステップS323に進む。
ステップS323において、システム制御回路50は、メニューボタンが押されていたら、画像表示部28に表示している再生メニューを消去し、再生メニューを抜ける。再生メニューを抜けると、ステップS308に戻り、入力待ちとなる。ステップS323において、メニューボタンが押されていなかったら、なんらかの項目が選択されるか、又はメニューボタンが押されるまで、ステップS315からS323を繰り返す。
一方、ステップS314で入力がメニューボタンではないと判定された場合、システム制御回路50は、ステップS324に進む。ステップS324において、上記以外の操作入力に応じた処理を行う。例えば、画像の消去、画像の拡大表示、マルチ再生への切り替え等である。ステップS324における操作入力に応じた処理を終えるとステップS308の入力待ちに戻る。
<トリミングモード処理>
図4は、図3のステップS316のトリミングモードの動作を説明するフローチャートである。以下、トリミングモードの動作を説明する。
トリミングモードに入ると、トリミング画像選択画面が表示され、撮像装置100は入力待ちとなり、ステップS401において、システム制御回路50がユーザによる操作入力があるかどうかをチェックする。ここでいう操作入力とは、ユーザによるボタン、電池蓋に対する操作や、電源の低下等を知らせるイベント等が含まれる。何も入力がなければ入力があるまで現在の状態のまま待つ。何らかの操作入力があった場合、ステップS402へ進む。
ステップS402において、システム制御回路50は、当該操作入力が操作部70に含まれる画像送りボタンの入力かどうかを判定する。操作入力が画像送りボタンであった場合、ステップS403へ進み、システム制御回路50は、記録媒体200から次の画像ファイルを読み込みメモリ30に記憶する。画像送りのボタンは送り方向に応じた一対のボタンで構成されており、操作されたボタンに対応する送り方向に応じて次の画像が読み込まれることになる。
次に、ステップS404において、システム制御回路50は、ステップS403でメモリ30に読み込んである次の画像ファイルに対してファイル解析処理を行い、次の画像ファイルにおける画像の撮影情報や属性情報等を取得する。
次に、ステップS405において、システム制御回路50は、メモリ30に読み込んである次の画像ファイルの画像データを圧縮・伸長回路32により、画像伸長処理を行いメモリ30に書き込む。続いて、ステップS406において、システム制御回路50は、メモリ30にある伸長処理済みの次の画像の表示を行う。画像の表示はステップS307と同様の処理である。ステップS406における画像の表示が完了するとステップS401の入力待ちに戻る。
ステップS402で入力が画像送りボタンではないと判定された場合、ステップS407において、システム制御回路50は、当該操作入力がメニューボタンかどうかを判定する。メニューボタンであると判定された場合、システム制御回路50は、トリミングモードを終了して元の処理に戻る。
一方、ステップS407で入力がメニューボタンではないと判定された場合、ステップS408において、システム制御回路50は、当該操作入力が決定ボタンかどうかを判定する。決定ボタンであると判定された場合、ステップS426において、システム制御回路50は、画像表示部28の表示をトリミング操作画面に切り替えて、トリミングガイダンスも一緒に表示し、ステップS409に進む。ステップS426で表示するトリミング操作画面については、以下、図5を用いて説明する。
図5は、図4のトリミングモードにおけるトリミング操作画面の画像表示部28における表示例を示す図である。トリミング操作画面では、選択中の画像の全体表示501、トリミング領域拡大表示502、トリミング枠503、操作ガイダンス504が表示される。トリミング領域拡大表示502には、トリミング枠503で囲まれた領域を拡大表示する。
トリミング枠503は操作部70の十字キーにより位置を変更でき、トリミング枠503の移動、縦横変更、サイズ変更に応じて、トリミング領域拡大表示502も切り替わる。また、操作ガイダンス504として、操作部70の表示切替ボタンにトリミング枠縦横変更、ズームレバーにトリミング枠サイズ変更、メニューボタンにキャンセル、決定ボタンにトリミング実行が割り当てられていることがガイダンス表示される。
図5(b)は、表示切替ボタンによりトリミング枠503を縦に変更したときの表示、図5(c)は、ズームレバーによりトリミング枠503のサイズを大きくしたときの表示である。
図4に戻り、トリミング操作画面に入ると、撮像装置100はトリミング操作入力待ちとなり、ステップS409において、システム制御回路50は、ユーザによる操作入力があるかどうかをチェックする。何も入力がなければ入力があるまで現在の状態のまま待つ。何らかの操作入力があった場合、ステップS410へ進む。
ステップS410において、システム制御回路50は、当該操作入力が操作部70に含まれる十字キーの入力かどうかを判定する。操作入力が十字キーであった場合、ステップS411へ進み、トリミング枠位置をユーザの指示方向へ移動させる。ステップS411におけるトリミング枠位置の移動が完了すると、システム制御回路50は、ステップS409のトリミング操作入力待ちに戻る。
ステップS410で入力が十字キーではないと判定した場合、システム制御回路50は、ステップS412において、当該操作入力が表示切替ボタンかどうかを判定する。操作入力が表示切替ボタンであった場合、システム制御回路50は、ステップS413へ進み、トリミング枠の縦横を入れ替える。ステップS413におけるトリミング枠の縦横切替が完了すると、システム制御回路50は、ステップS409のトリミング操作入力待ちに戻る。
ステップS412で入力が表示切替ボタンではないと判定した場合、ステップS414において、システム制御回路50は、当該操作入力がズームレバーかどうかを判定する。操作入力がズームレバーであった場合、システム制御回路50は、ステップS415へ進み、ユーザの指示に従いトリミング枠のサイズを変更する。ステップS415におけるトリミング枠のサイズ変更が完了すると、システム制御回路50は、ステップS409のトリミング操作入力待ちに戻る。
ステップS414で入力がズームレバーではないと判定した場合、ステップS416において、システム制御回路50は、当該操作入力がメニューボタンかどうかを判定する。操作入力がメニューボタンであった場合、ステップS427において、システム制御回路50は、画像表示部28に表示している、トリミング操作画面及びトリミングガイダンスを消去し、トリミング画像選択画面に戻り、ステップS401で入力待ちとなる。
ステップS416で入力がメニューボタンではないと判定された場合、ステップS417において、システム制御回路50は、当該操作入力が決定ボタンかどうかを判定する。操作入力が決定ボタンであった場合、ステップS418において、システム制御回路50は、メモリ30に格納されている伸長済みの対象画像に対して顔検出処理を行う。顔検出処理では、顔画像、顔の有無、顔の個数、それぞれの顔のサイズ(幅・高さ)や位置座標、信頼性係数といった顔情報が得られる。なお、このような複数の情報を含む顔情報は、本発明でいう被写体に関する情報に対応するものである。この顔検出処理については図6を用いて後述する。
次に、ステップS419において、システム制御回路50は、メモリ30に格納されている伸長済みの対象画像を、画像処理回路20及びメモリ制御回路22を介して、或いは直接メモリ制御回路22を介して、トリミング枠の位置、サイズで切り出す。
次に、ステップS420において、システム制御回路50は、ステップS419で切り出された画像データを圧縮・伸長回路32により、画像圧縮処理を行い、メモリ制御回路22を介して、メモリ30に書き込む。
次に、ステップS421において、システム制御回路50は、ステップS418の顔検出処理で得られた顔情報を、切り出し位置、サイズに応じてトリミング後の画像における顔情報に変換する。
次に、ステップS422において、システム制御回路50は、ステップS420の圧縮処理でメモリ30に格納された圧縮済みの画像をヘッダ情報等を付加し画像ファイルとして整形し、記録媒体200に記録する。このときにステップS421で得られた顔情報も関連付けして一緒に記録する。顔情報は画像のヘッダ領域にヘッダ情報として記録しても、別ファイルとして記録してもよい。
以上の一連のトリミング処理が完了したら、ステップS427において、システム制御回路50は、画像表示部28に表示しているトリミング操作画面及びトリミングガイダンスを消去し、トリミング画像選択画面に戻りステップS401で入力待ちとなる。
一方、ステップS417で入力が決定ボタンではないと判定された場合は、システム制御回路50は、ステップS424に進む。ステップS424において、システム制御回路50は、上記以外の操作入力に応じた処理を行う。ステップS424における操作入力に応じた処理を終えると、システム制御回路50は、ステップS409のトリミング操作入力待ちに戻る。また、ステップS408で入力が決定ボタンではないと判定された場合、システム制御回路50は、ステップS425に進む。ステップS425において、システム制御回路50は、上記以外の操作入力に応じた処理を行う。ステップS425における操作入力に応じた処理を終えると、システム制御回路50は、ステップS401の入力待ちに戻る。
このように、本実施の形態に係る撮像装置100では、トリミング後の圧縮により画像データの劣化が生じる前に顔検出を実施し、検出の結果得られた顔情報をトリミング後の画像の顔情報として記録するようにする。これにより、画像データの劣化の影響により、トリミング後の画像において顔が多少の変化をする等して、顔情報が検出できなくなっても、記録しておいた顔情報を利用して赤目補正等の処理を行うことが可能となる。
<顔検出処理>
図6は、図4のステップS418における顔検出処理の動作を説明するフローチャートである。
ステップS601において、システム制御回路50は、顔検出対象の画像データを画像処理回路20に送る。
次に、ステップS602において、システム制御回路50の制御下で画像処理回路20は、当該画像データに水平方向バンドパスフィルタ(水平BPF)を作用させる。また、ステップS603において、システム制御回路50の制御下で画像処理回路20は、ステップS602で処理された画像データに垂直方向バンドパスフィルタ(垂直BPF)を作用させる。これら水平及び垂直方向のバンドパスフィルタにより、画像データよりエッジ成分が検出される。
次に、ステップS604において、システム制御回路50は、検出されたエッジ成分に関してパターンマッチングを行い、目及び鼻、口、耳の候補群を抽出する。なお、候補群の抽出に際しては、予め登録されている目等の特徴情報に基づき、抽出するようにする。
次に、ステップS605において、システム制御回路50は、ステップS604で抽出された目の候補群の中から、予め設定された条件(例えば2つの目の距離、傾き等)を満たすものを、目の対と判断し、目の対があるもののみ、目の候補群として絞り込む。
次に、ステップS606において、システム制御回路50は、ステップS605で絞り込まれた目の候補群とそれに対応する顔を形成する他のパーツ(鼻、口、耳)を対応付け、また、予め設定した非顔条件フィルタを通すことで、顔を検出する。
そして、ステップS607において、システム制御回路50は、ステップS606による顔の検出結果に応じて上記で説明した複数の情報を含む顔情報を出力し、処理を終了する。このとき、顔の数等の特徴量をメモリ52に記憶する。なお、顔検出処理は、本発明でいう被写体検出手段による処理に対応する。
<リサイズモード処理>
図7は、図3のステップS318のリサイズモードの動作を説明するフローチャートである。
リサイズモードに入ると、リサイズ画像選択画面を表示し、撮像装置100は入力待ちとなり、ステップS701において、システム制御回路50がユーザによる操作入力があるかどうかをチェックする。ここでいう操作入力とは、ユーザによるボタン、電池蓋に対する操作や、電源の低下等を知らせるイベント等が含まれる。何も入力がなければ入力があるまで現在の状態のまま待つ。何らかの操作入力があった場合、ステップS702へ進む。
ステップS702において、システム制御回路50は、当該操作入力が操作部70に含まれる画像送りボタンの入力かどうかを判定する。操作入力が画像送りボタンであった場合、ステップS703へ進み、システム制御回路50は、記録媒体200から次の画像ファイルを読み込みメモリ30に記憶する。画像送りのボタンは送り方向に応じた一対のボタンで構成されており、操作されたボタンに対応する送り方向に応じて次の画像が読み込まれることになる。
次に、ステップS704において、システム制御回路50は、ステップS703でメモリ30に読み込んである次の画像ファイルに対してファイル解析処理を行い、次の画像ファイルにおける画像の撮影情報や属性情報等を取得する。
次に、ステップS705において、システム制御回路50は、メモリ30に読み込んである次の画像ファイルの画像データを圧縮・伸長回路32により、画像伸長処理を行いメモリ30に書き込む。
次に、ステップS706において、システム制御回路50は、メモリ30にある伸長処理済みの次の画像の表示を行う。画像の表示はステップS307と同様の処理である。ステップS706における画像の表示が完了するとステップS701の入力待ちに戻る。
ステップS702で入力が画像送りボタンではないと判定された場合、ステップS707において、システム制御回路50は、当該操作入力がメニューボタンかどうかを判定する。メニューボタンであると判定された場合、システム制御回路50は、リサイズモードを終了して元の処理に戻る。ステップS707で入力がメニューボタンではないと判定された場合、ステップS708において、システム制御回路50は、当該操作入力が決定ボタンかどうかを判定する。
ステップS708で決定ボタンであると判定された場合、ステップS720において、システム制御回路50は、画像表示部28の表示をリサイズ操作画面に切り替えて、リサイズガイダンスも一緒に表示し、ステップS709に進む。ステップS720において表示するリサイズ操作画面については、図8を用いて説明する。
図8は、図7のリサイズモードにおけるリサイズ操作画面の画像表示部28における表示例を示す図である。リサイズ操作画面では、選択中の画像とともに、記録サイズ選択メニュー801と操作ガイダンス802とが表示される。操作部70の十字キーにより、記録サイズ選択メニュー801の選択項目を変更し、記録サイズが変更できる(枠804により)。また、操作部70のメニューボタンにキャンセルが決定ボタンにリサイズ実行が割り当てられていることがガイダンス表示される。
図7に戻り、リサイズ操作画面に入ると、撮像装置100はリサイズ操作入力待ちとなり、ステップS709において、システム制御回路50は、ユーザによる操作入力があるかどうかをチェックする。何も入力がなければ入力があるまで現在の状態のまま待つ。何らかの操作入力があった場合、ステップS710へ進む。
ステップS710において、システム制御回路50は、当該操作入力が操作部70に含まれる十字キーの入力かどうかを判定する。操作入力が十字キーであった場合、ステップS711へ進み、リサイズ後の記録サイズをユーザの指示に従い変更する。ステップS711における記録サイズの変更が完了するとステップS709のリサイズ操作入力待ちに戻る。
ステップS710で入力が十字キーではないと判定された場合、ステップS712において、システム制御回路50は、当該操作入力がメニューボタンかどうかを判定する。操作入力がメニューボタンであった場合、ステップS721において、システム制御回路50は、画像表示部28に表示している、リサイズ操作画面及びリサイズガイダンスを消去し、リサイズ画像選択画面に戻り、ステップS701で入力待ちとなる。
ステップS712で入力がメニューボタンではないと判定された場合、ステップS713において、システム制御回路50は、当該操作入力が決定ボタンかどうかを判定する。操作入力が決定ボタンであった場合、ステップS714において、システム制御回路50は、メモリ30に格納されている伸長済みの対象画像に対して顔検出処理を行う。顔検出処理では、顔画像、顔の有無、顔の個数、それぞれの顔のサイズ(幅・高さ)や位置座標、信頼性係数といった顔情報が得られる。この顔検出処理は、前述の図6のような処理を行う。
次に、ステップS715において、システム制御回路50は、メモリ30に格納されている伸長済みの対象画像を、画像処理回路20を用いて設定されているリサイズ後の記録サイズへ変倍する。変倍処理は、画像データサイズと設定されている記録サイズとを比較し、画像データサイズの方が小さければ拡大処理となり、画像データサイズの方が大きければ縮小処理となる。
次に、ステップS716において、システム制御回路50は、ステップS715で変倍された画像データを圧縮・伸長回路32により、画像圧縮処理を行い、メモリ制御回路22を介して、メモリ30に書き込む。
次に、ステップS717において、システム制御回路50は、ステップS716の画像圧縮処理でメモリ30に格納された圧縮済みの画像をヘッダ情報等を付加し画像ファイルとして整形し、記録媒体200に記録する。このときにステップS714で得られた顔情報も一緒に記録する。顔情報は画像のヘッダ領域にヘッダ情報として記録しても、別ファイルとして記録してもよい。
以上の一連のリサイズ処理が完了したら、ステップS721において、システム制御回路50は、画像表示部28に表示しているリサイズ操作画面及びリサイズガイダンスを消去し、リサイズ画像選択画面に戻り、ステップS701で入力待ちとなる。
一方、ステップS713で入力が決定ボタンではないと判定された場合、システム制御回路50は、ステップS718に進む。ステップS718では、上記以外の操作入力に応じた処理を行う。ステップS718における操作入力に応じた処理を終えるとステップS709のリサイズ操作入力待ちに戻る。また、ステップS708で入力が決定ボタンではないと判定された場合、システム制御回路50は、ステップS719に進む。ステップS719では、上記以外の操作入力に応じた処理を行う。ステップS719における操作入力に応じた処理を終えるとステップS701の入力待ちに戻る。
このように、本実施の形態に係る撮像装置100では、リサイズ後の圧縮により画像データの劣化が生じる前に顔検出を実施し、検出の結果得られた顔情報をリサイズ後の画像の顔情報として記録するようにする。これにより、画像データの劣化の影響により、リサイズ後の画像において顔情報が検出できなくなっても、記録しておいた顔情報を利用して赤目補正等の処理を行うことが可能となる。
<赤目補正モード処理>
図9は、図3のステップS320の赤目補正モードの動作を説明するフローチャートである。
赤目補正モードに入ると、赤目補正画像選択画面を表示し、撮像装置100は入力待ちとなり、ステップS901において、システム制御回路50がユーザによる操作入力があるかどうかをチェックする。ここでいう操作入力とは、ユーザによるボタン、電池蓋に対する操作や、電源の低下等を知らせるイベント等が含まれる。何も入力がなければ入力があるまで現在の状態のまま待つ。何らかの操作入力があった場合、ステップS902へ進む。
ステップS902において、システム制御回路50は、当該操作入力が操作部70に含まれる画像送りボタンの入力かどうかを判定する。操作入力が画像送りボタンであった場合、ステップS903へ進み、システム制御回路50は、記録媒体200から次の画像ファイルを読み込みメモリ30に記憶する。画像送りのボタンは送り方向に応じた一対のボタンで構成されており、操作されたボタンに対応する送り方向に応じて次の画像が読み込まれることになる。
次に、ステップS904において、システム制御回路50は、ステップS903でメモリ30に読み込んである次の画像ファイルに対してファイル解析処理を行い、次の画像ファイルにおける画像の撮影情報や属性情報等を取得する。
次に、ステップS905において、システム制御回路50は、メモリ30に読み込んである次の画像ファイルの画像データを圧縮・伸長回路32により、画像伸長処理を行いメモリ30に書き込む。
次に、ステップS906において、システム制御回路50は、メモリ30にある伸長処理済みの次の画像の表示を行う。画像の表示はステップS307と同様の処理である。ステップS906における画像の表示が完了すると、システム制御回路50は、ステップS901の入力待ちに戻る。
ステップS902で入力が画像送りボタンではないと判定された場合、ステップS907において、システム制御回路50は、当該操作入力がメニューボタンかどうかを判定する。メニューボタンであると判定された場合、システム制御回路50は、赤目補正モードを終了して元の処理に戻る。ステップS907で入力がメニューボタンではないと判定された場合、ステップS908において、システム制御回路50は、当該操作入力が決定ボタンかどうかを判定する。
ステップS908で決定ボタンであると判定された場合、ステップS909において、システム制御回路50は、画像表示部28に表示中の画像ファイルがすでにトリミング、リサイズ、色変換、明るさ補正等の画像処理を実施済みかどうかを判定する。まだ画像処理未実施であると判定された場合、ステップS910において、システム制御回路50は、メモリ30に格納されている伸長済みの対象画像に対して顔検出処理を行う。顔検出処理では、顔画像、顔の有無、顔の個数、それぞれの顔のサイズ(幅・高さ)や位置座標、信頼性係数といった顔情報が得られ、メモリ52に記憶される。この顔検出処理は、前述の図6のような処理を行う。また、すでに画像処理実施済みであると判定された場合、ステップS911において、システム制御回路50は、画像表示部28に表示中の画像ファイルに記録されていた顔情報を読み出しメモリ52に記憶する。
ステップS910の顔検出処理又はステップS911の顔情報の取得が完了したら、ステップS912において、システム制御回路50は、画像表示部28の表示を赤目補正操作画面に切り替えて、赤目補正メニューも一緒に表示し、ステップS925に進む。また、赤目補正操作画面では、メモリ52に記憶されている、ステップS910の顔検出処理で得られた顔情報又はステップS911で読み出した記録されていた顔情報を元に、目と思われる領域に自動で補正枠を表示する。ステップS912において表示する赤目補正操作画面については、図10を用いて説明する。
図10は、図9の赤目補正モードにおける赤目補正操作画面の画像表示部28の表示例である。赤目補正操作画面では、選択中の画像とあわせて、赤目補正枠1001と赤目補正メニュー1002が表示される。操作部70の十字キーにより、赤目補正メニュー1002の所望の項目を選択し(枠1003により)、決定ボタンでそれぞれ補正実行、補正キャンセル、補正枠の追加、補正枠の削除が行える。
図9に戻り、赤目補正操作画面に入ると、撮像装置100は赤目補正操作入力待ちとなり、ステップS925において、システム制御回路50がユーザによる操作入力があるかどうかをチェックする。何も入力がなければ入力があるまで現在の状態のまま待つ。何らかの操作入力があった場合、ステップS913へ進む。
ステップS913において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、補正枠追加が選択されたかどうかを判定する。補正枠追加の選択と判定した場合はステップS914へ進み、システム制御回路50は、赤目補正枠追加処理を行う。赤目補正枠追加処理では、ユーザが所望の位置に所望のサイズの補正枠を追加できる。赤目補正枠追加処理を終えると、ステップS925の赤目補正操作入力待ちに戻る。
ステップS913で補正枠追加が選択されなかった場合、システム制御回路50は、ステップS915に進む。ステップS915において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、補正枠削除が選択されたかどうかを判定する。補正枠削除の選択と判定した場合はステップS916へ進み、システム制御回路50は、赤目補正枠削除処理を行う。赤目補正枠削除処理では、ユーザが不要な補正枠を削除できる。赤目補正枠削除処理を終えると、ステップS925の赤目補正操作入力待ちに戻る。
ステップS915で補正枠削除が選択されなかった場合、システム制御回路50は、ステップS917に進む。ステップS917において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、補正キャンセルが選択されたかどうかを判定する。補正キャンセルの選択と判定した場合はステップS923に進む。ステップS923において、システム制御回路50は、画像表示部28に表示している赤目補正操作画面及び赤目補正メニューを消去し、赤目補正画像選択画面に戻り、ステップS901で入力待ちとなる。
ステップS917で補正キャンセルが選択されなかった場合、システム制御回路50は、ステップS918に進む。ステップS918において、システム制御回路50は、操作部70に含まれる十字キーと決定ボタンの操作により、補正実行が選択されたら、ステップS920に進む。
ステップS920において、システム制御回路50は、メモリ30に格納されている画像データに対して、設定されている補正枠内の赤目を検索し黒目に補正する赤目補正処理を行う。
次に、ステップS921において、システム制御回路50は、メモリ30に格納されている赤目補正済みの画像データを圧縮・伸長回路32により、画像圧縮処理を行い、メモリ制御回路22を介して、メモリ30に書き込む。
次に、ステップS922において、システム制御回路50は、ステップS921の画像圧縮処理でメモリ30に格納された圧縮済みの画像をヘッダ情報等を付加し画像ファイルとして整形し、記録媒体200に記録する。このときにステップS910の顔検出処理で得られた顔情報又はステップS911で取得した記録されていた顔情報を赤目補正を行った画像ファイルの顔情報として一緒に記録する。顔情報は画像のヘッダ領域にヘッダ情報として記録しても、別ファイルとして記録してもよい。
以上の一連の赤目補正処理が完了したら、ステップS923において、システム制御回路50は、画像表示部28に表示している赤目補正操作画面及び赤目補正メニューを消去し、赤目補正画像選択画面に戻り、ステップS901で入力待ちとなる。
一方、ステップS918で補正実行が選択されなかったら、システム制御回路50は、ステップS919に進む。ステップS919では、上記以外の赤目補正操作入力に応じた処理を行う。ステップS919における操作入力に応じた処理を終えるとステップS925の赤目補正操作入力待ちに戻る。また、ステップS908で入力が決定ボタンではないと判定された場合、システム制御回路50は、ステップS924に進む。ステップS924では、上記以外の操作入力に応じた処理を行う。ステップS924における操作入力に応じた処理を終えると、システム制御回路50は、ステップS901の入力待ちに戻る。
このように本実施の形態の撮像装置100では画像の劣化が生じる画像処理が実施されていなかったら、赤目補正後の圧縮により画像データの劣化が生じる前に、顔検出を実施し、検出の結果得られた顔情報を赤目補正後の画像の顔情報として記録するようにした。これにより、画像データの劣化の影響により、赤目補正後の画像において顔情報が検出できなくなっても、記録しておいた顔情報を利用した処理を行うことが可能となる。また、画像の劣化が生じる画像処理がすでに実施されていたとしても、画像処理による画質劣化が生じる前に検出した顔情報を読み出して利用することができるため、画像処理済みの画像に対しても、赤目補正処理を行うことが可能となる。
なお、本発明に係る画像処理装置は、撮像装置に適用するだけでなく、パーソナルコンピュータ等においても適用可能である。また、画像処理装置としてプリンタ装置や画像ビューアー等においても適用可能である。また、本実施の形態では、具体的な画像処理として、トリミング、リサイズ、赤目補正を挙げたが、他の処理でもよい。例えば色変換、明るさ補正等の画像処理を、図4或いは図7と同様の手順で行うことで、画像データの劣化の影響により、処理後の画像において顔情報が検出できなくなっても、顔情報を利用して赤目補正等の処理を行うことが可能となる。
また、本発明を実現するために、上述した実施形態の機能を実現するソフトウェアのプログラムコード(コンピュータプログラム)を記録した記憶媒体を用いても良い。この場合には記憶媒体をシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによって本発明の目的が達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)等が実際の処理の一部又は全部を行う場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれてもよい。この場合には、書き込まれたプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行ってもよい。