説明

画像処理装置、画像処理方法及びプログラム

【課題】種々の変形態様に対応して、2次元平面に表示された画像を適切に変形すること。
【解決手段】画像に設定した変形制御点の移動に対応して、前記画像を変形させる画像処理装置であって、前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成手段と、前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定手段と、前記変形制御点の移動に対応して、前記設定手段によって設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成手段と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、表示された画像を変形させる処理を行う画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
従来、2次元平面に表示された画像を変形するために、種々の画像処理手法が提案されている。
例えば、特許文献1に記載の技術では、変形対象となる2次元オブジェクト内部に三角形のメッシュを生成し、その頂点の座標を2次元オブジェクトの形状を表すオリジナルのデータとしている。そして、特許文献1に記載の技術では、2次元オブジェクト上の三角形の頂点に設定したハンドルが移動されると、そのハンドルの移動に合わせて、メッシュを構成する三角形の平行移動、回転及び拡大縮小等を行うことにより、最終的なメッシュデータとの誤り量が最小となるように、2次元オブジェクト全体の変形を行っている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4613313号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、画像の変形度合いが大きくなった場合、三角形のメッシュを変形する過程において、不適切に変形する三角形が発生する可能性があり、これにより、ユーザが意図しない変形となることがあった。
即ち、従来の技術においては、種々の変形態様に対応して、2次元平面に表示された画像を適切に変形することが困難であった。
【0005】
本発明は、このような状況に鑑みてなされたものであり、種々の変形態様に対応して、2次元平面に表示された画像を適切に変形することを目的とする。
【課題を解決するための手段】
【0006】
上記目的を達成するため、本発明の一態様の画像処理装置は、
画像に設定した変形制御点の移動に対応して、前記画像を変形させる画像処理装置であって、
前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成手段と、
前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定手段と、
前記変形制御点の移動に対応して、前記設定手段によって設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成手段と、
を備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、種々の変形態様に対応して、2次元平面に表示された画像を適切に変形することが可能となる。
【図面の簡単な説明】
【0008】
【図1】画像処理装置のハードウェアの構成を示すブロック図である。
【図2】画像変形処理を実行するための機能的構成を示す機能ブロック図である。
【図3】オリジナルメッシュにおける三角形の変形例を模式的に示す図である。
【図4】変形対象となる画像にペナルティが設定される状態を示す模式図である。
【図5】画像に各メッシュが生成された状態を示す図である。
【図6】画像処理装置が実行する画像変形処理の流れを示すフローチャートである。
【図7】画像処理装置が実行する変形用前処理の流れを示すフローチャートである。
【図8】画像処理装置が実行するメッシュ生成処理の流れを示すフローチャートである。
【図9】画像処理装置が実行する変形用前処理の流れを示すフローチャートである。
【図10】ペナルティの平滑化処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を用いて説明する。
[第1実施形態]
[ハードウェア構成]
図1は、本発明の一実施形態に係る画像処理装置1のハードウェアの構成を示すブロック図である。
画像処理装置1は、例えばパーソナルコンピュータ(Personal Computer)として構成される。
【0010】
本実施形態に係る画像処理装置1は、変形対象となる画像に三角形のメッシュを生成し、変形制御点の移動に対応して、変形条件を定めることによって定義される所定の行列による演算を行って、多段階に三角形を変形させる。このとき、途中の変形段階において、変形制御点の位置関係に基づいて定めた条件を充足する三角形については、変形の度合いを他の三角形よりも抑制することとしている。そして、最終的に変形された三角形の集合によって表されるメッシュが、変形結果の画像を表すものとなる。このような処理を行うことにより、変形制御点は周囲の三角形の変形を抑制する作用があるところ、変形制御点の間隔が広く開いた領域等において、変形制御点によって変形が抑制されないことにより、不適切に変形する三角形が発生することを抑制できる。即ち、種々の変形態様に対応して、2次元平面に表示された画像をより適切に変形することが可能となる。
【0011】
画像処理装置1は、CPU(Central Processing Unit)11と、ROM(Read Only Memory)12と、RAM(Random Access Memory)13と、バス14と、入出力インターフェース15と、入力部16と、出力部17と、記憶部18と、通信部19と、ドライブ20と、を備えている。
CPU11は、例えば、後述する画像変形処理のためのプログラム等、ROM12に記録されているプログラム、または、記憶部18からRAM13にロードされたプログラムに従って各種の処理を実行する。
【0012】
RAM13には、CPU11が各種の処理を実行する上において必要なデータ等も適宜記憶される。
【0013】
CPU11、ROM12及びRAM13は、バス14を介して相互に接続されている。このバス14にはまた、入出力インターフェース15も接続されている。入出力インターフェース15には、入力部16、出力部17、記憶部18、通信部19及びドライブ20が接続されている。
【0014】
入力部16は、各種釦やポインティングデバイス等で構成され、画像変形処理における画像の変形を行うための指示操作等、ユーザの指示操作に応じて各種情報を入力する。
出力部17は、ディスプレイやスピーカ等で構成され、画像や音声を出力する。
記憶部18は、ハードディスクあるいはDRAM(Dynamic Random Access Memory)等で構成され、各種画像のデータを記憶する。
通信部19は、インターネットを含むネットワークを介して他の装置(図示せず)との間で行う通信を制御する。
【0015】
ドライブ20には、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリ等よりなる、リムーバブルメディア31が適宜装着される。ドライブ20によってリムーバブルメディア31から読み出されたプログラムは、必要に応じて記憶部18にインストールされる。また、リムーバブルメディア31は、記憶部18に記憶されている画像のデータ等の各種データも、記憶部18と同様に記憶することができる。
【0016】
[機能的構成]
図2は、このような画像処理装置1の機能的構成のうち、画像変形処理を実行するための機能的構成を示す機能ブロック図である。
画像変形処理とは、ユーザによって入力される画像の変形指示(変形制御点の移動)に対応して、表示されている画像に変形を施す一連の処理をいう。なお、以下、上述の特許文献1(特許第4613313号公報)に開示された処理手順を基本とし、さらに、種々の変形態様に対しても、より適切に画像の変形を行うことができる処理手順を追加した実施形態について説明する。
【0017】
CPU11は、画像変形処理を実行する機能ブロックとして、ユーザ指示取得部41と、オリジナルメッシュ生成部42と、メッシュ依存行列生成部43と、制御点依存行列生成部44と、中間メッシュ生成部45と、適合メッシュ生成部46と、最終メッシュ生成部47とを備えている。
ユーザ指示取得部41は、入力部16を介してユーザによって入力される画像変形処理のための各種指示入力を取得する。例えば、ユーザ指示取得部41は、入力部16を介して入力される変形対象となる画像の選択、変形制御点の設定及び移動、画像変形処理の終了の指示入力等を取得する。
【0018】
オリジナルメッシュ生成部42は、画像変形処理において処理対象となる変形前の画像に三角形のメッシュ(以下、適宜「オリジナルメッシュ」と呼ぶ。)を生成する。このとき、オリジナルメッシュ生成部42は、ドロネー三角形分割等の手法によって、処理対象となる画像に三角形の頂点を設定し、三角形のメッシュを生成する。そして、オリジナルメッシュ生成部42は、生成したオリジナルメッシュを表すデータ(具体的には、メッシュに含まれる各三角形の座標)を変形処理データ記憶部48に記憶する。
【0019】
メッシュ依存行列生成部43は、オリジナルメッシュ生成部42によって生成された三角形のメッシュに依存して定まる各行列(後述する行列G1,B1等)を算出する。
制御点依存行列生成部44は、オリジナルメッシュの三角形の頂点上に変形制御点が設定、追加あるいは削除されたときに、変形制御点に依存して定まる各行列(後述するG2,G4等)を生成する。また、制御点依存行列生成部44は、変形制御点の位置関係に応じて自由点uの変形の抑制度合いを設定するペナルティ設定部44aを有している。
具体的には、メッシュ依存行列生成部43及び制御点依存行列生成部44は、以下の手順に基づいて各行列を算出する。
【0020】
図3は、オリジナルメッシュにおける三角形Sの変形例を模式的に示す図である。
図3において、三角形Sは、3つの頂点(v0,v1,v2)を有している。
これら3つの頂点のうちの1つの座標は、他の2つの頂点の座標によって表すことができる。即ち、頂点v0,v1の座標と、頂点v2から辺v0v1に下ろした垂線の長さy0及び垂線の足の位置(頂点v0からの距離)x0とが与えられれば、次式(1)のように、頂点v2の座標を頂点v0,v1の座標によって表すことができる。
v2=v0+x01・(ベクトルv0v1)+y0・R90(ベクトルv0v1) (1)
【0021】
なお、(1)式において、R90は90度の回転を示す演算子である。
(1)式と同様に、頂点v0,v1の座標についても、他の2つの頂点の座標によって表すことができる。
また、変形制御点が移動されることにより、三角形の歪みや不均一な伸縮を禁止し、平行移動、回転及び拡大・縮小を許容して変形させた結果の三角形からなるメッシュ(以下、適宜「中間メッシュ」と呼ぶ。)における頂点v2の誤差は、|v2*−v2|と表すことができる。ただし、v2*は、中間メッシュを構成する三角形に変形後の頂点v2の座標である。また、頂点v2と同様に、頂点v0,v1についても誤差|v0*−v0|,|v1*−v1|を算出することができる。これらの誤差は、1つの頂点に関する移動量の大きさを表している。
【0022】
このように各三角形の頂点の誤差を算出し、全ての三角形の頂点についての誤差を取得することにより、次式(2)に示すように、オリジナルメッシュと変形後のメッシュとの誤差E1は行列G1を用いて表すことができる。行列G1は、オリジナルメッシュを構成する各頂点の接続状態を表している。なお、1つの三角形の3つの頂点についての上記誤差の集合は、その三角形の変形量の大きさを表す指標となる。
E1=v・G1・v (2)
ただし、vはオリジナルメッシュにおける三角形の各頂点の座標の集合からなるベクトル、vはベクトルvの転置行列を表している。なお、ベクトルvにおいては、三角形の頂点のうち、変形制御点qが下位、他の自由点(変形制御点の移動に対応して位置が決まる点)uが上位に配列されている(v=[u,q])。
【0023】
ここで、ペナルティ設定部44aは、ベクトルvに示される各頂点の座標に対し、変形制御点の位置関係に応じた変形の抑制度合い(以下、適宜「ペナルティ」と呼ぶ。)を与えるペナルティベクトルPVを設定する。
ペナルティベクトルPVは、後述する変形用前処理において設定され、変形制御点の間隔が一定以上開いている領域に含まれる三角形の頂点に対して、1以上の値であるペナルティp(ここでは一定値とする)を付与するベクトルである。なお、ペナルティp=1の場合、変形制御点の移動に伴う変形の抑制が行われないことを示しており、ペナルティpの値が大きくなるほど、変形制御点の移動に伴う変形が抑制される。
【0024】
図4は、変形対象となる画像にペナルティpが設定される状態を示す模式図である。なお、図4においては、オリジナルメッシュを省略して変形対象となる画像を表している。
図4に示すように、変形対象となる画像に変形制御点101〜114が設定されている場合に、変形制御点101と変形制御点102との間隔が広く開いているとする。
このとき、変形制御点101を基準として、変形制御点101と変形制御点102との距離よりも近い距離に頂点が位置する三角形群(図4における斜線の領域に含まれる三角形)を検出し、それらの三角形の頂点については、1よりも大きい値のペナルティpが設定される。
本実施形態においては、(2)式における各頂点によりオリジナルメッシュの構成を表す行列G1にペナルティベクトルPVを作用させる。具体的には、各頂点の座標に対応するペナルティベクトルPVを、各オリジナルメッシュに対応するベクトルPFに、オリジナルメッシュを構成する頂点に関連するペナルティの平均を取ることにより変換する。
各オリジナルメッシュに対応したペナルティベクトルPFを、行列G1の対応する位置に乗じ、行列G1’を得て、(2)式を次式(2a)のように補正する。
E1=v・G1’・v (2a)
【0025】
(2a)式においては、変形制御点qの座標を入力すると、自由点uの座標が与えられる。ただし、(2a)式から算出される自由点uは、ペナルティベクトルPFのペナルティによって、変形が抑制された値となる。
(2a)式によれば、行列E1は、ベクトルvの要素について2次の関数であるため、行列E1の最小値を求めるためには、(3)式に示すように、自由点uの座標で偏微分し、その値が0となるときの方程式を解けばよい。
∇E1/∇u=G2・u+B1・q=0 (3)
ただし、G2は行列G1’において変形制御点の成分を除去し、ペナルティベクトルPFの要素を算入した行列、B1は行列G1及び変形制御点の座標から得られるベクトルである。なお、(3)式における「B1・q」項を行列Gx(=B1・q)と置く。行列Gxは、変形制御点の移動と共に変化する。
【0026】
(3)式より、求める自由点uの座標は、次式(4)に示すように、
u=G2−1・(−B1・q) (4)
として算出できる。
メッシュ依存行列生成部43は、オリジナルメッシュが生成されると、上述の手順によって行列G1,B1を算出する。
そして、制御点依存行列生成部44は、行列G2及びその逆行列G2−1を算出する。
また、オリジナルメッシュの三角形に、歪み、不均一な伸縮及び拡大・縮小を禁止すると共に回転及び平行移動を許容して、上述の中間メッシュを構成する三角形に適合させて、適合メッシュが生成される。中間メッシュと適合メッシュとの誤差(各頂点の位置の誤差)は、各三角形について算出することができる。
【0027】
このとき、次式(5)に示すように、中間メッシュの三角形について、適合メッシュの三角形との誤差E2は行列G3を用いて表すことができる。
E2=w・G3・w (5)
ただし、wは1つの頂点を他の2つの頂点の座標によって表すことにより、4つの変数の集合となったベクトルであり、wはベクトルwの転置行列を表している。
(5)式をベクトルwの各要素で偏微分すると、次式(6)が得られる。
∇E2/∇w=G4・w+B2 (6)
ただし、G4は行列G3において変形制御点の成分を除去した行列、B2は行列G3及び変形制御点の座標から得られるベクトルである。
【0028】
(6)式の右辺を0として、求める三角形の頂点を表す座標wは、次式(7)に示すように、
w=G4−1・(−B2) (7)
として算出できる。
ここで、(6)式においては、中間メッシュの三角形に適合させるために、オリジナルメッシュの三角形を拡大・縮小する要素が含まれているため、変化した大きさを元の大きさに調整するための値を算出する。即ち、(6)式の右辺を0として、ベクトルwを算出し、ベクトルwにおける頂点の座標から、三角形の各辺を表すベクトルの大きさWfを算出する。そして、オリジナルメッシュの三角形の辺を表すベクトルE0と、それに対応する三角形の辺を表すベクトルWfとの比(以下、適宜「スケール調整値」と呼ぶ。)Wpを次式(8)に従って算出する。
【0029】
Wp=|Wf|/|E0| (8)
適合メッシュを構成する各三角形は、(8)式の値の逆数を乗ずることによりオリジナルメッシュにおいて対応する三角形と同一の大きさとされる。
メッシュ依存行列生成部43は、中間メッシュが生成されると、行列G4,B2及び行列G4の逆行列G4−1を算出する。
【0030】
また、適合メッシュの三角形を、誤差を最小にしつつ、最終的なターゲットとなるメッシュ(以下、適宜「最終メッシュ」と呼ぶ。)の三角形に適合させることにより、各自由点uの最終的な座標が算出される。このとき、三角形の平行移動、回転、拡大・縮小、歪みが許容され、適合メッシュと最終メッシュとにおいて、対応する三角形の辺を表すベクトルの誤差が最小となるように最終メッシュの三角形が取得される。
即ち、適合メッシュの三角形の各辺を示すベクトルと、対応する最終メッシュの三角形の各辺を示すベクトルとの誤差を、各三角形について算出する。
【0031】
このとき、次式(9)に示すように、適合メッシュの三角形の各辺について、最終メッシュの三角形との誤差を表す行列E3は行列G5を用いて表すことができる。
E3=z・G5・z+B3・z+C (9)
ただし、zはオリジナルメッシュにおける三角形の各頂点の座標の集合からなるベクトル、zはベクトルzの転置行列を表している。また、B3及びCは適合メッシュ座標から得られるベクトルである。なお、ベクトルzにおいては、三角形の頂点のうち、変形制御点qが下位、他の自由点(変形制御点の移動に対応して位置が決まる点)uが上位に配列されている(z=[u,q])。
ここで、ペナルティベクトルPFを、ベクトルB3に作用させ行列B3’とする。B3は、適合メッシュから得られるベクトルであり、ペナルティベクトルPFの対応するB3内のメッシュ位置にペナルティを乗じる(オリジナルメッシュも適合メッシュも、同じ頂点インデックスから構成されるメッシュのため、適合メッシュに対してペナルティベクトルPFをそのまま利用できる)。
【0032】
行列E3の最小値を求めるためには、(2)式と同様に、行列E3を自由点uの座標で偏微分し、その値が0となるときの方程式を解けばよい。
∇E3/∇u=G6・u+B4=0 (10)
ただし、G6は行列G5において変形制御点の成分を除去した行列、B4は行列G5、B3’及び変形制御点の座標から得られるベクトルである。
(10)式より、求める自由点uの座標は、次式(11)に示すように、
u=G6−1・(−B4) (11)
として算出できる。
【0033】
このように算出された自由点uの座標によって表される最終メッシュの各三角形は、隣接する三角形の辺が重複しており、最終メッシュは、三角形が連続した構成となっている。
これにより、変形制御点の移動に対応した画像の変形処理が実現される。
メッシュ依存行列生成部43は、適合メッシュが生成されると、行列G5を算出する。
そして、制御点依存行列生成部44は、行列G6及びその逆行列G6−1、行列B4を算出する。
【0034】
中間メッシュ生成部45は、行列G2の逆行列G2−1及び行列B1によって、オリジナルメッシュの三角形を中間メッシュの三角形に変換する。
適合メッシュ生成部46は、行列G4の逆行列G4−1及び行列B2と、スケール調整値Wpによって、中間メッシュ生成部45によって変換された中間メッシュの三角形を適合メッシュの三角形に変換する。
【0035】
最終メッシュ生成部47は、行列G6の逆行列G6−1及び行列B4によって、中間メッシュの三角形を最終メッシュの三角形に変換する。
ここで、本実施形態において、適合メッシュ生成部46は、スケール調整値Wpの大きさに応じて、適合メッシュの三角形を算出する際のスケール調整処理を切り替える。具体的には、スケール調整値Wpが設定した閾値(ここでは1/8とする)以下である場合、スケール調整を行わず、中間メッシュの三角形をそのまま適合メッシュの三角形とする。一方、適合メッシュ生成部46は、スケール調整値Wpが設定した閾値より小さくない場合、(7)式によって算出した座標の三角形をWpでスケール調整し、適合メッシュの三角形とする。
なお、以上のスケール調整値Wpに応じたスケール調整処理の切り替えは、ユーザの選択等によって実行しないこととしても良い。
【0036】
図2の説明に戻り、記憶部18の一領域には、画像変形処理において使用される各種データを記憶する変形処理データ記憶部48が設けられている。
出力部17は、画像変形処理において処理対象となる画像を表示する画像表示部49を備えている。
【0037】
図5は、画像に各メッシュが生成された状態を示す図であり、図5(a)は変形対象となる画像にオリジナルメッシュが生成された状態を示す図、図5(b)は中間メッシュ、適合メッシュ及び最終メッシュが生成されることにより、画像が変形された状態を示す図である。
図5に示すように、本実施形態では、画像変形処理において処理対象となる画像が画像表示部49に表示され、オリジナルメッシュ生成部42によって画像にオリジナルメッシュが生成される(図5(a)参照)。そして、オリジナルメッシュにおける三角形の頂点の一部が変形制御点として設定されると、メッシュ依存行列生成部43及び制御点依存行列生成部44が各行列及びスケール調整値Wpを算出し、中間メッシュ生成部45が中間メッシュの三角形を算出する。さらに、適合メッシュ生成部46が適合メッシュの三角形を算出し、最終メッシュ生成部47が最終メッシュの三角形を算出する。このとき、適合メッシュ生成部46は、スケール調整値Wpが設定した閾値(例えば1/8)以下である場合、スケール調整を行わず、中間メッシュの三角形をそのまま適合メッシュの三角形とする。一方、適合メッシュ生成部46は、スケール調整値Wpが設定した閾値より小さくない場合、(7)式によって算出した座標の三角形をWpでスケール調整し、適合メッシュの三角形とする(図5(b)参照)。
【0038】
このように、スケール調整値Wpに応じて適合メッシュを構成する三角形の生成方法を切り替えた場合、変形制御点の移動に伴い変形度合いが大きくなる領域(例えば図5(b)における領域L)において、画像の一部が極端に拡大する等、不適切に変形する三角形の発生を抑制することができる。
なお、上述のように、スケール調整値Wpに応じたスケール調整処理は、適宜行わないこととしても良い。
【0039】
[動作]
次に、画像処理装置1の動作を説明する。
[画像変形処理]
初めに、画像処理装置1の動作におけるメインフローとなる画像変形処理について説明する。
図6は、画像処理装置1が実行する画像変形処理の流れを示すフローチャートである。
画像変形処理は、ユーザが画像変形処理の開始を指示入力することに対応して実行される。
ステップS1において、ユーザ指示取得部41は、ユーザの指示に従って変形対象となる画像を選択する。
【0040】
ステップS2において、ユーザ指示取得部41は、ユーザによって設定された変形制御点の設定内容を取得する。なお、変形制御点は、画像の変形の複雑さに応じて、1つまたは複数設定される。
ステップS3において、メッシュ依存行列生成部43及び制御点依存行列生成部44は、画像の変形処理における演算負荷を軽減するための変形用前処理(後述)を実行する。変形用前処理は、画像の変形処理に用いる各種行列等を予め生成する処理である。本実施形態において、変換用前処理では、変形制御点の位置関係に応じて、各自由点uに対するペナルティが設定される。
ステップS4において、ユーザ指示取得部41は、画像変形処理の終了が指示入力されたか否かの判定を行う。
【0041】
画像変形処理の終了が指示入力された場合、ステップS4においてYESであると判定されて、処理は終了となる。
これに対して、画像変形処理の終了が指示入力されていない場合、ステップS4においてYESと判定されて、処理はステップS5に進む。
ステップS5において、ユーザ指示取得部41は、ユーザによる変形制御点の移動結果を取得する。
【0042】
ステップS6において、中間メッシュ生成部45、適合メッシュ生成部46及び最終メッシュ生成部47は、メッシュ生成処理(後述)を実行する。メッシュ生成処理は、変形制御点の移動に応じて、中間メッシュ、適合メッシュ及び最終メッシュを生成し、変形結果となる各三角形の座標を算出する処理である。
ステップS7において、画像表示部49は、メッシュ生成処理において算出した最終メッシュの三角形の座標に従って、変形後の画像を描画する。
ステップS7の後、処理はステップS4に進む。
【0043】
[変形用前処理]
次に、画像変形処理のステップS3において実行される変形用前処理について説明する。
図7は、画像処理装置1が実行する変形用前処理の流れを示すフローチャートである。
ステップS301において、ペナルティ設定部44aは、全ての頂点のペナルティpを1に初期化する(ペナルティベクトルPVをリセットする)。
ステップS302において、ペナルティ設定部44aは、全ての変形制御点を基準としたペナルティpの設定が終了したか否かの判定を行う。
全ての変形制御点を基準としたペナルティpの設定が終了していない場合、ステップS302においてNOと判定されて、処理はステップS303に進む。
【0044】
これに対し、全ての変形制御点を基準としたペナルティpの設定が終了した場合、ステップS302においてYESと判定されて、処理はステップS307に進む。
ステップS303において、ペナルティ設定部44aは、基準としている変形制御点から一番近い変形制御点の位置を検索し、検索された変形制御点までの距離を変数Distに設定する。なお、このときの探索経路は三角形のエッジ(辺)上とし、経路探索アルゴリズムとして、例えば、ダイクストラ法を用いることができる。
ステップS304において、ペナルティ設定部44aは、基準とする変形制御点から距離がDist以内である頂点からなる三角形群を取得し(図4参照)、これらの三角形が構成する領域の面積Arを算出する。
ステップS305において、ペナルティ設定部44aは、面積Arが、面積Arについて設定された閾値Sthよりも大きいか否かの判定を行う。
【0045】
面積Arが、面積Arについて設定された閾値Sth以下である場合、ステップS305においてNOと判定されて、処理はステップS302に進む。
これに対し、面積Arが、面積Arについて設定された閾値Sthよりも大きい場合、ステップS305においてYESと判定されて、処理はステップS306に進む。
ステップS306において、ペナルティ設定部44aは、面積Arの領域を構成する三角形の各頂点に対して、1以上の値であるペナルティpを設定する。
このようなステップS306の後、処理はステップS302に進む。
ステップS307において、メッシュ依存行列生成部43は行列G1,G1’,G5を生成する。
【0046】
ステップS308において、メッシュ依存行列生成部43は行列G4及びその逆行列G4−1を算出する。
ステップS309において、制御点依存行列生成部44は行列G2,G6を算出する。
ステップS310において、制御点依存行列生成部44は行列G2の逆行列G2−1及び行列G6の逆行列G6−1を算出する。
このようなステップS310の処理が終了すると、処理は画像変形処理に戻る。
【0047】
[メッシュ生成処理]
次に、画像変形処理のステップS6において実行されるメッシュ生成処理について説明する。
図8は、画像処理装置1が実行するメッシュ生成処理の流れを示すフローチャートである。
ステップS601において、メッシュ依存行列生成部43は、変形制御点が移動されたことによる行列Gx(=B1・q)の補正を行う。
ステップS602において、中間メッシュ生成部45は、(4)式に従い、自由点uを算出する。即ち、ここで算出される自由点uは、中間メッシュの三角形の頂点を表す。
【0048】
ステップS603において、メッシュ依存行列生成部43は、中間メッシュの三角形の頂点の座標に基づいて、(6)式に従い、行列B2を算出する。
ステップS604において、適合メッシュ生成部46は、(7)式によって算出される頂点の座標wを基に、中間メッシュの各三角形の辺を表すベクトルWfを算出する。
ステップS605において、適合メッシュ生成部46は、中間メッシュの各三角形の辺に対応するオリジナルメッシュの辺を表すベクトルE0を取得する。
【0049】
ステップS606において、適合メッシュ生成部46は、中間メッシュの三角形の辺を表すベクトルWfと、オリジナルメッシュにおいて対応する三角形の辺を表すベクトルE0との比であるスケール調整値Wpが閾値1/8以下であるか否かの判定を行う。
スケール調整値Wpが閾値1/8以下である場合、ステップS606においてYESと判定されて、処理はステップS607に進む。
これに対し、スケール調整値Wpが閾値1/8より小さくない場合、ステップS607においてNOと判定されて、処理はステップS608に進む。
【0050】
ステップS607において、適合メッシュ生成部46は、中間メッシュの三角形をスケール調整することなく適合メッシュの三角形とする。
ステップS608において、適合メッシュ生成部46は、スケール調整値Wpで中間メッシュの三角形をスケール調整してオリジナルメッシュの三角形の大きさに戻す。
ステップS609において、適合メッシュ生成部46は、中間メッシュの三角形の全てを処理したか否かの判定を行う。
なお、上記ステップS606〜S608によるスケール調整処理は、ユーザの選択等によって実行しないこととしても良い。
【0051】
中間メッシュの三角形を全て処理し終えていない場合、ステップS609においてNOと判定されて、処理はステップS603に進む。
これに対し、中間メッシュの三角形の全てを処理した場合、ステップS609においてYESと判定されて、処理はステップS610に進む。
ステップS610において、最終メッシュ生成部47は、適合メッシュの三角形の頂点の座標を基に、ベクトルB3を算出し、ペナルティベクトルPFを作用させた行列B3’を算出する。
【0052】
ステップS611において、最終メッシュ生成部47は、行列G5、ベクトルB3及び移動された変形制御点の座標qを基に、行列B4を算出する。
ステップS612において、最終メッシュ生成部47は、(11)式を基に、最終メッシュの三角形の頂点の座標を算出する。
このようなステップS612の処理が終了すると、処理は画像変形処理に戻る。
【0053】
以上説明したように、本実施形態の画像処理装置1では、変形対象となる画像に対して三角形のメッシュ(オリジナルメッシュ)を生成する。また、設定された変形制御点の位置関係に基づいて定めた領域内の三角形については、その変形が抑制されるように、頂点の座標にペナルティpが設定される。そして、変形制御点の移動に対応して、三角形の回転及び拡大・縮小を許容して三角形の変換を行い、中間メッシュを生成する。さらに、中間メッシュのスケール調整値Wpの大きさが閾値を超えている場合に、中間メッシュの三角形の大きさをスケール調整し、三角形の回転及び平行移動を許容して三角形の変換を行い、適合メッシュ生成する。そして、適合メッシュの三角形の辺を表すベクトルの向きの誤差を最小とする変換を行って、最終メッシュを生成する。
【0054】
そのため、最終メッシュとして算出された各頂点は、変形制御点の位置関係に基づいて、ペナルティによって変形が抑制された状態となる。
即ち、変形制御点は周囲の三角形の変形を抑制する作用があるところ、変形制御点の間隔が広く開いた領域等において、変形制御点によって変形が抑制されないことにより、不適切に変形する三角形が発生することを抑制できる。
したがって、種々の変形態様に対応して、2次元平面に表示された画像をより適切に変形することが可能となる。
【0055】
また、オリジナルメッシュの三角形に対し、中間メッシュの三角形の大きさが比較的小さい場合には、スケール調整を行うことなく、中間メッシュが適合メッシュとされる。
したがって、メッシュを構成する三角形の変換による歪みが生じる確率を低減することができ、種々の変形態様に対応して、2次元平面に表示された画像をより適切に変形することが可能となる。
【0056】
[第2実施形態]
次に、本発明の第2実施形態について説明する。
第2実施形態では、第1実施形態における変形用前処理を変更し、基準とする変形制御点から頂点までの距離Distが閾値以内にあるか否かに応じて、その頂点にペナルティpを設定する。
即ち、第1実施形態では、基準とする変形制御点から隣接する変形制御点までの距離Distを取得し、基準とする変形制御点から距離がDist以内である三角形群によって構成される領域の面積Arが、閾値Sthよりも大きいか否かに応じて、それらの頂点にペナルティを設定することとした。
【0057】
これに対し、本実施形態では、基準とする変形制御点から隣接する変形制御点までの距離Distが、距離Distについて設定された閾値Dthよりも大きいか否かに応じて、基準とする変形制御点から距離Dist以内にある頂点にペナルティを設定する。
以下、本実施形態の変形用前処理について説明する。
図9は、画像処理装置1が実行する変形用前処理の流れを示すフローチャートである。
ステップS701において、ペナルティ設定部44aは、全ての頂点のペナルティpを1に初期化する(ペナルティベクトルPVをリセットする)。
ステップS702において、ペナルティ設定部44aは、全ての変形制御点を基準としたペナルティpの設定が終了したか否かの判定を行う。
全ての変形制御点を基準としたペナルティpの設定が終了していない場合、ステップS702においてNOと判定されて、処理はステップS703に進む。
【0058】
これに対し、全ての変形制御点を基準としたペナルティpの設定が終了した場合、ステップS702においてYESと判定されて、処理はステップS706に進む。
ステップS703において、ペナルティ設定部44aは、基準としている変形制御点から一番近い変形制御点の位置を検索し、検索された変形制御点までの距離を変数Distに設定する。なお、このときの探索経路は三角形のエッジ(辺)上とし、経路探索アルゴリズムとして、例えば、ダイクストラ法を用いることができる。
ステップS704において、ペナルティ設定部44aは、距離Distが、距離Distについて設定された閾値Dthよりも大きいか否かの判定を行う。
【0059】
距離Distが、距離Distについて設定された閾値Dth以下である場合、ステップS704においてNOと判定されて、処理はステップS702に進む。
これに対し、距離Distが、距離Distについて設定された閾値Dthよりも大きい場合、ステップS704においてYESと判定されて、処理はステップS705に進む。
ステップS705において、ペナルティ設定部44aは、基準とする変形制御点からの距離がDist以内である各頂点に対して、1以上の値であるペナルティpを設定する。
このようなステップS705の後、処理はステップS702に進む。
ステップS706において、メッシュ依存行列生成部43は行列G1,G1’,G5を生成する。
【0060】
ステップS707において、メッシュ依存行列生成部43は行列G4及びその逆行列G4−1を算出する。
ステップS708において、制御点依存行列生成部44は行列G2,G6を算出する。
ステップS709において、制御点依存行列生成部44は行列G2の逆行列G2−1及び行列G6の逆行列G6−1を算出する。
このようなステップS709の処理が終了すると、処理は画像変形処理に戻る。
【0061】
以上説明したように、本実施形態の画像処理装置1では、基準とする変形制御点から隣接する変形制御点までの距離Distが、距離Distについて設定された閾値Dthよりも大きいか否かに応じて、基準とする変形制御点から距離Dist以内にある頂点にペナルティを設定する。
そのため、最終メッシュとして算出された各頂点は、変形制御点の位置関係に基づいて、ペナルティによって変形が抑制された状態となる。
即ち、変形制御点は周囲の三角形の変形を抑制する作用があるところ、変形制御点の間隔が広く開いた領域等において、変形制御点によって変形が抑制されないことにより、不適切に変形する三角形が発生することを抑制できる。
したがって、種々の変形態様に対応して、2次元平面に表示された画像をより適切に変形することが可能となる。
【0062】
[応用例]
上記各実施形態において、ペナルティpを設定する頂点を面積Ar(第1実施形態)あるいは距離Dist(第2実施形態)について設定した閾値によって、択一的に選択することとした。
これに対し、上記閾値を基に選択された頂点からなる領域と、それ以外の頂点からなる領域との境界において、ペナルティpを平滑化することができる。
図10は、ペナルティpの平滑化処理の流れを示すフローチャートである。
図10に示す処理は、変形用前処理において、ペナルティベクトルPVが生成された後、ペナルティpの平滑化処理の実行が指示されている場合に開始される。
ステップS801において、ペナルティ設定部44aは、全ての頂点についてペナルティpの平滑化を終了したか否かの判定を行う。
【0063】
全ての頂点についてペナルティpの平滑化を終了した場合、ステップS801においてYESと判定されて、処理は変形用前処理に戻る。
これに対し、全ての頂点についてペナルティpの平滑化を終了していない場合、ステップS801においてNOと判定されて、処理はステップS802に進む。
ステップS802において、ペナルティ設定部44aは、ペナルティpの平滑化を終了していない頂点を選択する。
【0064】
ステップS803において、ペナルティ設定部44aは、選択された頂点が接続している他の頂点のペナルティpと、選択された頂点のペナルティpとの平均値を算出し、算出された値を選択された頂点のペナルティpとする。
なお、ステップS802において選択する処理対象の頂点の範囲は、1以上の値であるペナルティpが設定された頂点の領域と、ペナルティpが1の頂点(変形の抑制がない頂点)の領域との境界を挟んで、境界から所定数(例えば3つ)までとすることができる。
このようなステップS803の処理が終了すると、処理はステップS801に進む。
以上のようなペナルティpの平滑化処理を行うことにより、画像の変形が抑制される領域と抑制されない領域との境界で、変形の状態に不整合が生じ、ユーザに違和感を与えることを抑制できる。
【0065】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
例えば、上述の各実施形態において、変形対象となる画像の顔検出を行う顔検出機能と組み合わせて、ペナルティpの設定を行うことができる。
即ち、顔検出機能によって変形対象となる画像の顔を検出し、顔として検出された領域を対象として、各実施形態におけるペナルティpの設定を行うことができる。
このような処理を行うことにより、顔が不自然に変形する事態を抑制することができ、ユーザに違和感を与えることを防止できる。
【0066】
上述の各実施形態では、メッシュ生成処理のステップS607において、スケール調整値Wpが設定した閾値以下である場合に、その中間メッシュの三角形をスケール調整することなく、適合メッシュの三角形とすることとして説明した。
これに対し、スケール調整値Wpが設定した閾値以下である場合に、その中間メッシュの三角形に対応するオリジナルメッシュの三角形を、適合メッシュの三角形とすることもできる。
【0067】
ここで、オリジナルメッシュの三角形を変形して画像全体の変形を実現するアルゴリズムについては、上述の各実施形態に示す例以外を採用することができる。この場合においても、三角形の頂点の座標に、変形制御点の位置関係に応じたペナルティを設定すれば、本発明の作用効果を得ることができる。
また、上述の各実施形態では、本発明が適用される画像処理装置1は、パーソナルコンピュータを例として説明したが、特にこれに限定されない。
例えば、本発明は、画像処理機能を有する電子機器一般に適用することができる。具体的には、例えば、本発明は、テレビジョン受像機、ビデオカメラ、携帯型ナビゲーション装置、携帯電話機、ポータブルゲーム機等に適用可能である。
【0068】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、図2の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が画像処理装置1に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に図2の例に限定されない。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
【0069】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【0070】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布される図1のリムーバブルメディア31により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディア31は、例えば、磁気ディスク(フロッピディスクを含む)、光ディスク、または光磁気ディスク等により構成される。光ディスクは、例えば、CD−ROM(Compact Disk−Read Only Memory),DVD(Digital Versatile Disk)等により構成される。光磁気ディスクは、MD(Mini−Disk)等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されている図1のROM12や、図1の記憶部18に含まれるハードディスク等で構成される。
【0071】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムの用語は、複数の装置や複数の手段等より構成される全体的な装置を意味するものとする。
【0072】
以上、本発明の実施形態について説明したが、この実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。上記実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0073】
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[付記1]
画像に設定した変形制御点の移動に対応して、前記画像を変形させる画像処理装置であって、
前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成手段と、
前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定手段と、
前記変形制御点の移動に対応して、前記設定手段によって設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成手段と、
を備えることを特徴とする画像処理装置。
[付記2]
前記設定手段は、一の前記変形制御点を基準として、隣接する他の前記変形制御点との距離の範囲に含まれる前記三角形からなる領域の面積を取得し、当該面積が、設定された閾値よりも大きい場合に、前記領域に含まれる三角形について変形の抑制度合いを高めることを特徴とする付記1記載の画像処理装置。
[付記3]
前記設定手段は、一の前記変形制御点を基準として、隣接する他の前記変形制御点との距離を取得し、当該距離が、設定された閾値よりも大きい場合に、基準とする前記変形制御点から当該距離までの範囲に位置する前記三角形について変形の抑制度合いを高めることを特徴とする付記1記載の画像処理装置。
[付記4]
前記設定手段は、前記三角形について変形の抑制度合いを高める場合に、当該三角形の頂点における変形の抑制度合いを一律に高めることを特徴とする付記1から3のいずれか1項に記載の画像処理装置。
[付記5]
前記設定手段は、前記三角形について変形の抑制度合いを高める場合に、他の前記三角形との境界部分において、変形の抑制度合いの平滑化を行うことを特徴とする付記1から3のいずれか1項に記載の画像処理装置。
[付記6]
画像に設定した変形制御点の移動に対応して、前記画像を変形させる画像処理方法であって、
前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成ステップと、
前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定ステップと、
前記変形制御点の移動に対応して、前記設定ステップにおいて設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成ステップと、
を含むことを特徴とする画像処理方法。
[付記7]
画像に設定した変形制御点の移動に対応して、前記画像を変形させるためのプログラムであって、
コンピュータに、
前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成機能と、
前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定機能と、
前記変形制御点の移動に対応して、前記設定機能によって設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成機能と、
を実現させることを特徴とするプログラム。
【符号の説明】
【0074】
1・・・画像処理装置、11・・・CPU、12・・・ROM、13・・・RAM、14・・・バス、15・・・入出力インターフェース、16・・・入力部、17・・・出力部、18・・・記憶部、19・・・通信部、20・・・ドライブ、31・・・リムーバブルメディア、41・・・ユーザ指示取得部、42・・・オリジナルメッシュ生成部、43・・・メッシュ依存行列生成部、44・・・制御点依存行列生成部、44a・・・ペナルティ設定部、45・・・中間メッシュ生成部、46・・・適合メッシュ生成部、47・・・最終メッシュ生成部、48・・・変形処理データ記憶部、49・・・画像表示部、101〜114・・・変形制御点

【特許請求の範囲】
【請求項1】
画像に設定した変形制御点の移動に対応して、前記画像を変形させる画像処理装置であって、
前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成手段と、
前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定手段と、
前記変形制御点の移動に対応して、前記設定手段によって設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成手段と、
を備えることを特徴とする画像処理装置。
【請求項2】
前記設定手段は、一の前記変形制御点を基準として、隣接する他の前記変形制御点との距離の範囲に含まれる前記三角形からなる領域の面積を取得し、当該面積が、設定された閾値よりも大きい場合に、前記領域に含まれる三角形について変形の抑制度合いを高めることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記設定手段は、一の前記変形制御点を基準として、隣接する他の前記変形制御点との距離を取得し、当該距離が、設定された閾値よりも大きい場合に、基準とする前記変形制御点から当該距離までの範囲に位置する前記三角形について変形の抑制度合いを高めることを特徴とする請求項1記載の画像処理装置。
【請求項4】
前記設定手段は、前記三角形について変形の抑制度合いを高める場合に、当該三角形の頂点における変形の抑制度合いを一律に高めることを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。
【請求項5】
前記設定手段は、前記三角形について変形の抑制度合いを高める場合に、他の前記三角形との境界部分において、変形の抑制度合いの平滑化を行うことを特徴とする請求項1から3のいずれか1項に記載の画像処理装置。
【請求項6】
画像に設定した変形制御点の移動に対応して、前記画像を変形させる画像処理方法であって、
前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成ステップと、
前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定ステップと、
前記変形制御点の移動に対応して、前記設定ステップにおいて設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成ステップと、
を含むことを特徴とする画像処理方法。
【請求項7】
画像に設定した変形制御点の移動に対応して、前記画像を変形させるためのプログラムであって、
コンピュータに、
前記画像に三角形で構成されるオリジナルメッシュを設定するオリジナルメッシュ生成機能と、
前記変形制御点の位置関係に応じて、前記三角形における変形の抑制度合いを設定する設定機能と、
前記変形制御点の移動に対応して、前記設定機能によって設定された変形の抑制度合いに従って、前記オリジナルメッシュを構成する三角形の変形処理を行うメッシュ生成機能と、
を実現させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−45295(P2013−45295A)
【公開日】平成25年3月4日(2013.3.4)
【国際特許分類】
【出願番号】特願2011−182844(P2011−182844)
【出願日】平成23年8月24日(2011.8.24)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】