以下、本発明の実施の形態について図面を参照しながら詳述する。
[第1の実施の形態]
図1は、本発明の実施の形態に係る画像処理装置の一例としてのデジタルカメラ100の外観図を示す図である。
図1において、表示部102は画像や各種情報を表示する表示部(表示手段)であり、指である操作子により操作される表示アイテムを表示する。この表示アイテムの詳細については後述する。シャッターボタン103は、撮影指示を行うための操作部である。電源スイッチ104は、撮影モードでの電源オン、再生モードでの電源オン、電源オフを切り替える。操作入力用撮像部L、及び操作入力用撮像部Rは、デジタルカメラ100を操作する指の位置、動作等を撮影するための撮像部である。そして、操作入力用撮像部L、及び操作入力用撮像部Rは、表示部102の上部に一定の間隔を空けて配置されている。記録媒体107はメモリカードやハードディスク等の記録媒体であり、デジタルカメラ100の本体から着脱可能な構成となっている。
図2は、図1におけるデジタルカメラ100の構成例を示すブロック図である。
図2において、撮影レンズ209はフォーカスレンズを含む。シャッター210は絞り機能を備える。撮像部211は光学像を電気信号に変換するCCDやCMOS素子等で構成される。A/D変換器212は、アナログ信号をデジタル信号に変換する。また、A/D変換器212は、撮像部211から出力されるアナログ信号をデジタル信号に変換するために用いられる。バリア208は、デジタルカメラ100の撮影レンズ209を含む撮像部を覆うことにより、撮影レンズ209、シャッター210、撮像部211を含む撮像系の汚れや破損を防止する。
画像処理部213は、A/D変換器212からのデータ、又は、メモリ制御部215からのデータに対し所定の画素補間、縮小といったリサイズ処理や色変換処理を行う。また、画像処理部213では、撮像した画像データを用いて所定の演算処理が行われ、得られた演算結果に基づいてシステム制御部221が露光制御、測距制御を行う。
これにより、TTL(スルー・ザ・レンズ)方式のAF(オートフォーカス)処理、AE(自動露出)処理、EF(フラッシュプリ発光)処理が行われる。画像処理部213では更に、撮像した画像データを用いて所定の演算処理を行い、得られた演算結果に基づいてTTL方式のAWB(オートホワイトバランス)処理も行っている。
A/D変換器212からの出力データは、画像処理部213及びメモリ制御部215を介して、或いは、メモリ制御部215を介してメモリ219に直接書き込まれる。メモリ219は、撮像部211によって得られA/D変換器212によりデジタルデータに変換された画像データや、表示部102に表示するための画像データを格納する。
メモリ219は、所定枚数の静止画像や所定時間の動画像および音声を格納するのに十分な記憶容量を備えている。
また、メモリ219は画像表示用のメモリ(ビデオメモリ)を兼ねている。D/A変換器218は、メモリ219に格納されている画像表示用のデータをアナログ信号に変換して表示部102に供給する。
こうして、メモリ219に書き込まれた表示用の画像データはD/A変換器218を介して表示部102により表示される。表示部102は、LCD等の表示器上に、D/A変換器218からのアナログ信号に応じた表示を行う。
不揮発性メモリ226は、電気的に消去・記録可能なメモリであり、例えばEEPROM等が用いられる。不揮発性メモリ226には、システム制御部221の動作用の定数、プログラム等が記憶される。ここでいう、プログラムとは、本実施の形態にて後述する各種フローチャートを実行するためのプログラムのことである。
システム制御部221は、デジタルカメラ100全体を制御する。前述した不揮発性メモリ226に記録されたプログラムを実行することで、後述する本実施の形態の各処理を実現する。
システムメモリ227は、本実施の形態ではRAMが用いられている。システムメモリ227には、システム制御部221の動作用の定数、変数、不揮発性メモリ226から読み出したプログラム等を展開する。また、システム制御部はメモリ219、D/A変換器218、表示部102等を制御することにより表示制御も行う。
シャッターボタン103は、第1シャッタースイッチ、第2シャッタースイッチを備えており、システム制御部221に各種の動作指示を入力するための操作手段である。
第1シャッタースイッチは、デジタルカメラ100に設けられたシャッターボタン103の操作途中、いわゆる半押し(撮影準備指示)でONとなり第1シャッタースイッチ信号SW1を発生する。第1シャッタースイッチ信号SW1により、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の動作を開始する。
第2シャッタースイッチは、シャッターボタン103の操作完了、いわゆる全押し(撮影指示)でONとなり、第2シャッタースイッチ信号SW2を発生する。システム制御部221は、第2シャッタースイッチ信号SW2により、撮像部211からの信号読み出しから記録媒体107に画像データを書き込むまでの一連の撮影処理の動作を開始する。
電源制御部224は、電池検出回路、DC−DCコンバータ、通電するブロックを切り替えるスイッチ回路等により構成され、電池の装着の有無、電池の種類、電池残量の検出を行う。また、電源制御部224は、その検出結果及びシステム制御部221の指示に基づいてDC−DCコンバータを制御し、必要な電圧を必要な期間、記録媒体107を含む各部へ供給する。
電源部225は、アルカリ電池やリチウム電池等の一次電池やNiCd電池やNiMH電池、Li電池等の二次電池、ACアダプター等からなる。I/F220(以下、インターフェースという)はメモリカードやハードディスク等の記録媒体107とのインターフェースである。記録媒体107は、メモリカード等の記録媒体であり、半導体メモリや磁気ディスク等から構成される。
その他の操作部として、表示部102に対する接触を検知可能なタッチパネル223を有する。タッチパネル223は表示部102と一体化して形成されている。タッチパネル制御部222は、指が表示部102(タッチパネル223)に接触することにより操作した操作内容を認識する第2認識手段に対応し、具体的にはタッチパネル223への以下の操作を検出できる。タッチパネルを指やペンで触れたこと(以下、タッチダウンという)。タッチパネルを指やペンで触れている状態であること(以下、タッチオンという)。タッチパネルを指やペンで触れたまま移動していること(以下、ムーブという)。タッチパネルへ触れていた指やペンを離したこと(以下、タッチアップという)。
タッチパネルに何も触れていない状態(以下、タッチオフという)。これらの操作や、タッチパネル上に指やペンが触れている位置座標はタッチパネル制御部222からシステム制御部221に通知され、システム制御部221は通知された情報に基づいてタッチパネル上にどのような操作が行なわれたかを判定する。
ムーブについてはタッチパネル上で移動する指やペンの移動方向についても、位置座標の変化に基づいて、タッチパネル上の垂直成分・水平成分毎に判定できる。またタッチパネル上をタッチダウンから一定のムーブを経てタッチアップをしたとき、ストロークを描いたこととする。素早くストロークを描く操作をフリックと呼ぶ。
フリックは、タッチパネル上に指を触れたままある程度の距離だけ素早く動かして、そのまま離すといった操作であり、言い換えればタッチパネル上を指ではじくように素早くなぞる操作である。所定距離以上を、所定速度以上でムーブしたことが検出され、そのままタッチアップが検出されるとフリックが行なわれたと判定できる。
また、所定距離以上を、所定速度未満でムーブしたことが検出された場合はドラッグが行なわれたと判定するものとする。
操作入力用撮像部L、及び操作入力用撮像部は、操作者の指などの操作子を撮像するためのものである。操作入力用撮像部Lと操作入力用撮像部Rとで撮像された操作子画像データは画像処理部213及びメモリ制御部215を介して、或いは、メモリ制御部215を介してメモリ219に直接書き込まれる。
距離・位置検出部216は、指と表示部102との距離を導出する導出手段である。この距離・位置検出部216は、操作子画像データから操作子である操作者の指を検出し、表示部102から指までの距離と、表示部102の表示画面の領域に対する指の位置を検出してシステム制御部221に通知する。システム制御部221は、表示部102から指までの距離や表示部102の領域に対する指の位置に応じて、表示部102に表示する形態を変えるよう制御している。
非接触操作検出部217は連続的に取得した複数の操作子画像データから、操作子である操作者の指の位置の一定間隔ごとの変化量を演算することによって、指の動きを検出してシステム制御部221に通知する。従って、非接触操作検出部217は、指が表示部102に接触することなく操作した操作内容を認識する第1認識手段に対応する。
システム制御部221は、操作者の指が表示部102に触れていない状態での、指の動きの軌跡を基にしてデジタルカメラ100に対する操作指示を認識して、認識した操作指示に基づいてデジタルカメラ100全体を制御している。
表示画像生成部214は、表示部102に表示する表示データを生成する。システム制御部221が距離・位置検出部216を制御することによって、操作入力用撮像部Lと操作入力用撮像部Rとで撮像された操作子画像データから操作子である操作者の指を検出する。
図3は、表示部102から指までの距離と、表示部102の表示画面の領域に対する指の位置を検出する原理を説明するための図である。
図3において、xyz空間を想定したときに、操作入力用撮像部Lと操作入力用撮像部Rの仮想的な視点位置となる中心位置PL、PRがいずれもxz平面上にあるものとする。また、操作入力用撮像部Lと操作入力用撮像部RのCCD等の撮像面301、302が、いずれもxy平面上にあるものとする。
操作者の指がPの位置にあるときの、操作入力用撮像部Lと操作入力用撮像部Rの仮想的な視点位置PL、PRとPを結ぶ直線と、撮像面との交点の3次元座標をそれぞれQL、QRとする。この交点の撮像面上の2次元座標を、それぞれ(xL,yL)、(xR,yR)、操作入力用撮像部Lと6の操作入力用撮像部Rの視点位置間の距離を2w、視点位置PL、PRから撮像面までの距離をdとする。
また、x軸方向の単位ベクトルをi、y軸方向の単位ベクトルをj、z軸方向の単位ベクトルをkとする。この場合、次の式が成立する。
PL=−wi−dk
PR=wi−dk
QL=(xL−w)i+yLj
QR=(xR+w)i+yRj
PLとQLを結ぶ直線と、PRとQRを結ぶ直線は、Pで交差するため、次式が成立する。
P=PL+m(QL−PL)=PR+n(QR−PR)
この式をm,nに関して解くと、次式が得られる。
m=n=2w/(xL−xR)
その結果、xy平面上での指の位置Pxyは、次式により求めることができる。
Pxy=(mxL−w)i+myLj
また、表示部102から指までの距離Pzは、次式により求めることができる。
Pz=(m−1)d
本実施の形態では、上記式より表示部102から指までの距離を求めるようになっている。
次いで表示部102について説明する。表示部102は、裸眼立体視が可能な液晶ディスプレイにより構成される。裸眼立体視が可能な表示部102は、例えばパララックスバリア(視差バリア)方式、レンチキュラー方式など、視線の視差分割方式を利用して実現してもよいし、DFD(Depth Focus 3D)方式を利用して実現してもよい。
図4(A)は、視差バリア方式における構成を示し、(B)は、レンチキュラー方式における構成を示す図である。
図4(A)において、視差バリア方式の場合、表示部102は、TFT液晶で構成された画素列の横方向に交互に左眼用画素領域401Lおよび、右眼用画素領域401Rが設定される。この図において、観測者の右眼404、観測者の左眼403とする。画素列の前面に設置され、縦方向のスリットで構成された視差バリア402により、左眼用画素領域401Lからの光が左眼403だけに到達する。そしてかつ右眼用画素領域401Rからの光が右眼404だけに到達するように構成される。
視差バリア402は、電子制御可能なスイッチ液晶により構成されてもよい。また視差バリア402は、画素列の背後でかつ光源の手前側に設定されてもよい。
図4(B)において、レンチキュラー方式の場合には、表示部102は、画面の横方向に交互に左眼用画素領域405Lおよび右眼用画素領域405Rが設定される。そして、かまぼこ状のレンチキュラーレンズ406により左眼用画素領域405Lからの光が左眼だけに到達し、かつ右眼用画素領域405Rからの光が右眼だけに到達するように構成される。このように視差分割方式では、人間の左右の目にそれぞれ異なる画像を映すことにより奥行き感を出すことができる。
また、DFD方式の場合、表示部102は2枚のTFT液晶を適当な間隔を空けて前後に配置し、2枚のTFT液晶に遠近に対応した明るさの割合の画像を表示する。具体的には、近くにある物体ほど、前部におかれたTFT液晶に表示する対応する画像部分の輝度を高くする。これにより前後のTFT液晶の間に連続的な奥行き感を出すことができる。
図5は、表示部102を視差分割方式を利用して実現した場合の、図2の表示画像生成部214の構成の一例を示した図である。
表示画像生成部214は、背景画像生成部501、右目用表示アイテム生成部502、左目用表示アイテム生成部503、2次元表示アイテム生成部504、立体視画像生成部505を含む。
背景画像生成部501は、メモリ制御部215を介してメモリ219から画像データを読み出して画像表示データを生成し、立体視画像生成部505に出力する。
右目用表示アイテム生成部502は、メモリ制御部215を介してメモリ219から立体視対応表示アイテムの右目用ビットマップデータを読み出して右目用表示データを生成し、立体視画像生成部505に出力する。
左目用表示アイテム生成部503は、メモリ制御部215を介してメモリ219から立体視対応表示アイテムの左目用ビットマップデータを読み出して左目用表示データを生成し、立体視画像生成部505に出力する。
ここで立体視対応表示アイテムとは、裸眼立体視が可能な液晶ディスプレイで表示したときに、奥行き感を出すよう構成された表示イメージである。例えば操作用のスイッチやボタン、ダイヤルやアイコンを、表示部102の表示領域から一定距離離れた空間上に仮想的に表現したものである。
本実施の形態のデジタルカメラ100では、操作者の指がタッチパネル223に非接触の状態での指の動きを認識して、この立体視対応表示アイテムに対する操作指示におきかえることでデジタルカメラ100を操作することができる。
2次元表示アイテム生成部504は、メモリ制御部215を介してメモリ219から2次元表示アイテム用のビットマップデータを読み出して2次元表示アイテム用表示データを生成し、立体視画像生成部505に出力する。
2次元表示アイテムとは、裸眼立体視が可能な液晶ディスプレイで表示したときに、奥行き感が出ないように構成された表示イメージである。または、奥行き感が立体視対応表示アイテムと比べて明らかに少なくなるように構成された表示イメージでもよい。
本実施の形態のデジタルカメラ100では、操作者が指を表示部102に表示された2次元表示アイテムに対して、タッチパネル223上でフリック操作したり、タッチダウン操作したりすることで操作指示を入力することができる。
立体視画像生成部505は、画像表示データ、右目用表示データ、左目用表示データ、2次元表示アイテム用表示データから立体視画像を生成して、メモリ制御部215を介してメモリ219に書き出す。
具体的には、画像表示データに、右目用表示データ、及び2次元表示アイテム用表示データを重ね合わせ、右目用立体視画像を生成する。また、画像表示データに、左目用表示データ、及び2次元表示アイテム用表示データを重ね合わせ、左目用立体視画像を生成する。
そして、立体視画像生成部505は、右目用立体視画像と左目用立体視画像を画面の縦方向に短冊領域に分割し、分割した右目用立体視画像と左目用立体視画像を画面の横方向に交互に配列して生成する。
このとき、画像データに対する右目用立体視画像と左目用立体視画像は、同一のものが生成され、この状態では操作者には平面表示された平面的な画像として見える。
2次元表示アイテムに対する右目用立体視画像と左目用立体視画像は、同一のものが生成され、この状態では操作者には平面的な表示アイテムとして見える。
また、立体視対応表示アイテムに対する右目用立体視画像と左目用立体視画像は視差を持っているため、操作者には立体的な表示アイテムとして見える。
本実施の形態のデジタルカメラ100では、画像データと、2次元表示アイテムと、立体視対応表示アイテムを表示するか、又は表示しないかを、それぞれ独立して制御することができる。
図6は、図2における非接触操作検出部217が、連続的に取得した複数の操作子画像データから、操作子である操作者の指の動きを検出する方法について説明するための図である。
図6において、(A)は、連続的に取得した複数の操作子画像データから操作子である操作者の指を検出して、その軌跡を算出する方法を説明したものである。図6(B)〜(E)は不揮発性メモリ226に記録された軌跡パターンを示している。
図6(A)において、非接触操作検出部は連続する2フレームの操作子画像データにおける画面上の小さな画素ブロック間での相関値を算出して、操作者の指の動きベクトルを算出する。
図6(A)では、一定時間間隔で算出した動きベクトルをV(t)、V(t+1)、V(t+2)、・・・、V(t+7)で示している。システム制御部221は、連続する複数のベクトルの集合を操作者の指の軌跡と認識する。
また、図6(B)〜(E)における軌跡パターン601〜604は不揮発性メモリ226に記録された軌跡パターンを示している。各々の軌跡パターン601〜604は立体対応表示アイテムに対する操作指示と対応づけられている。
例えばシステム制御部221は、V(t)〜V(t+3)のベクトルの集合を軌跡パターン601〜604とマッチングした結果、軌跡パターン601と一致すると判断する。その結果、システム制御部221は、軌跡パターン601に対応付けられた操作指示を実行する。
同様に、システム制御部221は、V(t+4)〜V(t+6)のベクトルの集合を軌跡パターン604と一致すると判断して、軌跡パターン604に対応付けられた操作指示を実行する。
図7は、図2におけるシステム制御部221が、記録媒体107に保存されている画像データを操作者の指示にしたがって表示部102に閲覧の目的で表示する再生モードにおいて、表示部102に表示する画面内容を示した図である。
図7(A)は、表示部102に、画像データから生成した画像表示データを表示した内容を示す表示702が表示された様子を示している。図7(B)は、立体視対応表示アイテムの輪郭704を画像表示データの表示702にオーバーラップ表示した様子を示している。図7(C)は、立体視対応表示アイテム705を画像表示データの表示702に上書きして表示した様子を示している。図7(D)は、操作指示を入力するための2次元表示アイテムを表示した様子を示している。
図7(A)において、操作者が指703をタッチパネル223上でフリック操作することで、操作指示を入力することができる。
操作者が表示702に対してフリックすると、システム制御部221は画像送りの操作指示が操作者によって指示されたと判断して、表示702を現在表示している画像データに対して撮影時刻がひとつ前、あるいはひとつ後の画像データの表示に更新する。
図7(B)において、立体視対応表示アイテムの輪郭704のみを表示するため、画像表示データの表示702を遮る領域を小さくすることができ、操作者による画像データの閲覧行為に対する妨げを軽減することができる。輪郭704は操作者には立体的な表示アイテムとして見える。
図7(C)において、立体視対応表示アイテム705は操作者には立体的な表示アイテムとして見える。撮影年月日708は立体視対応表示アイテム705の表示の一部で、表示する画像データの撮影年月日を示した表示である。矢印706,707は立体視対応表示アイテム705の表示の一部で、立体視対応表示アイテム705を操作者が操作するためのガイダンスを示す矢印の表示である。
操作者の指703が矢印706、又は707の方向に動いたことをシステム制御部221が認識して、図6の軌跡パターン601〜604と一致すると判断すると、日付を指定しての画像送りの操作指示が操作者によって指示されたと判断する。そして、画像データの撮影年月日を示した撮影年月日708の内容を、現在表示されている撮影年月日の以前の撮影日、あるいは以降の撮影日に変えるとともに、表示702を次の撮影年月日に対応する画像データの表示に更新する。
図7(D)において、操作者が2次元表示アイテム709をタッチダウンすると、システム制御部221は拡大指示が入力されたと判断して、表示702を画像データの一部分の領域を拡大したものとする。また、操作者が2次元表示アイテム710をタッチダウンすると、システム制御部221は表示702が示す画像データの削除指示が入力されたと判断する。
前述したとおり、本実施の形態のデジタルカメラ100のシステム制御部221は、表示部102から指までの距離に応じて、表示部102に表示する形態を変えるよう制御する。
図8は、デジタルカメラ100を表示部102の側から斜め方向から俯瞰した図である。
図8において、表示部102と操作者の指703までの距離に応じて表示をどのように制御するかを説明する。
表示部102と操作者の指703の距離をdxで表す。まず、システム制御部221は、dxがある決められた閾値であるd1(第1閾値)以下となったと判断すると、立体視対応表示アイテムを表示する。
このときさらに、操作者の指703が立体視対応表示アイテムに近接していると判断した場合、非接触での操作指示の入力を有効にする。すなわち、システム制御部221は、非接触操作検出部217が検出した操作者の指703の動きのデータの軌跡を基にしてデジタルカメラ100に対する操作指示を認識する。このとき、誤動作を防ぐためにタッチパネルの操作による操作指示の入力を無効にするよう制御する。
さらにdxが、d1より小さい閾値であるd2(第2閾値)以下となったと判断すると、システム制御部221は、立体視対応表示アイテムを消去して、2次元表示アイテムを表示する。すなわち、表示アイテムの表示態様を切り替える。また、このとき、システム制御部221は、非接触での操作指示の入力を無効にする。また、タッチパネルの操作による操作指示の入力を有効にするよう制御する。
図9は、第1の実施の形態において図2におけるシステム制御部221により実行される切り替え処理の手順を示すフローチャートである。
図9のフローチャートに示す処理は、システム制御部221により、システムメモリ227に読み出されたプログラムに基づいて実行される。操作者が電源スイッチ104を再生モードでの電源オンに切り替えることで、図9のフローチャートが開始される。
図9において、記録媒体107に保存されている画像データを読み出して、メモリ219に展開し、図7(A)に示すように、画像データから生成した画像表示データを表示部102に表示する(ステップS901)。
また、操作入力用撮像部Lと操作入力用撮像部Rを起動制御し、これらが撮影した操作子画像データに基づいて、距離・位置検出部216で検出される操作者の指と表示部102までの距離と、表示部102の領域に対する指の位置の検出動作を開始する。
次いで、操作者の指703と表示部102の距離がd1以下か否かを判別する(ステップS902)。ステップS902の判別の結果、指703が検知できないか、又は検知できても距離がd1以下と判別されたとき(ステップS902でNO)、ステップS903を繰り返す。
一方、距離がd1以下のとき(ステップS902でYES)、図7(B)に示すように、立体視対応表示アイテムの輪郭704を画像表示データの表示702にオーバーラップ表示する(ステップS903)。
立体視対応表示アイテムが輪郭で表示されている状態では、操作者はその立体視対応表示アイテムに対して操作指示を入力することはできない。しかし、操作者は、さらに指を近づけると立体視対応表示アイテムが操作可能になることを理解できる。また、どの位置に立体視対応表示アイテムが配置されるかを認識できるので、立体視対応表示アイテムを使って操作指示を入力する場合には、指703をどの位置に移動すればよいかが把握できる。
次いで、操作者の指703と表示部102の距離がd2以下か、又は操作者の指703が表示部102(タッチパネル223)に接触したかを判別する(ステップS904)。
ステップS904の判別の結果、否定判別したとき(ステップS904でNO)、指703と表示部102の距離がd1以上か否か判別する(ステップS906)。d1以上と判別されたとき(ステップS906でYES)、立体視対応表示アイテムの輪郭704の表示を消去して(ステップS907)、ステップS902に戻る。
一方、ステップS906の判別の結果、距離がd1未満と判別されたとき(ステップS906でNO)、指703が立体視対応表示アイテムの輪郭704に近接したか否かを判別する(ステップS908)。これは、距離・位置検出部216での表示部102の領域に対する指の位置の検出結果と立体視対応表示アイテムの表示位置の関係から判別できる。
ステップS908の判別の結果、指703が立体視対応表示アイテムの輪郭704に近接したと判別したとき(ステップS908でNO)、ステップS904に戻る。
一方、ステップS908の判別の結果、輪郭704に近接したとき(ステップS908でYES)、図7(C)に示すように、立体視対応表示アイテム705を画像表示データの表示702に上書きして表示する(ステップS909)。
この立体視対応表示アイテム705は操作者には立体的な表示アイテムとして見える。また、同時に、立体視対応表示アイテム705の表示の一部である、画像データの撮影年月日を示した撮影年月日708と、立体視対応表示アイテム705の操作のための矢印706,707を表示する。
その後、システム制御部221は非接触での操作指示の入力を有効にして、非接触操作検出部217での指の動きの検出動作を開始する。このとき、誤動作を防ぐためにタッチパネルの操作による操作指示の入力を無効にするよう制御する。立体視対応表示アイテム705を画像表示データの表示702の前面に表示することで、立体視対応表示アイテムを操作することによる非接触での操作指示の入力が有効であることを認識可能な表示を実現している。
上記ステップS909で、図7(B)の立体視対応表示アイテムの輪郭704をオーバーラップ表示した位置と同じ場所に、立体視対応表示アイテム705を表示することで、操作者はそのまま指703の位置をずらすことなく操作指示の入力が可能となる。
次いで、指703の動きの軌跡を基にして、立体視対応表示アイテム705に対する操作指示の入力の認識動作を行い、立体視対応表示アイテム705に対する操作があったか否かを判別する(ステップS913)。
ステップS913の判別の結果、立体視対応表示アイテムに対する操作があったとき(ステップS913でYES)、操作に従った処理を実行し(ステップS914)、ステップS913に戻る。
上記操作とは、上述したように、操作者の指703が矢印706、又は907の方向にある決められた軌跡で動いたことなどの操作である。その操作をシステム制御部221が認識すると、日付を指定しての画像送りの操作があったと判別する。
より具体的には、図7(C)の表示状態では、撮影年月日708を、現在表示されている撮影年月日の以前の撮影日、あるいは以降の撮影日に変えるとともに、表示702を次の撮影年月日に対応する画像データの表示に更新する。
一方、ステップS913の判別の結果、操作がなかったとき(ステップS913でNO)、指703と立体視対応表示アイテム705との近接が解除されたか否かを判別する(ステップS915)。これは、距離・位置検出部216での表示部102の領域に対する指の位置の検出結果と立体視対応表示アイテムの表示位置の関係から判別することができる。
ステップS915の判別の結果、近接が解除されていないとき(ステップS915でNO)、ステップS913に戻る。一方、近接が解除されたとき(ステップS915でYES)、立体視対応表示アイテム705を消去する。そして図7(B)に示すように、立体視対応表示アイテムの輪郭704を画像表示データの表示702にオーバーラップ表示して(ステップS916)、ステップS904に戻る。さらにこのとき、非接触での入力を無効にして、非接触操作検出部217での指の検出動作を停止する。また、ステップS909でタッチパネルの操作による操作指示の入力を無効にしていた場合、再び有効に戻すよう制御してもよい。
上記ステップS904の判別の結果、肯定判別したとき(ステップS904でYES)、輪郭704、又は立体視対応表示アイテム705の表示を消去して、2次元表示アイテム709,710を表示し(ステップS905)、図7(D)の表示に切り替る。
次いで、操作者によるタッチパネル操作を認識し、操作があったか否かを判別する(ステップS910)。ステップS910の判別の結果、タッチパネル操作があったとき(ステップS910でYES)、タッチパネルの操作に従って、画像データ、あるいは2次元表示アイテムに対する操作を実行する。より具体的には、操作者が表示702に対してフリックすると、システム制御部221は画像送りの操作指示が操作者によって指示されたと判断する。そして表示702を現在表示している画像データに対して撮影時刻がひとつ前、又はひとつ後の画像データの表示に更新する。或いは、操作者が2次元表示アイテム709、又は2次元表示アイテム710をタッチダウンすると、システム制御部221は、それぞれ拡大表示、削除の操作を実行する。
一方、ステップS910の判別の結果、タッチパネル操作がないとき(ステップS910でNO)、指703と表示部102の距離がd1以上か否か判別し、d1未満のとき(ステップS912でNO)、ステップS910に戻る。d1以上のとき(ステップS912でYES)、ステップS902に戻る。
上述した処理において、ステップS903,909が、表示部102に指703が接触することなく操作可能な表示アイテムを3次元表示するように表示部102を制御する第1表示制御手段に対応する。また、ステップS905が、表示部102に指703が接触することで操作可能な表示アイテムを2次元表示するように表示部102を制御する第2表示制御手段に対応する。また、ステップS903,909では、表示アイテムの視差像を生成することにより、表示アイテムを3次元表示するように表示部102を制御することには、図5で説明した通りである。
以上説明したように、本実施の形態によれば、操作者は立体視対応表示アイテムについては、指をタッチパネル223に接触させることなく、指の動きを認識させることで操作可能である。また、2次元表示アイテムについては、表示部102と一体化したタッチパネルに接触して操作可能なので、直感的な操作方法を実現できる。
また、操作者の指の位置に応じて、立体視対応表示アイテムを使っての操作と、2次元表示アイテムを使っての操作を切り替えるため、操作者にとって分かりやすい操作方法を実現できる。
さらに、操作子である操作者の指が表示部102からd1の距離以下に近づくと、立体視対応表示アイテムの輪郭を画像表示データの表示にオーバーラップして表示する。これにより操作者は、さらに指を近づけると立体視対応表示アイテムが操作可能になることを理解できるとともに、どの位置に立体視対応表示アイテムが配置されるかを認識できる。その結果、立体視対応表示アイテムを使って操作指示を入力する場合には、指をどの位置に移動すればよいかが把握できる。
また、指が立体視対応表示アイテムに近接すると、立体視対応表示アイテムを画像表示データの表示の前面に表示することで、立体視対応表示アイテムに対する操作指示の入力が有効であることを、操作者が認識可能に表示することができる。
さらに、操作子である操作者の指がさらに近接して、表示部102からd2の距離以下に近づくと、立体視対応表示アイテムを消去するので、2次元表示アイテムに対する操作や、表示している画像データに対する操作がしやすくなる。
上述した図9の処理によれば、表示部102に指703が接触することなく操作可能な表示アイテムを3次元表示するように表示部102を制御する(ステップS903,909)。そして、表示部102に指703が接触することで操作可能な表示アイテムを2次元表示するように表示部102を制御する。次いで指703が表示部102に接触することなく操作した操作内容を認識する(ステップS910)。また指703が表示部102に接触することにより操作した操作内容を認識する。この結果、立体表示した操作用の表示アイテムに対する操作と、2次元表示した操作用の表示アイテムに対する操作との違いが明確になるので、操作性を向上させることができる。
さらに、図9の処理によれば、指703と表示部102との距離が予め定められたd1以下(第1閾値以下)と導出されたときに、表示アイテムを3次元表示するように表示部102を制御する。また、距離がd1よりも小さいd2以下(第2閾値以下)と導出されたときに、3次元表示している表示アイテムを消去するように表示部102を制御する。これにより、立体表示した操作用の表示アイテムに対する操作と、2次元表示した操作用の表示アイテムに対する操作の操作性を向上させることができる。
なお、本実施の形態の説明では、操作入力用撮像部Lと操作入力用撮像部Rの2つの撮像部で撮像された操作子画像データから操作子である操作者の指を検出する。そして表示部102から指までの距離と、表示部102の表示画面の領域に対する指の位置を検出することとしている。しかし、どちらか一方の操作入力用撮像部で撮像された操作子画像データから操作者の指を検出して、その指の大きさの情報を基に、表示部102から指までの距離を算出するようにしてもよい。この場合、操作入力用撮像部を1つにすることができる。
また、本実施の形態の説明では、距離・位置検出部216が、操作入力用撮像部Lと操作入力用撮像部Rで撮像された操作子画像データから操作子である操作者の指を検出している。そして、表示部102から指までの距離と、表示部102の表示画面の領域に対する指の位置を検出することとしている。
しかし、特開2009−258903号公報に記載されているような、タッチパネル装置を使用して、複数電極結合を行って信号検出を行うようにしてもよい。これにより、操作者の指が表示部102に近接していることを検出し、さらに近接状態において表示部102の表示画面の領域に対する指の位置を検出するようにすることも可能である。
また指の位置を連続的に検出することによって指の動きを検出して、その軌跡を基にして、立体視対応表示アイテムに対する操作指示を認識することも可能である。この場合、操作入力用撮像部Lと操作入力用撮像部Rを不要とすることができる。
なお、図9のフローチャートでは、2次元表示アイテム709,710を、操作者の指703が表示部102からd2の距離以下に近づいたタイミングで表示している。しかし、ステップS901で画像表示データを表示部102に表示するタイミングで同時に表示してもよい。この場合、操作者が指を近づける動作をしなくても、操作者がタッチパネル操作で可能な操作を認識することができる。
また、図9のフローチャートでは、ステップS904で、システム制御部221は操作者の指703と表示部102の距離がd2以下に近接したか、又は操作者の指703がタッチパネル223に接触したか否かを判別する。そして肯定判別したとき、ステップS905に進み、システム制御部221は立体視対応表示アイテムの輪郭704、又は立体視対応表示アイテム705の表示を消去している。しかし、消去せずに、2次元表示アイテムや画像データに対する操作が優先的であることが識別可能な程度に、立体視対応表示アイテムを縮小して表示するなどしてもよい。この場合、タッチパネルに接触して操作が可能な状態であっても、非接触状態で操作可能な内容を操作者が認識することができる。
[第2の実施の形態]
第2の実施の形態では、表示部102は裸眼立体視が不可能で、2次元表示のみ可能な液晶ディスプレイで構成する場合について述べる。また、以下の説明では、第1の実施の形態と異なる構成のみを説明する。
図10は、表示部102を2次元表示のみ可能な液晶ディスプレイで実現した場合の、図2における表示画像生成部214の構成の一例を示す図である。
図10において、表示画像生成部214は、背景画像生成部1001、立体表示アイテム生成部1002、2次元表示アイテム生成部1003、表示画像合成部1004を含む。
背景画像生成部1001は、メモリ制御部215を介してメモリ219から画像データを読み出して画像表示データを生成し、表示画像合成部1004に出力する。
立体表示アイテム生成部1002は、メモリ制御部215を介してメモリ219から立体表示アイテム用のビットマップデータを読み出して立体表示アイテム用表示データを生成し、表示画像合成部1004に出力する。
ここで立体表示アイテムとは、立体物であると操作者が認識するように、2次元表示の液晶ディスプレイ上に表現された表示イメージであり、例えば操作用のスイッチやボタン、ダイヤルやアイコンを立体表示アイテムで表現する。
図11は、立体表示アイテムの表現方法を示す図であり、(A)〜(C)のいずれも直方体の表現方法を示す図である。
図11(A)は、直方体1101を表示したもので、直方体1101の稜線のうち、一方向から観測可能な線のみを表示することで、立体物として操作者が認識できる。
図11(B)は、ある光源のもとで直方体1102を観察したことを想定して、直方体1102の面の向きと光の照射方向に合わせて面に陰影を加える方法で表現したものである。稜線のみの表現より写実性が増すため、図11(A)の場合と比べて、より立体物として操作者が認識できる。
図11(C)は、図11(B)の立体物に陰影をつける方法に加えて、光源からの直射光が直方体1103により当たらない部分に生じる影1104をつける方法で表現したものである。写実性がさらに増すため、図11(B)の場合と比べて、より立体物として操作者が認識できる。
本実施の形態のデジタルカメラ100では、操作者の指の動きを認識させてこの立体表示アイテムを操作することで、操作指示を入力することができる。
図10の説明に戻り、2次元表示アイテム生成部1003は、メモリ制御部215を介してメモリ219から2次元表示アイテム用のビットマップデータを読み出して2次元表示アイテム用表示データを生成し、表示画像合成部1004に出力する。
2次元表示アイテムとは、2次元表示の液晶ディスプレイで表示したときに、奥行き感や立体感が出ないように構成された表示イメージである。或いは、奥行き感や立体感が、立体表示アイテムと比べて明らかに少なくなるように構成された表示イメージでもよい。
本実施の形態のデジタルカメラ100では、操作者が指703を表示部102に表示された2次元表示アイテムに対して、タッチパネル223上でフリック操作したり、タッチダウン操作したりすることで操作指示を入力することができる。
表示画像合成部1004は、画像表示データに、立体表示アイテム用表示データ、および2次元表示アイテム用表示データを重畳して、メモリ制御部215を介してメモリ219に書き出す。このとき、画像データと、2次元表示アイテムと、立体表示アイテムを表示するか否かを、それぞれ独立して制御できる。
図12は、第2の実施の形態において図2におけるシステム制御部221により実行される切り替え処理の手順を示すフローチャートである。
なお、図12のフローチャートは、図9で示したフローチャートで立体視対応表示アイテムを表示する代わりに、立体表示アイテムを表示する点以外は同様の処理であるため、その部分については説明を省略する。
図12において、ステップS1201、S1202は、図9のステップS901、S902と同様である。
図12において、操作者の指703と表示部102の距離がd1以下か否かを判別する(ステップS1202)。ステップS1202の判別の結果、指703が検知できないか、又は検知できても距離がd1以下と判別されたとき(ステップS1202でNO)、ステップS1203を繰り返す。
一方、距離がd1以下のとき(ステップS1202でYES)、図13(A)に示すように、立体表示アイテムの輪郭1301を画像表示データの表示702にオーバーラップ表示する(ステップS1203)。
図12のステップS1204〜S1208は、図9のステップS904〜S908と同様である。
ステップS1208の判別の結果、指703が輪郭1301に近接したとき(ステップS1208でYES)、図13(B)に示すように、立体表示アイテムの影1303を画像表示データの表示702に上書きして表示する(ステップS1209)。なお、ステップS1208では、距離・位置検出部216での表示部102の領域に対する指の位置の検出結果と輪郭の表示位置の関係から判別できる。
図12のステップS1210〜S1216は、図9のステップS910〜S916と同様である。
以上、表示部102が裸眼立体視が不可能で、2次元表示のみ可能な液晶ディスプレイで構成されていた場合でも、操作者は立体表示アイテムを表示部102に非接触で操作できる。さらに2次元表示アイテムは表示部102と一体化したタッチパネルに接触して操作するので、直感的な操作方法を実現できる。立体表示アイテムと、2次元表示アイテムの両方を使って操作可能な画像処理装置を実現できる。
また、操作者の指の位置に応じて、立体表示アイテムを使っての操作と、2次元表示アイテムを使っての操作を切り替えるため、操作者にとって分かりやすい操作方法を実現できる。
以上説明したように、本実施の形態によれば、立体表示した操作用の表示アイテムは表示部に非接触で操作し、2次元表示した操作用の表示アイテムは表示部に接触して操作するので、直感的に操作が可能になり操作性が向上する。
また、操作子の位置に応じて、立体表示された表示アイテムに対する操作と、2次元表示された表示アイテムに対する操作を切り替えるため、操作者にとって分かりやすい操作方法を実現できる。
さらに、操作子である操作者の指が画面に近づくと、立体表示された表示アイテムの表示を抑制しつつ、画像表示データの表示にオーバーラップして表示する。これによって操作者は、さらに指を近づけると立体表示された表示アイテムが操作可能になることを理解できる。また、どの位置に立体表示の表示アイテムが配置されるかを認識できるので、立体表示された表示アイテムを使って操作指示を入力する場合には、指をどの位置に移動すればよいかが把握できる。
また、指が立体表示された表示アイテムに近接すると、立体表示された表示アイテムを画像表示データの前面に表示することで、立体表示した表示アイテムに対する操作指示の入力が有効であることを、操作者が認識可能に表示することができる。
さらに、操作子である操作者の指がさらに近接すると、立体表示した表示アイテムを消去するので、2次元表示アイテムに対する操作や、表示している画像データに対する操作がしやすくなる。
なお、上述した実施の形態の処理は、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に提供してもよい。そして、そのシステム或いは装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによって、前述した実施形態の機能を実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスクなどを用いることができる。或いは、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることもできる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけではない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した各実施例の機能が実現される場合も含まれている。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含むものである。