JP2017059042A - Image processing apparatus, image processing method, and program - Google Patents
Image processing apparatus, image processing method, and program Download PDFInfo
- Publication number
- JP2017059042A JP2017059042A JP2015184228A JP2015184228A JP2017059042A JP 2017059042 A JP2017059042 A JP 2017059042A JP 2015184228 A JP2015184228 A JP 2015184228A JP 2015184228 A JP2015184228 A JP 2015184228A JP 2017059042 A JP2017059042 A JP 2017059042A
- Authority
- JP
- Japan
- Prior art keywords
- image
- virtual
- unit
- dimensional
- shape
- 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
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
Description
本発明は、画像処理装置、画像処理方法、およびプログラムに関する。 The present invention relates to an image processing device, an image processing method, and a program.
現実空間の事象に対してコンピュータによる情報を付加する拡張現実(AR:Augmented Reality)技術が知られている。AR技術として、カメラで撮影した背景画像上に仮想オブジェクトを合成して表示する技術も開示されている。 Augmented reality (AR) technology for adding information by a computer to an event in a real space is known. As an AR technique, a technique is disclosed in which a virtual object is synthesized and displayed on a background image taken by a camera.
また、仮想物体の立体形状を示す三次元データを用意し、用意した仮想立体物の表面に繊維シートを貼り付けたものを、所定の視点から観察した投影画像を、生成する技術が開示されている(例えば、特許文献1参照)。 In addition, a technique is disclosed in which three-dimensional data indicating a three-dimensional shape of a virtual object is prepared, and a projection image is generated by observing a fiber sheet attached to the surface of the prepared virtual three-dimensional object from a predetermined viewpoint. (For example, refer to Patent Document 1).
しかし、従来では、繊維シートなどの仮想オブジェクトを貼り付ける三次元データを別途用意する必要があり、仮想オブジェクトを任意の形状の仮想立体物に貼り付けた状態を示す画像を提供することは困難であった。 However, conventionally, it is necessary to separately prepare three-dimensional data for attaching a virtual object such as a fiber sheet, and it is difficult to provide an image showing a state in which the virtual object is attached to a virtual solid object having an arbitrary shape. there were.
上述した課題を解決し、目的を達成するために、本発明に係る画像処理装置は、仮想三次元空間に配置する仮想オブジェクトの曲げ形状を、表示部の表示面を表す二次元座標で表した、曲げ形状情報を取得する取得部と、前記曲げ形状情報に応じて、前記仮想オブジェクトの貼り付け対象を示す仮想立体物の三次元形状を算出する形状算出部と、前記仮想立体物の表面の少なくとも一部の領域に、前記仮想オブジェクトより広い拡張領域を設定する設定部と、前記拡張領域を二次元空間に射影した拡張領域画像を生成する第1の生成部と、前記仮想立体物の表面の前記拡張領域内に貼り付けた前記仮想オブジェクトを、前記二次元空間に射影したオブジェクト画像を生成する第2の生成部と、背景画像に前記拡張領域画像と前記オブジェクト画像とをこの順に重畳した重畳画像を、前記表示部へ表示する表示制御部と、を備える。 In order to solve the above-described problems and achieve the object, the image processing apparatus according to the present invention represents the bending shape of the virtual object arranged in the virtual three-dimensional space with two-dimensional coordinates representing the display surface of the display unit. An acquisition unit that acquires bending shape information, a shape calculation unit that calculates a three-dimensional shape of a virtual three-dimensional object indicating an object to which the virtual object is to be pasted, according to the bending shape information, and a surface of the virtual three-dimensional object A setting unit that sets an extension region wider than the virtual object in at least a part of the region; a first generation unit that generates an extension region image obtained by projecting the extension region into a two-dimensional space; and a surface of the virtual three-dimensional object A second generation unit that generates an object image obtained by projecting the virtual object pasted into the extension area into the two-dimensional space; and the extension area image and the object as a background image A superimposed image obtained by superimposing the image in this order, and a display control unit for displaying to the display unit.
本発明は、仮想オブジェクトを任意の形状の仮想立体物に貼り付けた状態を示す画像を容易に提供することができる、という効果を奏する。 The present invention has an effect that an image showing a state in which a virtual object is pasted on a virtual solid object having an arbitrary shape can be easily provided.
以下、実施形態である画像処理装置10について説明する。
Hereinafter, the
以下に添付図面を参照して、画像処理装置、画像処理方法、およびプログラムの実施の形態を詳細に説明する。 Hereinafter, embodiments of an image processing device, an image processing method, and a program will be described in detail with reference to the accompanying drawings.
図1は、本実施の形態の画像処理装置10の模式図である。
FIG. 1 is a schematic diagram of an
画像処理装置10は、撮影部12、制御部14、記憶部16、入力部18、表示部20、および検知部25を備える。撮影部12、制御部14、記憶部16、入力部18、表示部20、および検知部25は、バス22により電気的に接続されている。
The
なお、画像処理装置10は、撮影部12、制御部14、および検知部25と、記憶部16、入力部18、および表示部20の少なくとも1つと、を別体として設けた構成であってもよい。
Note that the
また、画像処理装置10は、携帯可能な携帯端末であってもよいし、固定型の端末であってもよい。本実施の形態では、一例として、画像処理装置10は、撮影部12と、制御部14と、記憶部16と、入力部18と、表示部20と、検知部25と、を一体的に備えた携帯可能な携帯端末である場合を説明する。また、画像処理装置10は、外部装置と通信するための通信部などの他の機能部を更に設けた構成であってもよい。
Further, the
撮影部12は、画像処理装置10の位置する実空間を撮影し、背景画像を取得する。実空間は、例えば、室内などである。更に、例えば、実空間は、複数の壁面で構成された室内であり、一例としては、床面、天井面、床面と天井面とに連続する4つの壁面で構成された立方体状の室内である。なお、実空間は、画像処理装置10の位置する現実の空間であればよく、室内に限定されない。撮影部12は、撮影によって画像データ(背景画像)を得る公知の撮影装置である。
The
表示部20は、各種画像を表示する。表示部20は、LCD(Liquid Crystal Display)や、画像を投影するプロジェクタ等、公知の表示装置である。本実施の形態では、表示部20には、後述する重畳画像が表示される。
The
図2は、画像処理装置10の外観の概略図の一例である。図2(A)は、画像処理装置10を表示部20側からみた平面図である。図2(B)は、画像処理装置10を側面方向(撮影部12と表示部20との対向方向に直交する方向)から視認した状態を示す平面図である。画像処理装置10の筐体11には、撮影部12と表示部20が設けられている。なお、筐体11の内部には、検知部25や制御部14や記憶部16などが設けられている。
FIG. 2 is an example of a schematic diagram of the appearance of the
また、本実施の形態では、一例として、表示部20と撮影部12は、画像処理装置10の筐体において、表示部20の表示方向と、撮影部12の撮影方向(矢印A方向)と、が、反対方向(180°の関係)である場合を説明する。
Moreover, in this Embodiment, as an example, the
図1に戻り、入力部18は、ユーザから各種操作を受け付ける。入力部18は、例えば、マウス、マイクによる音声認識、ボタン、リモコン、およびキーボード等である。
Returning to FIG. 1, the
なお、入力部18と表示部20とを一体的に構成してもよい。本実施の形態では、入力部18と表示部20とを一体的に構成し、UI部19とする場合を説明する。UI部19は、例えば、表示機能と入力機能の双方を備えたタッチパネルである。
In addition, you may comprise the
このため、ユーザは、UI部19に表示された画像を確認しながら、UI部19上を操作することで、各種入力を行うことができる。具体的には、ユーザは、UI部19における表示部20の表示面上を操作指示することで、操作指示に応じた各種入力を行うことができる。なお、表示部20の表示面は、二次元の平面である。
For this reason, the user can perform various inputs by operating on the
記憶部16は、メモリやハードディスクドライブ装置(HDD)等の記憶媒体であり、後述する各処理を実行するための各種プログラムや、各種データを記憶する。
The
検知部25は、実空間における撮影部12の姿勢を検出する。なお、上述したように、画像処理装置10には、撮影部12とUI部19(表示部20)が設けられている。このため、撮影部12の姿勢は、画像処理装置10に設けられた表示部20およびUI部19の姿勢と同様の意味である。
The
検知部25は、傾きや方角(角度)を検知可能な公知の検知装置である。例えば、検知部25は、ジャイロセンサ(3軸加速度計)、電子コンパス、重力加速度計などである。
The
なお、検知部25は、実空間における位置(具体的には、ワールド座標における位置)を検出する公知の機器を更に含む構成であってもよい。例えば、検知部25は、GPS(Global Positioning System)を備えた構成であってもよい。この場合、検知部25は、姿勢に加えて、実空間における撮影部12の位置(緯度、経度、高度)を検知することができる。
The
図1に戻り、制御部14は、CPU(Central Processing Unit)、ROM(Read Only Memory)、およびRAM(Random Access Memory)などを含んで構成されるコンピュータである。なお、制御部14は、汎用のCPU以外の回路などであってもよい。制御部14は、画像処理装置10に設けられた装置各部を制御する。
Returning to FIG. 1, the
制御部14は、重畳画像を表示部20へ表示する制御を行う。重畳画像は、実空間を撮影した背景画像に、拡張領域の拡張領域画像(詳細後述)や仮想オブジェクトのオブジェクト画像を重畳した画像である。
The
仮想オブジェクトは、実空間には含まれない仮想のオブジェクトである。仮想オブジェクトは、例えば、制御部14で扱う事の可能な画像データである。仮想オブジェクトの画像データは、例えば、外部装置や制御部14などで別途作成された画像や印刷物の画像データや、実空間画像の撮影とは異なるタイミングで撮影された背景画像の画像データなどであるが、これらに限定されない。
The virtual object is a virtual object that is not included in the real space. The virtual object is, for example, image data that can be handled by the
オブジェクト画像は、仮想三次元空間に配置された仮想オブジェクトを、二次元空間に射影した画像である。言い換えると、オブジェクト画像は、仮想三次元空間に配置された仮想オブジェクトを、予め定めた視点位置から視認した二次元画像に変換した画像である。本実施の形態では、二次元空間は、表示部20の表示面に一致する。
An object image is an image obtained by projecting a virtual object placed in a virtual three-dimensional space into a two-dimensional space. In other words, the object image is an image obtained by converting a virtual object placed in the virtual three-dimensional space into a two-dimensional image viewed from a predetermined viewpoint position. In the present embodiment, the two-dimensional space coincides with the display surface of the
制御部14は、例えば、グラフィックス処理のためのプログラミングインターフェースを用いた3Dグラフィックエンジンを用いて、仮想オブジェクトを二次元画像に変換する。例えば、制御部14は、OpenGL(Open Graphics Library)などの3Dエンジンにより、処理を実現する。
The
具体的には、制御部14は、変換関数を用いて、仮想三次元空間における三次元座標によって示される仮想オブジェクトを、二次元空間に射影することによって、二次元座標によって示されるオブジェクト画像を生成する。変換関数は、オブジェクト画像を取得するための関数、すなわち、仮想オブジェクトを表示面に射影するための関数である。変換関数は、一般に、行列で表される。
Specifically, the
図3は、制御部14による表示処理の概要を示す図である。制御部14は、撮影部12で撮影した背景画像53に、オブジェクト画像30を重畳した重畳画像54を表示する。
FIG. 3 is a diagram showing an overview of display processing by the
本実施の形態の画像処理装置10では、オブジェクト画像30の形状を、画像処理装置10の姿勢の変化に応じて、あたかも現実の空間に配置されている物体を撮影しているように変化させる。例えば、図3に示すように、画像処理装置10は、実空間には存在しない印刷物が壁31に貼り付けているかのように、画像処理装置10の姿勢の変化に応じてオブジェクト画像30の形状を変化させる。
In the
制御部14について詳細を説明する。
Details of the
図4は、画像処理装置10の機能構成の一例を示すブロック図である。上述したように画像処理装置10は、検知部25、撮影部12、記憶部16、UI部19、および制御部14を備える。検知部25、撮影部12、記憶部16、およびUI部19は、制御部14に信号やデータ授受可能に接続されている。
FIG. 4 is a block diagram illustrating an example of a functional configuration of the
制御部14は、姿勢検出部14Aと、背景画像取得部14Bと、姿勢設定部14Cと、取得部14Dと、形状算出部14Eと、設定部14Pと、第1の生成部14Qと、第2の生成部14Rと、合成部14Gと、受付部14Iと、移動部14Lと、関数補正部14Mと、姿勢補正部14Nと、光源設定部14Oと、表示制御部14Hと、を備える。
The
姿勢検出部14A、背景画像取得部14B、姿勢設定部14C、取得部14D、形状算出部14E、設定部14P、第1の生成部14Q、第2の生成部14R、合成部14G、受付部14I、移動部14L、関数補正部14M、姿勢補正部14N、光源設定部14O、および表示制御部14Hの一部またはすべては、例えば、CPUなどの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、IC(Integrated Circuit)などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
Posture detection unit 14A, background
姿勢検出部14Aは、撮影部12の初期姿勢からの姿勢変化を表す姿勢情報を検出する。詳細には、姿勢情報は、撮影部12の初期姿勢の撮影方向(光軸の方向)からの向きの変化を検出する。
The
具体的には、姿勢検出部14Aは、検知部25による初期姿勢時の検知結果と、検知部25による現在の検知結果と、を用いて、姿勢情報を検出する。姿勢情報は、例えば、初期姿勢からの回転角の変化量(ロール角の変化量α、ピッチ角の変化量βおよびヨー角の変化量γ)で表される。
Specifically, the posture detection unit 14A detects posture information using the detection result at the initial posture by the
姿勢設定部14Cは、初期姿勢を設定する。姿勢設定部14Cは、撮影開始に先立ち、初期姿勢を設定する。ユーザは、所望のタイミングでUI部19を操作することにより、初期姿勢の設定指示を入力する。姿勢設定部14Cは、ユーザにより初期姿勢の設定指示が入力されたときの、撮影部12(UI部19、画像処理装置10)の姿勢を、初期姿勢として設定する。
The posture setting unit 14C sets an initial posture. The posture setting unit 14C sets an initial posture prior to the start of shooting. The user inputs an initial posture setting instruction by operating the
このため、画像処理装置10では、初期姿勢におけるオブジェクト画像30の形状を基準とし、初期姿勢からの姿勢変化量に基づきオブジェクト画像30の形状を変化させることができる。
Therefore, the
背景画像取得部14Bは、撮影部12から背景画像を取得する。撮影画像取得部14Bは、記憶部16から背景画像を取得してもよい。
The background
取得部14Dは、曲げ形状情報を取得する。曲げ形状情報は、仮想三次元空間に配置する仮想オブジェクト42の曲げ形状を、表示部20(UI部19)の表示面を表す二次元座標で表した情報である。
The
表示部20の表示面を表す二次元座標とは、二次元の板状である表示部20の表示面上の座標である。すなわち、ユーザがUI部19の表示面上を操作指示することで、操作指示されたUI部19の表示面上の位置に応じた二次元座標が、操作指示として入力される。
The two-dimensional coordinates representing the display surface of the
曲げ形状情報は、ユーザによるUI部19の操作によって入力される。ユーザは、UI部19の表示面を操作することで、表示面上の二次元座標によって示される、仮想オブジェクト42の曲げ形状を操作入力する。取得部14Dは、ユーザによる各種操作指示をUI部19から受け付ける受付部14Iを介して、UI部19から曲げ形状情報を取得する。
The bending shape information is input by the user operating the
形状算出部14Eは、曲げ形状情報に応じて、仮想オブジェクト42の貼り付け対象を示す仮想立体物の三次元形状を算出する。
The
第2の生成部14Rは、形状算出部14Eで算出された三次元形状の仮想立体物の表面に、仮想オブジェクト42を貼り付ける。そして、第2の生成部14Rは、仮想立体物の表面に貼り付けた仮想オブジェクト42を、二次元空間に射影した、オブジェクト画像30を生成する。
The second generation unit 14R pastes the
第2の生成部14Rは、上記変換関数を用いて、仮想三次元空間における三次元座標によって示される仮想オブジェクト42を、二次元空間に射影することによって、二次元座標によって示されるオブジェクト画像30を生成すればよい。変換関数は、上述したように、オブジェクト画像30を取得するための関数、すなわち、仮想オブジェクト42を表示面に射影するための関数である。変換関数は、一般に、行列で表される。
The second generation unit 14R projects the
合成部14Gは、重畳画像を生成する。図5は、重畳画像生成の説明図である。合成部14Gは、背景画像53上に、第2の生成部14Rで生成されたオブジェクト画像30を重畳する。これによって、合成部14Gは、重畳画像54を生成する。
The synthesizing unit 14G generates a superimposed image. FIG. 5 is an explanatory diagram of superimposed image generation. The composition unit 14G superimposes the
なお、合成部14Gは、背景画像53上に、後述する拡張領域画像60と、オブジェクト画像30と、をこの順に重畳した重畳画像54を生成してもよい。
The synthesizing unit 14G may generate a
図4に戻り、受付部14Iは、ユーザによるUI部19の各種操作を受け付ける。
Returning to FIG. 4, the receiving
表示制御部14Hは、各種画像をUI部19へ表示する制御を行う。本実施の形態では、表示制御部14Hは、合成部14Gで合成された重畳画像54を、UI部19(表示部20)へ表示する制御を行う。
The
次に、形状算出部14Eの詳細を説明する。図6は、形状算出部14Eによる三次元形状算出の説明図である。なお、図6は、貼り付け対象の仮想立体物40の形状が、曲面を有する(具体的には、例えば、円柱状)場合を説明する。なお、仮想立体物40が円柱状などの曲面を有する場合を、仮想立体物40Aとして説明する。
Next, details of the
また、仮想立体物40Aに貼り付ける仮想オブジェクト42を、仮想オブジェクト42A、仮想オブジェクト42Aに対応するオブジェクト画像30をオブジェクト画像30Aとして説明する。
The
なお、仮想立体物(仮想立体物40A、後述する仮想立体物40Bなど)を総称して説明する場合、単に仮想立体物40と称して説明する。同様に、オブジェクト画像、仮想オブジェクトの各々を総称して説明する場合についても、各々、オブジェクト画像30、仮想オブジェクト42と称して説明する。
In addition, when generically describing a virtual three-dimensional object (a virtual three-
例えば、表示制御部14Hは、貼り付け対象の仮想オブジェクト42Aのオブジェクト画像30AをUI部19に表示する。貼り付け対象の仮想オブジェクト42Aは、例えば、ユーザによるUI部19の操作指示によって選択すればよい。具体的には、記憶部16に、予め、仮想オブジェクト42として用いる1または複数の画像データを記憶する。そして、表示制御部14Hは、これらの画像データの画像を選択可能にUI部19へ表示する。ユーザは、UI部19に表示された画像の一覧から1つを選択することで、貼り付け対象の仮想オブジェクト42Aを選択する。
For example, the
第2の生成部14Rは、選択された仮想オブジェクト42Aを二次元空間に射影することによって、オブジェクト画像30Aを生成する。表示制御部14Hは、選択された仮想オブジェクト42Aのオブジェクト画像30AをUI部19に表示する。オブジェクト画像30(30A)は、第2の生成部14Rによって仮想オブジェクト42(42A)を射影することで得られる。
The second generation unit 14R generates the
図6(A)は、選択された仮想オブジェクト42Aのオブジェクト画像30AがUI部19に表示された状態の一例を示す図である。図6に示す例では、オブジェクト画像30Aが矩形状である場合を一例として説明する。
FIG. 6A is a diagram illustrating an example of a state in which the
ユーザは、UI部19に表示されたオブジェクト画像30Aを用いて、該オブジェクト画像30に対応する仮想オブジェクト42Aの曲げ形状を操作入力する。図6に示す例では、ユーザは、UI部19の表示面上を操作することで、UI部19に表示されたオブジェクト画像30Aの4頂点の内の2頂点の位置を調整する。例えば、図6(B)に示すように、オブジェクト画像30Aの4頂点(301、302、303、304)の内、頂点301を3010の位置に移動させ、頂点302を頂点3020の位置に移動させることがユーザによって操作指示されたとする。例えば、ユーザは、オブジェクト画像30Aの4頂点をピンチイン/ピンチアウト操作などにより調整することで、各頂点の位置を移動させる。
The user uses the
すると、取得部14Dは、移動後の2つの頂点3010および頂点3020の、表示面における二次元座標を含む、曲げ形状情報を取得する。
Then, the
形状算出部14Eは、曲げ形状情報に応じた三次元曲線に沿った曲面を有する、仮想立体物の三次元形状を算出する。詳細には、形状算出部14Eは、三次元曲線の曲率の初期値を予め設定する(以下、初期曲率と称する)。そして、形状算出部14Eは、曲げ形状情報、すなわち、ピンチ操作の操作量に応じて、初期曲率を変化させることで、操作量に応じた三次元曲率を算出する。ピンチ操作の操作量は、例えば、移動前の2頂点に対する移動後の2頂点の操作量に相当する。
The
例えば、図6(B)に示すように、ユーザによるピンチ操作後の2次元曲率が、二次曲線Q1によって示される曲率であったとする。この場合、形状算出部14Eは、ピンチ操作の操作量に応じて、初期曲率を変化させることで、曲げ形状情報に応じた三次元曲線Q2(図6(C)参照)に沿った曲面を有する、仮想立体物40Aの三次元形状を算出する。三次元曲線Q2は、二次元曲線Q1を仮想三次元空間に射影した曲線である。すなわち、仮想立体物40Aの表面の曲率は、ユーザによる操作量に応じた曲率を示す。
For example, as shown in FIG. 6B, it is assumed that the two-dimensional curvature after the pinch operation by the user is the curvature indicated by the quadratic curve Q1. In this case, the
このように、ユーザによるUI部19の操作指示によって、UI部19(表示部20)の二次元座標によって表される曲げ形状情報が操作入力される。すなわち、ユーザは、任意の曲げ形状を、UI部19の二次元座標を用いて操作入力することができる。そして、形状算出部14Eは、操作入力された曲げ形状情報を用いて、仮想立体物40の三次元形状を算出する。図6に示す例では、形状算出部14Eは、図6(C)に示す、三次元曲線Q2に沿った曲面を有する、仮想立体物40Aの三次元形状を算出する。
As described above, the bending shape information represented by the two-dimensional coordinates of the UI unit 19 (display unit 20) is input by an operation instruction from the
図7は、仮想立体物の三次元形状算出の詳細な説明図である。ユーザによって曲げ形状が操作入力されていない状態では、仮想オブジェクト42Aは、仮想三次元空間におけるXY平面に沿って平面状に配置される(図7(A)参照)。形状算出部14Eは、仮想オブジェクト42Aを、複数の短冊状の領域に分割して処理する。すなわち、形状算出部14Eは、仮想オブジェクト42Aを構成する各短冊状の領域の各々を用いて、操作入力された曲げ形状を表現する(図7(B)、図7(C)参照)。
FIG. 7 is a detailed explanatory diagram of the calculation of the three-dimensional shape of the virtual three-dimensional object. In a state where the bending shape is not operated and input by the user, the
ユーザによるUI部19の操作指示により、UI部19の表示面上で仮想オブジェクト42Aに対応するオブジェクト画像30Aの頂点の位置が調整されることで、曲げ形状の曲率が設定される。例えば、形状算出部14Eは、ユーザの指によるピンチ操作などによって設定された曲率の二次元曲線から、三次元曲線を算出する。そして、形状算出部14Eは、算出した三次元曲線に沿った曲面を有する、例えば、円柱状の仮想立体物40A2を算出する(図7(B)参照)。
The curvature of the bent shape is set by adjusting the position of the vertex of the
また、ユーザの指によるピンチ操作などによって曲率が変更されると、形状算出部14Eは変更後の曲率の二次元曲線から算出した三次元曲線に沿った曲面を有する、円柱状の仮想立体物40A3を算出する(図7(C)参照)。
When the curvature is changed by a pinch operation with a user's finger or the like, the
このため、ユーザは、UI部19の表示面上のピンチイン/ピンチアウトなどの簡易な操作によって、仮想オブジェクト42の貼り付け対象の仮想立体物40の、三次元形状を容易に操作入力することができる。例えば、ユーザは、UI部19の表示面上のピンチイン操作で曲率を大きくし、ピンチアウト操作で曲率を小さくするように、操作入力することができる。
For this reason, the user can easily input the three-dimensional shape of the virtual three-
そして、形状算出部14Eは、ユーザによるUI部19の操作指示によって操作入力された、UI部19の表示面の二次元座標で表される曲げ形状情報に応じて、仮想立体物40の三次元形状を容易に算出することができる。
Then, the
また、曲げ形状情報は、仮想オブジェクト42の曲げ方向を更に含んでいてもよい。
The bending shape information may further include the bending direction of the
図8は、曲げ方向の説明図である。例えば、ユーザは、UI部19の表示面上で、仮想オブジェクト42Aに対応する表示されたオブジェクト画像30Aの頂点の位置を調整することで、曲げ方向を操作入力する。
FIG. 8 is an explanatory diagram of the bending direction. For example, the user operates and inputs the bending direction by adjusting the position of the vertex of the displayed
すなわち、ユーザによるUI部19の操作指示により、UI部19の表示面上で仮想オブジェクト42Aに対応するオブジェクト画像30Aの頂点の位置が調整されることで、曲げ形状の曲率、および曲げ方向が設定される。例えば、ユーザは、オブジェクト画像30の4頂点の何れかの位置を調整することで、曲げ方向を操作入力する。
That is, the curvature of the bending shape and the bending direction are set by adjusting the position of the vertex of the
曲げ方向には、例えば、4通りの方向がある。例えば、図8(A)に示すように、平面状の仮想オブジェクト42AをX軸方向が長辺となるように仮想三次元空間に配置し、三次元座標のZ軸方向に凸状に湾曲させる、曲げ方向がある。また、図8(B)に示すように、平面状の仮想オブジェクト42AをY軸方向が長辺となるように仮想三次元空間に配置し、三次元座標のZ軸方向に凸状に湾曲させる、曲げ方向がある。また、図8(C)に示すように、平面状の仮想オブジェクト42AをX軸方向が長辺となるように仮想三次元空間に配置し、三次元座標の−Z軸方向に凸状に湾曲させる、曲げ方向がある。また、図8(D)に示すように、平面状の仮想オブジェクト42AをY軸方向が長辺となるように仮想三次元空間に配置し、三次元座標の−Z軸方向に凸状に湾曲させる、曲げ方向がある。
For example, there are four bending directions. For example, as shown in FIG. 8A, a planar
曲げ形状情報が曲げ方向を含む場合、形状算出部14Eは、該曲げ形状情報に含まれる曲げ方向に曲がった曲面を有する仮想立体物40の三次元形状を算出すればよい。
When the bending shape information includes the bending direction, the
そして、第2の生成部14Rは、形状算出部14Eで算出された仮想立体物40の表面に仮想オブジェクト42を貼り付ける。このため、図6(C)に示すように、仮想オブジェクト42(例えば、仮想オブジェクト42A)は、形状算出部14Eで算出された三次元形状の仮想立体物40(例えば、仮想立体物40A)の表面に貼り付けられた状態となる。
Then, the second generation unit 14R pastes the
そして、第2の生成部14Rは、この仮想立体物40の表面に貼り付けられた仮想オブジェクト42を、二次元空間に射影したオブジェクト画像30を生成する。図9は、オブジェクト画像30の説明図である。図9では、仮想オブジェクト42Aを仮想立体物40Aに貼り付けた状態を示すオブジェクト画像30Aを、一例として示した。
Then, the second generation unit 14R generates an
図9に示すように、オブジェクト画像30Aは、仮想三次元空間において仮想オブジェクト42Aを仮想立体物40Aの表面に貼り付けた状態を示す、二次元画像である。すなわち、オブジェクト画像30Aは、オブジェクト画像30Aを仮想三次元空間に配置した仮想オブジェクト42Aを、仮想の仮想立体物40Aの表面に貼り付けたかのような形状で示した、二次元画像である。
As shown in FIG. 9, the
このため、UI部19(表示部20)には、実際には、仮想立体物40(仮想立体物40A)は表示されず、オブジェクト画像30Aが、表示されない仮想立体物40の表面に貼り付けられているかのような形状で表示されることとなる。
Therefore, the virtual three-dimensional object 40 (virtual three-
そして、合成部14Gは、背景画像53上にオブジェクト画像30Aを合成した重畳画像54を生成する。表示制御部14Hは、重畳画像54を、UI部19へ表示することとなる。
Then, the combining unit 14G generates a
ここで、上述のように、オブジェクト画像30は、ユーザ所望の形状の仮想立体物40上に貼り付けられたかのような形状で表示される。このため、ユーザが、仮想立体物40の形状を、背景画像53に含まれる任意の物体の形状と一致させることで、制御部14は、背景画像53に含まれる任意の物体上にオブジェクト画像30を貼り付けた状態を示す重畳画像54を表示することができる。
Here, as described above, the
しかし、上述したように、UI部19には、仮想立体物40は表示されない。このため、ユーザは、重畳画像54に含まれる任意の形状の物体(例えば、図5中、円柱状物体53A参照)と一致するように、曲げ形状の入力を調整する必要がある。
However, as described above, the virtual three-
そこで、本実施の形態の制御部14は、設定部14Pおよび第1の生成部14Qを更に備える。
Therefore, the
設定部14Pは、形状算出部14Eで算出された三次元形状の仮想立体物40の表面の少なくとも一部の領域に、仮想オブジェクト42より広い拡張領域を設定する。
The setting unit 14P sets an expansion region wider than the
図10は、拡張領域62の説明図である。拡張領域62は、仮想立体物40の表面の少なくとも一部の領域であって、該仮想立体物40に貼り付ける仮想オブジェクト42より広い領域である。
FIG. 10 is an explanatory diagram of the extended
例えば、図10(A)に示すように、拡張領域62は、仮想立体物40の表面の全領域(拡張領域62A)であってもよい。また、図10(B)に示すように、拡張領域62は、仮想立体物40の表面における、該仮想立体物40の表面に貼り付けた仮想オブジェクト42Aを、該仮想立体物40の表面における全方向に拡大した領域(拡張領域62B)であってもよい。また、図10(C)に示すように、拡張領域62は、仮想立体物40の表面において、仮想オブジェクト42Aを所定方向(例えば、図10中、矢印X方向参照)に拡大した領域(拡張領域62C)であってもよい。また、図示は省略するが、拡張領域62は、仮想立体物40の表面において、仮想オブジェクト42Aを所定方向(図10中、矢印Y方向)に拡大した領域であってもよい。
For example, as shown in FIG. 10A, the
設定部14Pは、上記拡張領域62を設定する。例えば、設定部14Pは、形状算出部14Eで算出された仮想立体物40の表面に仮想オブジェクト42を貼り付ける。そして、仮想立体物40の表面の少なくとも一部の領域であって、該貼り付けた仮想オブジェクト42より広く、且つ、該貼り付けた仮想オブジェクト42を含む領域を、拡張領域62として設定する。
The setting unit 14P sets the
このため、仮想立体物40の表面における、仮想オブジェクト42より広い領域が、拡張領域62として設定される。
Therefore, an area wider than the
第1の生成部14Qは、拡張領域62を二次元空間に射影した、拡張領域画像60を生成する。第1の生成部14Qは、第2の生成部14Rが射影時に用いる変換関数を用いて、仮想三次元空間における三次元座標によって示される拡張領域62を、二次元空間に射影する。この射影によって、第1の生成部14Qは、二次元座標によって示される拡張領域画像60を生成すればよい。
The
そして、設定部14Pが拡張領域62を設定した場合、第2の生成部14Rは、形状算出部14Eで算出された三次元形状の仮想立体物40の表面における、設定された拡張領域62内に、仮想オブジェクト42を貼り付ける。そして、第2の生成部14Rは、仮想立体物40の表面の拡張領域62内に貼り付けた仮想オブジェクト42を、二次元空間に射影したオブジェクト画像30を生成する。
Then, when the setting unit 14P sets the
そして、合成部14Gは、背景画像53上に、第1の生成部14Qで生成された拡張領域画像60と、第2の生成部14Rで生成されたオブジェクト画像30と、をこの順に重畳する。これによって、合成部14Gは、背景画像53に、拡張領域画像60およびオブジェクト画像30を重畳した重畳画像54を生成する。
Then, the synthesis unit 14G superimposes the extended
図11は、拡張領域画像60を含む重畳画像54の一例の説明図である。
FIG. 11 is an explanatory diagram of an example of the superimposed
第1の生成部14Qは、仮想立体物40の表面における拡張領域62を二次元空間に射影した拡張領域画像60を生成する。
The
図11に示すように、拡張領域画像60は、仮想三次元空間における、仮想立体物40Aの表面の少なくとも一部の領域であって、仮想オブジェクト42より広い領域を示す、拡張領域62の二次元画像である。そして、オブジェクト画像30は、仮想三次元空間において拡張領域62内に貼り付けられた仮想オブジェクト42の、二次元画像である。
As shown in FIG. 11, the
このため、本実施の形態では、UI部19(表示部20)には、実際には、仮想立体物40(仮想立体物40A)は表示されないが、該仮想立体物40の表面の少なくとも一部の領域を示す拡張領域画像60が表示される。また、UI部19には、この拡張領域画像60内に、該仮想立体物40の表面に貼り付けられたかのような形状のオブジェクト画像30Aが表示されることとなる。
For this reason, in the present embodiment, the virtual three-dimensional object 40 (virtual three-
このため、ユーザは、オブジェクト画像30Aを貼り付けた、仮想三次元空間における仮想立体物40(仮想立体物40A)の形状や大きさを、拡張領域画像60を視認することで確認することができる。
For this reason, the user can confirm the shape and size of the virtual three-dimensional object 40 (virtual three-
なお、設定部14Pは、ユーザによるUI部19の操作指示によって受付部14Iが指示情報を受付けたときに、拡張領域62を設定することが好ましい。指示情報は、オブジェクト画像30の変形または移動を示す。オブジェクト画像30の変形を示す情報は、上記曲げ形状情報に相当する。
Note that the setting unit 14P preferably sets the
このため、制御部14では、ユーザによるUI部19の操作指示によって、受付部14Iが指示情報を受付けた場合には、背景画像53上に拡張領域画像60およびオブジェクト画像30を重畳した重畳画像54を、UI部19へ表示する。
For this reason, in the
また、受付部14Iが指示情報を受付けない場合には、背景画像53上にオブジェクト画像30のみを重畳した重畳画像54を、UI部19へ表示してもよい。
When the reception unit 14I does not receive instruction information, a
なお、表示制御部14Hは、拡張領域画像60の透過度、または、拡張領域画像60およびオブジェクト画像30の透過度を変更した上で、これらの画像を重畳した重畳画像54を生成してもよい。
The
例えば、表示制御部14Hは、第1の透過度の拡張領域画像60と、第1の透過度より低い第2の透過度のオブジェクト画像30Aと、をこの順に重畳した重畳画像54を、UI部19へ表示してもよい。
For example, the
第1の透過度および第2の透過度は、最も背面側に位置する背景画像53が、拡張領域画像60およびオブジェクト画像30を介して視認可能な程度の透過度であればよい。
The first transparency and the second transparency may be such that the
拡張領域画像60およびオブジェクト画像30の透過度を調整することで、ユーザは、拡張領域画像60およびオブジェクト画像30の背面に位置する背景画像53を確認しながら、オブジェクト画像30を操作することができる。
By adjusting the transparency of the extended
なお、表示制御部14Hは、ユーザによるUI部19の操作指示がなされてから予め定めた時間の期間のみ、オブジェクト画像30および拡張領域画像60の透過度を調整してもよい。このような期間にのみ、オブジェクト画像30および拡張領域画像60の透過度を調整することで、ユーザがUI部19を操作中である期間にのみ、拡張領域画像60およびオブジェクト画像30を半透明にして表示することができる。
Note that the
ここで、更に、本実施の形態の制御部14では、ユーザによるUI部19の操作指示によって、オブジェクト画像30を仮想オブジェクト42の拡張領域画像60内で移動させることが可能である。
Here, the
図4に戻り、具体的には、受付部14Iが、第1の移動指示情報を含む、指示情報を受け付ける場合がある。第1の移動指示情報は、仮想オブジェクト42上でのオブジェクト画像30の移動指示と、オブジェクト画像30の仮想立体物40上での移動量および移動方向を二次元座標で示す情報と、を含む。この二次元座標は、UI部19(表示部20)の表示面上の座標である。
Returning to FIG. 4, specifically, the receiving unit 14I may receive instruction information including the first movement instruction information. The first movement instruction information includes a movement instruction of the
例えば、ユーザは、UI部19を操作することで、仮想オブジェクト42上での移動モードへの変更を指示した後に、UI部19に表示されたオブジェクト画像30をスライド操作する。UI部19は、仮想オブジェクト42上での移動モードへの変更、および、オブジェクト画像30のスライド操作を受け付ける。すると、UI部19は、スライド操作によって示されるUI部19の表示面上におけるオブジェクト画像30の移動量および移動方向を、オブジェクト画像30の仮想立体物40上での移動量および移動方向として受け付ける。そして、UI部19は、仮想オブジェクト42上での移動指示と、オブジェクト画像30の仮想立体物40上での移動量および移動方向を二次元座標で示す情報と、を含む第1の移動指示情報を、受付部14Iへ出力する。
For example, the user operates the
受付部14Iは、UI部19から第1の移動指示情報を受付ける。
The accepting unit 14I accepts the first movement instruction information from the
移動部14Lは、UI部19に表示されているオブジェクト画像30に対応する仮想オブジェクト42を、受付けた第1の移動指示情報に応じた移動量分、該第1の移動指示情報に応じた移動方向へ、仮想立体物40上の拡張領域62内で移動させる。
The moving
詳細には、移動部14Lは、第1の移動指示情報に含まれる、二次元座標によって示される移動量および移動方向を示す情報から、上述した変換関数の逆変換関数を用いて、仮想三次元空間における三次元座標によって示される移動量および移動方向を算出する。そして、移動部14Lは、UI部19に表示されているオブジェクト画像30に対応する仮想オブジェクト42を、該仮想オブジェクト42の貼り付けられた仮想立体物40における拡張領域62上で、算出した三次元座標によって示される移動量および移動方向に移動させる。
Specifically, the moving
図11および図12を用いて具体的に説明する。図12は、仮想オブジェクト42Aの移動の説明図である。例えば、受付部14Iが、仮想立体物40の曲率方向に沿った移動方向を示す情報含む、第1の移動指示情報を受付けたとする。ここで、仮想立体物40が円柱状であると仮定する。この場合、移動部14Lは、円柱状の仮想立体物40の円中心(円状の断面の中心)を回転中心として、仮想オブジェクト42Aを、拡張領域画像60内において、操作指示された移動方向に応じた回転方向に回転させる。これによって、オブジェクト画像30Aが、拡張領域画像60内で移動する(図11(A)、図11(B)、図12(A)、図12(B)参照)。
This will be specifically described with reference to FIGS. 11 and 12. FIG. 12 is an explanatory diagram of the movement of the
例えば、移動部14Lは、図12(A)に示す位置に位置する仮想オブジェクト42Aを、仮想立体物40Aの円中心を回転中心として、算出した移動方向(回転方向(図12中、矢印XA方向参照))に回転させる(図12(B)参照)。
For example, the moving
第2の生成部14Rは、受付部14Iが第1の移動指示情報を受付けた場合、仮想立体物40における拡張領域62内の、該第1の移動指示情報に応じて移動部14Lによって移動された位置に貼り付けられた仮想オブジェクト42A(図12(B)参照)を、二次元空間に射影したオブジェクト画像30Aを生成する(図11(B)参照)。
When the reception unit 14I receives the first movement instruction information, the second generation unit 14R is moved by the
そして、表示制御部14Hは、背景画像53に、拡張領域画像60および移動後のオブジェクト画像30Aを重畳した重畳画像54を表示部20(UI部19)へ表示すればよい(図11(B)参照)。
Then, the
このように、オブジェクト画像30に対応する仮想オブジェクト42を、円柱状の仮想立体物40の中心を円中心として回転させることで、オブジェクト画像30に対応する仮想オブジェクト42が、仮想三次元空間上の仮想立体物40の表面に沿って、拡張領域画像60内を移動したかのような表示を行うことができる。このため、制御部14は、ユーザに対して、様々な角度に配置した仮想オブジェクト42の状態を、二次元のオブジェクト画像30で確認可能に提供することができる。
In this way, by rotating the
また、UI部19には、拡張領域画像60が表示されることから、ユーザに対して、UI部19に表示されない仮想立体物40の形状を容易に提供することが可能となる。
In addition, since the
このとき、表示制御部14Hは、仮想オブジェクト42を射影したオブジェクト画像30における、該仮想オブジェクト42の貼り付けられた仮想立体物40の表示面側とは反対側の背面側の領域を非表示することが好ましい。
At this time, the
すなわち、図12(B)に示すように、仮想オブジェクト42Aの一部の領域が、視点位置ZA側(すなわち、表示面側)から見たときに、仮想立体物40Aの背面側に位置する場合がある。図12(B)に示す例では、仮想オブジェクト42Aにおける、領域PAは仮想立体物40Aの前面側に位置しているが、領域PBは仮想立体物40Aの背面側に位置している。
That is, as shown in FIG. 12B, when a part of the
この場合、表示制御部14Hは、仮想オブジェクト42Aにおける、仮想立体物40Aの背面側の領域PBを非表示とすることが好ましい。
In this case, the
また、表示制御部14Hは、拡張領域62を射影した拡張領域画像60についても同様に、仮想立体物40Aの背面側の領域を非表示とすることが好ましい。
Similarly, the
このため、図11(B)に示すように、表示制御部14Hは、拡張領域62および仮想オブジェクト42Aにおける前面側の領域PAのみを二次元空間に射影した、拡張領域画像60およびオブジェクト画像30Aを、表示部20に表示することとなる。
For this reason, as shown in FIG. 11B, the
このため、本実施の形態の画像処理装置10では、オブジェクト画像30Aの位置に応じて、オブジェクト画像30Aの一部が、あたかも仮想立体物40Aの背面側に隠れているかのように表示することが可能となる。また、画像処理装置10では、遠近感を考慮した、オブジェクト画像30Aの表示が可能となる。
Therefore, in the
なお、仮想立体物40の形状は、円柱状などの曲面を有する形状に限定されない。例えば、仮想立体物40の形状は、隣接する2平面を含む形状であってもよい。具体的には、仮想立体物40の形状は、四角柱などの、複数の平面を有する立方体状であってもよい。
Note that the shape of the virtual three-
仮想立体物40の形状は、ユーザによるUI部19による操作指示によって、予め設定すればよい。また、ユーザによるUI部19の操作指示によって、仮想立体物40の形状を切替え可能としてもよい。
The shape of the virtual three-
図13は、仮想立体物40が立方体状である場合の、三次元形状算出の説明図である。なお、立方体状の仮想立体物40を、仮想立体物40Bとして説明する。また、仮想立体物40Bに貼り付ける仮想オブジェクト42を、仮想オブジェクト42Bとして説明する。
FIG. 13 is an explanatory diagram for calculating the three-dimensional shape when the virtual three-
例えば、表示制御部14Hは、貼り付け対象の仮想オブジェクト42Bのオブジェクト画像30BをUI部19に表示する。貼り付け対象の仮想オブジェクト42Bは、例えば、ユーザによるUI部19の操作指示によって選択すればよい。第2の生成部14Rは、選択された仮想オブジェクト42Bを二次元空間に射影することによって、オブジェクト画像30Bを生成する。
For example, the
表示制御部14Hは、選択された仮想オブジェクト42Bのオブジェクト画像30BをUI部19に表示する。オブジェクト画像30Bは、第2の生成部14Rによって仮想オブジェクト42Bを射影することで得られたものである。
The
図13(A)は、選択された仮想オブジェクト42Bのオブジェクト画像30BがUI部19に表示された状態の一例を示す図である。図13に示す例では、仮想オブジェクト42Bが矩形状である場合を一例として説明する。
FIG. 13A is a diagram illustrating an example of a state in which the
ユーザは、UI部19に表示されたオブジェクト画像30Bを用いて、該オブジェクト画像30Bに対応する仮想オブジェクト42Bの曲げ形状を操作入力する。図13に示す例では、ユーザは、UI部19の表示面上を操作することで、UI部19に表示されたオブジェクト画像30Bの曲げ位置を調整する。
The user uses the
例えば、表示制御部14Hは、仮想直線L1を表示する。ユーザは、画像処理装置10に表示されたオブジェクト画像30Bにおける、曲げ対象の領域を仮想直線L1に一致させるように、オブジェクト画像30Bの表示位置をドラッグ操作などにより移動させる。なお、表示制御部14Hは、背景画像53を解析し、直線状の領域を公知の画像処理によって抽出してもよい。そして、表示制御部14Hは、背景画像53をUI部19に表示し、抽出した直線状の領域を、仮想直線L1として用いてもよい。
For example, the
取得部14Dは、UI部19に表示されたオブジェクト画像30Bにおける、仮想直線L1に相当する位置を曲げ位置として示す、曲げ形状情報を取得する。
The
この場合、形状算出部14Eは、オブジェクト画像30Bに対応する仮想オブジェクト42Bを、曲げ形状情報に含まれる曲げ位置で折り曲げた隣接する2平面を含む、仮想立体物40Bの三次元形状を算出する。
In this case, the
具体的には、図13(B)に示すように、形状算出部14Eは、オブジェクト画像30Bに対応する仮想オブジェクト42Bを、曲げ形状情報に含まれる曲げ位置で折り曲げた2平面を含む、立方体状の仮想立体物40Bを算出する。
Specifically, as illustrated in FIG. 13B, the
このように、ユーザによるUI部19の操作指示によって、UI部19(表示部20)の二次元座標を用いて、曲げ位置を含む曲げ形状情報が入力される。このため、ユーザは、任意の曲げ位置を、UI部19の二次元座標を用いて入力することができる。
In this way, bending shape information including a bending position is input using the two-dimensional coordinates of the UI unit 19 (display unit 20) according to an operation instruction of the
そして、設定部14Pは、形状算出部14Eによって算出された形状(例えば、立方体状)の仮想立体物40Bの表面の少なくとも一部の領域に、仮想オブジェクト42Bより広い拡張領域62(図13中、拡張領域62D参照)を設定する。設定部14Pは、第2の生成部14Rと同様にして、仮想立体物40Bの表面に仮想オブジェクト42Bを貼り付けた上で、拡張領域62Dを設定すればよい。そして、第1の生成部14Qは、拡張領域62Dを二次元空間に射影した、拡張領域画像60を生成する。
Then, the setting unit 14P includes an extended region 62 (in FIG. 13) wider than the
また、第2の生成部14Rは、形状算出部14Eによって算出された形状(例えば、立方体状)の仮想立体物40Bの表面における、隣接する2平面の境界に、操作指示された曲げ位置が一致するように、仮想オブジェクト42Bを貼り付ける(図13(C)参照)。このとき、第2の生成部14Rは、拡張領域62D内に仮想立体物40Bが位置するように、仮想オブジェクト42Bを貼り付ける(図13(C)参照)。
Further, the second generation unit 14R matches the bending position instructed to the boundary between two adjacent planes on the surface of the virtual
そして、第2の生成部14Rは、この仮想立体物40Bの表面の、拡張領域62D内に貼り付けた仮想オブジェクト42Bを、二次元空間に射影する。この射影によって、第2の生成部14Rは、オブジェクト画像30Bを生成する。そして、表示制御部14Hは、背景画像53に、拡張領域62Dおよびオブジェクト画像30Bを重畳した重畳画像54を、UI部19(表示部20)へ表示する。
Then, the second generation unit 14R projects the
なお、曲げ形状情報は、曲げ角度を含んでもよい。ユーザは、UI部19の操作指示によって、曲げ位置を指定すると共に、曲げ角度を操作入力する。例えば、ユーザは、UI部19の操作指示によって曲げ位置を指定した後に、UI部19の操作指示によって、オブジェクト画像30Bの4頂点の内の2頂点の、折り曲げ後の位置を操作入力する。すると、取得部14Dは、曲げ角度を更に含む曲げ形状情報を取得する。
Note that the bending shape information may include a bending angle. The user designates a bending position and inputs a bending angle by an operation instruction from the
この場合、形状算出部14Eは、隣接する2平面の成す角度が、曲げ形状情報に含まれる曲げ角度を示す、仮想立体物40Bの三次元形状を算出すればよい。
In this case, the
この場合、図13(B)に示すように、形状算出部14Eは、隣接する2平面の成す角度が、曲げ形状情報に含まれる曲げ角度θを示す、仮想立体物40Bの三次元形状を算出する。
In this case, as shown in FIG. 13B, the
また、形状算出部14Eは、仮想立体物40Bにおける、取得した曲げ形状情報に含まれる曲げ位置を辺とする隣接する2平面の大きさが、予め定めた大きさである、仮想立体物40Bの三次元形状を算出すればよい。
In addition, the
そして、設定部14Pは、仮想立体物40Bにおける該2平面の、該曲げ位置から曲げ方向の一方の辺までの領域と、該曲げ位置から他方の辺までの領域と、を含む拡張領域62Dを設定することが好ましい(図13(C)参照)。
Then, the setting unit 14P includes an
仮想立体物40Bにおける、曲げ位置から曲げ方向の一方の辺、とは、仮想オブジェクト42Bを操作入力された曲げ位置で折り曲げたときに、仮想立体物40Bにおける、該折り曲げ位置を共通の辺として隣接す2平面の内の一方の1平面の、該共通の辺に平行な辺である。そして、上記他方の辺とは、他方の1平面の、該共通の辺に平行な辺である。
The one side in the bending direction from the bending position in the virtual three-
また、上記と同様に、曲げ形状情報は、仮想オブジェクト42Bの曲げ方向を更に含んでいてもよい。
Similarly to the above, the bending shape information may further include the bending direction of the
そして、第1の生成部14Qは、拡張領域62Dを二次元空間に射影した拡張領域画像60を生成する(図13(B)参照)。
Then, the
また、第2の生成部14Rは、形状算出部14Eで算出された三次元形状の仮想立体物40Bの表面における、拡張領域画像60内に仮想オブジェクト42Bを貼り付ける。このため、図13(C)に示すように、仮想オブジェクト42Bは、形状算出部14Eで算出された三次元形状の仮想立体物40Bの表面の2平面における、拡張領域画像60内に、仮想直線L1を曲げ位置として折り曲げられて貼り付けられた状態となる。
The second generation unit 14R pastes the
そして、第2の生成部14Rは、この仮想立体物40Bの表面の拡張領域62D内に貼り付けられた仮想オブジェクト42Bを、二次元空間に射影したオブジェクト画像30Bを生成する(図13(B)参照)。
Then, the second generation unit 14R generates an
このように、仮想立体物40は、立方体状の仮想立体物40Bであってもよい。
Thus, the virtual
図4に戻り説明を続ける。 Returning to FIG.
受付部14Iは、第2の移動指示情報を含む、指示情報を受付けてもよい。第2の移動指示情報は、オブジェクト画像30の、UI部19の表示面上での移動量および移動方向を、二次元座標で示す。
The reception unit 14I may receive instruction information including the second movement instruction information. The second movement instruction information indicates the movement amount and movement direction of the
第2の移動指示情報は、オブジェクト画像30を、仮想立体物40上ではなく、UI部19の表示面内で移動させることを示す。言い換えると、第2の移動指示情報は、オブジェクト画像30に対応する仮想オブジェクト42を、仮想立体物40に貼り付けた状態のままで、表示面内を移動させることを示す。
The second movement instruction information indicates that the
詳細には、第2の移動指示情報は、表示面上でのオブジェクト画像30の移動指示と、オブジェクト画像30の表示面上での移動量および移動方向を二次元座標で示す情報と、を含む。この二次元座標は、UI部19(表示部20)の表示面上の座標である。
Specifically, the second movement instruction information includes a movement instruction of the
例えば、ユーザは、UI部19を操作することで、表示面上での移動モードへの変更を指示した後に、UI部19に表示されたオブジェクト画像30をスライド操作する。UI部19は、表示面上での移動モードへの変更、および、オブジェクト画像30のスライド操作を受け付ける。すると、UI部19は、スライド操作によって示されるUI部19の表示面上におけるオブジェクト画像30の移動量および移動方向を、オブジェクト画像30の表示面上での移動量および移動方向として受け付ける。そして、UI部19は、表示面上での移動指示と、オブジェクト画像30の移動量および移動方向を二次元座標で示す情報と、を含む第2の移動指示情報を、受付部14Iへ出力する。
For example, the user operates the
関数補正部14Mは、第2の移動指示情報に応じた移動量および方向に、仮想オブジェクト42が二次元座標上で移動するように、仮想オブジェクト42を二次元空間に射影するための変換関数を補正する。
The
例えば、関数補正部14Mは、二次元座標での平行移動量を、変換関数の逆関数により三次元座標での平行移動量に変換する。そして、関数補正部14Mは、変換した三次元座標での平行移動量分、仮想オブジェクト42を移動させるように変換関数を補正する。
For example, the
この場合、第2の生成部14Rは、関数補正部14Mで補正された変換関数に基づいて、オブジェクト画像30を生成する。また、第1の生成部14Qは、関数補正部14Mで補正された変換関数に基づいて、拡張領域画像60を生成する。
In this case, the second generation unit 14R generates the
図14は、オブジェクト画像30の移動の説明図である。例えば、ユーザによるUI部19の操作指示によって、オブジェクト画像30の図14(A)中、右方向への移動が操作指示されたとする。この場合、関数補正部14Mが補正した変換関数を用いて、第2の生成部14Rがオブジェクト画像30を生成する。すると、図14(B)に示すように、オブジェクト画像30が操作指示によって指示された方向に移動した重畳画像54が、UI部19に表示されることとなる。
FIG. 14 is an explanatory diagram of the movement of the
また、関数補正部14Mが補正した変換関数を用いて、第1の生成部14Qが拡張領域画像60を生成する。このため、図14(B)に示すように、拡張領域画像60上に重畳したオブジェクト画像30が、操作指示によって指示された方向に移動した重畳画像54が、UI部19に表示されることとなる。
Further, the
光源設定部14Oは、光源の光源効果を示す光源情報を設定する。本実施の形態では、光源設定部14Oは、受付部14Iで受け付けた光源情報を設定する。ユーザは、UI部19を操作することで、オブジェクト画像30に付与する光源効果を示す光源情報を入力する。受付部14Iは、UI部19から光源情報を受付け、光源設定部14Oは、受付けた光源情報を設定する。
The light source setting unit 14O sets light source information indicating the light source effect of the light source. In the present embodiment, the light source setting unit 14O sets the light source information received by the receiving unit 14I. The user operates the
受付部14Iが光源情報を受け付け、光源設定部14Oが光源情報を設定した場合、表示制御部14Hは、オブジェクト画像30に、光源情報によって示される光源効果を付与することが好ましい。光源効果の付与には、Open GLを用いればよい。
When the reception unit 14I receives light source information and the light source setting unit 14O sets light source information, the
姿勢補正部14Nは、拡張領域画像60および仮想オブジェクト42の姿勢を補正する。図15は、姿勢補正の説明図である。姿勢補正部14Nは、姿勢検出部14Aが検出した姿勢情報に応じて、仮想オブジェクト42の姿勢を補正する。
The
具体的には、実空間における画像処理装置10の撮影部12の、初期設定時における初期姿勢からの変化量(姿勢変換量)をA=(α,β,γ)とした場合、姿勢補正部14Nは、仮想オブジェクト42の姿勢を、姿勢変化量Aに逆符号を乗じた姿勢補正量B=(−α,−β,−γ)分、基準姿勢から回転補正する。
Specifically, when the amount of change (posture conversion amount) from the initial posture at the time of initial setting of the photographing
具体的には、姿勢検出部14Aが、姿勢情報として、互いに直交するx軸、y軸およびz軸のそれぞれを中心とした、初期姿勢からの回転角の変化量(ロール角の変化量α、ピッチ角の変化量βおよびヨー角の変化量γ)を検出する。そして、姿勢補正部14Nは、三次元座標において、仮想オブジェクト42のロール角、ピッチ角およびヨー角のそれぞれを、予め設定されている基準姿勢から、姿勢情報とは逆符号の回転角分(−α,−β,−γ)、回転させる。これにより、姿勢補正部14Nは、仮想オブジェクト42の姿勢を画像処理装置10の撮影部12の姿勢の変化とは逆に動かすように補正する。
Specifically, the posture detection unit 14A uses, as posture information, the amount of change in the rotation angle from the initial posture (the amount of change in the roll angle α, around the x axis, the y axis, and the z axis orthogonal to each other). A pitch angle change amount β and a yaw angle change amount γ) are detected. Then, the
また、姿勢補正部14Nは、拡張領域62と同様にして、拡張領域62の姿勢を補正する。
Further, the
図16は、姿勢変化に応じた、拡張領域画像60およびオブジェクト画像30の形状変化の説明図である。姿勢補正部14Nが仮想オブジェクトの姿勢を補正した結果、画像処理装置10は、撮影方向が変化した場合であっても、静止している物体を異なる方向から撮影したように、オブジェクト画像30の形状を変化させることができる。また、同様に、画像処理装置10は、拡張領域画像60の形状を変化させることができる。
FIG. 16 is an explanatory diagram of changes in the shapes of the extended
例えば、図16に示すように、画像処理装置10は、撮影方向を例えばA1,A2,A3のように変化させた場合には、オブジェクト画像30が壁31に貼り付いているかのように、オブジェクト画像30の形状を変化させることができる。また同様に、画像処理装置10は、拡張領域画像60の形状を変化させることができる。
For example, as illustrated in FIG. 16, when the
なお、姿勢補正部14Nは、行列を用いて、オブジェクト画像30および拡張領域画像60の姿勢を補正してもよい。例えば、式(1)を用いて、姿勢を補正してもよい。
Note that the
式(1)中、(a,b,c)は、姿勢変更前のオブジェクト画像30(または拡張領域画像60)の重心位置を示す。また、(a’,b’,c’)は、仮想三次元空間における姿勢変更後の位置Lの重心位置を示す。Mは、姿勢情報を示す、移動回転行列である。(tx’,ty’,tz’)は、姿勢変更後のオブジェクト画像30(または拡張領域画像60)の頂点の座標を示す。 In equation (1), (a, b, c) represents the barycentric position of the object image 30 (or the extended region image 60) before the posture change. Further, (a ′, b ′, c ′) indicates the barycentric position of the position L after the posture change in the virtual three-dimensional space. M is a movement rotation matrix indicating posture information. (Tx ', ty', tz ') indicates the coordinates of the vertex of the object image 30 (or the extended region image 60) after the posture change.
すなわち、オブジェクト画像30および拡張領域画像60の重心位置の座標を原点として、位置Lにオブジェクト画像30および拡張領域画像60を移動させたときの、位置Lの座標行列は、原点座標行列Oと、移動回転行列Mと、の積に等しい。このため、移動回転行列Mを保持共有することで、オブジェクト画像30および拡張領域画像60を、同じ姿勢、同じ奥行きで表示することができる。
That is, the coordinate matrix of the position L when the
次に、制御部14で実行する表示処理を説明する。
Next, display processing executed by the
図17は、本実施の形態の制御部14で実行する表示処理の手順を示すフローチャートである。
FIG. 17 is a flowchart illustrating a procedure of display processing executed by the
まず、受付部14Iが、貼り付け対象の仮想オブジェクト42の選択をUI部19から受け付ける(ステップS100)。次に、撮影部12が撮影を開始する(ステップS102)。ステップS102の処理によって、背景画像53の取得が開始される。
First, the reception unit 14I receives selection of the
次に、合成部14Gが、ステップS102で取得した背景画像53上に、ステップS100で受け付けた仮想オブジェクト42のオブジェクト画像30を重畳し、表示制御部14Hが、UI部19に表示する(ステップS103)。
Next, the composition unit 14G superimposes the
次に、受付部14Iが、UI部19から曲げ形状の操作入力を取得したか否かを判断する(ステップS104)。受付部14Iは、曲げ形状情報を含む、指示情報をUI部19から受け付けたか否かを判別することで、ステップS104の判断を行う。
Next, the reception unit 14I determines whether or not a bending shape operation input has been acquired from the UI unit 19 (step S104). The receiving unit 14I determines whether or not the instruction information including the bending shape information has been received from the
ステップS104で肯定判断すると(ステップS104:Yes)ステップS106へ進む。 If an affirmative determination is made in step S104 (step S104: Yes), the process proceeds to step S106.
ステップS106では、取得部14Dが、曲げ形状情報を取得する(ステップS106)。取得部14Dは、指示情報に含まれる、曲げ形状情報を取得する。次に、形状算出部14Eが、ステップS106で取得した曲げ形状情報に応じて、仮想立体物40の三次元形状を算出する(ステップS108)。
In step S106, the
次に、設定部14Pが、ステップS108で算出した仮想立体物40の表面の少なくとも一部の領域に、ステップS100で受け付けた仮想オブジェクト42より広い、拡張領域62を設定する(ステップS110)。
Next, the setting unit 14P sets an
次に、第1の生成部14Qが、ステップS110で設定した拡張領域62を、二次元空間に射影した拡張領域画像60を生成する(ステップS112)。
Next, the
次に、第2の生成部14Rが、ステップS108で算出された三次元形状の仮想立体物40の表面における、ステップS110で設定された拡張領域62上に、ステップS100で受け付けた仮想オブジェクト42を貼り付ける。そして、貼り付けた仮想オブジェクト42を二次元空間に射影したオブジェクト画像30を生成する(ステップS114)。
Next, the second generation unit 14R places the
次に、合成部14Gが、背景画像53上に、ステップS112で生成した拡張領域画像60と、ステップS114で生成したオブジェクト画像30と、をこの順に重畳した重畳画像54を生成する(ステップS116)。表示制御部14Hは、ステップS116で生成された重畳画像54をUI部19(表示部20)へ表示する(ステップS118)。
Next, the synthesizing unit 14G generates a
次に、制御部14は、表示処理を終了するか否かを判断する(ステップS120)。ステップS120の判断は、例えば、UI部19から終了を示す操作指示がユーザによって操作入力されたか否かを判別することで行う。ステップS116で否定判断すると(ステップS120:No)、ステップS104へ戻る。一方、ステップS120で肯定判断すると(ステップS120:Yes)、本ルーチンを終了する。
Next, the
一方、上記ステップS104で否定判断すると(ステップS104:No)、上記ステップS118へ進む。 On the other hand, if a negative determination is made in step S104 (step S104: No), the process proceeds to step S118.
なお、ステップS104で否定判断したときに、拡張領域画像60を含む重畳画像54がUI部19に表示されている場合、制御部14は、UI部19から前回操作指示を受付けてから所定時間経過したか否かを判断してもよい。
If the
そして、所定時間経過したと判断した場合、ステップS118において、表示制御部14Hは、以下の処理をすることが好ましい。すなわち、表示制御部14Hは、表示されている重畳画像54から拡張領域画像60を除いた重畳画像54(すなわち、背景画像53上にオブジェクト画像30を重畳した重畳画像54)をUI部19に表示することが好ましい。これによって、UI部19から操作指示を受付けてから所定時間の間にのみ、拡張領域画像60を表示することができる。
And when it is judged that predetermined time passed, in step S118, it is preferable that the
制御部14では、図17の表示処理時に、図18および図19に示す割り込み処理(第1の割り込み処理、第2の割り込み処理)を実行する。
The
図18は、第1の割り込み処理の手順を示すフローチャートである。 FIG. 18 is a flowchart showing the procedure of the first interrupt process.
まず、受付部14Iが、第1の移動指示情報をUI部19から受け付けたか否かを判断する(ステップS200)。受付部14Iは、第1の移動指示情報を含む、指示情報を受付けたか否かを判別することで、ステップS200の判断を行う。 First, the receiving unit 14I determines whether or not the first movement instruction information has been received from the UI unit 19 (step S200). The receiving unit 14I determines whether or not the instruction information including the first movement instruction information has been received, thereby determining step S200.
ステップS200で否定判断すると(ステップS200:No)、本ルーチンを終了する。一方、ステップS200で肯定判断すると(ステップS200:Yes)、ステップS202へ進む。 If a negative determination is made in step S200 (step S200: No), this routine ends. On the other hand, if an affirmative determination is made in step S200 (step S200: Yes), the process proceeds to step S202.
ステップS202では、移動部14Lが、ステップS200で受け付けた第1の移動指示情報に応じた移動量分、該第1の移動指示情報に応じた移動方向へ、仮想オブジェクト42を仮想立体物40上における、拡張領域62内で移動させる(ステップS202)。
In step S202, the moving
第2の生成部14Rは、仮想立体物40上の、ステップS202による処理によって移動された位置に貼り付けられた仮想オブジェクト42を二次元空間に射影した、オブジェクト画像30を生成する(ステップS204)。
The second generation unit 14R generates an
合成部14Gは、背景画像53上に、拡張領域画像60と、ステップS204で生成されたオブジェクト画像30と、を合成した重畳画像54を生成する(ステップS206)。次に、表示制御部14Hは、重畳画像54をUI部19(表示部20)へ表示する(ステップS208)。そして、本ルーチンを終了する。
The synthesizing unit 14G generates a
図19は、第2の割り込み処理の手順を示すフローチャートである。 FIG. 19 is a flowchart showing the procedure of the second interrupt process.
まず、受付部14Iが、第2の移動指示情報をUI部19から受け付けたか否かを判断する(ステップS300)。ステップS300で否定判断すると(ステップS300:No)、本ルーチンを終了する。ステップS300で肯定判断すると(ステップS300:Yes)、ステップS302へ進む。 First, the receiving unit 14I determines whether or not the second movement instruction information has been received from the UI unit 19 (step S300). If a negative determination is made in step S300 (step S300: No), this routine ends. If an affirmative determination is made in step S300 (step S300: Yes), the process proceeds to step S302.
ステップS302では、姿勢補正部14Nが、ステップS300で受け付けた第2の移動指示情報に応じた移動量および方向に、仮想オブジェクト42が二次元座標上で移動するように、仮想オブジェクト42を二次元空間に射影するための変換関数を補正する(ステップS302)。また、姿勢補正部14Nは、姿勢検出部14Aで検出された姿勢に応じて、拡張領域62および仮想オブジェクト42の姿勢を補正する。
In step S302, the
次に、第1の生成部14Qは、ステップS302で補正された変換関数を用いて、姿勢を補正された拡張領域62を射影し、拡張領域画像60を生成する(ステップS304)。
Next, the 1st production |
次に、第2の生成部14Rは、ステップS302で補正された変換関数を用いて、姿勢を補正された仮想オブジェクト42を射影し、オブジェクト画像30を生成する(ステップS306)。次に、合成部14Gが、背景画像53上に、ステップS304で生成された拡張領域画像60と、ステップS306で生成されたオブジェクト画像30と、を合成した重畳画像54を生成する(ステップS308)。次に、表示制御部14Hが、重畳画像54をUI部19(表示部20)へ表示する(ステップS310)。そして、本ルーチンを終了する。
Next, the second generation unit 14R projects the
なお、制御部14では、姿勢検出部14Aが新たな姿勢情報を検出する度に、姿勢補正部14Nが、仮想オブジェクト42の姿勢を補正する割り込み処理を更に実行する。そして、表示制御部14Hは、姿勢補正部14Nによって姿勢が補正されると、補正後の姿勢の仮想オブジェクト42を二次元空間に射影したオブジェクト画像30を表示部20へ表示すればよい。また、表示制御部14Hは、拡張領域画像60についても同様に、姿勢を補正すればよい。
In the
図20は、上記表示処理が実行されることによって、UI部19に表示される重畳画像54の一例を示す図である。
FIG. 20 is a diagram illustrating an example of the superimposed
例えば、制御部14は、背景画像53上にオブジェクト画像30を重畳した重畳画像54を、UI部19に表示する(図20(A)参照)。そして、ユーザによる操作指示によって、曲げ形状情報が入力される。例えば、ユーザは、背景画像53に含まれる円柱状物体53Aの形状を曲げ形状情報として入力する。
For example, the
すると、形状算出部14Eは、入力された曲げ形状情報に応じた、仮想立体物40の三次元形状を算出する。そして、第2の生成部14Rは、該仮想立体物40に仮想オブジェクト42を貼り付け、二次元空間に射影することでオブジェクト画像30を生成する。そして、表示制御部14Hは、背景画像53上に、オブジェクト画像30を重畳した重畳画像54を、UI部19へ表示する(図20(B)参照)。
Then, the
そして、ユーザによるUI部19の操作によって、指示情報が入力されると、設定部14Pは、仮想立体物40上に拡張領域62を設定する。第1の生成部14Qは、拡張領域62を二次元空間に射影した拡張領域画像60を生成する。そして、第2の生成部14Rは、仮想立体物40における拡張領域62内に仮想オブジェクト42を貼り付け、この仮想オブジェクト42を射影してオブジェクト画像30を生成する。
Then, when the instruction information is input by the user operating the
表示制御部14Hは、背景画像53上に、拡張領域画像60およびオブジェクト画像30をこの順に重畳した重畳画像54を、UI部19へ表示する(図20(C)参照)。
The
このため、ユーザによるUI部19の操作指示によって指示情報が入力されると、拡張領域画像60上にオブジェクト画像30が表示された状態となる。拡張領域画像60は、オブジェクト画像30より広く、且つ、重畳画像54の表示時には非表示である仮想立体物40の少なくとも一部の領域である。このため、ユーザは、UI部19に表示された拡張領域画像60の形状を確認することで、仮想オブジェクト42の曲げ形状を調整することできる。
For this reason, when the instruction information is input in response to an operation instruction of the
ここで、ユーザが仮想オブジェクト42を貼り付ける事を所望する仮想立体物40の形状が、背景画像53に含まれる円柱状物体53Aと一致すると仮定する。この場合、ユーザは、拡張領域画像60の曲率を円柱状物体53Aに合わせて調整することで、曲げ形状を入力することができる。
Here, it is assumed that the shape of the virtual three-
ユーザによるUI部19の操作によって、新たな曲げ形状が入力されると、制御部14は、上記表示処理によって、背景画像53上に、変更後の曲げ形状の曲げ形状情報に応じた形状の仮想立体物40上に、拡張領域62および仮想オブジェクト42が貼り付けられた状態を示す、仮想オブジェクト42を表示する(図20(D)参照)。
When a new bending shape is input by the user's operation of the
このため、ユーザは、背景画像53に含まれる円柱状物体53Aにオブジェクト画像30があたかも貼り付けられたかのような表示がなされるように、貼り付け対象の仮想立体物40の形状算出に用いる曲げ形状を、容易に入力することができる。
For this reason, the user uses the bending shape used for calculating the shape of the virtual
図21は、曲げ形状の入力の一例を示す説明図である。例えば、ユーザは、UI部19における、オブジェクト画像30の表示領域を操作指示することで、曲げ形状を入力する。例えば、ユーザは、UI部19のピンチアウト操作によって、図21(A)に示すオブジェクト画像30を、図21(B)に示すオブジェクト画像30に変形する。これにより、UI部19には、図21(B)に示すオブジェクト画像30に沿った曲げ形状が入力される。
FIG. 21 is an explanatory diagram showing an example of inputting a bending shape. For example, the user inputs a bent shape by operating the display area of the
また、例えば、ユーザによるUI部19のピンチイン操作によって、図21(A)に示すオブジェクト画像30を、図21(C)に示すオブジェクト画像30に変形する。これにより、UI部19には、図21(C)に示すオブジェクト画像30に沿った曲げ形状が入力される。
Further, for example, the
このとき、UI部19には、オブジェクト画像30と共に拡張領域画像60が表示されている。このため、ユーザは、拡張領域画像60の形状を確認しながらUI部19を操作することで、所望の曲げ形状を容易に入力することができる。
At this time, the
図20に戻り、また、受付部14Iが、第1の移動指示情報を含む指示情報を受け付けると、制御部14は、該第1の移動指示情報によって示される移動量および移動方向に、拡張領域画像60内でオブジェクト画像30を移動させた重畳画像54を表示することができる(図20(E)参照)。
Returning to FIG. 20, when the reception unit 14I receives the instruction information including the first movement instruction information, the
また、仮想立体物40が立方体状である場合も同様である。図22は、上記表示処理が実行されることによって、UI部19に表示される重畳画像54の一例を示す図である。
The same applies when the virtual three-
例えば、制御部14は、背景画像53上にオブジェクト画像30を重畳した重畳画像54を、UI部19に表示する(図22(A)参照)。そして、ユーザによる操作指示によって、曲げ形状情報が入力される。例えば、ユーザは、背景画像53に含まれる立方体状物体53Bの形状を曲げ形状情報として入力する。
For example, the
すると、形状算出部14Eは、入力された曲げ形状情報に応じた、仮想立体物40の三次元形状を算出する。そして、第2の生成部14Rは、該仮想立体物40に仮想オブジェクト42を貼り付け、二次元空間に射影することでオブジェクト画像30を生成する。そして、表示制御部14Hは、背景画像53上に、オブジェクト画像30を重畳した重畳画像54を、UI部19へ表示する(図22(B)参照)。
Then, the
そして、ユーザによるUI部19の操作によって、指示情報が入力されると、設定部14Pは、仮想立体物40上に拡張領域62を設定する。第1の生成部14Qは、拡張領域62を二次元空間に射影した拡張領域画像60を生成する。そして、第2の生成部14Rは、仮想立体物40における拡張領域62内に仮想オブジェクト42を貼り付け、この仮想オブジェクト42を射影してオブジェクト画像30を生成する。
Then, when the instruction information is input by the user operating the
表示制御部14Hは、背景画像53上に、拡張領域画像60およびオブジェクト画像30をこの順に重畳した重畳画像54を、UI部19へ表示する(図22(C)参照)。
The
このため、ユーザによるUI部19の操作指示によって指示情報が入力されると、拡張領域画像60上にオブジェクト画像30が表示された状態となる。拡張領域画像60は、オブジェクト画像30より広く、且つ、重畳画像54の表示時には非表示である仮想立体物40の少なくとも一部の領域である。このため、ユーザは、拡張領域画像60の形状を確認することで、仮想オブジェクト42の曲げ形状を調整することできる。
For this reason, when the instruction information is input in response to an operation instruction of the
ここで、ユーザが仮想オブジェクト42を貼り付ける事を所望する仮想立体物40の形状が、背景画像53に含まれる立方体状物体53Bと一致すると仮定する。この場合、ユーザは、拡張領域画像60の曲げ形状を立方体状物体53Bに合わせて調整することで、曲げ形状を容易に入力することができる。
Here, it is assumed that the shape of the virtual three-
ユーザによるUI部19の操作によって、新たな曲げ形状が入力されると、制御部14は、上記表示処理によって、変更後の曲げ形状の曲げ形状情報に応じた形状の仮想立体物40上に、拡張領域62および仮想オブジェクト42を貼り付ける。そして、制御部14は、背景画像53上に、拡張領域62を射影した拡張領域画像60と、仮想オブジェクト42を射影したオブジェクト画像30と、を重畳した重畳画像54をUI部19に表示する(図22(D)参照)。
When a new bending shape is input by the user's operation of the
図23は、曲げ形状の入力の一例を示す説明図である。例えば、ユーザは、UI部19における、オブジェクト画像30の表示領域を操作指示することで、曲げ形状を入力する。例えば、ユーザは、UI部19の表示面をスライド操作することによって、図23(A)に示すオブジェクト画像30の曲げ位置を調整し、図23(B)に示すオブジェクト画像30に変形する。これにより、UI部19には、図23(B)に示すオブジェクト画像30に沿った曲げ形状が入力される。
FIG. 23 is an explanatory diagram illustrating an example of inputting a bending shape. For example, the user inputs a bent shape by operating the display area of the
このとき、UI部19には、オブジェクト画像30と共に拡張領域画像60が表示されている。このため、ユーザは、拡張領域画像60の形状を確認しながらUI部19を操作することで、所望の曲げ形状を容易に入力することができる。
At this time, the
また、例えば、ユーザは、UI部19のピンチアウト操作によって、図23(A)に示す拡張領域画像60の幅を、図23中、右方向に長くするように変形する。これにより、UI部19には、図23(C)に示す拡張領域画像60の大きさおよび形状が入力される。この場合、設定部14Pは、入力された大きさおよび形状の拡張領域画像60を設定すればよい。これにより、拡張領域画像60の大きさを変更することができる。
Further, for example, the user transforms the width of the extended
また、例えば、ユーザは、UI部19のピンチアウト操作によって、図23(A)に示す拡張領域画像60の幅を、図23中、左方向に長くするように変形する。これにより、UI部19には、図23(D)に示す拡張領域画像60の大きさおよび形状が入力される。この場合、設定部14Pは、入力された大きさおよび形状の拡張領域画像60を設定すればよい。これにより、拡張領域画像60の大きさを変更するができる。
Further, for example, the user changes the width of the extended
図22に戻り、また、受付部14Iが、第1の移動指示情報を含む指示情報を受け付けると、制御部14は、該第1の移動指示情報によって示される移動量および移動方向に、拡張領域画像60内でオブジェクト画像30を移動させた重畳画像54を表示することができる(図22(E)参照)。
Returning to FIG. 22, when the reception unit 14I receives the instruction information including the first movement instruction information, the
以上説明したように、本実施の形態の画像処理装置10は、取得部14Dと、形状算出部14Eと、設定部14Pと、第1の生成部14Qと、第2の生成部14Rと、表示制御部14Hと、を備える。取得部14Dは、仮想三次元空間に配置する仮想オブジェクト42の曲げ形状を、表示部20の表示面を表す二次元座標で表した、曲げ形状情報を取得する。形状算出部14Eは、曲げ形状情報に応じて、仮想オブジェクト42の貼り付け対象を示す仮想立体物40の三次元形状を算出する。設定部14Pは、仮想立体物42の表面の少なくとも一部の領域に、仮想オブジェクト42より広い拡張領域62を設定する。第1の生成部14Qは、拡張領域62を二次元空間に射影した拡張領域画像60を生成する。第2の生成部14Rは、仮想立体物40の表面の拡張領域62内に貼り付けた仮想オブジェクト42を、二次元空間に射影したオブジェクト画像30を生成する。表示制御部14Hは、背景画像53に拡張領域画像60とオブジェクト画像30とをこの順に重畳した重畳画像54を、表示部20へ表示する。
As described above, the
このため、ユーザは、拡張領域画像60を確認しながら曲げ形状を入力することで、所望の形状の仮想立体物40に応じた曲げ形状を入力することができる。そして、第2の生成部14Rは、曲げ形状を示す曲げ形状情報から算出された三次元形状の仮想立体物40の表面の、拡張領域62内に貼り付けた仮想オブジェクト42を、二次元空間に射影したオブジェクト画像30を生成する。表示制御部14Hは、背景画像53に拡張領域画像60とオブジェクト画像30とをこの順に重畳した重畳画像54を、表示部20へ表示する。
For this reason, the user can input the bending shape according to the virtual
従って、本実施の形態では、仮想オブジェクト42を任意の形状の仮想立体物40に貼り付けた状態を示す画像(重畳画像54)を、容易に提供することができる。
Therefore, in the present embodiment, it is possible to easily provide an image (superimposed image 54) showing a state where the
また、本実施の形態の画像処理装置10は、受付部14Iを備えることができる。受付部14Iは、オブジェクト画像30の変形または移動を示す指示情報を受け付ける。そして、設定部14Pは、指示情報を受付けたときに、拡張領域62を設定する。このため、画像処理装置10では、受付部14Iが指示情報を受付けたときに、背景画像53上に、拡張領域画像60およびオブジェクト画像30をこの順に重畳した重畳画像54を、UI部19へ表示することができる。
In addition, the
また、指示情報は、オブジェクト画像30の仮想立体物40上での移動量および移動方向を示す第1の移動指示情報を含む。移動部14Lは、仮想オブジェクト42を、第1の移動指示情報に応じた移動量分、第1の移動指示情報に応じた移動方向へ、仮想立体物40上の拡張領域62内で移動させる。第2の生成部14Rは、第1の移動指示情報を含む指示情報を受付けた場合、移動後の該仮想オブジェクト42を二次元空間に射影した、オブジェクト画像30を生成する。
Further, the instruction information includes first movement instruction information indicating the movement amount and movement direction of the
また、指示情報は、オブジェクト画像30の表示面上での移動量および移動方向を示す第2の移動指示情報を含む。また、関数補正部14Mは、第2の移動指示情報に応じた移動量および移動方向に、拡張領域62および仮想オブジェクト42が二次元座標上で移動するように、拡張領域62および仮想オブジェクト42を二次元空間に射影するための変換関数を補正する。第1の生成部14Qは、第2の移動指示情報を受付けた場合、補正された変換関数に基づき、拡張領域画像60を生成する。第2の生成部14Rは、第2の移動指示情報を受付けた場合、補正された変換関数に基づき、オブジェクト画像30を生成する。
The instruction information includes second movement instruction information indicating the movement amount and movement direction of the
また、表示制御部14Hは、背景画像53上に、第1の透過度の拡張領域画像60と、第1の透過度より低い第2の透過度のオブジェクト画像30と、をこの順に重畳した重畳画像54を、表示部20へ表示する。
Further, the
次に、上述した画像処理装置10のハードウェア構成について説明する。
Next, the hardware configuration of the
図24は、画像処理装置10のハードウェア構成図である。画像処理装置10は、ハードウェア構成として、装置全体を制御するCPU2901と、各種データや各種プログラムを記憶するROM2902と、各種データや各種プログラムを記憶するRAM2903と、UI装置2904と、撮影装置2905と、検知器2906と、を主に備えており、通常のコンピュータを利用したハードウェア構成となっている。なお、UI装置2904は、図1のUI部19に相当し、撮影装置2905は、撮影部12に相当し、検知器2906は、検知部25に相当する。
FIG. 24 is a hardware configuration diagram of the
上記実施の形態の画像処理装置10で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
The program executed by the
また、上記実施の形態の画像処理装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、上記実施の形態の画像処理装置10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
The program executed by the
また、上記実施の形態の画像処理装置10で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
In addition, the program executed by the
上記実施の形態の画像処理装置10で実行されるプログラムは、上述した各部を含むモジュール構成となっており、実際のハードウェアとしてはCPU(プロセッサ)が上記記録媒体からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上記各部が主記憶装置上に生成されるようになっている。
The program executed by the
なお、本発明は上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせてもよい。また、種々の変形が可能である。 Note that the present invention is not limited to the above-described embodiment as it is, and can be embodied by modifying the components without departing from the scope of the invention in the implementation stage. Various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiments. For example, some components may be deleted from all the components shown in the embodiment. Furthermore, constituent elements over different embodiments may be appropriately combined. Various modifications are possible.
10 画像処理装置
14D 取得部
14E 形状算出部
14H 表示制御部
14I 受付部
14L 移動部
14M 関数補正部
14P 設定部
14Q 第1の生成部
14R 第2の生成部
19 UI部
20 表示部
30、30A、30B オブジェクト画像
40、40A、40B 仮想立体物
42、42A、42B 仮想オブジェクト
53 背景画像
54 重畳画像
DESCRIPTION OF
Claims (7)
前記曲げ形状情報に応じて、前記仮想オブジェクトの貼り付け対象を示す仮想立体物の三次元形状を算出する形状算出部と、
前記仮想立体物の表面の少なくとも一部の領域に、前記仮想オブジェクトより広い拡張領域を設定する設定部と、
前記拡張領域を二次元空間に射影した拡張領域画像を生成する第1の生成部と、
前記仮想立体物の表面の前記拡張領域内に貼り付けた前記仮想オブジェクトを、前記二次元空間に射影したオブジェクト画像を生成する第2の生成部と、
背景画像に前記拡張領域画像と前記オブジェクト画像とをこの順に重畳した重畳画像を、前記表示部へ表示する表示制御部と、
を備える画像処理装置。 An acquisition unit for acquiring bending shape information, which represents a bending shape of a virtual object arranged in a virtual three-dimensional space by a two-dimensional coordinate representing a display surface of the display unit;
In accordance with the bending shape information, a shape calculation unit that calculates a three-dimensional shape of a virtual three-dimensional object indicating the virtual object pasting target;
A setting unit that sets an extended area wider than the virtual object in at least a part of the surface of the virtual three-dimensional object;
A first generation unit that generates an extended region image obtained by projecting the extended region into a two-dimensional space;
A second generation unit that generates an object image obtained by projecting the virtual object pasted in the extension region on the surface of the virtual three-dimensional object into the two-dimensional space;
A display control unit that displays a superimposed image in which the extended region image and the object image are superimposed in this order on a background image on the display unit;
An image processing apparatus comprising:
前記設定部は、前記指示情報を受付けたときに前記拡張領域を設定する、
請求項1に記載の画像処理装置。 A reception unit that receives instruction information indicating deformation or movement of the object image;
The setting unit sets the extension area when the instruction information is received;
The image processing apparatus according to claim 1.
当該画像処理装置は、前記仮想オブジェクトを、前記第1の移動指示情報に応じた移動量分、前記第1の移動指示情報に応じた移動方向へ、前記仮想立体物上の前記拡張領域内で移動させる移動部を備え、
前記第2の生成部は、前記第1の移動指示情報を含む前記指示情報を受付けた場合、移動後の該仮想オブジェクトを前記二次元空間に射影した前記オブジェクト画像を生成する、
請求項2に記載の画像処理装置。 The instruction information includes first movement instruction information indicating a movement amount and a movement direction of the object image on the virtual three-dimensional object,
The image processing apparatus moves the virtual object in the extension area on the virtual three-dimensional object in a moving direction according to the first movement instruction information by an amount of movement according to the first movement instruction information. It has a moving part to move,
When the second generation unit receives the instruction information including the first movement instruction information, the second generation unit generates the object image obtained by projecting the virtual object after movement onto the two-dimensional space.
The image processing apparatus according to claim 2.
当該画像処理装置は、前記第2の移動指示情報に応じた移動量および移動方向に、前記拡張領域および前記仮想オブジェクトが前記二次元座標上で移動するように、前記拡張領域および前記仮想オブジェクトを前記二次元空間に射影するための変換関数を補正する関数補正部を備え、
前記第1の生成部は、前記第2の移動指示情報を受付けた場合、補正された前記変換関数に基づき、前記拡張領域画像を生成し、
前記第2の生成部は、前記第2の移動指示情報を受付けた場合、補正された前記変換関数に基づき、前記オブジェクト画像を生成する、
請求項1〜請求項3の何れか1項に記載の画像処理装置。 The instruction information includes second movement instruction information indicating a movement amount and a movement direction of the object image on the display surface,
The image processing apparatus moves the extension region and the virtual object so that the extension region and the virtual object move on the two-dimensional coordinates in a movement amount and a movement direction according to the second movement instruction information. A function correction unit for correcting a conversion function for projecting into the two-dimensional space;
When the first generation unit receives the second movement instruction information, the first generation unit generates the extended region image based on the corrected conversion function,
When the second generation unit receives the second movement instruction information, the second generation unit generates the object image based on the corrected conversion function.
The image processing apparatus according to any one of claims 1 to 3.
前記背景画像上に、第1の透過度の前記拡張領域画像と、前記第1の透過度より低い第2の透過度の前記オブジェクト画像と、をこの順に重畳した前記重畳画像を、前記表示部へ表示する、請求項1〜請求項4の何れか1項に記載の画像処理装置。 The display control unit
The superimposed image obtained by superimposing the extended region image having the first transparency and the object image having the second transparency lower than the first transparency in this order on the background image, The image processing apparatus according to any one of claims 1 to 4, wherein the image processing apparatus is displayed.
前記曲げ形状情報に応じて、前記仮想オブジェクトの貼り付け対象を示す仮想立体物の三次元形状を算出するステップと、
前記仮想立体物の表面の少なくとも一部の領域に、前記仮想オブジェクトより広い拡張領域を設定するステップと、
前記拡張領域を二次元空間に射影した拡張領域画像を生成するステップと、
前記仮想立体物の表面の前記拡張領域内に貼り付けた前記仮想オブジェクトを、前記二次元空間に射影したオブジェクト画像を生成するステップと、
背景画像に前記拡張領域画像と前記オブジェクト画像とをこの順に重畳した重畳画像を、前記表示部へ表示するステップと、
を含む画像処理方法。 A step of acquiring bending shape information in which a bending shape of a virtual object arranged in a virtual three-dimensional space is represented by two-dimensional coordinates representing a display surface of a display unit;
Calculating a three-dimensional shape of a virtual three-dimensional object indicating a pasting target of the virtual object according to the bending shape information;
Setting an extended area wider than the virtual object in at least a partial area of the surface of the virtual three-dimensional object;
Generating an extended region image obtained by projecting the extended region into a two-dimensional space;
Generating an object image obtained by projecting the virtual object pasted in the extended region of the surface of the virtual three-dimensional object into the two-dimensional space;
Displaying a superimposed image obtained by superimposing the extension region image and the object image in this order on a background image on the display unit;
An image processing method including:
前記曲げ形状情報に応じて、前記仮想オブジェクトの貼り付け対象を示す仮想立体物の三次元形状を算出するステップと、
前記仮想立体物の表面の少なくとも一部の領域に、前記仮想オブジェクトより広い拡張領域を設定するステップと、
前記拡張領域を二次元空間に射影した拡張領域画像を生成するステップと、
前記仮想立体物の表面の前記拡張領域内に貼り付けた前記仮想オブジェクトを、前記二次元空間に射影したオブジェクト画像を生成するステップと、
背景画像に前記拡張領域画像と前記オブジェクト画像とをこの順に重畳した重畳画像を、前記表示部へ表示するステップと、
をコンピュータに実行させるためのプログラム。 A step of acquiring bending shape information in which a bending shape of a virtual object arranged in a virtual three-dimensional space is represented by two-dimensional coordinates representing a display surface of a display unit;
Calculating a three-dimensional shape of a virtual three-dimensional object indicating a pasting target of the virtual object according to the bending shape information;
Setting an extended area wider than the virtual object in at least a partial area of the surface of the virtual three-dimensional object;
Generating an extended region image obtained by projecting the extended region into a two-dimensional space;
Generating an object image obtained by projecting the virtual object pasted in the extended region of the surface of the virtual three-dimensional object into the two-dimensional space;
Displaying a superimposed image obtained by superimposing the extension region image and the object image in this order on a background image on the display unit;
A program that causes a computer to execute.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015184228A JP2017059042A (en) | 2015-09-17 | 2015-09-17 | Image processing apparatus, image processing method, and program |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2015184228A JP2017059042A (en) | 2015-09-17 | 2015-09-17 | Image processing apparatus, image processing method, and program |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2017059042A true JP2017059042A (en) | 2017-03-23 |
Family
ID=58390500
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2015184228A Pending JP2017059042A (en) | 2015-09-17 | 2015-09-17 | Image processing apparatus, image processing method, and program |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2017059042A (en) |
-
2015
- 2015-09-17 JP JP2015184228A patent/JP2017059042A/en active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP6476657B2 (en) | Image processing apparatus, image processing method, and program | |
| JP4508049B2 (en) | 360 ° image capturing device | |
| CN105144283B (en) | Method and apparatus for image manipulation based on device rotation | |
| JP2017168077A (en) | Image processing method, display device, and inspection system | |
| JP6088260B2 (en) | Processing apparatus, processing system, processing method, and program | |
| JP6812128B2 (en) | Information processing device and information processing method | |
| JP6849634B2 (en) | Terminal device and control method of terminal device | |
| JP6295296B2 (en) | Complex system and target marker | |
| JP2015219679A (en) | Image processing system, information processing device, and program | |
| JP2016139199A (en) | Image processing apparatus, image processing method, and program | |
| JP2016048456A (en) | Image processing apparatus, image processing method, and program | |
| US8643679B2 (en) | Storage medium storing image conversion program and image conversion apparatus | |
| JP2015184839A (en) | Image generation apparatus, image display system, and image generation method | |
| JP6314672B2 (en) | Display processing apparatus, display processing method, and program | |
| JP4677281B2 (en) | Image processing method and image processing apparatus | |
| JP2018010473A (en) | Image processing apparatus, image processing method, and image processing program | |
| JP2018109946A (en) | Display device, program, and display method | |
| CN110286906A (en) | Method for displaying user interface, device, storage medium and mobile terminal | |
| JP4199641B2 (en) | Projector device | |
| JP6405539B2 (en) | Label information processing apparatus for multi-viewpoint image and label information processing method | |
| JP2013008257A (en) | Image composition program | |
| JP2016139201A (en) | Image processing device, image processing method, and program | |
| JP2017059042A (en) | Image processing apparatus, image processing method, and program | |
| JP7118383B1 (en) | Display system, display method, and display program | |
| JP2021124433A (en) | Measurement device, measurement program and measurement method |