(57)【要約】   【課題】  著しく短い処理時間で、オブジェクトが自然に変形できる。  【解決手段】  画像処理システム１０は、三角形メッシュにおける固定すべき点および移動される点を含む、複数のハンドル位置を示す情報に基づいて、オリジナル形状の三角形メッシュについて、その回転および拡大／縮小を許容しつつ、オリジナル三角形メッシュと、処理後の中間的な三角形メッシュとの間の差異を表現した２次の誤り計量が最小となるような、中間的な三角形メッシュのデータを生成する第１のメッシュ生成部３６と、中間的な三角形メッシュについて、その回転および平行移動を許容しつつ、不均一な歪、伸縮および拡大／縮小を許容しない状態で、中間的な三角形メッシュと、最終的な三角形メッシュとの間の差異を表現した誤り計量が最小となるような、最終的な三角形メッシュのデータを生成する第２のメッシュ生成部３８と、を備える。【選択図】  図１
2006285765.tif 000002
【特許請求の範囲】
【請求項１】
変形すべきオブジェクトを構成する三角形メッシュのデータからなるオリジナル形状データが記憶された記憶装置を有する画像処理システムにおいて、
前記入力装置からの、前記画像中の前記三角形メッシュにおける固定すべき点および移動される点を含む、複数のハンドル位置を示す情報に基づいて、前記オリジナル形状データを前記記憶装置から読み出して、当該オリジナル形状データが示すそれぞれのオリジナル三角形メッシュについて、その回転および拡大／縮小を許容しつつ、オリジナル三角形メッシュと、処理後の中間的な三角形メッシュとの間の差異を表現した２次の誤り計量が最小となるような、中間的な三角形メッシュのデータからなる中間的メッシュデータを生成し、前記記憶装置に記憶する第１のメッシュ生成手段と、
前記中間的メッシュデータが示すそれぞれの中間的な三角形メッシュについて、その回転および平行移動を許容しつつ、不均一な歪、伸縮および拡大／縮小を許容しない状態で、前記中間的な三角形メッシュと、最終的な三角形メッシュとの間の差異を表現した誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、前記記憶装置に記憶する第２のメッシュ生成手段と、を備えたことを特徴とする画像処理システム。
【請求項２】
前記第２のメッシュ生成手段が、前記オリジナル形状データが示すオリジナル三角形メッシュのそれぞれを回転および平行移動させて、中間的メッシュデータが示す対応する対応する中間的な三角形メッシュとの間の２次の誤り計量を最小化させる、適合化された三角形メッシュのデータからなる適合メッシュデータを生成し、かつ、前記記憶装置に記憶し、
前記適合メッシュデータが示す三角形メッシュと、対応する最終的な三角形メッシュとの間の、三角形の辺を表すベクトルの差を示す２次の誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、かつ、前記記憶装置に記憶するように構成されたことを特徴とする請求項１に記載の画像処理システム。
【請求項３】
さらに、前記記憶装置に記憶されたオリジナル形状データ、或いは、最終メッシュデータを読み出して、読み出されたデータに基づくオブジェクトを含む画像を生成する画像生成手段を備えたことを特徴とする請求項２に記載の画像処理システム。
【請求項４】
さらに、オリジナル形状データが前記記憶装置に記憶されると、
（ａ）前記オリジナル形状データが示すそれぞれのオリジナル三角形メッシュの頂点座標に基づいて、
Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖ
を満たす行列Ｇｓｔｅｐ１、および、
Ｅｓｔｅｐ２｛ｖ｝＝ｖＴＧｓｔｅｐ２ｖ
を満たす行列Ｇｓｔｅｐ２
（ただし、
Ｅｓｔｅｐ１は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第１のメッシュ生成手段における２次の誤り計量を表す関数
Ｅｓｔｅｐ２は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第２のメッシュ生成手段による、適合メッシュデータが示す三角形メッシュおよび最終的な三角形メッシュの差異を表現した２次の誤り計量を表す関数）
を算出し、
（ｂ）∇Ｅｆｉｔｔｉｎｇ｛ｗ｝＝Ｇｆｉｔｔｉｎｇｗ＋Ｂｆｉｔｔｉｎｇ＝０
であるような、行列Ｇｆｉｔｔｉｎｇ、および、当該Ｇｆｉｔｔｉｎｇの逆行列Ｇｆｉｔｔｉｎｇ−１
（ただし、
Ｅｆｉｔｔｉｎｇは、前記第２のメッシュ生成手段における、前記オリジナル形状データが示す三角形メッシュおよび中間的な三角形メッシュに関する２次の誤り計量を示す関数）
を算出するように構成されたレジストレーション手段と、
前記入力装置からの情報により、ある位置にハンドルが配置、追加され、あるいは、ある位置のハンドルが削除されると、
（ｃ）前記Ｇｓｔｅｐ１およびＧｓｔｅｐ２に関して、ハンドルにより拘束される頂点の成分を除去することにより、行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’を算出し、
（ｄ）前記行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’の逆行列Ｇｓｔｅｐ１’−１およびＧｓｔｅｐ２‘−１を算出するコンパイレーション手段と、を備えたことを特徴とする請求項２または３に記載の画像処理システム。
【請求項５】
前記入力装置からの情報により、いずれかの位置のハンドルが移動されると、
前記第１のメッシュ生成手段が、
（ｅ）前記ハンドルの移動に伴って、三角形メッシュにおける拘束された頂点の更新された位置を用いて、ベクトルＢｓｔｅｐ１
（ただし、∇Ｅｓｔｅｐ１｛ｕ｝＝Ｇｓｔｅｐ１’＋Ｂｓｔｅｐ１＝０
∇Ｅｓｔｅｐ１｛ｖ｝は、Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖの偏微分）
を算出し、
（ｆ）前記行列Ｇｓｔｅｐ１‘−１と前記Ｂｓｔｅｐ１とを乗じて、三角形メッシュにおける自由な頂点に関する座標を含む、中間的なメッシュ三角形の中間的メッシュデータを生成するように構成され、かつ、
前記第２のメッシュ生成手段が、
（ｇ）前記中間的メッシュデータに基づいて、前記ベクトルＢｆｉｔｔｉｎｇを算出し、
（ｈ）前記行列Ｇｆｉｔｔｉｎｇ−１とＢｆｉｔｔｉｎｇとを乗じて、前記適合化された三角形の適合メッシュデータを生成し、
（ｉ）前記適合メッシュデータに基づき、ベクトルＢｓｔｅｐ２’
（ただし、∇Ｅｓｔｅｐ２｛ｕ｝＝Ｇｓｔｅｐ２’ｕ＋Ｂｓｔｅｐ２’＝０
∇Ｅｓｔｅｐ２｛ｖ｝は、Ｅｓｔｅｐ２｛ｖ｝&shy;＝ｖＴＧｓｔｅｐ２ｖ＋Ｂｓｔｅｐ２ｖの偏微分）
を算出し、
（ｊ）前記行列Ｇｓｔｅｐ２’−１とベクトルＢｓｔｅｐ２’とを乗じて、最終的な三角形メッシュの最終メッシュデータを生成するように構成されたことを特徴とする請求項４に記載の画像処理システム。
【請求項６】
前記変形すべきオブジェクトが、前記三角形メッシュにより構成される２次元オブジェクトであることを特徴とする請求項１ないし５の何れか一項に記載の画像処理システム。
【請求項７】
前記変形すべきオブジェクトが曲線であり、前記曲線を示すポリラインのデータから、前記ラインを構成する頂点の近接する３点ずつを結んで構成される三角形メッシュを生成し、当該三角形メッシュのデータを、記憶装置に記憶する初期三角形メッシュ生成手段を備えたことを特徴とする請求項１ないし５の何れか一項に記載の画像処理システム。
【請求項８】
変形すべきオブジェクトを構成する三角形メッシュのデータからなるオリジナル形状データが記憶された記憶装置を有するコンピュータにより読み出し可能な、画像処理プログラムであって、前記コンピュータに、
前記入力装置からの、前記画像中の前記三角形メッシュにおける固定すべき点および移動される点を含む、複数のハンドル位置を示す情報に基づいて、前記オリジナル形状データを前記記憶装置から読み出して、当該オリジナル形状データが示すそれぞれのオリジナル三角形メッシュについて、その回転および拡大／縮小を許容しつつ、オリジナル三角形メッシュと、処理後の中間的な三角形メッシュとの間の差異を表現した２次の誤り計量が最小となるような、中間的な三角形メッシュのデータからなる中間的メッシュデータを生成し、前記記憶装置に記憶する第１のメッシュ生成ステップと、
前記中間的メッシュデータが示すそれぞれの中間的な三角形メッシュについて、その回転および平行移動を許容しつつ、不均一な歪、伸縮および拡大／縮小を許容しない状態で、前記中間的な三角形メッシュと、最終的な三角形メッシュとの間の差異を表現した誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、前記記憶装置に記憶する第２のメッシュ生成ステップと、を実行させることを特徴とする画像処理プログラム。
【請求項９】
前記第２のメッシュ生成ステップにおいて、前記コンピュータに、
前記オリジナル形状データが示すオリジナル三角形メッシュのそれぞれを回転および平行移動させて、中間的メッシュデータが示す対応する対応する中間的な三角形メッシュとの間の２次の誤り計量を最小化させる、適合化された三角形メッシュのデータからなる適合メッシュデータを生成し、かつ、前記記憶装置に記憶するステップと、
前記適合メッシュデータが示す三角形メッシュと、対応する最終的な三角形メッシュとの間の、三角形の辺を表すベクトルの差を示す２次の誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、かつ、前記記憶装置に記憶するステップとを、実行させることを特徴とする請求項８に記載の画像処理プログラム。
【請求項１０】
前記コンピュータに、さらに、前記記憶装置に記憶されたオリジナル形状データ、或いは、最終メッシュデータを読み出して、読み出されたデータに基づくオブジェクトを含む画像を生成する画像生成ステップを、実行させることを特徴とする請求項９に記載の画像処理プログラム。
【請求項１１】
さらに、オリジナル形状データが前記記憶装置に記憶されると、
（ａ）前記オリジナル形状データが示すそれぞれのオリジナル三角形メッシュの頂点座標に基づいて、
Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖ
を満たす行列Ｇｓｔｅｐ１、および、
Ｅｓｔｅｐ２｛ｖ｝＝ｖＴＧｓｔｅｐ２ｖ
を満たす行列Ｇｓｔｅｐ２
（ただし、
Ｅｓｔｅｐ１は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第１のメッシュ生成ステップにおける２次の誤り計量を表す関数
Ｅｓｔｅｐ２は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第２のメッシュ生成ステップによる、適合メッシュデータが示す三角形メッシュおよび最終的な三角形メッシュの差異を表現した２次の誤り計量を表す関数）
を算出するステップと、
（ｂ）∇Ｅｆｉｔｔｉｎｇ｛ｗ｝＝Ｇｆｉｔｔｉｎｇｗ＋Ｂｆｉｔｔｉｎｇ＝０
であるような、行列Ｇｆｉｔｔｉｎｇ、および、当該Ｇｆｉｔｔｉｎｇの逆行列Ｃｆｉｔｔｉｎｇ−１
（ただし、
Ｅｆｉｔｔｉｎｇは、前記第２のメッシュ生成ステップにおける、前記オリジナル形状データが示す三角形メッシュおよび中間的な三角形メッシュに関する２次の誤り計量を示す関数）
を算出するステップと、を前記コンピュータに実行させ、さらに、
前記入力装置からの情報により、ある位置にハンドルが配置、追加され、あるいは、ある位置のハンドルが削除されると、
（ｃ）前記Ｇｓｔｅｐ１およびＧｓｔｅｐ２に関して、ハンドルにより拘束される頂点の成分を除去することにより、行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’を算出するステップと、
（ｄ）前記行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’の逆行列Ｇｓｔｅｐ１’−１およびＧｓｔｅｐ２‘−１を算出するステップと、を前記コンピュータに実行させることを特徴とする請求項９または１０に記載の画像処理プログラム。
【請求項１２】
前記入力装置からの情報により、いずれかの位置のハンドルが移動されると、
前記第１のメッシュ生成ステップにおいて、
（ｅ）前記ハンドルの移動に伴って、三角形メッシュにおける拘束された頂点の更新された位置を用いて、ベクトルＢｓｔｅｐ１
（ただし、∇Ｅｓｔｅｐ１｛ｕ｝＝Ｇｓｔｅｐ１’＋Ｂｓｔｅｐ１＝０
∇Ｅｓｔｅｐ１｛ｖ｝は、Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖの偏微分）
を算出するステップと、
（ｆ）前記行列Ｇｓｔｅｐ１‘−１と前記Ｂｓｔｅｐ１とを乗じて、三角形メッシュにおける自由な頂点に関する座標を含む、中間的なメッシュ三角形の中間的メッシュデータを生成するステップと、を前記コンピュータに実行させ、かつ、
前記第２のメッシュ生成ステップにおいて、
（ｇ）前記中間的メッシュデータに基づいて、前記ベクトルＢｆｉｔｔｉｎｇを算出するステップと、
（ｈ）前記行列Ｇｆｉｔｔｉｎｇ−１とＢｆｉｔｔｉｎｇとを乗じて、前記適合化された三角形の適合メッシュデータを生成するステップと、
（ｉ）前記適合メッシュデータに基づき、ベクトルＢｓｔｅｐ２’
（ただし、∇Ｅｓｔｅｐ２｛ｕ｝＝Ｇｓｔｅｐ２’ｕ＋Ｂｓｔｅｐ２’＝０
∇Ｅｓｔｅｐ２｛ｖ｝は、Ｅｓｔｅｐ２｛ｖ｝&shy;＝ｖＴＧｓｔｅｐ２ｖ＋Ｂｓｔｅｐ２ｖの偏微分）
を算出するステップと、
（ｊ）前記行列Ｇｓｔｅｐ２’−１とベクトルＢｓｔｅｐ２’とを乗じて、最終的な三角形メッシュの最終メッシュデータを生成するステップと、を前記コンピュータに実行させることを特徴とする請求項１１に記載の画像処理プログラム。
【請求項１３】
前記変形すべきオブジェクトが、前記三角形メッシュにより構成される２次元オブジェクトであることを特徴とする請求項８ないし１２の何れか一項に記載の画像処理プログラム。
【請求項１４】
前記変形すべきオブジェクトが曲線であり、さらに、前記コンピュータに、
前記曲線を示すポリラインのデータから、前記ラインを構成する頂点の近接する３点ずつを結んで構成される三角形メッシュを生成し、当該三角形メッシュのデータを、記憶装置に記憶する初期三角形メッシュ生成ステップを実行させることを特徴とする請求項８ないし１２の何れか一項に記載の画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示されたオブジェクトを自在に変形させることができる画像処理装置および画像処理プログラムに関する。
【背景技術】
【０００２】
画像中の２次元のオブジェクトを、ユーザの指示にしたがって操作する、たとえば、移動、回転、伸縮、曲げるための技術が提案されている。従来、このような操作のために、画像中のオブジェクトを三角形のメッシュで仕切り、そのメッシュを変形させることで、オブジェクトを変形させていた。
【０００３】
形状を操作する手法として、予め定義されたスケルトンを利用することが知られている。ユーザが、スケルトンの形状を操作すると、画像処理システムが、操作されたスケルトンの形状にしたがって、全体の形状を調整する。しかしながら、スケルトン形状の定義は、簡単な処理ではなく、アメーバのような明瞭なスケルトン構造をもたないオブジェクトに対しては有効ではないという問題点があった。
【０００４】
他の公知の手法として、フリー・フォーム・デフォーメーション（Free Form Deformation: FFD）が知られている。ユーザが、空間を複数のドメインに分割し、かつ、各ドメインを定義する制御ポイントを動かすことによりドメインを操作する。しかしながら、ＦＦＤの設定は面倒であり、ユーザは、数多くの頂点を手動で操作する必要があるという問題点があった。
【非特許文献１】“ラプラシアン・サーフェイス・エディティング（Laplacian SurfaceEditing）” （オルガ・ソルキネ(Orga Solkine)他著、ユーログラフィクス／ＡＣＭ  ＳＩＧＧＲＡＰＨ  シンポジウム（Eurographics/ACM SIGGRAPHSymposium）、１７９−１８８）、［ｏｎ  ｌｉｎｅ］，２００４年７月９日、［平成１７年２月２３日検索］、インターネット、＜ＵＲＬ：http://www-sop.inria.fr/geometrica/events/sgp2004/program.html＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
非特許文献１には、２次元オブジェクトを構成する三角形メッシュのそれぞれを拡大／縮小、回転させて、新たな三角形メッシュを生成し、新たな三角形メッシュに基づく２次元オブジェクトを表示させる手法が提案されている。
【０００６】
この場合にも、オブジェクトの変形が自然であり、かつ、その処理時間が短いようなシステムやプログラムが望ましい。
【０００７】
本発明は、オブジェクトが自然に変形でき、かつ、その処理時間も著しく短い画像処理システムおよび画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、スケルトンやＦＦＤを用いずに、形状を操作する手法を提供する。ユーザは、ハンドルとして、オブジェクトの内側に複数のポイントを設定し、これらハンドルを所望の位置に移動させる。
【０００９】
次いで、画像処理システムは、局所的な形状のひずみを最小化させつつ、与えられたハンドルの位置にしたがって、全体の形状を変形させる。本発明にかかる手法によれば、オブジェクトの形状を自然に変形することができ、かつ、従来のオブジェクトの埋め込まれた空間自体を歪ませる手法と比較して、処理結果、つまり、オブジェクトの動きは、実際の世界でのオブジェクトの振る舞いに近いものとなる。
【００１０】
本発明においては、歪を最小限にするために、形状の構成を見出すために、基本的には、２つのステップの閉じた(繰り返し演算に頼らず一通りの計算で結果がでる)アルゴリズムが設けられる。従来の手法では、物理ベースのシミュレーション、あるいは、非線形の最適化が用いられていた。しかしながら、ユーザとの間の対話的な操作（インタラクション）では、これらの手法は低速である。
【００１１】
キーポイントは、二次の誤り計量を適切に設計して、最小化の問題を、線形の連立方程式として定式化することにある。インタラクションの冒頭で連立方程式を解くことにより、画像処理システムは、単一の行列の乗算により解を見出すことができる。理想的には、ある形状の全ての属性を取り扱うような単一の二次の誤り関数を有するのが望ましいが、このような単一の誤り関数を設計することは困難である。そこで、本発明においては、上記最小化の問題点を、回転方向の問題と、大きさの問題とに分けた。これにより、本発明では、問題は、二つの最小二乗法の最小化の問題に分解され、それぞれが順番に解かれる。
【００１２】
より詳細には、本発明の目的は、変形すべきオブジェクトを構成する三角形メッシュのデータからなるオリジナル形状データが記憶された記憶装置を有する画像処理システムにおいて、
前記入力装置からの、前記画像中の前記三角形メッシュにおける固定すべき点および移動される点を含む、複数のハンドル位置を示す情報に基づいて、前記オリジナル形状データを前記記憶装置から読み出して、当該オリジナル形状データが示すそれぞれのオリジナル三角形メッシュについて、その回転および拡大／縮小を許容しつつ、オリジナル三角形メッシュと、処理後の中間的な三角形メッシュとの間の差異を表現した２次の誤り計量が最小となるような、中間的な三角形メッシュのデータからなる中間的メッシュデータを生成し、前記記憶装置に記憶する第１のメッシュ生成手段と、
前記中間的メッシュデータが示すそれぞれの中間的な三角形メッシュについて、その回転および平行移動を許容しつつ、不均一な歪、伸縮および拡大／縮小を許容しない状態で、前記中間的な三角形メッシュと、最終的な三角形メッシュとの間の差異を表現した誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、前記記憶装置に記憶する第２のメッシュ生成手段と、を備えたことを特徴とする画像処理システムにより達成される。
【００１３】
好ましい実施態様においては、第２のメッシュ生成手段が、前記オリジナル形状データが示すオリジナル三角形メッシュのそれぞれを回転および平行移動させて、中間的メッシュデータが示す対応する対応する中間的な三角形メッシュとの間の２次の誤り計量を最小化させる、適合化された三角形メッシュのデータからなる適合メッシュデータを生成し、かつ、前記記憶装置に記憶し、
前記適合メッシュデータが示す三角形メッシュと、対応する最終的な三角形メッシュとの間の、三角形の辺を表すベクトルの差を示す２次の誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、かつ、前記記憶装置に記憶するように構成されている。
【００１４】
また、別の好ましい実施態様においては、さらに、前記記憶装置に記憶されたオリジナル形状データ、或いは、最終メッシュデータを読み出して、読み出されたデータに基づくオブジェクトを含む画像を生成する画像生成手段を備える。
【００１５】
より好ましい実施態様においては、さらに、オリジナル形状データが前記記憶装置に記憶されると、
（ａ）前記オリジナル形状データが示すそれぞれのオリジナル三角形メッシュの頂点座標に基づいて、
Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖ
を満たす行列Ｇｓｔｅｐ１、および、
Ｅｓｔｅｐ２｛ｖ｝＝ｖＴＧｓｔｅｐ２ｖ
を満たす行列Ｇｓｔｅｐ２
（ただし、
Ｅｓｔｅｐ１は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第１のメッシュ生成手段における２次の誤り計量を表す関数
Ｅｓｔｅｐ２は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第２のメッシュ生成手段による、適合メッシュデータが示す三角形メッシュおよび最終的な三角形メッシュの差異を表現した２次の誤り計量を表す関数）
を算出し、
（ｂ）∇Ｅｆｉｔｔｉｎｇ｛ｗ｝＝Ｇｆｉｔｔｉｎｇｗ＋Ｂｆｉｔｔｉｎｇ＝０
であるような、行列Ｇｆｉｔｔｉｎｇ、および、当該Ｇｆｉｔｔｉｎｇの逆行列Ｇｆｉｔｔｉｎｇ−１
（ただし、
Ｅｆｉｔｔｉｎｇは、前記第２のメッシュ生成手段における、前記オリジナル形状データが示す三角形メッシュおよび中間的な三角形メッシュの間の差異を表現した２次の誤り計量を示す関数）
を算出するように構成されたレジストレーション手段と、
前記入力装置からの情報により、ある位置にハンドルが配置、追加され、あるいは、ある位置のハンドルが削除されると、
（ｃ）前記Ｇｓｔｅｐ１およびＧｓｔｅｐ２に関して、ハンドルにより拘束される頂点の成分を除去することにより、行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’を算出し、
（ｄ）前記行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’の逆行列Ｇｓｔｅｐ１’−１およびＧｓｔｅｐ２‘−１を算出するコンパイレーション手段と、を備えている。
【００１６】
また、さらに好ましい実施態様においては、前記入力装置からの情報により、いずれかの位置のハンドルが移動されると、
前記第１のメッシュ生成手段が、
（ｅ）前記ハンドルの移動に伴って、三角形メッシュにおける拘束された頂点の更新された位置を用いて、ベクトルＢｓｔｅｐ１
（ただし、∇Ｅｓｔｅｐ１｛ｕ｝＝Ｇｓｔｅｐ１’＋Ｂｓｔｅｐ１＝０
∇Ｅｓｔｅｐ１｛ｖ｝は、Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖの偏微分）
を算出し、
（ｆ）前記行列Ｇｓｔｅｐ１‘−１と前記Ｂｓｔｅｐ１とを乗じて、三角形メッシュにおける自由な頂点に関する座標を含む、中間的なメッシュ三角形の中間的メッシュデータを生成するように構成され、かつ、
前記第２のメッシュ生成手段が、
（ｇ）前記中間的メッシュデータに基づいて、前記ベクトルＢｆｉｔｔｉｎｇを算出し、
（ｈ）前記行列Ｇｆｉｔｔｉｎｇ−１とＢｆｉｔｔｉｎｇとを乗じて、前記適合化された三角形の適合メッシュデータを生成し、
（ｉ）前記適合メッシュデータに基づき、ベクトルＢｓｔｅｐ２’
（ただし、∇Ｅｓｔｅｐ２｛ｕ｝＝Ｇｓｔｅｐ２’ｕ＋Ｂｓｔｅｐ２’＝０
∇Ｅｓｔｅｐ２｛ｖ｝は、Ｅｓｔｅｐ２｛ｖ｝&shy;＝ｖＴＧｓｔｅｐ２ｖ＋Ｂｓｔｅｐ２ｖの偏微分）
を算出し、
（ｊ）前記行列Ｇｓｔｅｐ２’−１とベクトルＢｓｔｅｐ２’とを乗じて、最終的な三角形メッシュの最終メッシュデータを生成するように構成されている。
【００１７】
ある実施態様においては、前記変形すべきオブジェクトが、前記三角形メッシュにより構成される２次元オブジェクトである。或いは、前記変形すべきオブジェクトが曲線であっても良い。この場合には、画像処理システムは、前記曲線を示すポリラインのデータから、前記ラインを構成する頂点の近接する３点ずつを結んで構成される三角形メッシュを生成し、当該三角形メッシュのデータを、記憶装置に記憶する初期三角形メッシュ生成手段を備える。  また、本発明の目的は、変形すべきオブジェクトを構成する三角形メッシュのデータからなるオリジナル形状データが記憶された記憶装置を有するコンピュータにより読み出し可能な、画像処理プログラムであって、前記コンピュータに、
前記入力装置からの、前記画像中の前記三角形メッシュにおける固定すべき点および移動される点を含む、複数のハンドル位置を示す情報に基づいて、前記オリジナル形状データを前記記憶装置から読み出して、当該オリジナル形状データが示すそれぞれのオリジナル三角形メッシュについて、その回転および拡大／縮小を許容しつつ、オリジナル三角形メッシュと、処理後の中間的な三角形メッシュとの間の差異を表す２次の誤り計量が最小となるような、中間的な三角形メッシュのデータからなる中間的メッシュデータを生成し、前記記憶装置に記憶する第１のメッシュ生成ステップと、
前記中間的メッシュデータが示すそれぞれの中間的な三角形メッシュについて、その回転および平行移動を許容しつつ、不均一な歪、伸縮および拡大／縮小を許容しない状態で、前記中間的な三角形メッシュと、最終的な三角形メッシュとの間の差異を表す誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、前記記憶装置に記憶する第２のメッシュ生成ステップと、を実行させることを特徴とする画像処理プログラムにより達成される。
【００１８】
好ましい実施態様においては、前記第２のメッシュ生成ステップにおいて、前記コンピュータに、
前記オリジナル形状データが示すオリジナル三角形メッシュのそれぞれを回転および平行移動させて、中間的メッシュデータが示す対応する対応する中間的な三角形メッシュとの間の２次の誤り計量を最小化させる、適合化された三角形メッシュのデータからなる適合メッシュデータを生成し、かつ、前記記憶装置に記憶するステップと、
前記適合メッシュデータが示す三角形メッシュと、対応する最終的な三角形メッシュとの間の、三角形の辺を表すベクトルの差を示す２次の誤り計量が最小となるような、最終的な三角形メッシュのデータからなる最終メッシュデータを生成し、かつ、前記記憶装置に記憶するステップとを、実行させる。
【００１９】
別の好ましい実施態様においては、前記コンピュータに、さらに、前記記憶装置に記憶されたオリジナル形状データ、或いは、最終メッシュデータを読み出して、読み出されたデータに基づくオブジェクトを含む画像を生成する画像生成ステップを、実行させる。
【００２０】
より好ましい実施態様においては、さらに、オリジナル形状データが前記記憶装置に記憶されると、
（ａ）前記オリジナル形状データが示すそれぞれのオリジナル三角形メッシュの頂点座標に基づいて、
Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖ
を満たす行列Ｇｓｔｅｐ１、および、
Ｅｓｔｅｐ２｛ｖ｝＝ｖＴＧｓｔｅｐ２ｖ
を満たす行列Ｇｓｔｅｐ２
（ただし、
Ｅｓｔｅｐ１は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第１のメッシュ生成ステップにおける２次の誤り計量を表す関数
Ｅｓｔｅｐ２は、２ｎ個の変数ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙによる２次式で表された、第２のメッシュ生成ステップによる、適合メッシュデータが示す三角形メッシュおよび最終的な三角形メッシュの差異を表す２次の誤り計量を表す関数）
を算出するステップと、
（ｂ）∇Ｅｆｉｔｔｉｎｇ｛ｗ｝＝Ｇｆｉｔｔｉｎｇｗ＋Ｂｆｉｔｔｉｎｇ＝０
であるような、行列Ｇｆｉｔｔｉｎｇ、および、当該Ｇｆｉｔｔｉｎｇの逆行列Ｇｆｉｔｔｉｎｇ−１
（ただし、
Ｅｆｉｔｔｉｎｇは、前記第２のメッシュ生成ステップにおける、前記オリジナル形状データが示す三角形メッシュおよび中間的な三角形メッシュの間の差異を表現する２次の誤り計量を示す関数）
を算出するステップと、を前記コンピュータに実行させ、さらに、
前記入力装置からの情報により、ある位置にハンドルが配置、追加され、あるいは、ある位置のハンドルが削除されると、
（ｃ）前記Ｇｓｔｅｐ１およびＧｓｔｅｐ２に関して、ハンドルにより拘束される頂点の成分を除去することにより、行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’を算出するステップと、
（ｄ）前記行列Ｇｓｔｅｐ１’およびＧｓｔｅｐ２’の逆行列Ｇｓｔｅｐ１’−１およびＧｓｔｅｐ２‘−１を算出するステップと、を前記コンピュータに実行させる。
【００２１】
また、さらに好ましい実施態様においては、前記入力装置からの情報により、いずれかの位置のハンドルが移動されると、
前記第１のメッシュ生成ステップにおいて、
（ｅ）前記ハンドルの移動に伴って、三角形メッシュにおける拘束された頂点の更新された位置を用いて、ベクトルＢｓｔｅｐ１
（ただし、∇Ｅｓｔｅｐ１｛ｕ｝＝Ｇｓｔｅｐ１’＋Ｂｓｔｅｐ１＝０
∇Ｅｓｔｅｐ１｛ｖ｝は、Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖの偏微分）
を算出するステップと、
（ｆ）前記行列Ｇｓｔｅｐ１‘−１と前記Ｂｓｔｅｐ１とを乗じて、三角形メッシュにおける自由な頂点に関する座標を含む、中間的なメッシュ三角形の中間的メッシュデータを生成するステップと、を前記コンピュータに実行させ、かつ、
前記第２のメッシュ生成ステップにおいて、
（ｇ）前記中間的メッシュデータに基づいて、前記ベクトルＢｆｉｔｔｉｎｇを算出するステップと、
（ｈ）前記行列Ｇｆｉｔｔｉｎｇ−１とＢｆｉｔｔｉｎｇとを乗じて、前記適合化された三角形の適合メッシュデータを生成するステップと、
（ｉ）前記適合メッシュデータに基づき、ベクトルＢｓｔｅｐ２’
（ただし、∇Ｅｓｔｅｐ２｛ｕ｝＝Ｇｓｔｅｐ２’ｕ＋Ｂｓｔｅｐ２’＝０
∇Ｅｓｔｅｐ２｛ｖ｝は、Ｅｓｔｅｐ２｛ｖ｝&shy;＝ｖＴＧｓｔｅｐ２ｖ＋Ｂｓｔｅｐ２ｖの偏微分）
を算出するステップと、
（ｊ）前記行列Ｇｓｔｅｐ２’−１とベクトルＢｓｔｅｐ２’とを乗じて、最終的な三角形メッシュの最終メッシュデータを生成するステップと、を前記コンピュータに実行させる。
【００２２】
ある実施態様においては、前記変形すべきオブジェクトが、前記三角形メッシュにより構成される２次元オブジェクトである。或いは、前記変形すべきオブジェクトが曲線であり、さらに、画像処理プログラムが、コンピュータに、曲線を示すポリラインのデータから、前記ラインを構成する頂点の近接する３点ずつを結んで構成される三角形メッシュを生成し、当該三角形メッシュのデータを、記憶装置に記憶する初期三角形メッシュ生成ステップを実行させても良い。
【発明の効果】
【００２３】
本発明によれば、オブジェクトを自然に変形でき、かつ、その処理時間も著しく短い画像処理システムおよび画像処理プログラムを提供することが可能となる。
【発明を実施するための最良の形態】
【００２４】
以下、添付図面を参照して、本発明の実施の形態について説明する。
［システム構成］
図１は、本実施の形態にかかる画像処理システムのハードウェア構成を示すブロックダイヤグラムである。図１に示すように、画像処理システム１０は、バス１１を介して接続された、マウスやキーボードなどの入力装置１２、表示装置１４、ＣＤやＤＶＤなどの可搬記憶媒体１８への読み書きを実行するドライバ１６、ＣＰＵ２０、ＲＯＭ２２、ＲＡＭ２４、および、ハードディスクなどの外部記憶装置２６を備えている。すなわち、通常のパーソナルコンピュータに、以下に、当該パーソナルコンピュータに実行させる処理ステップを詳細に説明するようなコンピュータプログラムをインストールすることにより実現される。
【００２５】
図２は、本実施の形態にかかる画像処理システムの機能ブロックダイヤグラムである。図２に示すように、画像処理システム１０は、機能的には、初期メッシュ生成部３０、レジストレーション処理部３２、コンパイレーション処理部３４、および、第１のメッシュ生成部３６、第２のメッシュ生成部３８を備える。これらの機能は、主としてＣＰＵ２０により実現される。また、画像処理システム１０は、後述する画像データを記憶する記憶装置４０を備える。この機能は、主として、ＲＡＭ２４により実現される。また、図２に示すように、画像処理システム１０は、入力装置からの指示を受け入れて、初期メッシュ生成部３０などの構成部分に対して、当該指示を与え、或いは、生成されたデータに基づく画像を表示装置１４に出力するインタフェース（Ｉ／Ｆ）４２、および、記憶装置４０に記憶されたデータ（たとえば、オリジナル形状データ、最終メッシュデータ）に基づいて、オブジェクトを描画する画像生成部５２を有する。
［処理の概略］
初期メッシュ生成部３０は、画像中、ユーザにより操作させるべき２次元形状のオブジェクトの内部に三角形のメッシュを生成する。初期メッシュ生成部３０は、得られたメッシュの頂点の座標を、オリジナル形状データ４４として記憶装置４０に記憶する。初期メッシュ生成部３０の処理は、従来から知られており、この処理は、本発明の一部をなすものではない。
【００２６】
２次元形状のオブジェクトは、ベクトル・グラフィクスであっても良いし、ビットマップイメージであっても良い。必要なことは、２次元形状の境界が閉じた多角形として得られていれば良い。また、画像がビットマップイメージである場合には、背景を消去して、外側の輪郭をトレースしておくことで、境界を閉じた多角形とすることができる。初期メッシュ生成部３０は、境界が閉じた多角形の内側に、三角形のメッシュを生成し、その頂点の座標のデータを、オリジナル形状データ４４として記憶装置４０に記憶する。三角形メッシュを生成するためには、種々の手法が知られている。本実施の形態においては、ほぼ等辺の三角形を、境界が閉じた多角形の領域全体にわたって生成するのが望ましい。初期メッシュ生成部３０は、拘束デローニ分割を基点として、頂点の位置およびメッシュの連結を調整することで、繰り返しメッシュを修正する。最終的に得られたメッシュの座標のデータが、オリジナル形状データ４４として、後の処理に使用される。
［前処理］
また、レジストレーショ処理部３２およびコンパイレーション処理部３４は、後に詳述する第１のメッシュ生成部３６および第２のメッシュ生成部３８における処理の前処理を実行する。レジストレーション処理部３２は、ユーザが、入力装置１２を操作して、表示装置１４の画面上に表示された２次元形状のオブジェクトに、メッシュが生成されたときに、必要な処理を実行する。また、コンパイレーション処理部３４は、ハンドルが、配置、追加或いは削除されたときに、必要な処理を実行する。
【００２７】
ここに、本明細書において、ハンドルは、ユーザがマウスを操作して、表示された２次元形状の上でクリックすることで、設定することができる。この際に、画像処理システム１０は、記憶装置４０中に、ハンドルの座標を記憶しておく。また、ハンドルを設定した状態で、或いは、ハンドルを指定して、ユーザが、マウスをドラッグすることで、ハンドルを移動させることができる。ハンドルの移動に伴って、システムは、記憶装置４０に記憶されたハンドルの座標を更新すれば良い。なお、ハンドルが配置、追加或いは削除された場合に、画像処理システム１０において実行される処理と、ハンドルが移動された場合に、画像処理システム１０において実行される処理とは異なる。これについては、図８および図９のフローチャートを参照して、再度詳細に説明する。
【００２８】
なお、以下、ユーザがハンドルを設定し、或いは、ハンドルを移動させて、それに応答して、システムが処理を実行することを、「インタラクション」とも称する。また、ユーザが、ハンドルの設定や移動により、２次元形状のオブジェクトを変形させることを、「マニピュレーション」とも称する。
【００２９】
ユーザは、形状の上に１以上のハンドルを配置し、対話的にハンドルを移動させる（図３（ｂ）、（ｃ）参照）。マウスを利用する場合に、ユーザは、アイコンを形状の上の所望の位置に配置して、クリックすることで、ハンドルを設定することができ、かつ、ドラッグにより設定したハンドルを移動することができる。
【００３０】
現状では、本発明において、ユーザは、ハンドルを任意の位置に配置して、メッシュ構造を、ハンドルを含むように変形できるようにしている。
【００３１】
第１に、形状のマニピュレーションは、三角形のメッシュに適用される。次いで、システムは、元の線および画像を、元のメッシュから変形されたメッシュに写像する。
【００３２】
ベクトル・グラフィクスを操作する場合に、メッシュの対応する三角形中、それぞれの頂点の重心座標(barycentric coordinates)が利用される。ビットマップイメージを操作するときには、単純な線形写像が利用される。
【００３３】
画像処理システムは、新たなハンドルが追加され、或いは、ハンドルが削除されたときに、追加的な前処理を実行する（図３（ｂ））。この処理を、「コンパイレーション」と称する。この処理は、入力としてハンドルの構成、つまり、どれがハンドルとして設定された頂点であるかを示す情報を取得し、出力として、処理結果の形状を返すような関数（ハンドルの座標を受け取ると残りのメッシュの頂点の位置を返す関数）を返す。インタラクションの間、画像処理システム１０は、更新されたハンドルの構成を関数に送る。
［メッシュ生成の概略］
本実施の形態では、第１のメッシュ生成処理部３６および第２のメッシュ生成処理部３８の２つがシーケンシャルに処理を実行することで、メッシュ生成が実現される。このメッシュ生成において、アルゴリズムへの入力は、拘束されたメッシュベクトルのｘ−ｙ座標であり（図３（ａ）参照）、出力は、処理されたメッシュ三角形のそれぞれに関連する歪みを最小化するような、拘束された頂点以外の、残りの自由な頂点の座標である（図３（ｄ）参照）。主たる問題は、どのように三角形の歪みを定義するかにある。本実施の形態においては、自由変数において二次の誤り計量(error metric)をデザインして、単純な行列演算により最小化の問題を解決する。
【００３４】
第１のメッシュ生成処理部３６では、拘束された頂点の座標を与えたときに、歪みや非均一は伸縮を回避する一方、回転および拡大縮小は認められる誤り計量を最小化することにより、中間結果である中間的メッシュデータ４６が生成される（図３（ｂ））。生成された中間的メッシュデータ４６は、記憶装置４０中に記憶される。
【００３５】
引き続く、第２のメッシュ生成処理部３８における処理は、２つの連続する処理に分解される。第２のメッシュ生成処理部３８は、まず、まず、スケールを変更することなく、もとの三角形（第１のメッシュ生成処理部３６で得られた中間的メッシュデータ４６に基づく三角形）を、さらに中間的な三角形に適合させる（図３（ｃ））。第２のメッシュ処理部３８は、この適合された三角形に関するデータを、適合メッシュデータ４８として、記憶装置４０に記憶する。次いで、第２のメッシュ生成処理部３８は、最終的な処理結果（最終メッシュデータ５０）に基づく三角形と、適合メッシュデータ４８に基づく三角形との間の相違を表す誤り計量を最小にするような、最終的な処理結果を算出する。このようにして得られた最終メッシュデータ５０が記憶装置４０に記憶される。また、２次元形状のオブジェクトは、最終メッシュデータ５０に基づく三角形メッシュの集合として、表示装置１４の画面上に表示される。
［第１のメッシュ生成部３６における処理］
本実施の形態にかかる第１のメッシュ生成部３６の処理では、回転および拡大縮小を認める誤り関数を最小化することにより、中間結果である中間的メッシュデータ４６を生成する。入力は、記憶装置４０に記憶された、オリジナル形状データ４４中の拘束された頂点のｘ−ｙ座標であり、出力は、上記拘束された頂点以外の、残りの自由な頂点のｘ−ｙ座標である。
【００３６】
本発明にかかるアルゴリズムでは、物理ベースのシミュレーションやリラクゼーション方法のように、初期的な構成として、以前の結果を利用しないことに留意すべきである。本発明では、閉じた形態での解法を提供することができる。
【００３７】
図５は、本実施の形態にかかる第１のメッシュ生成部による処理における誤り関数を説明する図である。図５において、ｖ２ｄｅｓｉｒｅｄは、平行移動、回転および拡大・縮小により、ｖ０およびｖ１が、ｖ０’、Ｖ１’にそれぞれマッチするように、ターゲットとなる三角形の上に元の三角形を適合させる（フィットされる）ことにより取得される。
【００３８】
第１のメッシュ生成部３６の処理において、三角形｛ｖ０，ｖ１，ｖ２｝のための誤り関数は、以下のように定義される（図５参照）。
【００３９】
オリジナル形状データに基づく三角形（ｖ０’，ｖ１’，ｖ２’）における対応する三角形について、第１のメッシュ生成部３６は、まず、ｖ０’およびｖ１’にて定義される局所座標におけるｖ２’の相対座標｛ｘ０１，ｙ０１｝を算出する。
【００４０】
【数１】
2006285765.tif 000003
ｖ０、ｖ１、ｘ０１およびｙ０１を与えると、第１のメッシュ生成部３６は、ｖ２に対する望ましい位置（これがｖ２ｄｅｓｉｒｅｄに相当する）を算出することができる。
【００４１】
【数２】
2006285765.tif 000004
ｖ２に関する誤りは、以下のように表される
【００４２】
【数３】
2006285765.tif 000005
同様に、ｖ０ｄｅｓｉｒｅｄおよびｖ１ｄｅｓｉｒｅｄを算出することもできる。これにより、ある三角形に関する誤りを、以下のように表すことができる。
【００４３】
【数４】
2006285765.tif 000006
全体のメッシュに対する誤りは、単に、メッシュ中の全ての三角形に対する誤りの合計となる。誤り計量は、ｖＴ＝｛ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ，・・・，ｖｎｘ，ｖｎｙ｝において２次であるため、誤りを行列の形式で表すことができる。
【００４４】
Ｅｓｔｅｐ１｛ｖ｝＝ｖＴＧｓｔｅｐ１ｖ                ・・・（５）
最小化は、関数Ｅの自由変数ｕＴ＝｛ｕｏｘ，ｕｏｙ，ｕ１ｘ，ｕ１ｙ，・・・，ｕｍｘ，ｕｍｙ｝による偏微分∇Ｅｓｔｅｐ１｛ｖ｝を０とすることにより解決することができる。
【００４５】
∇Ｅｓｔｅｐ１｛ｕ｝＝Ｇｓｔｅｐ１’＋Ｂｓｔｅｐ１＝０    ・・・（６）
ここに、Ｇｓｔｅｐ１’は、Ｇｓｔｅｐ１の拘束された変数に関する成分を除去することにより得られた「２ｍ×２ｍ」の行列、Ｂｓｔｅｐ１は、Ｇｓｔｅｐ１および拘束された変数から得られるサイズ「ｍ」のベクトルである。Ｇｓｔｅｐ１’は固定値であり、Ｂｓｔｅｐ１のみが、マニピュレーション中に変化するため、インタラクションの冒頭で、Ｇｓｔｅｐ１’の逆数を求めておくことで、単なる行列の乗算によって、「ｕ」を算出することができる。実際には、Ｇｓｔｅｐ１’のＬＵ分解が算出され、記憶装置４０に記憶される。 図４（ｂ）に、第１のメッシュ生成部３６による処理結果の概略を示す。インタラクションの間に、単一の行列の乗算が必要とされるだけなので、演算速度を速めることが可能となる。
【００４６】
上記式（５）によれば、Ｅｓｔｅｐ１は、ｖ０ｘ，ｖ０ｙ，ｖ１ｘ，ｖｏｙ，・・・，ｖｎｘ，ｖｎｙという２ｎ個の変数の２次式で表すことができる。
【００４７】
たとえば、
Ｅｓｔｅｐ１＝ａ＊ｖｏｘ＊ｖｏｘ＋ｂ＊ｖｏｘ＊ｖｏｙ＋ｃ＊ｖｏｙ＊ｖｏｙ
という２次式であったとすると、Ｇｓｔｅｐ１は、以下のように求めることができる。
Ｇｓｔｅｐ１＝
｛ａ  ｂ｝
｛ｂ  ｃ｝
再度、図４について説明すると、図４において、与えられたハンドル構成(handle configuration)に対して（図４（ａ））、画像処理システム１０は、まず、拡大縮小を許すような誤り計量を最小化することにより、中間結果（中間的メッシュデータ４６）を生成する（図４（ｂ））。次いで、画像処理システム１０は、オリジナル形状データ４４に基づく三角形を、中間結果（中間的メッシュデータ）中の対応する三角形に適合させて、適合メッシュデータ４８を取得する（図４（ｃ））。最終的に、画像処理システム１０は、適合した三角形と、最終結果中の対応する三角形との間の差異を最小化することにより、最終結果（最終メッシュデータ５０）を生成する。
［第２のメッシュ生成部３８における処理］
第２のメッシュ生成部３８は、記憶装置４０に記憶された、中間的メッシュデータ４６（全ての頂点のｘ−ｙ座標）を入力として取得し、メッシュ中の三角形の大きさを調整することで、出力として、最終結果である最終メッシュデータ５０（自由な頂点の更新されたｘ−ｙ座標）を出力として返す。
［適合メッシュデータの生成］
第２のメッシュ生成部３８は、オリジナル形状データ４４に基づく各三角形を、中間的メッシュデータ４６に基づく、対応する三角形と適合させる。ここでは、三角形の回転および平行移動を許容するが、歪みや不均一な伸縮や拡大縮小は許容されない（図４（ｃ）参照）。適合メッシュデータを生成する適合処理は以下のとおりである。
【００４８】
中間的メッシュデータ４６に基づく三角形｛ｖ０ｉｎｔｅｒｍｅｄｉａｔｅ，ｖ１ｉｎｔｅｒｍｅｄｉａｔｅ，ｖ２ｉｎｔｅｒｍｅｄｉａｔｅ｝、および、オリジナル形状データ４４に基づく、対応する三角形｛ｖ０’，ｖ１’，ｖ２’｝を与えたときに、三角形｛ｖ０’，ｖ１’，ｖ２’｝と合同で、かつ、以下の関数を最小化する新たな三角形｛ｖ０，ｖ１，ｖ２｝を見出すことが問題となる（図６参照）。図６においては、平行移動および回転により、元の三角形が中間的な三角形に適合(fitting)されている。
【００４９】
【数５】
2006285765.tif 000007
上記数式の解を直接得ることは容易ではないため、まず、拡大縮小を許容して誤りを最小化し、かつ、その後にスケールを調整することにより、近似している。第１のメッシュ生成部３６の処理に関して、ｖ２を、ｖ０およびｖ１を用いて以下のように表した。
【００５０】
【数６】
2006285765.tif 000008
この式を、誤り関数に投入することにより、誤り関数は、ｗＴ＝｛ｖ０ｘ，ｖ０ｙ，ｖ１ｘ，ｖ１ｙ｝の４つの自由変数の２次式となる。４つの自由変数を０とするよう勾配∇Ｅｆｉｔｔｉｎｇを設定することにより、Ｅｆｉｔｔｉｎｇを最小化することができる。結果は、単純な４つの連立方程式となり、これを解けば良い。
【００５１】
∇Ｅｆｉｔｔｉｎｇ｛ｗ｝＝Ｇｆｉｔｔｉｎｇｗ＋Ｂｆｉｔｔｉｎｇ＝０    ・・・（９）
上記数式を解くことにより、元の三角形｛ｖ０’，ｖ１’，ｖ２’｝と類似する、新たに適合された三角形｛ｖ０，ｖ１，ｖ２｝を得ることができる。次いで、｜ｖ０’−ｖ１’｜／｜ｖ０−ｖ１｜の因子で、適合された三角形を拡大縮小することにより、合同の三角形を得ることができる。本実施の形態においては、この適合処理を全ての三角形に対して施す。
【００５２】
ＧｆｉｔｔｉｎｇおよびＢｆｉｔｔｉｎｇも、上記Ｇｓｔｅｐ１等と同様に算出することができる。Ｅｆｉｔｔｉｎｇが、ｗ＝｛ｖｏｘ，ｖｏｙ，ｖ１ｘ，ｖ１ｙ｝の２次式で得られれば、それをｗの各要素で偏微分した∇Ｅｆｉｔｔｉｎｇは、（９）式に表すようになる。
【００５３】
たとえば、
∇Ｅｆｉｔｔｉｎｇ＝｛ｄＥ／ｖ０ｘ、ｄＥ／ｖｏｙ，ｄＥ／ｖ１ｘ，ｄＥ／ｖ１ｙ｝
ｄＥ／ｖ０ｘ＝ａ０＊ｖｏｘ＋ｂｏ＊ｖｏｙ＋ｃｏ＊ｖ１ｘ＋ｄｏ＊ｖ１ｙ＋ｅ０
ｄＥ／ｖｏｙ＝ａ１＊ｖｏｘ＋ｂ１＊ｖｏｙ＋ｃ１＊ｖ１ｘ＋ｄ１＊ｖ１ｙ＋ｅ１
ｄＥ／ｖ１ｘ＝ａ２＊ｖｏｘ＋ｂ２＊ｖｏｙ＋ｃ２＊ｖ１ｘ＋ｄ２＊ｖ１ｙ＋ｅ２
ｄＥ／ｖ１ｙ＝ａ３＊ｖｏｘ＋ｂ３＊ｖｏｙ＋ｃ３＊ｖ１ｘ＋ｄ３＊ｖ１ｙ＋ｅ３
とすると、
Ｇｆｉｔｔｉｎｇ＝
｛
｛ａ０，ｂ０，ｃ０，ｄ０｝
｛ａ１，ｂ１，ｃ１，ｄ１｝
｛ａ２，ｂ２，ｃ２，ｄ２｝
｛ａ３，ｂ３，ｃ３，ｄ３｝
｝
Ｂｆｉｔｔｉｎｇ＝｛ｅ０，ｅ１，ｅ２，ｅ３｝
となる。
［最終メッシュデータの生成］
次いで、第２のメッシュ生成部３８は、最終的なメッシュデータに基づく三角形と、適合メッシュデータに基づく三角形との間の差異を最小化することで、拘束された頂点の与えられたｘ−ｙ座標に対する、拘束された頂点以外の自由な頂点の最終的なｘ−ｙ座標を算出する（図３（ｄ）参照）。ここでは、適合メッシュデータ４８のみが利用され、中間的メッシュデータ４６は利用されないことに留意すべきである。
【００５４】
図７に示す単一の三角形｛ｖ０，ｖ１，ｖ２｝を参照して説明する。図７において、画像処理システム１０は、適合された三角形のエッジベクトルと、ターゲットとなる三角形のエッジベクトルとの間の相違を算出する。適合メッシュデータ４８に基づく三角形｛ｖｏｆｉｔｔｅｄ，ｖ１ｆｉｔｔｅｄ，ｖ２ｆｉｔｔｅｄ｝を与えると、以下の２次の誤り関数を定義することができる。
【００５５】
【数７】
2006285765.tif 000009
ここに、誤りは、頂点ではなくエッジ（ベクトル）であることに留意すべきである。すなわち、ここでは、適合された三角形の方向のみを利用し、その位置は無視される。
【００５６】
以下の処理は、第１のステップと同様に実現される。全てのメッシュに対する誤りは、行列の形式で表され得る。
【００５７】
Ｅｓｔｅｐ２｛ｖ｝&shy;＝ｖＴＧｓｔｅｐ２ｖ＋Ｂｓｔｅｐ２ｖ      ・・・（１１）
次いで、関数Ｅの自由変数ｕによる、偏微分∇ＥＶ（ｔ）を０にする。
【００５８】
∇Ｅｓｔｅｐ２｛ｕ｝＝Ｇｓｔｅｐ２’ｕ＋Ｂｓｔｅｐ２’＝０  ・・・（１２）
Ｇｓｔｅｐ２’が固定値であり、Ｂｓｔｅｐ２’がマニピュレーションの間に変化するため、インタラクションの冒頭で、Ｇｓｔｅｐ２’の逆関数を算出しておくことで、単なる行列の乗算によって、ｕを算出することができる。実際には、Ｇｓｔｅｐ２’のＬＵ分解が算出され、記憶装置４０に記憶される。
【００５９】
なお、上記Ｇｓｔｅｐ２も、Ｇｓｔｅｐ１と同様に、上記（１１）式に基づく式変形により求めることができる。
［実際の処理］
図８および図９は、本実施の形態にかかる画像処理システム１０において実行される処理を示すフローチャートである。画像処理システム１０のレジストレーション処理部３２、コンパイレーション処理部３４、第１のメッシュ生成部３６および第２のメッシュ生成部３８は、処理に必要なデータを記憶装置４０から読み出し、また、処理で生成されたデータを、記憶装置４０に記憶する。
【００６０】
初期メッシュ生成部３０は、周知の手法で、オブジェクトの内部に生成された三角形の頂点の座標を含むオリジナル形状データを生成し、記憶装置４０に記憶する（ステップ８０１）。また、画像生成部５２は、オリジナル形状データが生成されると、記憶装置４０から、当該データを読み出して、たとえば、背景に、オリジナル形状データに基づく２次元オブジェクトが配置されたような画像を生成する（ステップ８０２）。
【００６１】
レジストレーショ処理部３２は、新たにオリジナル形状データが生成されると、起動して、記憶装置４０から、オリジナル形状データを読み出して、その頂点座標に基づいて、（５）式に示した行列Ｇｓｔｅｐ１、および、（１１）式に示したＧｓｔｅｐ２を算出する（ステップ８０３）。次いで、レジストレーション処理部３２は、オリジナル形状データに基づく各三角形について、（９）式に示す行列Ｇｆｉｔｔｉｎｇおよびその逆行列Ｇｆｉｔｔｉｎｇ−１を算出する（ステップ８０４）。算出された行列のデータは、記憶装置４０中に記憶される。これらＧｓｔｅｐ１、Ｇｓｔｅｐ２、ＧｆｉｔｔｉｎｇおよびＧｆｉｔｔｉｎｇ−１は、新たにオリジナル形状データが作られない限り、再度算出されることはなく、以下の、ユーザとのインタラクションによるハンドルの配置など、マニピュレーション中に、記憶装置４０中に格納され、必要に応じて読み出される。
【００６２】
ユーザが入力装置１２を操作して、表示装置１４の画面中に表示された２次元オブジェクトに、ハンドルを配置し、或いは、ハンドルを追加、削除すると（ステップ８０５）、これに応答して、コンパイレーション処理部３４が起動する。コンパイレーション処理部３４は、ステップ８０３で得られたＧｓｔｅｐ１、Ｇｓｔｅｐ２に基づき、ハンドルの設定により拘束される頂点に関する成分を除去することにより、（６）式に示した行列Ｇｓｔｅｐ１’、および、（１２）式に示した行列Ｇｓｔｅｐ２’を生成する（ステップ８０６）。次いで、コンパイレーション処理部３４は、ステップ８０６で生成した行列の逆行列Ｇｓｔｅｐ１’−１、および、Ｇｓｔｅｐ２’−１を生成する（ステップ８０７）。ステップ８０７で得られた逆行列Ｇｓｔｅｐ１’−１、および、Ｇｓｔｅｐ２’−１のデータは、記憶装置４０に記憶される。
【００６３】
前述したように、Ｇｓｔｅｐ１’、Ｇｓｔｅｐ２’は、それぞれ、行列Ｇｓｔｅｐ１、Ｇｓｔｅｐ２の拘束された成分を除くことにより得られた行列である。
【００６４】
たとえば、行列Ｇｓｔｅｐ１が以下のように表されるとする。
Ｇｓｔｅｐ１＝  
｛
｛ａ０，ｂ０，ｃ０，ｄ０｝，
｛ａ１，ｂ１，ｃ１，ｄ１｝，
｛ａ２，ｂ２，ｃ２，ｄ２｝，
｛ａ３，ｂ３，ｃ３，ｄ３｝，
｝
ｖ＝｛ｖ０ｘ，ｖ０ｙ，ｖ１ｘ，ｖ１ｙ｝
このときに、ｖ１を除けば、
Ｇｓｔｅｐ１’＝
｛
｛ａ０，ｂ０｝，
｛ａ１，ｂ１｝，
｝
となる。
【００６５】
次いで、ユーザが入力装置１２を操作して、いずれかのハンドルを移動させると（ステップ９００）、第１のメッシュ生成部３６および第２のメッシュ生成部３８による演算が開始される。第１のメッシュ生成部３６は、ハンドルの移動に伴った、拘束された頂点の更新された位置に基づいて、（６）式に示したベクトルＢｓｔｅｐ１を生成する（ステップ９０１）。（６）式に示すように、行列Ｇｓｔｅｐ１’の逆行列Ｇｓｔｅｐ１’−１と、Ｂｓｔｅｐ１との積から中間座標のデータ（つまり、中間的メッシュデータ４６）を求めることができる。したがって、第１のメッシュ生成部３６は、ステップ８０６で算出し、記憶装置４０に記憶されたＧｓｔｅｐ１’−１を読み出して、ステップ９０１で得たベクトルＢｓｔｅｐ１と乗ずる（ステップ９０２）。第１のメッシュ生成部３６は、このようにして得られた結果を、中間的メッシュデータ４６として記憶装置４０に記憶する。
【００６６】
その後、第２のメッシュ生成部３８が、記憶装置４０から、中間的メッシュデータ４６を読み出して、中間的メッシュデータ４６に基づく各三角形について、（９）式に示すベクトルＢｆｉｔｔｉｎｇを算出する（ステップ９０３）。ここで、（９）式に示すように、行列Ｇｆｉｔｔｉｎｇの逆行列Ｇｆｉｔｔｉｎｇ−１とＢｆｉｔｔｉｎｇとの積を得て、かつ、そのスケールを、（｜ｖ０’−ｖ１’｜／｜ｖ０−ｖ１｜）にしたがって調整することで、適合された三角形の座標（適合メッシュデータ）を取得することができる。そこで、第２のメッシュ生成部３８は、ステップ８０４で生成され、記憶装置４０に記憶されていた、Ｇｆｉｔｔｉｎｇ−１を読み出して、ステップ９０３で算出したＢｆｉｔｔｉｎｇとの積をとり、かつ、そのスケールを調整する（ステップ９０４）。このようにして得られたデータを、第２のメッシュ生成部４０は適合メッシュデータとして、記憶装置４０に記憶する。
【００６７】
さらに、第２のメッシュ生成部３８は、適合メッシュデータに基づく三角形の座標に基づいて、（１１）式に示したベクトルＢｓｔｅｐ２を算出し（ステップ９０５）、その後、ベクトルＢｓｔｅｐ２に基づいて（拘束された成分を除去することで）、ベクトルＢｓｔｅｐ２’を算出する（ステップ９０６）。
【００６８】
（１２）式に示すように、行列Ｇｓｔｅｐ２’の逆行列Ｇｓｔｅｐ２’−１と、Ｂｓｔｅｐ２’との積から、最終的な座標のデータ（最終メッシュデータ５０）を取得することができる。そこで、第２のメッシュ生成部３８は、ステップ８０７で生成し、記憶装置４０に記憶していたＧｓｔｅｐ２’−１を読み出して、ステップ９０５で算出したＢｓｔｅｐ２’との積をとり、最終的な三角形の座標を取得する（ステップ９０８）。この最終的な三角形の座標が、最終メッシュデータ５０として、記憶装置４０に記憶される。
【００６９】
このようにして、最終メッシュデータ５０が記憶装置４０に記憶されると、画像生成部５２は、最終メッシュデータ５０を読み出して、たとえば、背景に、オリジナル形状データに基づく２次元オブジェクトが配置されたような画像を生成し、表示装置１４の画面上に表示する（ステップ９０８）。
【００７０】
これ以降、ユーザの入力装置１２の操作によってハンドルが移動された場合には（ステップ９００）、ステップ９０１からステップ９０７の処理が実行されて、最終メッシュデータが更新され、記憶装置４０中に記憶される。また、この更新された最終メッシュデータに基づいて、画像生成部５２が、画像を生成して表示装置１４の画面上に表示する。つまり、ハンドルが移動される限りにおいては、図８に示す処理は実行されない。つまり、ベクトルＢｓｔｅｐ１、Ｂｆｉｔｔｉｎｇ、Ｂｓｔｅｐ２およびＢｓｔｅｐ２’生成および行列の乗算のみが実行されることで、オブジェクトを適切に変形させることが可能である。
【００７１】
また、ハンドルが配置、追加、削除された場合には、コンパイレーション処理部３４により、行列Ｇｓｔｅｐ１’、Ｇｓｔｅｐ２’およびこれらの逆行列の生成が行われる。しかしながら、レジストレーション部３２の処理は、新たなオブジェクトのメッシュが生成されない限り、新たに実行する必要がない。
【００７２】
このように、本実施の形態によれば、バンドルの移動に伴う演算を軽減することができる。また、第１のメッシュ生成部の処理では、三角形メッシュの回転および拡大縮小を認める誤り計量を最小化した中間的な三角形メッシュのデータである中間メッシュデータを生成、記憶する。また、第２のメッシュ生成部の処理では、回転や平行移動を許容しつつ、歪、不均一な伸縮、回転縮小を許容しない誤り関数を最小化するように、最終的な三角形メッシュのデータを算出し、記憶する。このように、２段階でメッシュを変形させることで、オブジェクトの自然な変形を実現することができる。
【００７３】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【００７４】
たとえば、前記実施の形態においては、オペレータが、マウスを用いて、オブジェクト上にハンドルを、配置し、追加し、削除し、或いは、いずれかのハンドルを移動している。たとえば、図２に示す例では、３つのハンドルがオブジェクトに配置され、たとえば、オペレータが、右側のハンドルを、さらに右に移動させることで、オブジェクトが変形されている。しかしながら、ハンドルの配置等のためには、マウスに限定されるものではなく、他の入力装置により、ハンドルの配置等を実現できることは言うまでもない。たとえば、マルチポイント・トラッキング・デバイスを利用することができる。マルチポイント・トラッキング・デバイスを利用する場合には、ユーザは、表示装置の画面上に表示されたオブジェクトを参照して、両手で直接、２次元オブジェクトの形状をつかんで、その形状をマニピュレートすることができる。
【００７５】
また、オブジェクトを表す三角形メッシュのそれぞれに異なる重みを与え、形状の局地的な剛性を制御できるようにすることもできる。たとえば、特定の１以上の三角形メッシュに、所定量（たとえば、１００００）の重みを与え、他の三角形メッシュに、「１」の重みを与えることで、所定量の重みが与えられた三角形メッシュが剛性を持ち、ハンドルに移動により変形を受け難いようにすることができる。
【００７６】
また、本実施の形態においては、２次元オブジェクトのマニピュレーションに、本発明が適用されたがこれに限定されるものではなく、３次元オブジェクトのマニピュレーションに本発明を適用することもできる。この場合、三角形オブジェクトに（ｘ座標，ｙ座標）に加えて、奥行きを表すｚ値を含む三次元の座標を与える。初期的に、ｚ値は「０」であるが、マニピュレーションの際に、異なるメッシュが重なるときに、予め決められていた重なりの順序（いずれが手前に来るかの順序）にしたがって、ｚ値を与えることで、いずれかの三角形メッシュを手前に表すことが可能となる。
【００７７】
本発明にかかる２段階処理のアルゴリズム（つまり、第１のメッシュ生成部および第２のメッシュ生成部を利用した処理）を、曲線の編集にも適用することができる。２次元オブジェクトにおける三角形メッシュの代わりに、ポリラインを入力とする。本実施の形態におけるメッシュ生成部は、図１３に示すように、ポリラインに基づいて、複数の三角形メッシュを生成することで、曲線の編集に本発明を適用可能としている。
【００７８】
つまり、図１０（ａ）に示すように、曲線が与えられると（ステップ１００１）、初期メッシュ生成部３０が、曲線を複数のポリラインに分割し、その座標データ等を、記憶装置４０に記憶する（ステップ１００２）。次いで、初期メッシュ生成部３０は、たとえば、ポリラインの連続する３つの頂点を結ぶ三角形つくり（ステップ１００３）、これを三角形メッシュとして、その座標のデータを、オリジナル形状データ４４として、記憶装置４０に記憶する（ステップ１００４）。以後の処理は、図８および図９を参照したものと同様である。なお、オリジナル形状データにおいて、いずれの座標を連結することで曲線が形成されるかを示す情報（接続情報）が含まれるのが望ましい。
【００７９】
画像生成部５２は、図１０（ｂ）に示すように、記憶装置４０から最終メッシュデータ５０を読み出すと（ステップ１０１１）、前記接続情報にしたがって、最終メッシュデータ５０に示す座標のいずれを接続すべきかを判断して、曲線を生成し（ステップ１０１２）、表示装置１４の画面上に表示する
図１１は、表示装置の画面上に表示された曲線を編集する例を示す図である。本発明のように、第１のメッシュ生成部および第２のメッシュ生成部における処理が実行された場合には、曲線は、あたかも剛性を有しているように振舞う。その一方、たとえば、第１のメッシュ生成部における処理のみが実行された場合には、曲線が勝手に拡大、縮小してしまう。図１１の上図において、ハンドル（図中、人間の手で示されている）を移動している。図１１の左側の図は、第１のメッシュ生成部による処理のみを施した場合（比較例）を示し、右側の図は、第１のメッシュ生成部および第２のメッシュ生成部の双方の処理を施した場合（実施例）を示す。比較例では、引き伸ばされた領域が増大し、押しつぶされた領域が縮小している。その一方、本発明を適用した例（実施例）によれば、より自然な結果を得られている。
【００８０】
ユーザが、インタラクションの間、影響を及ぼすべき領域を直接調整することができるように、「ピーリング・インタフェース」を提供する。「ピーリング・インタフェース」においては、ユーザが、曲線をより遠くにドラッグするのにしたがって、影響を及ぼすべき領域が増大する（図１１参照）。これにより、ユーザは、予め影響を及ぼすべき領域を特定する必要が無くなり、また、インタラクションをより直観的にすることが可能となる。
【００８１】
図１２は、「ピーリング」インタフェース」を利用した曲線の編集の例を示す図である。ユーザが、曲線をさらに遠くに引っ張ると、影響を及ぼすべき領域が増大する（図中、左から右を参照）。また、ユーザは、予め領域を明瞭に特定することもできる（図中、左下参照）。
【００８２】
また、ドラッグに先立って、曲線の上にピンを配置することにより、ユーザが明瞭に影響を及ぼすべき領域を特定することも可能である。しかしながら、ピンを配置する場合には、局地的な変形だけが可能であり、ユーザが影響を及ぼすべき領域を変更することはできない。なお、実際の処理では、ユーザの入力に応答して、初期メッシュ生成部３０により、ピンの座標を記憶装置４０に記憶し、処理において、そのピンの座標を利用すれば良い。
【図面の簡単な説明】
【００８３】
【図１】図１は、本実施の形態にかかる画像処理システムのハードウェア構成を示すブロックダイヤグラムである。
【図２】図２は、本実施の形態にかかる画像処理システムの機能ブロックダイヤグラムである。
【図３】図３は、本実施の形態にかかる画像処理システムによる処理（レジストレーション、コンパイレーションおよびマニピュレーション）を概略的に示す図である。
【図４】図４は、本実施の形態にかかる画像処理システムによるハンドル構成の生成、第１のメッシュ生成、２段階の第２のメッシュ生成を説明する図である。
【図５】図５は、本実施の形態にかかる第１のメッシュ生成部による処理における誤り関数を説明する図である。
【図６】図６は、本実施の形態にかかる第２のメッシュ生成部による処理における、第１のステップである適合化（フィッティング）を説明する図である。
【図７】図７は、本実施の形態にかかる第２のメッシュ生成部による処理における、第２のステップを説明する図である。
【図８】図８は、本実施の形態にかかる画像処理システム１０において実行される処理を示すフローチャートである。
【図９】図９は、本実施の形態にかかる画像処理システム１０において実行される処理を示すフローチャートである。
【図１０】図１０は、本発明を、曲線の編集に利用した場合に、画像処理システム１０にて実行される処理を示すフローチャートである。
【図１１】図１１は、本発明を利用した曲線の編集の例を示す図である。
【図１２】図１２は、本発明を利用した曲線の編集の他の例を示す図である。
【図１３】図１３は、本発明を曲線の編集に利用した場合の三角形メッシュ生成を説明する図である。
【符号の説明】
【００８４】
１０  画像処理システム
１２  入力装置
１４  表示装置
３０  初期メッシュ生成部
３２  レジストレーション処理部
３４  コンパイレーション処理部
３６  第１のメッシュ生成部
３８  第２のメッシュ生成部
４０  記憶装置
５２  画像生成部
【図１】
2006285765.tif 000010
【図２】
2006285765.tif 000011
【図３】
2006285765.tif 000012
【図４】
2006285765.tif 000013
【図５】
2006285765.tif 000014
【図６】
2006285765.tif 000015
【図７】
2006285765.tif 000016
【図８】
2006285765.tif 000017
【図９】
2006285765.tif 000018
【図１０】
2006285765.tif 000019
【図１１】
2006285765.tif 000020
【図１２】
2006285765.tif 000021
【図１３】
2006285765.tif 000022