前記請求項1乃至6のいずれか1項に記載のディスプレイ上での光沢表現方法を実行することを特徴とするプログラム。前記請求項1乃至6のいずれか1項に記載のディスプレイ上での光沢表現方法を実行することを特徴とするプログラムを搭載した携帯電話。0001】本発明は、カメラを用いたコンピュータや携帯端末等のディスプレイ上での光沢表現方法に関する技術である。【背景技術】【0002】近年コンピュータが急速に社会に浸透し、その性能だけでなくデザインに対する要求が高まってきている。身の回りの高級品などにみられる光沢はその質感をあらわす要素のひとつであり、豪華さや安らぎをかもし出す上で重要となるが、コンピュータや携帯端末などのディスプレイ上の画面中に表示されるものについては十分に光沢を表現することはできていない。【0003】また、一方で、安価なコンピュータも、デザイン性を重視したコンピュータも、性能スペックが高いコンピュータも、オペレーティングシステム(OS)が同じである限り表示される画面に大差はない。それらのインタフェース(例えば、メニューバー,ウィンドウフレーム等)は使いやすくはあるものの、シンプルで味気ないものである。デザインを重視したコンピュータでこういったメニューなどは特に不自然に感じられる。中には見た目にこだわったもの、例えば、一風変わった色や形状のインタフェースを持つアプリケーションや、更に変更もしくは作成(スキンカスタマイズ)できるものも存在する。【0004】しかしそれらは、あらかじめ用意された画像を決められた位置に表示するだけという点では、前述のインタフェースと本質的には変わらない。このような背景からコンピュータや携帯端末などのディスプレイ上の画面全体の装飾性の向上を図ることができる方法やシステムが要望されている。【0005】装飾性が必要とされるもっとも重要な場面として、高級なものや豪華なものであることを示す付加価値というものがある。一般に高級なものや豪華なものとしての装飾には、きれいに磨かれた金属や反射性の高い素材を用いられることが多い。光沢をリアリティに再現することができれば、装飾性の高いディスプレイ上の画面環境を構築できるはずである。実際、ディスプレイ画面上で装飾としてこれらの材質を表現しようとするものも多い。実際にディスプレイ上の画面上に色情報の集合として反射を再現するのは非常に困難である。反射によってできる光沢は、いわば鏡と同じであり、ディスプレイ上に光沢を忠実に再現するならば、ディスプレイ表面に自分の顔や背後の風景が映っていなければならないが、従来のコンピュータや携帯端末では、それら自分の顔や背後の風景の情報を得ることができないのである。【0006】従来から、コンピュータのディスプレイ画面上の表現の幅を広げる研究,開発は盛んに行われている。コンピュータのデスクトップ環境を金色で統一することで、デスクトップ環境を豪華に装飾することができるものがある。このような金属素材をモチーフにしたものは表示の際に、リアルな反射を表現できないという問題がある。これは、金属色を正しく表現するためには周囲の風景を写しこむ必要があるからである。このため通常の色の描画ではリアルな描画には限界があるのである。現実での物体でも強弱の差はあるものの周囲の風景や光源の影響を受けている。ディスプレイ上に表示されるものにリアリティを欠いているのは、この風景や光源の影響を再現できないためである。【0007】また、コンピュータのディスプレイ上で、質感や光沢感まで完全に伝えることができる色再現装置が知られている(例えば、特許文献1参照。これは、撮影場所と再現場所が照明器具の形状が異なった場合、対象物における鏡面反射の映り込み状態が変化することに鑑み、対象物を含む画像を取り込むカメラで構成される画像入力装置と、取り込まれた画像をコンピュータに入力し、その画像を再現したモニタ表示画面内で、任意に照明環境を設定して、様々な照明環境下で対象物を3次元的に移動・回転させて所望する方向から観察できるように対象物の画像を変更するものである。上記の色再現装置の場合、計算処理が膨大であり、高速・高性能の画像解析コンピュータで処理を行う必要があるといった問題があった。【0008】【特許文献1】特開2000-090233号公報【発明の開示】【発明が解決しようとする課題】【0009】本発明は、上記の問題点に鑑み、コンピュータや携帯端末などのディスプレイ上のアイコンやウィンドウ、メニューバーなどの物体(オブジェクト)にあたかも金・銀などの光沢があるかのように見せる方法を提供することを目的とする。光沢があるかのように見せる方法を擬似的かつ低コストに実現できることを目的とする。【課題を解決するための手段】【0010】光沢の本質は、光の映りこみと光の変化である。光沢があるものには、それを観察するユーザや背景が映りこむことがある。映りこみが極端になると鏡面となる。ユーザが動くと光沢の映りこみも変化する。物体が動いても光沢の映りこみが変化する。光源のゆらぎによって、ユーザも物体も静止していたとしても、光沢の映りこみも変化する場合があるかもしれない。本発明者は、このような光沢の本質を追求し検討する中で、光の映りこみと光の変化という2つの現象を実現することができれば、光沢を擬似的に表現できるのではないかと考え、試行錯誤の上、本発明を完成したものである。コンピュータや携帯端末のディスプレイ上の物体(オブジェクト)の表示方法において、1)ディスプレイ上に設けられたカメラ撮像手段を用いて、ユーザの頭部を含む風景のカメラ映像を取得する映像取得ステップと、2)前記映像取得ステップから得られたカメラ映像からユーザの頭部位置(カメラからの向きと距離)を推定する頭部位置推定ステップと、3)前記頭部位置推定ステップから推定されたユーザの頭部位置から風景画像の中から光沢として映りこむ部分を抽出する抽出ステップと、4)ディスプレイ画面上において、表示オブジェクトの光沢面に、前記抽出ステップから得られた抽出画像を貼り付けて表示させる光沢表示ステップと、を備えることにより、ユーザに対して光沢があるかのように表示オブジェクトを擬似的に表示させるものである。コンピュータや携帯端末のディスプレイ上の物体(オブジェクト)の表示方法において、1)ディスプレイ上に設けられたカメラ撮像手段を用いて、ユーザの頭部を含む風景のカメラ映像を取得する映像取得ステップと、2)前記映像取得ステップから得られたカメラ映像から光源の方向および量を推定する光源環境推定ステップと、3)前記光源環境推定ステップから推定された光源の方向および量から風景画像の中から光沢として映りこむ部分を抽出する抽出ステップと、4)ディスプレイ画面上において、表示オブジェクトの光沢面に、前記抽出ステップから得られた抽出画像を貼り付けて表示させる光沢表示ステップと、を備えることにより、ユーザに対して光沢があるかのように表示オブジェクトを擬似的に表示させるものである。コンピュータや携帯端末のディスプレイ上の物体(オブジェクト)の表示方法において、1)ディスプレイ上に設けられたカメラ撮像手段を用いて、ユーザの頭部を含む風景のカメラ映像を取得する映像取得ステップと、2)前記映像取得ステップから得られたカメラ映像からユーザの頭部位置(カメラからの向きと距離)を推定する頭部位置推定ステップと、3)前記映像取得ステップから得られたカメラ映像から光源の方向および量を推定する光源環境推定ステップと、4)前記頭部位置推定ステップおよび前記光源環境推定ステップから推定されたユーザの頭部位置と光源の方向および量から風景画像の中から光沢として映りこむ部分を抽出する抽出ステップと、5)ディスプレイ画面上において、表示オブジェクトの光沢面に、前記抽出ステップから得られた抽出画像を貼り付けて表示させる光沢表示ステップと、を備えることにより、ユーザに対して光沢があるかのように表示オブジェクトを擬似的に表示させるものである。【0014】ここで、上記の抽出ステップにおいて、表示オブジェクトの光沢面が、表示オブジェクトの周囲の輪郭部位であることが好ましい。ディスプレイは2次元平面であるが、表示しようとするオブジェクトは本来3次元の形状を有するものである。この3次元の形状の場合は、周囲の輪郭部分が光の影響が最も顕著であり、光の映りこみや光の変化が現れる。したがって、光沢面を表示オブジェクトの周囲の輪郭部位にとることにしたものである。しくは変形処理の中から選択されたいずれかの処理、又は複数の処理を施して光沢面に貼り付け、光沢表現部分の一部に利用することが好ましい。この変形処理としては、縦や横への引き伸ばし、ボカシ、エッジの強調などの画像の変形方法が挙げられる。【0016】また、本発明に係るディスプレイ上での光沢表現方法では、ディスプレイ上の複数の物体(オブジェクト)、あるいはディスプレイ上の物体(オブジェクト)の複数の部位にて光沢表現を利用する場合において、前記光沢表示ステップは個々のプログラムで処理を行い、それ以外のステップは共通して一つのプログラムで処理を行うことを特徴とする。【0017】上述した本発明に係るディスプレイ上での光沢表現方法を実行することを特徴とするプログラムは、様々なアプリケーションのシステムに活用できる。このディスプレイ上での光沢表現方法を実行することを特徴とするプログラムを搭載した携帯電話の場合、以下のような組み合わせが考えられる。Bus)対応のカメラや、IEEE1394対応のカメラや、LAN対応のものも使用できる。【発明の効果】【0018】本発明に係るディスプレイ上での光沢表現方法によれば、リアルな光沢を表現することができ、光沢表現を、メニュー、ウィンドウのフレーム、アイコン、ポインタなどに利用できるといった効果がある。アプリケーションのタイトルバー,メニューバーへの光沢オブジェクトの描画だけでなく、インターネットエクスプローラなど通常のアプリケーションのタイトルバーやメニューバーの表示の代わりに光沢面の描画できるといった効果がある。大規模な装置を使う必要がなく、USBカメラを取り付けたディスプレイやカメラ付携帯電話等のハードウェア構成で、リアルな光沢を表現することができるといった効果がある。【発明を実施するための最良の形態】【0019】以下、図面を参照しつつ、本発明に係るディスプレイ上での光沢表現方法の実施例を説明する。【実施例1】【0020】本実施例1ではUSBカメラを用い、ディスプレイ画面上に周囲の風景が映りこむデスクトップ環境を形成するためのシステムを構築した。図1に、本実施例1のシステムの使用時のシステム概略構成図を示す。カメラ画像をコンピュータ周囲の風景とし、デスクトップ上の物体がその風景からの影響を受けることが出来るようにすることで、物体にリアリティを与えている。この物体を自由に扱えるようにすることでコンピュータデスクトップ上の装飾性の向上を図ることが可能となる。【0021】また、この光沢を持った物体は自在に形を変化させることができ、これを使ってアプリケーションのフレーム部などを形成することできるようにしている。複数のプロセスから1つのカメラへ間接的なアクセスを可能にするため共有メモリ空間を使ったサーバ・クライアント型の構造としている。このシステムではサーバとなるアプリケーションは常に一つだけが稼動し、ただ一つのカメラに接続することとしている。クライアントは、仮想的な光沢を表示するためのもので、光沢を持つ物体一つにつき一つ存在することになる。図2に、本実施例1のシステムのサーバ・クライアント型の構造図を示す。サーバは、1つしかないカメラに接続し、そのカメラ画像を共有することを基本的な機能としている。それに加えて、システム全体で共通の処理を一括で行うことで、システム全体の処理時間を短縮している。ここで、共通の処理とは、カメラ画像からのシステム使用者の頭部位置の検索処理、後の処理の軽量化のためのカメラ画像のリサイズ処理などである。システム使用者の顔などの頭部の位置は、クライアントが光沢を表現するとき、有用な情報である。サーバは、画像のデータ,頭部の位置情報などをクライアント間で共有される共有メモリに書き込むことでデータのやり取りを行うのである。以上の動作を一定間隔(例えば、1秒間隔)で繰り返し行うことで、クライアント側に常に最新のデータを提供することとしている。クライアントは、画面に実際に描画を行う部分(プログラム)である。クライアントは1つにつき一つの光沢部を表示する。クライアントは複数同時に動作可能で、更に一つのアプリケーションの中でも複数のクライアントを動作させることもできる。それぞれのクライアントは、サーバから与えられた情報を元に、まったく別の動作を行うことが可能である。これにより一つのアプリケーション内で、フレーム部分やいくつかのボタンなどをそれぞれ別の特性(形,色など)を持った光沢の表示を行うことができることとなる。次に、サーバの処理フローについて順をおって説明する。図3に、サーバの処理フロー図を示す。コンピュータのOSなどから起動されたサーバは、先ずカメラとの接続処理を行う。カメラからのキャプチャやそれに伴う画像処理は、オープンソースのライブラリを用いて作成している。かかる処理の詳細説明は割愛する。システム使用者の顔などの頭部の位置を検索する方法としては、既に多くの方法が知られており、今回は汎用のライブラリから提供されている関数を用いることとした。これは目的の画像内から特定のパターンを持つ領域を高速に検出する関数で、パターンとして人の顔を用いることで顔の検出を行うことができるものである。【0027】本実施例1のシステムでは、さらに高速な顔検出を行うため、この関数に与えるパラメータの最適化を行っている。この関数は画像上で小さなパターンから大きなパターンへと照合を行っている。本実施例1のシステムでは、使用者の顔の位置は常にカメラのある程度近くに存在することが分かっているので、照合を開始する大きさをある程度大きくすることで小さな部分の検索を省略でき、更に高速な検索を行うことに成功した。この処理を行うことでカメラから見た顔の位置への向きが測定でき、また、通常カメラの位置と顔自体の大きさは変化しないので、検出された顔の大きさからカメラからの距離が測定できることとなる。【0028】この顔の位置への方向と距離から、カメラからみた顔の位置を大まかに特定することができる。ディスプレイ,カメラ,使用者の顔,それぞれの位置関係は一定ではないという問題がある。USBカメラをディスプレイの横に置いた場合と、上に乗せた場合では、顔の位置が同じでも、カメラに映し出される顔の位置は変わるのである。この誤差を解消する為、顔の位置のカメラから見たローカルな座標を、ディスプレイ基準のローカル座標に変換する必要があった。この変換のためには、カメラとディスプレイそれぞれの位置と向きを知る必要があるため、これらの情報はユーザが直接入力を行うこととした。具体的には、図4に示されるように、点をドラッグすることで位置を調節できるウィンドウを用意し、顔の位置のカメラから見たローカルな座標をディスプレイ基準のローカル座標に変換するために必要な情報(カメラとディスプレイそれぞれの位置と向き)を得ることにしたのである。キャプチャした画像は、そのままクライアントに渡すと画像サイズが大きすぎることが多い。全体での処理をできるだけ少なくするためにクライアントに送る画像はあらかじめ縮小したものを用意した。縮小のための関数は汎用ライブラリを利用した。サーバは、共有メモリを通じてクライアントが動作するために必要な全ての情報を共有する(キャプチャ画像,顔の位置など)。実施例1のシステムでは、クライアントに渡す全データを二つの共有メモリに分けて格納することにしている。一つは画像データを格納する共有メモリである。画像の実データは1バイトで、要素の数が画像の幅×高さ×チャンネル数の配列として記録されている。一つはその他の必要な情報をひとつの構造体にまとめたもので、共有する画像サイズ,画像の幅,画像の高さ,画像のチャンネル数(RGBの場合は3),カメラの位置,カメラの向き,カメラの視野角(縦方向),カメラの視野角(横方向),ディスプレイの位置,ディスプレイの向き,使用者の顔の位置,使用者の顔の向きの情報が記録されている。クライアントは基本的には描画を行うだけである。描画方法もWindows(登録商標)を使った描画を行っても、それ以外の方法で描画しても表示可能であり、また他のクライアントやサーバに影響を与えることもない。クライアントとして最低限必要な規則は、共有したキャプチャ画像の使用法だけである。クライアントは、まず共有メモリに格納されている情報から画像の幅,画像のチャンネル数,画像サイズを取得する必要がある。クライアント側が画像を表示する準備として共有している画像の画像の幅,画像のチャンネル数,画像サイズがないと正しく表示することができない。【0032】また、共有メモリに格納されている画像データを取り出す際のサイズ(画像サイズ)が分からないとそもそも共有メモリから画像のデータを正しく取り出すことが出来ない。先ほどクライアントは画像を表示するだけと述べたが、実際にはそれだけでさまざまな状況での光沢を描画することは難しい。ディスプレイは平面だがほとんどの場合、3次元的な物体を投影したものを表示しているため内部的な計算も3次元で行う必要がある。これを実現するために3次元のグラフィックスライブラリを利用する。この3次元のグラフィックスライブラリを用いてクライアントを拡張することでより多彩な表現を行うことができることとなる。以下では、クライアントの例を説明する。クライアントはまず雛形となる画像を読み込む。この画像は8bit(256段階)のグレースケール画像で、明るさ=高さ(明るいほど高い)となる。x,yは画像上の座標に準拠することで、3次元座標の集合として捉え、この頂点群を繋ぎ合わせることで3次元的なオブジェクトを生成することができる。明るさ(高さ)が0の部分は切り抜かれて、背景が透過して表示される。図5に示されるようなベースとなるビットマップファイル画像を読み込んだ場合、図6のような色に応じた高さを持つ3次元オブジェクトが作成されるのである。このようにして作成したポリゴンベースのオブジェクトを表示に使用する。一般に、光源に対して垂直な面ほど明るく表示されるが、頂点を決定しただけでは面の向き(法線)は未定義なので面の明暗を識別できない。従って、個々の面における法線を計算により求める。図7は、法線を未定義のまま表示したオブジェクトの描画を示す。次に、上記の処理で作成したオブジェクトの表面に周囲の風景を写し込むために、カメラで撮影した風景をテクスチャとして張り付けることとしている。本実施例1のシステムでは、オブジェクトの法線の向きによって風景のどの部分を映し込むか決定する環境マッピング処理(スフィアマッピング)をという手法を用いている。本来スフィアマッピングに用いるテクスチャは球面鏡で反射した画像をテクスチャとして使用するが、視線に対して垂直に近いディスプレイ面では通常の画像でもある程度の近似ができるのでテクスチャとして使用している。図8に、本来のスフィアマッピングの表示を、また、図9に本実施例1に用いている近似的なモデルを示す。【0036】上述の処理を行うと図10のような金属光沢部を有するオブジェクトに描画される。金属光沢部が表示画像にうまく表現されているのが理解できよう。図11-1,図11-2に、上述したクライアントの処理フロー図を示す。図12に、ディスプレイ上での光沢表現方法を実行することを特徴とするプログラムを搭載した携帯電話のメインディスプレイの表示例を示す。この場合は、携帯電話の内側につけられたカメラから、操作者の頭部や風景を撮影し、それを本発明の光沢表現方法を用いて、携帯電話のメインディスプレイに表示させたものである。以上、本発明の好ましい実施形態を図示して説明してきたが、本発明の技術的範囲を逸脱することなく種々の変更が可能であることは理解されるであろう。本実施例1のシステム使用によるコンピュータへの負荷を調べるため、サーバプログラムの負荷を調べた。経験的に,タイマ関数の待機時間によってCPUへの負荷が大幅に変わることが分かっているので、いくつかの待機時間のパターンでCPU使用率を測定した。測定には、Pentium(登録商標)41.80GHz,メモリ1.50GBのマシンを使用した。測定ではほぼ400ms周期でサーバの動作を行うと、CPU使用率が100%なり処理の限界を迎える。これ以降は周期を短くしても処理速度の改善は見られなかった。当然のことであるが待機時間を長くすることで、サーバのCPU使用率はかなり下げることができる。更新周期750ms以上ではCPU使用率も50%を上回ることもなく実用上ほとんど問題なく使用可能であることが理解できる。【産業上の利用可能性】【0038】本発明に係るディスプレイ上での光沢表現方法は、高級カーナビ、高級インテリアとしてのコンピュータのディスプレイ、来客向け案内システム、デザインツール(お絵かきソフト)などの用途において利用することができる。光沢表現を、メニュー、ウィンドウのフレーム、アイコン、ポインタなどに利用できる。金属や液体表面に生じる微妙な反射も表現することができる、更にリアリティを持ったスクリーンセーバや携帯電話の待ち受け画面としても利用することができる。【図面の簡単な説明】【0039】【図1】本実施例1のシステムの使用時のシステム概略構成図を示す。【図2】本実施例1のシステムのサーバ・クライアント型の構造図を示す。【図3】サーバの処理フロー図を示す。【図4】点をドラッグすることで位置を調節できるウィンドウ画面イメージ図【図5】ベースとなるビットマップファイル画像の例を示す。【図6】色に応じた高さを持つ3次元オブジェクトを示す。【図7】法線を未定義のまま表示したオブジェクトの描画を示す。【図8】本来のスフィアマッピングの表示を示す。【図9】本実施例1に用いている近似的なモデルを示す。【図10】金属光沢部を有するオブジェクトを示す。【図11-1】クライアントの処理フロー図(1)を示す。【図11-2】クライアントの処理フロー図(2)を示す。