JP2007028273A - 映像歪み補正方法及び同方法用プログラム - Google Patents
映像歪み補正方法及び同方法用プログラム Download PDFInfo
- Publication number
- JP2007028273A JP2007028273A JP2005208418A JP2005208418A JP2007028273A JP 2007028273 A JP2007028273 A JP 2007028273A JP 2005208418 A JP2005208418 A JP 2005208418A JP 2005208418 A JP2005208418 A JP 2005208418A JP 2007028273 A JP2007028273 A JP 2007028273A
- Authority
- JP
- Japan
- Prior art keywords
- projection
- parameters
- image
- texture
- frustum
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000008569 process Effects 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims abstract description 24
- 230000009466 transformation Effects 0.000 claims abstract description 15
- 238000013507 mapping Methods 0.000 claims abstract description 9
- 238000012937 correction Methods 0.000 claims description 65
- 238000002360 preparation method Methods 0.000 claims description 8
- 230000000007 visual effect Effects 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 abstract description 40
- 238000006243 chemical reaction Methods 0.000 description 19
- 238000001514 detection method Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 10
- 238000012546 transfer Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 239000011159 matrix material Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003702 image correction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Images
Landscapes
- Projection Apparatus (AREA)
- Image Processing (AREA)
- Image Generation (AREA)
- Transforming Electric Information Into Light Information (AREA)
Abstract
【課題】 投影中に観察者の位置が移動しても、歪み補正により映像が自然な形で見えるようにした映像歪み補正方法を提供する。
【解決手段】 歪み補正の準備処理として、観察者の位置などの観察条件、プロジェクタの位置・方向・画角・アスペクト比などの投影条件及びスクリーン形状を表す多角形メッシュの3種のパラメータのうち、投影条件及びスクリーン形状条件は記憶部に記録しておき、投影時の処理として、入力された原画像を、観察条件を位置検出装置から随時取込みながら、前記3種のパラメータを含む所定の計算式により演算して透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号としてプロジェクタに出力するようにした。
【選択図】 図7
【解決手段】 歪み補正の準備処理として、観察者の位置などの観察条件、プロジェクタの位置・方向・画角・アスペクト比などの投影条件及びスクリーン形状を表す多角形メッシュの3種のパラメータのうち、投影条件及びスクリーン形状条件は記憶部に記録しておき、投影時の処理として、入力された原画像を、観察条件を位置検出装置から随時取込みながら、前記3種のパラメータを含む所定の計算式により演算して透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号としてプロジェクタに出力するようにした。
【選択図】 図7
Description
本発明は、映像プロジェクタ(以下、単にプロジェクタという。)によりスクリーンに投影される映像の歪みを補正する方法、とくに、投影中に観察者の視錘台の位置が移動する場合の映像の歪みを補正するもの、及び同映像歪み補正方法用プログラムに関する。
プロジェクタで映像をスクリーンに投影する場合、プロジェクタの位置・投射方向など(以下、投影条件という。)及び観察者の位置など(以下、観察条件という。)により、映像が歪んで見えることがある。このような映像の歪みを解消する方法の一つとして、スクリーンの距離、傾斜角及び方位角などのパラメータを算出し、入力する原画像を上記パラメータを用いて補正(透視変換)して補正画像を出力するものが、特許文献1に開示されているが、上記従来方法は、具体的な実装方法についての記述がなく、処理速度に関する考慮もなされていない。従って、動画像の再生などのように、補正処理に高速性を要求されるアプリケーションへの適用が可能であるか甚だ疑問である。
特開2001−61121号公報
そこで、本出願人は、特許文献2に、高速な歪み補正処理を実現し、映像の自然な運動表現が可能な映像歪み補正方法の発明(旧発明1)を提案した。また、投影条件、観察条件及びスクリーン形状のいかんを問わず、スクリーンに投影される映像が観察者から見て歪まないよう補正することができ、しかも、投影条件又は観察条件が変更された場合でも、ハード的、プログラム的には何ら変更を要することなく、パラメータ変更のみで対応できる映像歪み補正方法の発明(旧発明2)を提案した。さらに、上記映像補正方法を実現するための、様々なユーザプログラムに組み込んで使用可能なプログラム(ライブラリ)の発明(旧発明3)を提案した。
特開2004−72553号公報
上記旧発明1に係る映像歪み補正方法の基本的な考え方を、図1を参照しながら説明する。図1はスクリーンに投影される映像の歪みの原因と、その歪み補正の原理を説明する模式図である。図1において、Aは観察者、Pはプロジェクタ、Sはスクリーンである。
観察者Aの視錘台(Viewing frustum)とプロジェクタPの投影錘台(Projection frustum)が一致する状態でスクリーンSに投影した映像(a)は、観察者Aの目に歪みのない状態で入るはずである。しかし、観察者Aの視錘台とプロジェクタPの投影錘台が不一致の状態でスクリーンSに投影した映像(b)は、観察者には歪んで見える。従って、プロジェクタPからスクリーンSに投影される映像の歪みをキャンセルするには、そのプロジェクタPの位置から投影された映像(b)が結果的に(a)と一致するように、逆シミュレーションにより予め映像(b)を歪めておけば良い。
従って、1)スクリーンSの形状を表す多角形メッシュに対して、観察者の視錘台を使用して原画像をテクスチャとして貼り付け(Projection mapping)、次に、2)原画像が貼りついた状態のスクリーンSの多角形メッシュをプロジェクタPの投影錘台を使用して描画し、3)結果として得られた画像をプロジェクタPから投影すれば、観察者Aは、歪みのない画像を見ることができる。
上記知見に基き、旧発明1の画像歪み補正方法は、歪み補正の準備処理として、観察者の位置などの観察条件、プロジェクタの位置・方向・画角・アスペクト比などの投影条件、及びスクリーン形状を表す多角形メッシュをパラメータとして記録しておき、投影時の処理として、入力された原画像を前記パラメータを含む所定の計算式により演算して透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号としてプロジェクタに出力するようにしたものである。
従来、映像歪み補正に限らず、画像データに対する幾何学補正は、一旦メインメモリ上に画像データを展開し、CPUを使用して各画素を操作し、フレームバッファに処理済の画像データを転送するといった方法を取るのが一般的であった。この方法は下記のような理由により処理時間が長くなる可能性が高い。
一般的なPC・WS環境では、CPUは全てのタスク間で共用されるので、一般的に、CPUは大量のベクトルデータに対する演算には不向きである。原画像がフレームバッファ上にある場合には、これを一旦メインメモリ上に展開しなくてはならない(余分なバス転送が発生する)。
一般的なPC・WS環境では、CPUは全てのタスク間で共用されるので、一般的に、CPUは大量のベクトルデータに対する演算には不向きである。原画像がフレームバッファ上にある場合には、これを一旦メインメモリ上に展開しなくてはならない(余分なバス転送が発生する)。
これに対し、旧発明1では、補正前画像の画素Rを補正後画像の画素R’に変換する計算処理全般に、グラフィックス・アクセラレータのテクスチャマッピング機能を利用するので、上記問題を解決し、高速な補正処理を実現可能である。
旧発明2の画像歪み補正方法は、請求項1の発明におけると同一の準備処理に続き、投影時の処理として、上記パラメータを用いて、次の(a)及び(b)の2段階の処理を行うことによりフレームバッファに補正済み画像を格納し、前記フレームバッファに格納された補正済み画像を、映像信号として映像プロジェクタに出力するようにしたものである。すなわち、
(a)入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第1段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式(数式1)により決定される。
(b)原画像を貼り付けた前記スクリーン形状を前記フレームバッファに描画する第2段階の処理。この場合、前記スクリーン形状の各頂点座標と出力画像の画素座標の対応は、前記投影錘台のパラメータを含む次の行列式(数式2)により決定される。
(a)入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第1段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式(数式1)により決定される。
本出願人が先に提案した発明は、投影中に観察者の(視錘台の)位置が移動しないことを前提としたものであった。投影終了後は、移動後の観察者の位置に応じて新たにパラメータを設定し記憶させれば、新視点に対応した映像補正が実行される。
ところで、投影されている映像又はその一部に対して観察者が何らかの模擬行動、例えば、撮影、射撃、離着陸等の訓練を行う場合は、その観察者(訓練者)が投影中に観察位置(視点)を間欠的に又は連続的に移動することが少なくない。上述した先発明では、このような投影中の観察者の移動に迅速に対応することができなかった。
そこで、本発明は、投影中の観察者の移動に迅速に対応することができる映像歪み補正方法を提供することを第一の課題としている。
また、別の課題は、その映像歪み補正方法を実現するための、様々なユーザプログラムに組み込んで使用できるプログラム(ライブラリ)を提供することにある。
ところで、投影されている映像又はその一部に対して観察者が何らかの模擬行動、例えば、撮影、射撃、離着陸等の訓練を行う場合は、その観察者(訓練者)が投影中に観察位置(視点)を間欠的に又は連続的に移動することが少なくない。上述した先発明では、このような投影中の観察者の移動に迅速に対応することができなかった。
そこで、本発明は、投影中の観察者の移動に迅速に対応することができる映像歪み補正方法を提供することを第一の課題としている。
また、別の課題は、その映像歪み補正方法を実現するための、様々なユーザプログラムに組み込んで使用できるプログラム(ライブラリ)を提供することにある。
本発明は、第一の課題を解決するため、映像歪み補正方法において、準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、そのパラメータ及び前記記憶部から読出したパラメータを含む所定の計算式により演算して入力された原画像の透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号として前記映像プロジェクタに出力することを特徴としている(請求項1)。
また、上記第一の課題は、準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、そのパラメータ及び前記記憶部から読出したパラメータを用いて、次の(a)及び(b)の2段階の処理を行うことによりフレームバッファに補正済み画像を格納し、前記フレームバッファに格納された補正済み画像を、映像信号として映像プロジェクタに出力することによっも、解決される(請求項2)。
(a)入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第1段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式(数式1)により決定される。
(b)原画像を貼り付けた前記スクリーン形状を前記フレームバッファに描画する第2段階の処理。この場合、前記スクリーン形状の各頂点座標と出力画像の画素座標の対応は、前記投影錘台のパラメータを含む次の行列式(数式2)により決定される。
(a)入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第1段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式(数式1)により決定される。
そして、前記別の課題を解決するため、本発明による映像歪み補正方法用プログラムは、スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標との対応を、前記数式1により決定して、入力された原画像をテクスチャとしてスクリーン形状に対して貼り付けるステップと、スクリーン形状の各頂点座標と、出力画像の画素座標との対応を、前記数式2により決定して、原画像を貼り付けたスクリーン形状をフレームバッファに描画するステップと、前記フレームバッファに格納された補正済み画像を映像信号としてプロジェクタに出力するステップとを含むことを特徴としている(請求項3)。
この画像歪み補正方法用ライブラリは、OpenGL又はDirectX対応のグラフィックス・アクセラレータを搭載したPC又はWSにおいて、観察者の位置検出データに基づき随時入力する観察条件を取り込むとともに、設定ファイルに記録された投影条件、スクリーン形状などの各種パラメータを読み込み、歪み補正処理に必要な実行環境を整え、メインメモリ上に展開された原画像、又はフレームバッファ上の原画像をテクスチャメモリへ転送し、グラフィックス・アクセラレータのテクスチャ座標変換機構及び頂点座標変換機構を適宜設定してスクリーン形状を描画することにより、フレームバッファ上に補正済み画像を得るようにし、処理終了時にはシステムリソースを適宜解放するためのアプリケーション・プログラミング・インタフェース(API)を有している。そのため、映像投影用ユーザプログラムにおいて画像歪み補正を必要とする場合は、そのユーザプログラムに組み込んで使用することが可能である。
上述のように、請求項1の発明によれば、原画像を随時入力される観察条件、及び記憶部から読み取った投影条件及スクリーン形状のパラメータを含む所定の計算式により演算して透視変換し、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いて、高速処理が可能なグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像を得るようにしたので、高速な歪み補正処理を実現し、映像の自然な運動表現が可能となった。
また、請求項2の発明によれば、投影時の処理として、スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応を随時入力される観察条件パラメータを含む数式1により決定して、入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける処理と、前記スクリーン形状の各頂点座標と出力画像の画素座標の対応を、投影条件パラメータを含む数式2により決定して、原画像を貼り付けた前記スクリーン形状を前記フレームバッファに描画する処理の2段階の処理を行うことにより、補正画像を生成し、その補正画像を映像信号として映像プロジェクタに出力するので、投影条件、観察条件及びスクリーン形状のいかんを問わず、スクリーンに投影される映像が観察者から見て歪まないよう補正することができ、しかも、観察条件が時々刻々変化する場合でも、ハード的、プログラム的には何ら変更を要することなく、位置検出装置などのパラメータ変更のみで対応できる。
さらに、請求項3の発明によれば、様々なユーザプログラムに組み込んで使用可能な映像補正用ライブラリを提供することができる。
次に、本発明の実施の形態について、図2以下の図面を参照して説明する。
図2は、本発明による映像歪み補正方法を採用する映像投影装置の全体構成を示す斜視図、図3は観察台移動装置の一例を示す側面図、図4は位置検出装置の一例を示す回路図、図5は映像投影装置の映像歪み補正に係る主たる構成を概略的に示すブロック図、図6は透視変換における観察条件パラメータ(錘台)の説明図である。
図2は、本発明による映像歪み補正方法を採用する映像投影装置の全体構成を示す斜視図、図3は観察台移動装置の一例を示す側面図、図4は位置検出装置の一例を示す回路図、図5は映像投影装置の映像歪み補正に係る主たる構成を概略的に示すブロック図、図6は透視変換における観察条件パラメータ(錘台)の説明図である。
本発明方法を用いる映像投影装置10は、図5に示すように、各種の演算及び各部の制御を司るCPU11と、データバス12に接続されたグラフィックス・アクセラレータ13と、データバス12を介して入力するデータの格納、CPU11による展開のためのデータの授受、前記グラフィックス・アクセラレータ13へのデータの入出力を行うメインメモリ14とを有している。
映像投影装置10は、その機能を実現する基本的構成要素として、グラフィックス・アクセラレータ13を有する。また、外部のビデオ映像に対して歪み補正を行う場合には、ビデオキャプチャ15が必要となる。さらに、プログラムデータやワーキングデータ等を格納しておくための外部記憶装置、処理された画像を印刷する場合のプリンタ等の他のI/O機器16がインタフェース(図示省略)を介してデータバス12に接続され、処理された画像を監視する場合は、モニターがグラフィックス・アクセラレータ13に接続される。
そして、本発明の視点が随時又は連続的に移動する場合に対応する付加構成要素として、移動観察台101に関連して設けられた位置検出装置17がインタフェース(図示省略)を介してデータバス12に接続されている。
グラフィックス・アクセラレータ13は、原画像を格納するのに充分な容量のテクスチャメモリ13a及び1フレーム分の映像データを格納可能なフレームバッファ13bを有するともに、描画パイプラインの一部として、3つの機能、すなわち、(ア)テクスチャマッピング機能、(イ)テクスチャ座標変換機能、(ウ)頂点座標変換機能を有する。
テクスチャマッピング機能は、三次元モデルであるスクリーン形状(ポリゴン座標系)にテクスチャメモリ13aに格納されている二次元画像であるテクスチャを貼り付ける機能である。テクスチャ座標変換機能は、設定された行列により、入力されたテクスチャ座標を変換してテクスチャメモリ13a内の画素位置として出力する機能である。また、頂点座標変換機能は、設定された行列により、入力された各ポリゴンの頂点座標を変換してフレームバッファ13b内の画素位置として出力する機能である。
現在市販されているパーソナルコンピュータ(PC)用グラフィックス・アクセラレータ及びグラフィックスワークステーション(WS)の大多数は、上記3機能を提供している。
現在市販されているパーソナルコンピュータ(PC)用グラフィックス・アクセラレータ及びグラフィックスワークステーション(WS)の大多数は、上記3機能を提供している。
移動観察台101は、図2及び図3に示すように、コックピット、撮影台、射撃台などスクリーンに投影された映像に向けて何らかの模擬行動をする人が乗り込み、映像を観察するためのものであり、第1テーブル102に固定されている。図3において、移動観察台101の左側がスクリーンSに対向する前方であり、右側が後方である。第1テーブル102は、第1サーボモータM1により駆動される昇降手段103により昇降される。104は、観察台101を負荷とする第1テーブル102の昇降時及び人員乗降の際のバランスを保つためのコイルスプリング又はガ゛ススプリングなどの弾性支持手段である。
昇降手段103及び弾性支持手段104の下端部は、第2テーブル105の上面に固定されている。第1サーボモータM1の回転により、観察台101は上下方向、すなわち、Z軸方向に移動可能である。
第2テーブル105の下面には、一例として、4個の車輪106が矩形の各角部に相当する位置に設けられ、少なくとも後方の一対の車輪は第2サーボモータM2により正方向又は逆方向に回転されるようになっている。
前記4個の車輪106は、その下側に設置されていて、前後方向に長い第3テーブル107の上面に平行に敷設してある2本のレール108に沿って転動可能である。そして、第2サーボモータM2の回転により、観察台101は前後方向、すなわち、Y軸方向に移動可能である。109は、前後両終端で第2テーブルを止めるストッパである。
第3テーブル107は、その前後方向の複数箇所において、映像投影室の床面110に突設された支持レール111の上面に回転自在に設けられたローラ112によって支持されている。そして、第3テーブル107の下面に突設されたガイドローラ113が各支持レール111の互いに反対側の面に当接されて、一定の位置で左右方向に移動自在に支持されている。その少なくとも1個のガイドローラが第3サーボモータM3により回転されて、第3テーブル107は、スクリーンS方向に対して直角方向、すなわち、X軸方向に移動されるようになっている。
上記の構成により、各サーボモータM1,M2,M3を制御された回転角度まで回転させることにより、観察台101は、X,Y,Zの3座標値により決められた位置に移動可能である。
通常は、観察台101がスクリーンSの中心を通る水平直線上(支持レール111の長手方向中央)、レール108の前後方向の中央、第1テーブル102の最下位に存在するときが、X,Y,Zの座標値0(X0,Y0,Z0)、すなわち、原点とされ、その原点より右側が+X,左側が−X,原点から前方が+Y,後方が−Y,原点から上方が+Z,下方が−Zなどに決定することができる。
そして、観察台101の時々刻々変わりうる現在位置を座標データで表すために位置検出装置114が備えられている。位置検出装置114は、各モータM1,M2,M3により回転されるロータリーエンコーダE1,E2,E3と、各ロータリーエンコーダから出力されるパルスを受信して計数するカウンタC1,C2,C3と、各カウント値を座標値に変換するコンバータCNVとからなっている。このコンバータCNVの出力値がデータバス12を介して記憶部(RAM)に随時取り込まれるようになっている。
なお、第3テーブル107の支持機構及び移動機構、並びに位置検出装置は、上述されたものに限られない。とくに、位置検出装置は、レーザー光や赤外線等を用いる光学的位置検出方法、レールに沿って設けた磁気的検出方法などの既知の方法を用いることができる。
本発明方法においては、画像歪み補正を行うために、準備処理として、3種のパラメータである観察条件パラメータ(視錘台)、投影条件パラメータ(投影錘台)、及びスクリーンの形状パラメータのうち、変動のない投影条件パラメータとスクリーン形状パラメータは、外部記憶装置に記録されている。しかし、観察条件パラメータについては、投影処理時に、上記位置検出装置から随時入力されて記憶部(RAM)に取り込まれるデータを用いるようになっている。
次に、このパラメータの取込み処理について詳細に説明する。
錘台は透視変換を表現するため一般的に用いられる概念であり、図6に示すように、頂点(Apex)30を基準としたl(left),r(right );b(bottom),t(top );n(near),f(far )の6つの値により決定されるが、上記位置検出送致から取り込まれる座標値−X,+X;−Y,+Y;−Z,+Zがそれぞれl(left),r(right );n(near),f(far );b(bottom),t(top )に相当する。
錘台は透視変換を表現するため一般的に用いられる概念であり、図6に示すように、頂点(Apex)30を基準としたl(left),r(right );b(bottom),t(top );n(near),f(far )の6つの値により決定されるが、上記位置検出送致から取り込まれる座標値−X,+X;−Y,+Y;−Z,+Zがそれぞれl(left),r(right );n(near),f(far );b(bottom),t(top )に相当する。
準備処理における視錘台・投影錘台の指定は、下記のいずれかの方法で行う。
1)l,r,b,t,n,fを直接指定する。
2)視野角/画角、アスペクト比、n,fにより間接的にl,r,b,tを指定する。 ただし、左右上下に非対称な錘台を指定する場合は、1)の方法を用いる必要がある。 スクリーン形状は、何らかの方法、例えば、スクリーン設計時のCADデータを使用したり、三次元形状スキャナを使用したりなどにより、多角形メッシュとして表現され得るものである。準備処理では、この多角形メッシュを構成する頂点配列をパラメータとして指定する。
準備処理において指定する全てのパラメータは、原点の位置、座標系(XYZ各軸の方向と、回転の正負方向)及び単位系(メートル、ラジアンなど)の情報を共有する必要がある。
1)l,r,b,t,n,fを直接指定する。
2)視野角/画角、アスペクト比、n,fにより間接的にl,r,b,tを指定する。 ただし、左右上下に非対称な錘台を指定する場合は、1)の方法を用いる必要がある。 スクリーン形状は、何らかの方法、例えば、スクリーン設計時のCADデータを使用したり、三次元形状スキャナを使用したりなどにより、多角形メッシュとして表現され得るものである。準備処理では、この多角形メッシュを構成する頂点配列をパラメータとして指定する。
準備処理において指定する全てのパラメータは、原点の位置、座標系(XYZ各軸の方向と、回転の正負方向)及び単位系(メートル、ラジアンなど)の情報を共有する必要がある。
続いて、図6及び図7に基づいて投影時の処理の詳細について説明する。図6は投影時処理のフローチャート、図7はグラフィックス・アクセラレータによるテクスチャ座標変換及び頂点座標変換を説明する概念図である。
投影時の処理は、上述の記録されたパラメータを用いて、次の処理を行うことにより、フレームバッファに補正済み画像を格納する。そして、そのフレームバッファに格納された補正済み画像を、映像信号としてプロジェクタに出力するようになっているが、投影時の処理においては、まず、
1)S41において、入力する原画像をテクスチャメモリ13aに転送して格納する。 原画像をテクスチャメモリに格納するには、下記の幾通りかの方法が採用可能である。すなわち、ビデオキャプチャ14により入力した画像をテクスチャメモリ13aに転送する方法。フレームバッファ13b上の画像をテクスチャメモリ13aに複写する方法。及び、テクスチャメモリ13aに対して直接描画する方法である。
2)次に、S42において、随時取り込まれる観察条件に従って、スクリーン形状の各頂点にテクスチャ座標を設定する。実際の処理では、図5に示すように、数式1の行列Moを上述されたグラフィックス・アクセラレータ13のテクスチャ座標変換機構131に設定する。
3)また、S43において、投影条件に従って、スクリーン形状の各頂点を座標変換する。実際の処理では、図8に示すように、数式2の行列Mpをグラフィックス・アクセラレータ13の頂点座標変換機構132に設定する。
4)そして、S44において、頂点座標変換機構132及びテクスチャ座標変換機構131にスクリーン形状の頂点座標Vを入力することにより、スクリーン形状を描画する。 結果として、図8に示すように、テクスチャとして参照される原画像の画素座標Rから出力画像の画素座標R’への転送(R→R’)が行われる。これをスクリーン形状の全頂点に対して連続的に行って、スクリーン形状を描画することにより、フレームバッファ13bに補正済み画像を得る。この補正済み画像が、映像信号として図2のプロジェクタなどに出力される。
なお、フレームバッファ13bの各R’の間の画素は、グラフィックス・アクセラレータにより適宜補間された値が設定される。
投影時の処理は、上述の記録されたパラメータを用いて、次の処理を行うことにより、フレームバッファに補正済み画像を格納する。そして、そのフレームバッファに格納された補正済み画像を、映像信号としてプロジェクタに出力するようになっているが、投影時の処理においては、まず、
1)S41において、入力する原画像をテクスチャメモリ13aに転送して格納する。 原画像をテクスチャメモリに格納するには、下記の幾通りかの方法が採用可能である。すなわち、ビデオキャプチャ14により入力した画像をテクスチャメモリ13aに転送する方法。フレームバッファ13b上の画像をテクスチャメモリ13aに複写する方法。及び、テクスチャメモリ13aに対して直接描画する方法である。
2)次に、S42において、随時取り込まれる観察条件に従って、スクリーン形状の各頂点にテクスチャ座標を設定する。実際の処理では、図5に示すように、数式1の行列Moを上述されたグラフィックス・アクセラレータ13のテクスチャ座標変換機構131に設定する。
3)また、S43において、投影条件に従って、スクリーン形状の各頂点を座標変換する。実際の処理では、図8に示すように、数式2の行列Mpをグラフィックス・アクセラレータ13の頂点座標変換機構132に設定する。
4)そして、S44において、頂点座標変換機構132及びテクスチャ座標変換機構131にスクリーン形状の頂点座標Vを入力することにより、スクリーン形状を描画する。 結果として、図8に示すように、テクスチャとして参照される原画像の画素座標Rから出力画像の画素座標R’への転送(R→R’)が行われる。これをスクリーン形状の全頂点に対して連続的に行って、スクリーン形状を描画することにより、フレームバッファ13bに補正済み画像を得る。この補正済み画像が、映像信号として図2のプロジェクタなどに出力される。
なお、フレームバッファ13bの各R’の間の画素は、グラフィックス・アクセラレータにより適宜補間された値が設定される。
上述した映像歪み補正方法を実行するプログラムは、映像投影アプリケーションプログラムの一部に組み込んで使用される単体プログラムとして、すなわち、歪み補正ソフトウェアライブラリ(以下、補正ライブラリ)として、次の内容を有して提供可能である。
補正ライブラリは、下記の特徴を有している。
補正ライブラリは、ANSI(American National Standard Institute)C/C++規格に準拠して記述されており、様々なプラットフォームに容易に移植可能である。また、補正ライブラリは、グラフィックス・アクセラレータへのインタフェースとして、広く一般的に使用されているプラットフォームであるOpenGL又はDirectXのいずれかを選択的に使用可能になっており、両者のいずれかをサポートするグラフィックス・アクセラレータを使用可能である。
補正ライブラリは、下記の特徴を有している。
補正ライブラリは、ANSI(American National Standard Institute)C/C++規格に準拠して記述されており、様々なプラットフォームに容易に移植可能である。また、補正ライブラリは、グラフィックス・アクセラレータへのインタフェースとして、広く一般的に使用されているプラットフォームであるOpenGL又はDirectXのいずれかを選択的に使用可能になっており、両者のいずれかをサポートするグラフィックス・アクセラレータを使用可能である。
補正ライブラリは、アプリケーション・プログラミング・インタフェース(API)として、下記の関数群をエクスポートする。
1)初期化関数
これは、準備処理において、ハードディスクなどで構成されるファイルシステム上のファイル(以下、設定ファイルという)に記録された、観察条件、投影条件、スクリーン形状などの各種パラメータを読み込み、歪み補正処理に必要な実行環境を整えるものである。
2)テクスチャメモリへの画像転送関数
これは、メインメモリ14上に展開された原画像又はフレームバッファ13b上の原画像をテクスチャメモリ13aへ転送するものである。
3)歪み補正実行関数
これは、グラフィックス・アクセラレータ13の前記テクスチャ座標変換機構41及び頂点座標変換機構42を適宜設定し、スクリーン形状を描画することにより、フレームバッファ13b上に補正済み画像を得るものである。
4)終了関数
これは、前記初期化関数で確保した各種システムリソース(メインメモリ領域、テクスチャメモリ領域など)を解放して、上記映像歪み補正処理を終了するためのものである。
1)初期化関数
これは、準備処理において、ハードディスクなどで構成されるファイルシステム上のファイル(以下、設定ファイルという)に記録された、観察条件、投影条件、スクリーン形状などの各種パラメータを読み込み、歪み補正処理に必要な実行環境を整えるものである。
2)テクスチャメモリへの画像転送関数
これは、メインメモリ14上に展開された原画像又はフレームバッファ13b上の原画像をテクスチャメモリ13aへ転送するものである。
3)歪み補正実行関数
これは、グラフィックス・アクセラレータ13の前記テクスチャ座標変換機構41及び頂点座標変換機構42を適宜設定し、スクリーン形状を描画することにより、フレームバッファ13b上に補正済み画像を得るものである。
4)終了関数
これは、前記初期化関数で確保した各種システムリソース(メインメモリ領域、テクスチャメモリ領域など)を解放して、上記映像歪み補正処理を終了するためのものである。
上記のような補正ライブラリは、前記APIを通じて、映像歪み補正処理を必要とする様々なユーザプログラムに組み込んで利用することが可能である。例として、下記の3種のユーザプログラムに組み込んで使用する場合を、項を分けて説明する。
1)静止画像表示プログラムの場合
このプログラムは、ハードディスクなどに記録された画像ファイルを読み込み、これを描画(すなわち、フレームバッファに転送)し、映像出力する類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図9に示すように使用する。
このプログラムは、S61において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式1及び数式2の行列Mo、Mpを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
S62において、任意の方法により対象となる画像ファイルを特定して、画像データをメインメモリに展開する。
S63において、補正ライブラリの画像転送関数を呼び出すことにより、メインメモリに展開された画像データをテクスチャメモリに転送する。
S64において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
S65おいてプログラム終了時には、S66おいて、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
このプログラムは、ハードディスクなどに記録された画像ファイルを読み込み、これを描画(すなわち、フレームバッファに転送)し、映像出力する類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図9に示すように使用する。
このプログラムは、S61において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式1及び数式2の行列Mo、Mpを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
S62において、任意の方法により対象となる画像ファイルを特定して、画像データをメインメモリに展開する。
S63において、補正ライブラリの画像転送関数を呼び出すことにより、メインメモリに展開された画像データをテクスチャメモリに転送する。
S64において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
S65おいてプログラム終了時には、S66おいて、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
2)動画像表示プログラムの場合
このプログラムは、ハードディスクなどに記録された動画ファイルから1フレームずつ連続して画像データを読み込み・描画し、動画像として映像出力する類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図10のように使用する。すなわち、
このプログラムは、S71において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式1・2の行列Mo、Mpを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
S72において、任意の方法により対象となる動画ファイルを特定して、データストリームへのハンドルを得る(すなわち、オープンする)。
S73において、データストリームから1フレーム分の画像データを読み込み、メインメモリに展開する。
S74において、補正ライブラリの画像転送関数を呼び出すことにより、メインメモリに展開された画像データをテクスチャメモリに転送する。
S75において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
S76において、最終フレームの処理を終えたら、S77において、動画ファイルのデータストリームを解放する(すなわち、クローズする)。
S78において、プログラム終了時には、S79において、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
このプログラムは、ハードディスクなどに記録された動画ファイルから1フレームずつ連続して画像データを読み込み・描画し、動画像として映像出力する類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図10のように使用する。すなわち、
このプログラムは、S71において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式1・2の行列Mo、Mpを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
S72において、任意の方法により対象となる動画ファイルを特定して、データストリームへのハンドルを得る(すなわち、オープンする)。
S73において、データストリームから1フレーム分の画像データを読み込み、メインメモリに展開する。
S74において、補正ライブラリの画像転送関数を呼び出すことにより、メインメモリに展開された画像データをテクスチャメモリに転送する。
S75において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
S76において、最終フレームの処理を終えたら、S77において、動画ファイルのデータストリームを解放する(すなわち、クローズする)。
S78において、プログラム終了時には、S79において、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
3)リアルタイムCGプログラムの場合
このプログラムは、ユーザの入力などのイベントにより動的に変化するシーンを1フレームずつ描画していく類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図11のように使用する。
このプログラムは、S81において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式1・2の行列Mo、Mpを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
このプログラムは、ユーザの入力などのイベントにより動的に変化するシーンを1フレームずつ描画していく類のプログラムである。この種のプログラムに映像歪み補正機能を組み込むには、補正ライブラリを図11のように使用する。
このプログラムは、S81において、補正ライブラリの初期化関数を呼び出すことにより、設定ファイルを読み込み、数式1・2の行列Mo、Mpを作成してメインメモリに記憶し、原画像を格納する為に必要なテクスチャメモリ領域を確保する。
S82において、キーボード、マウス入力などのイベントに応じて、表示すべきシーンの内容を適宜変化させる。
S84において、シーンを描画し、フレームバッファに1フレーム分の画像を得る。
S83において、プログラム未終了時には、S84において、補正ライブラリの画像転送関数を呼び出すことにより、フレームバッファ上の画像データをテクスチャメモリに複写する。(ただし、グラフィックス・アクセラレータによっては、テクスチャメモリに対して直接描画することができる場合がある。この場合は、S85の処理は不要となる。) S86において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
S83においてプログラム終了時には、S87において、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
S84において、シーンを描画し、フレームバッファに1フレーム分の画像を得る。
S83において、プログラム未終了時には、S84において、補正ライブラリの画像転送関数を呼び出すことにより、フレームバッファ上の画像データをテクスチャメモリに複写する。(ただし、グラフィックス・アクセラレータによっては、テクスチャメモリに対して直接描画することができる場合がある。この場合は、S85の処理は不要となる。) S86において、補正ライブラリの歪み補正実行関数を呼び出すことにより、フレームバッファに補正済み画像を得る。
S83においてプログラム終了時には、S87において、補正ライブラリの終了関数を呼び出すことにより、初期化関数で確保した各種システムリソースを解放して、処理を終了する。
上記実施の形態において、図7のS41,S42,S43,S44はそれぞれ、入力する原画像をテクスチャメモリに転送する手段、観察条件に従ってスクリーン形状の各頂点にテクスチャ座標を設定する手段、投影条件に従ってスクリーン形状の各頂点を座標変換する手段、座標変換をされたスクリーン形状を描画する手段を構成する。また、図8の131及び132は、それぞれS42による設定に基づきテクスチャ座標を変換するテクスチャ座標変換手段、S43による設定に基づきスクリーン形状の各頂点の座標を変換する頂点座標変換手段を構成している。
Claims (3)
- 準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、
投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、その視錘台のパラメータ及び前記記憶部から読出した投影錘台のパラメータとスクリーンの形状のパラメータを含む所定の計算式により演算して入力された原画像の透視変換を行い、かつ、透視変換後の座標系をテクスチャ座標系に変換し、そのテクスチャ座標系を用いてグラフィックス・アクセラレータのテクスチャマッピング機能により補正画像をフレームバッファに描画して、その補正画像を映像信号として前記映像プロジェクタに出力することを特徴とする映像歪み補正方法。 - 準備処理として、映像プロジェクタの位置、投影方向、画角などにより決定される投影錘台のパラメータ及びスクリーンの形状のパラメータを記憶部に記録して置き、
投影時の処理として、観察者の位置、視線方向、視野角などにより決定される視錘台のパラメータを随時取込み、その視錘台のパラメータ及び前記記憶部から読出した投影錘台のパラメータとスクリーンの形状のパラメータを用いて、次の(a)及び(b)の2段階の処理を行うことによりフレームバッファに補正済み画像を格納し、前記フレームバッファに格納された補正済み画像を、映像信号として映像プロジェクタに出力することを特徴とする映像歪み補正方法。
(a)入力された原画像をテクスチャとしてポリゴンにより構成されるスクリーン形状に対して貼り付ける第1段階の処理。この場合、前記スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標の対応は、前記視錘台のパラメータを含む次の行列式(数式1)により決定される。
- スクリーン形状の各頂点座標とテクスチャとして参照される原画像の画素座標との対応を、随時取り込まれる観察者の位置・視線方向・視野角などにより決定される視錘台を内容とするパラメータを含む次の行列式(数式1)により決定して、入力された原画像をテクスチャとして前記スクリーン形状に対して貼り付けるステップと、
を含むことを特徴とする映像歪み補正方法用プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005208418A JP2007028273A (ja) | 2005-07-19 | 2005-07-19 | 映像歪み補正方法及び同方法用プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005208418A JP2007028273A (ja) | 2005-07-19 | 2005-07-19 | 映像歪み補正方法及び同方法用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007028273A true JP2007028273A (ja) | 2007-02-01 |
Family
ID=37788437
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005208418A Pending JP2007028273A (ja) | 2005-07-19 | 2005-07-19 | 映像歪み補正方法及び同方法用プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007028273A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2202448A1 (en) * | 2007-10-17 | 2010-06-30 | Panasonic Electric Works Co., Ltd | Illuminating apparatus |
US8411998B2 (en) | 2008-07-17 | 2013-04-02 | Aptina Imaging Corporation | Method and apparatus providing perspective correction and/or image dewarping |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63502464A (ja) * | 1985-12-19 | 1988-09-14 | ゼネラル・エレクトリック・カンパニイ | 実時間像発生システムに於ける包括的な歪み補正 |
JP2003009039A (ja) * | 2001-06-27 | 2003-01-10 | Namco Ltd | 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム |
JP2003085586A (ja) * | 2001-06-27 | 2003-03-20 | Namco Ltd | 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム |
JP2004072553A (ja) * | 2002-08-08 | 2004-03-04 | Digital Zuu:Kk | 映像歪み補正方法及び同方法用プログラム |
-
2005
- 2005-07-19 JP JP2005208418A patent/JP2007028273A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS63502464A (ja) * | 1985-12-19 | 1988-09-14 | ゼネラル・エレクトリック・カンパニイ | 実時間像発生システムに於ける包括的な歪み補正 |
JP2003009039A (ja) * | 2001-06-27 | 2003-01-10 | Namco Ltd | 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム |
JP2003085586A (ja) * | 2001-06-27 | 2003-03-20 | Namco Ltd | 画像表示装置、画像表示方法、情報記憶媒体および画像表示プログラム |
JP2004072553A (ja) * | 2002-08-08 | 2004-03-04 | Digital Zuu:Kk | 映像歪み補正方法及び同方法用プログラム |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2202448A1 (en) * | 2007-10-17 | 2010-06-30 | Panasonic Electric Works Co., Ltd | Illuminating apparatus |
EP2202448A4 (en) * | 2007-10-17 | 2013-04-24 | Panasonic Corp | LIGHTING UNIT |
US8730320B2 (en) | 2007-10-17 | 2014-05-20 | Panasonic Corporation | Lighting apparatus |
US8411998B2 (en) | 2008-07-17 | 2013-04-02 | Aptina Imaging Corporation | Method and apparatus providing perspective correction and/or image dewarping |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018188499A1 (zh) | 图像、视频处理方法和装置、虚拟现实装置和存储介质 | |
EP3057066B1 (en) | Generation of three-dimensional imagery from a two-dimensional image using a depth map | |
JP4555722B2 (ja) | 立体映像生成装置 | |
JP2009080578A (ja) | 多視点データ生成装置、方法及びプログラム | |
JP7353782B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
US20100188355A1 (en) | Apparatus and method for detecting an object pointed by a user | |
US9424681B2 (en) | Information processing device, information processing method, and program | |
JP2015015587A (ja) | 撮像装置およびその制御方法 | |
JP2010179403A (ja) | ロボットシミュレーション画像表示システム | |
CN114419226A (zh) | 全景渲染方法、装置、计算机设备和存储介质 | |
JP2004147064A (ja) | 対話型映像歪み補正方法及び同方法を用いる映像投影装置 | |
JP2004072553A (ja) | 映像歪み補正方法及び同方法用プログラム | |
JP2007028273A (ja) | 映像歪み補正方法及び同方法用プログラム | |
KR100908084B1 (ko) | 피사체의 3차원 좌표 검출방법 및 그 방법을 컴퓨터에서실행시키기 위한 프로그램을 기록한 기록매체 | |
JP5302763B2 (ja) | 画像処理装置、画像処理方法 | |
US8289331B1 (en) | Asymmetric animation links | |
JP2006059165A (ja) | 3次元モデリング装置、幾何学パターン、3次元モデリングデータの生成方法、3次元モデリングプログラム、記録媒体 | |
JP2000030080A (ja) | Vrシステム | |
JP2004246877A (ja) | ゲームのキャラクタに画像を投影するプログラム、そのプログラムが組み込まれたゲーム機、及びそのプログラムが格納された記録媒体 | |
JP2000057376A (ja) | 新視点画像生成方法 | |
JP2002056407A (ja) | 画像生成システム | |
TWI844180B (zh) | 影像處理方法和虛擬實境顯示系統 | |
JP7470347B2 (ja) | アニメーション制作システム | |
JP2011227864A (ja) | 画像視点変換装置、画像視点変換方法、画像視点変換プログラム | |
US9245379B2 (en) | Continuum based model for position based dynamics |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080509 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100831 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110201 |