(57)【特許請求の範囲】
【請求項１】
元画像を用いて非相似形の変形画像に変形する画像変形装置において、
前記元画像の変形方法を示す変形情報に基づいて前記元画像上の指定された画素座標に対応する前記変形画像上の画素座標を特定する第１特定手段と、
前記第１特定手段によって特定された前記変形画像上の画素座標に隣接する１または複数の画素座標を補間画素座標として特定する第２特定手段と、
前記第１特定手段によって特定された前記変形画像上の画素座標および前記第２特定手段によって特定された前記補間画素座標に対して、前記元画像上の前記指定された画素座標の画素値を設定する画素値設定手段と、
前記元画像を構成する複数の画素座標の各々に対して、前記第１特定手段、前記第２特定手段、および前記画素値設定手段による処理を実行させることにより前記変形画像を構成する複数の画素座標の各々に対する画素値を設定する第１制御手段と、
を備えたことを特徴とする画像変形装置。
【請求項２】
元画像を用いて非相似形の変形画像に変形する画像変形方法において、
前記元画像の変形方法を示す変形情報に基づいて前記元画像上の指定された画素座標に対応する前記変形画像上の画素座標を特定する第１ステップと、
前記第１ステップによって特定された前記変形画像上の画素座標に隣接する１または複数の画素座標を補間画素座標として特定する第２ステップと、
前記第１ステップによって特定された前記変形画像上の画素座標および前記第２ステップによって特定された前記補間画素座標に対して、前記元画像上の前記指定された画素座標の画素値を設定する第３ステップと、
前記元画像を構成する複数の画素座標の各々に対して、前記第１ステップ、前記第２ステップ、および前記第３ステップによる処理を繰り返し実行させることにより前記変形画像を構成する複数の画素座標の各々に対する画素値を設定する第４ステップと、
を含むことを特徴とする画像変形方法。
【請求項３】
前記第２特定手段は、前記元画像と前記変換画像との画素数比に基づいて、前記第１特定手段によって特定された前記変形画像上の画素座標に隣接する画素座標の個数を決定し、その決定された個数の隣接画素座標を前記補間画素座標として特定することを特徴とする請求項１記載の画像変形装置。
【請求項４】
前記第２特定手段は、前記第１特定手段によって特定された前記変形画像上の画素座標に対して、左右どちらか一方向に位置し、且つ、上下どちらか一方向に位置する複数の画素座標を前記補間画素座標として特定することを特徴とする請求項１記載の画像変形装置。
【請求項５】
前記元画像の変形方法を示す変形情報に基づいて前記変形画像上の指定された画素座標に対応する前記元画像上の画素座標を特定する第３特定手段と、
前記変形画像を構成する複数の画素座標の各々に対して、前記第３特定手段によって特定された前記元画像上の画素座標の画素値を設定することにより前記変形画像を構成する複数の画素座標の各々に対する画素値を設定する第２制御手段と、
前記元画像と前記変換画像との画素数の大小関係を判定する判定手段と、
前記判定手段により前記変換画像の画素数の方が大きいと判定された場合には、前記第１制御手段により前記変形画像を構成する複数の画素座標の各々に対する画素値を設定させ、前記判定手段により前記変換画像の画素数の方が小さいと判定された場合には、前記第２制御手段によって前記変形画像を構成する複数の画素座標の各々に対する画素値を設定させる第３制御手段を備えたことを特徴とする請求項１記載の画像変形装置。
【請求項６】
前記元画像を取り込み保持する画像入力手段と、
ユーザによって入力された前記変形情報を取り込み保持する変形情報入力手段と、
を備え、
前記第１制御手段は、前記変形情報入力手段によって前記変形情報が取り込まれるのに応じて、前記画像入力手段によって取り込まれた元画像を該変形情報に基づいて変形画像に変形することを特徴とする請求項１記載の画像変形装置。
【請求項７】
前記画像入力手段は、パノラマ写真を構成する複数の画像を取り込み保持し、
前記変形情報入力手段は、前記画像入力手段によって取り込まれた複数の画像の一部が重ね合わさるように表示された編集画面上で、この複数の画像の中から変形対象となる元画像をユーザーに選択させるとともに、該選択された元画像に対するユーザの変形操作により指定される変形情報を取り込み、
前記第１制御手段は、前記選択された元画像を前記ユーザの変形操作に応じて逐次変形画像に変形するとともに、前記編集画面における前記元画像の表示を逐次変形される変形画像に更新することを特徴とする請求項６記載の画像変形装置。
【請求項８】
前記元画像の形状は、長方形であり、
前記ユーザの変形操作は、長方形の形状をした前記元画像における角の位置をドラッグ操作により変更する変形操作であることを特徴とする請求項１記載の画像変形装置。
【請求項９】
前記第１制御手段は、前記ユーザによるドラッグ操作の実行中においては、前記元画像における重ね合わせ個所に対応する画像部分に対してのみ、前記第１特定手段、前記第２特定手段、および前記画素値設定手段による処理を実行させ、前記変形画像における前記画像部分に対応する画素座標の画素値を設定することを特徴とする請求項７または８記載の画像変形装置。
【請求項１０】
元画像の変形方法を示す変形情報に基づいて前記元画像上の指定された画素座標に対応する変形画像上の画素座標を特定する第１特定手段と、
前記第１特定手段によって特定された前記変形画像上の画素座標に隣接する１または複数の画素座標を補間画素座標として特定する第２特定手段と、
前記第１特定手段によって特定された前記変形画像上の画素座標および前記第２特定手段によって特定された前記補間画素座標に対して、前記元画像上の前記指定された画素座標の画素値を設定する画素値設定手段と、
前記元画像を構成する複数の画素座標の各々に対して、前記第１特定手段、前記第２特定手段、および前記画素値設定手段による処理を実行させることにより前記変形画像を構成する複数の画素座標の各々に対する画素値を設定する第１制御手段と、
を実現するためのプログラムを格納したことを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像変形装置に関し、特に、ディジタル画像を元画像とし、この元画像の非相似形の変形画像を生成する装置に関する。
【０００２】
【従来の技術】
近時、ディジタル信号処理とＬＳＩ技術の進歩によって、テレビジョン信号等のアナログ画像をディジタル画像として容易に処理できるようになり、画像の圧縮や画像の編集加工等を自在に行えるようになった。例えば、画像の編集加工の一つに“変形”がある。この変形処理は「相似変形」と「非相似変形」に分けることができる。前者は元画像と相似の変形画像を生成し、後者は元画像と非相似の変形画像を生成する。
ここで、両者の処理時間に着目すると、非相似変形の処理時間は相似変形のそれに比べて長い。相似変形では元画像の水平方向と垂直方向の画素を変形率に応じた割合で間引きまたは補間するだけでよいのに対し、非相似変形では写像関数などを用いて変形画像のすべての画素情報を逐一再現しなければならないからである。
【０００３】
図１５は、元画像１と変形画像２を示す概念図である。図示の元画像１と変形画像２は非相似の関係にあり、この関係は写像（ｍａｐｐｉｎｇ）として表現することができる。今、元画像１の任意画素Ｐの座標を（Ｘｓ，Ｙｓ）とすると、この画素Ｐに対応する変形画像２の画素Ｑの座標（Ｘｄ，Ｙｄ）は、次式（１）で表すことができる。
（Ｘｄ，Ｙｄ）＝Ｆ（Ｘｓ，Ｙｓ）  ……（１）
Ｆは写像であり、写像Ｆの逆写像をＦ-1とすると、元画像１の画素Ｐの座標（Ｘｓ，Ｙｓ）は、次式（２）で表すことができる。
（Ｘｓ，Ｙｓ）＝Ｆ-1（Ｘｄ，Ｙｄ）  ……（２）
【０００４】
変形画像２を生成する場合、変形画像２を構成するすべての画素について、式(２)を用いてその画素座標（Ｘｄ，Ｙｄ）に対応する元画像１の画素座標（Ｘｓ，Ｙｓ）を特定し、その画素値を取得して変形画像２の座標（Ｘｄ，Ｙｄ）の画素値にセットするという処理を繰り返す。繰り返しの回数は変形画像２の画素数であり、例えば、変形画像２の横方向画素数をＷｄ、縦方向画素数をＨｄとすると、Ｗｄ×Ｈｄ回の繰返しになる。
【０００５】
図１６は、従来の画像変形処理（特に非相似変形を行うもの）のフローチャートである。このフローチャートは、まず、変形画像２の横方向画素数と縦方向画素数をそれぞれ変数Ｗｄ、Ｈｄにセットし（ステップＳ１）、二つのループ変数Ｙｄ、Ｘｄに１をセットして初期化（ステップＳ２、ステップＳ３）した後、前式（２）を用いて、変形画像２の座標（Ｘｄ，Ｙｄ）に対応する元画像１の座標（Ｘｓ，Ｙｓ）を特定する（ステップＳ４）。ここに、Ｙｄ＝１、Ｘｄ＝１の場合、（Ｘｄ，Ｙｄ）は（１，１）となる。
【０００６】
次に、特定された元画像１の座標（Ｘｓ，Ｙｓ）の画素値を変形画像２の座標（Ｘｄ，Ｙｄ）にセット（ステップＳ５）し、Ｘｄを＋１（ステップＳ６）した後、式「Ｘｄ＝＝Ｗｄ」（“＝＝”は等号演算子；以下同様）を評価（ステップＳ７）する。そして、評価結果がＦａｌｓｅ（フロー中では“ＮＯ”）の間、Ｘｄを＋１しながら、ステップＳ４〜ステップＳ７のループを繰り返し実行する。ここに、Ｘｄはループ変数、Ｗｄは変形画像２の横方向画素数であるから、ループ回数（Ｘｄ）が変形画像２の横方向画素数Ｗｄに到達するまでの間、式「Ｘｄ＝＝Ｗｄ」の評価結果はＦａｌｓｅを維持する。したがって、ステップＳ４の実行回数はＷｄ回となる。
【０００７】
一方、ステップＳ４の実行回数がＷｄ回に達して、ステップＳ７の評価結果がＴｒｕｅ（フロー中では“ＹＥＳ”）になると、Ｙｄを＋１（ステップＳ８）した後、式「Ｙｄ＝＝Ｈｄ」を評価（ステップＳ９）し、そして、評価結果がＦａｌｓｅであれば、再びＸｄを初期化してステップＳ４をＷｄ回繰り返し実行する。
ここに、Ｙｄはループ変数、Ｈｄは変形画像２の縦方向画素数であるから、ループ回数（Ｙｄ）が変形画像２の縦方向画素数Ｈｄに到達するまでの間、式「Ｙｄ＝＝Ｈｄ」の評価結果はＦａｌｓｅを維持する。したがって、ステップＳ４の最終的な実行回数はＷｄ×Ｈｄ回、すなわち、変形画像２の画素数に相当する回数になる。
【０００８】
【発明が解決しようとする課題】
上記従来の画像変形処理にあっては、変形画像２の画素数に相当する回数だけ前式（２）を繰り返す必要がある。一般に前式（２）は非線形の変換であるから、演算に時間がかかり、特に、ディスプレイの表示を見ながら非相似変形の操作を行う場合に表示の更新が間に合わないことがあり、この場合、変形途中の画像をリアルタイムに描画できず、画像の表示にギクシャク感を伴うという問題点があった。
したがって、本発明が解決しようとする課題は、非相似変形を行う場合の処理を効率化し、以って変形途中の画像をリアルタイムに描画できるようにすることにある。
【０００９】
【課題を解決するための手段】
本発明の画像変形装置は、元画像を用いて非相似形の変形画像に変形する画像変形装置において、前記元画像の変形方法を示す変形情報に基づいて前記元画像上の指定された画素座標に対応する前記変形画像上の画素座標を特定する第１特定手段と、前記第１特定手段によって特定された前記変形画像上の画素座標に隣接する１または複数の画素座標を補間画素座標として特定する第２特定手段と、前記第１特定手段によって特定された前記変形画像上の画素座標および前記第２特定手段によって特定された前記補間画素座標に対して、前記元画像上の前記指定された画素座標の画素値を設定する画素値設定手段と、前記元画像を構成する複数の画素座標の各々に対して、前記第１特定手段、前記第２特定手段、および前記画素値設定手段による処理を実行させることにより前記変形画像を構成する複数の画素座標の各々に対する画素値を設定する第１制御手段と、を備えたことを特徴とする。
【００１０】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
＜画像変形装置の構成＞
図１は、画像変形装置１０のブロック図であり、それぞれのブロックは以下の機能を有する。なお、各機能は論理回路等のハードロジックで実現してもよいし、パーソナルコンピュータ等のハードウェアリソースと所要のアプリケーションソフトプログラム等のソフトウェアリソースとの有機的結合によって実現してもよい。
【００１１】
画像入力部１１は、変形対象の画像（元画像３）を取り込み保持する。元画像３はｎ×ｍ個の画素で構成されたディジタル画像であり、各々の画素に色や輝度の情報（モノクロの場合は輝度のみ）をもつ、例えば、写真やビットマップイメージ等のグラフィックデータである。
情報入力部１２は、ユーザによって入力された変形情報５を取り込み保持する。変形情報５は元画像３をどのように変形するかを示す情報である。例えば、元画像３を単純に拡大・縮小する場合（相似変形）はその拡大率または縮小率であるが、複雑な変形（非相似変形）を行う場合は元画像３の写像Ｆを表す情報である。
【００１２】
第１パラメータ生成部１３は、変形画像４の画素座標の特定に必要な第１パラメータ群を生成する。第１パラメータ群は、例えば、元画像３の横方向画素数Ｗｓと縦方向画素数Ｈｓおよび変形情報５から特定した変形画像４の横方向画素数Ｗｄと縦方向画素数Ｈｄなどである。
第２パラメータ生成部１４は、変形画像４の補間画素の座標特定に必要な第２パラメータ群を生成する。第２パラメータ群は、例えば、元画像３の横方向画素数Ｗｓと変形画像４の横方向画素数Ｗｄの比（以下「横方向画素数比Ｗｒ」という）および元画像３の縦方向画素数Ｈｓと変形画像４の縦方向画素数Ｈｄの比（以下「縦方向画素数比Ｈｒ」という）である。但し、横方向画素数比Ｗｒおよび縦方向画素数比Ｈｒは小数点以下の値を含まない整数値である。
【００１３】
変形画像座標生成部（第１特定手段）１５は、前記第１パラメータ群を用いて変形画像４の画素座標を生成する。生成される画素座標は、元画像３の画素座標（Ｘｓ，Ｙｓ）に対応する画素座標（Ｘｄ，Ｙｄ）であり、元画像３はｎ×ｍ個の画素で構成されているから、この変形画像座標生成部１５は、変形画像４を構成するすべての画素のうちｎ×ｍ個の画素座標（Ｘｄ，Ｙｄ）を生成する。
補間座標生成部（第２特定手段）１６は、前記第２パラメータ群を用いて変形画像４の補間画素座標を生成する。生成される補間画素座標は、変形画像４を構成するすべての画素のうち上記変形画像座標生成部１５で生成されたｎ×ｍ個の画素座標（Ｘｄ，Ｙｄ）を除く画素座標である。すなわち、１個の画素座標（Ｘｄ，Ｙｄ）につき（Ｗｒ×Ｈｒ）−１個の補間画素座標を生成する。
【００１４】
画素値設定部（画素値設定手段）１７は、変形画像座標生成部１５で生成された画素座標（Ｘｄ，Ｙｄ）と補間座標生成部１６で生成された補間画素座標とに画素値を設定し、変形画像４を生成する。
変形画像出力部１８は、画素値設定部１７で生成された変形画像４を取り込み、所定の表示フォーマットに変換して表示部１９に出力し、表示部１９は、変形画像出力部１８から出力された変形画像４を画面に表示する。
【００１５】
＜画像変形装置の動作＞
図２は、元画像３と変形画像４の概念図である。便宜的に元画像３は矩形状図形３ａを含み、変形画像４は矩形状図形３ａの変形図形である略台形状図形４ａを含むものとする。すなわち、図示の例では、変形画像４は元画像３の左辺側を上下に引き伸ばした非相似形の画像になっている。
元画像３および変形画像４の小さな桝目は各々画素を表している。ここで、図示の元画像３の横方向画素数Ｗｓと縦方向画素数Ｈｓは１０個、変形画像４の横方向画素数Ｗｄと縦方向画素数Ｈｄはそれぞれ１０個、２０個であるから、両者の横方向画素数比Ｗｒは「１」、縦方向画素数比Ｈｒは「２」である。
【００１６】
画像変形装置１０は、前式（１）を用いて元画像３の画素座標（Ｘｓ，Ｙｓ）に対応する変形画像４の画素座標（Ｘｄ，Ｙｄ）を特定し、その画素座標（Ｘｄ，Ｙｄ）に元画像３の画素座標（Ｘｓ，Ｙｓ）の画素値を設定するとともに、横方向画素数比Ｗｒと縦方向画素数比Ｈｒによって決定された補間画素座標にも同一の画素値を設定する。
【００１７】
図３は、画素座標の特定と画素値設定の概念図である。図３において、Ｐ１〜Ｐ４は元画像３を構成する画素の代表であり、Ｑ１〜Ｑ４は、それぞれ元画像３の画素Ｐ１、Ｐ２、Ｐ３、Ｐ４に対応する変形画像４の画素である。すなわち、Ｑ１は元画像３の画素Ｐ１に対応する変形画像４の画素であり、Ｑ２は元画像３の画素Ｐ２に対応する変形画像４の画素であり、Ｑ３は元画像３の画素Ｐ３に対応する変形画像４の画素であり、Ｑ４は元画像３の画素Ｐ４に対応する変形画像４の画素である。
【００１８】
変形画像４は、横方向画素数比Ｗｒと縦方向画素数比Ｈｒの値によって決まる幾つかの補間画素を有する。例えば、Ｗｒ＝１、Ｈｒ＝２の場合はＱ１〜Ｑ４の各々ごとに１個の補間画素を有し、Ｗｒ＝２、Ｈｒ＝２の場合はＱ１〜Ｑ４の各々ごとに３個の補間画素を有し、Ｗｒ＝２、Ｈｒ＝３の場合はＱ１〜Ｑ４の各々ごとに５個の補間画素を有し、Ｗｒ＝３、Ｈｒ＝３の場合はＱ１〜Ｑ４の各々ごとに８個の補間画素を有している。この関係は、Ｗｒ＝Ｉ、Ｈｒ＝Ｊとした場合、「Ｑ１〜Ｑ４の各々ごとに（Ｉ×Ｊ）−１個の補間画素を有している」と表現することができる。
【００１９】
画像変形装置１０は、前式（１）を用いて元画像３の画素Ｐｉ（ｉは１〜４；以下同様）に対応する変形画像４の画素Ｑｉの座標（Ｘｄ，Ｙｄ）を特定し、その画素Ｑｉに元画像３の画素Ｐｉの画素値を設定するとともに、横方向画素数比Ｗｒと縦方向画素数比Ｈｒによって決定された補間画素（図中太線内のハッチングなしの桝目）にも同一の画素値を設定する。
【００２０】
図４は、画像変形装置１０の全体的な動作を示すフローチャートである。このフローチャートでは、まず、第１パラメータ群の各変数（Ｗｓ、Ｈｓ、Ｗｄ、Ｈｄ）に元画像３の横方向画素数、縦方向画素数、変形画像４の横方向画素数および縦方向画素数をセットし（ステップＳ１１、ステップＳ１２）、次いで、第１パラメータ群の値に基づいて第２パラメータ群の各変数（Ｗｒ、Ｈｒ）の値をセットする（ステップＳ１３）。ここで、Ｗｒは横方向画素数比（Ｗｄ／Ｗｓ）、Ｈｒは縦方向画素数比（Ｈｄ／Ｈｓ）であるが、ＷｒとＨｒを整数値とするために、このフローチャートではＩｎｔ関数（引数で指定した数値の整数部分を返す関数）を使用している。
【００２１】
次に、二つのループ変数Ｙｓ、Ｘｓに１をセットして初期化（ステップＳ１４、ステップＳ１５）した後、前式（１）を用いて、元画像３の画素Ｐｉの座標（Ｘｓ，Ｙｓ）に対応する変形画像４の画素Ｑｉの座標（Ｘｄ，Ｙｄ）を特定する（ステップＳ１６）。ここに、Ｙｓ＝１、Ｘｓ＝１の場合、（Ｘｓ，Ｙｓ）は（１，１）となる。
次に、元画像３の座標（Ｘｓ，Ｙｓ）の画素値を画素値変数Ｇにセットし（ステップＳ１７）、後述の「画素値設定処理」（ステップＳ１８）を実行した後、Ｘｓを＋１（ステップＳ１９）し、式「Ｘｓ＝＝Ｗｓ」を評価（ステップＳ２０）する。そして、評価結果がＦａｌｓｅの間、Ｘｓを＋１しながら、ステップＳ１６〜ステップＳ２０のループを繰り返し実行する。
ここに、Ｘｓはループ変数、Ｗｓは元画像３の横方向画素数であるから、ループ回数（Ｘｓ）が元画像３の横方向画素数Ｗｓに到達するまでの間、式「Ｘｓ＝＝Ｗｓ」の評価結果はＦａｌｓｅを維持する。したがって、ステップＳ１６を含むループの実行回数はＷｓ回となる。
【００２２】
一方、ステップＳ１６を含むループの実行回数がＷｓ回に達して、ステップＳ２０の評価結果がＴｒｕｅになると、Ｙｓを＋１（ステップＳ２１）した後、式「Ｙｓ＝＝Ｈｓ」を評価（ステップＳ２２）し、そして、評価結果がＦａｌｓｅであれば、再びＸｓを初期化してステップＳ１６を含むループをＷｓ回繰り返し実行する。
ここに、Ｙｓはループ変数、Ｈｓは元画像３の縦方向画素数であるから、ループ回数（Ｙｓ）が元画像３の縦方向画素数Ｈｓに到達するまでの間、式「Ｙｓ＝＝Ｈｓ」の評価結果はＦａｌｓｅを維持する。したがって、ステップＳ１６を含むループの最終的な実行回数はＷｓ×Ｈｓ回、すなわち、元画像３の画素数に相当する回数となる。
【００２３】
実施の形態におけるループ回数（Ｗｓ×Ｈｓ回）と冒頭の従来技術におけるループ回数（Ｗｄ×Ｈｄ回）を対比すると、実施の形態のループ回数は明らかに少なく、非線形変換の実行回数（前式（１）の演算回数）をそれだけ減らすことができる。これは、冒頭の従来技術では変形画像の画素座標（Ｘｄ，Ｙｄ）に対応する元画像の画素座標（Ｘｓ，Ｙｓ）を特定するのに対して、実施の形態では、その逆に、元画像の画素座標（Ｘｓ，Ｙｓ）に対応する変形画像の画素座標（Ｘｄ，Ｙｄ）を特定するからであり、元画像と変形画像の画素数差だけ演算回数を減らすことができるからである。
【００２４】
ところで、元画像の画素座標（Ｘｓ，Ｙｓ）に対応する変形画像の画素座標（Ｘｄ，Ｙｄ）を特定した場合、図３に示すように、Ｑ１〜Ｑ４の座標しか特定できず、図３の太線内のハッチングなしの桝目で示す画素（補間画素）の座標を何らかの方法で特定しなければならない。
図５は、補間画素の座標特定を含む「画素値設定処理」のフローチャートであり、このフローチャートは、図４のステップＳ１８に相当するものである。このフローチャートでは、まず、二つのループ変数（ｙ、ｘ）に０をセットして初期化し（ステップＳ１８ａ、ステップＳ１８ｂ）、次いで、変形画像４の座標（Ｘｄ＋ｘ，Ｙｄ＋ｙ）に画素値変数Ｇの値を設定する（ステップＳ１８ｃ）。ここに、画素値変数Ｇには元画像３の座標（Ｘｓ，Ｙｓ）の画素値がセットされており（図４のステップＳ１７参照）、かつ、ｙ＝０、ｘ＝０であるから、変形画像４の座標（Ｘｄ＋０，Ｙｄ＋０）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される（図６参照）。
【００２５】
次に、ｘを＋１（ステップＳ１８ｄ）し、式「ｘ＝＝Ｗｒ」を評価（ステップＳ１８ｅ）する。そして、評価結果がＦａｌｓｅの間、ｘを＋１しながら、ステップＳ１８ｃ〜ステップＳ１８ｅのループを繰り返し実行し、そのループ中に式「ｘ＝＝Ｗｒ」の評価結果がＴｒｕｅになると、ｙを＋１（ステップＳ１８ｆ）し、式「ｙ＝＝Ｈｒ」を評価（ステップＳ１８ｇ）する。そして、評価結果がＦａｌｓｅであれば、再びｘを初期化してステップＳ１８ｃ〜ステップＳ１８ｅのループを繰り返し実行する一方、式「ｙ＝＝Ｈｒ」の評価結果がＴｒｕｅになると、フローチャートを終了して図４に戻り、ステップＳ１９以降を実行する。
【００２６】
ここで、画素値設定処理の動作を具体的に説明する。今、Ｗｒ＝３、Ｈｒ＝３とすると、図５のフローチャートを実行することにより、図６に示す３×３個の画素に対する画素値設定の操作が行われる。図６において、ハッチングで示す画素(Ｘｄ＋０，Ｙｄ＋０）は元画像３の画素Ｐｉに対応する画素Ｑｉであり、その他の８個の画素〔（Ｘｄ＋１，Ｙｄ＋０）、（Ｘｄ＋２，Ｙｄ＋０）、（Ｘｄ＋０，Ｙｄ＋１）、（Ｘｄ＋１，Ｙｄ＋１）、（Ｘｄ＋２，Ｙｄ＋１）、（Ｘｄ＋０，Ｙｄ＋２）、（Ｘｄ＋１，Ｙｄ＋２）、（Ｘｄ＋２，Ｙｄ＋２）〕は補間画素である。
【００２７】
＜ｙ＝０の場合＞
ｘ＝０のときは、変形画像４の座標（Ｘｄ＋０，Ｙｄ＋０）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
ｘ＝１のときは、変形画像４の座標（Ｘｄ＋１，Ｙｄ＋０）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
ｘ＝２のときは、変形画像４の座標（Ｘｄ＋２，Ｙｄ＋０）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
【００２８】
＜ｙ＝１の場合＞
ｘ＝０のときは、変形画像４の座標（Ｘｄ＋０，Ｙｄ＋１）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
ｘ＝１のときは、変形画像４の座標（Ｘｄ＋１，Ｙｄ＋１）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
ｘ＝２のときは、変形画像４の座標（Ｘｄ＋２，Ｙｄ＋１）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
【００２９】
＜ｙ＝２の場合＞
ｘ＝０のときは、変形画像４の座標（Ｘｄ＋０，Ｙｄ＋２）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
ｘ＝１のときは、変形画像４の座標（Ｘｄ＋１，Ｙｄ＋２）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
ｘ＝２のときは、変形画像４の座標（Ｘｄ＋２，Ｙｄ＋２）に元画像３の座標（Ｘｓ，Ｙｓ）の画素値が設定される。
【００３０】
＜設定される画素値＞
図６に示す３×３個の画素、すなわち、ハッチングで示す画素(Ｘｄ＋０，Ｙｄ＋０）と、その他の８個の画素〔（Ｘｄ＋１，Ｙｄ＋０）、（Ｘｄ＋２，Ｙｄ＋０）、（Ｘｄ＋０，Ｙｄ＋１）、（Ｘｄ＋１，Ｙｄ＋１）、（Ｘｄ＋２，Ｙｄ＋１）、（Ｘｄ＋０，Ｙｄ＋２）、（Ｘｄ＋１，Ｙｄ＋２）、（Ｘｄ＋２，Ｙｄ＋２）〕に設定される画素値は、いずれも同一の画素値（元画像３の画素Ｐｉの画素値）である。言い換えれば、図５のフローチャートでは、元画像３の画素Ｐｉの画素値を変形画像４の画素Ｑｉと幾つかの補間画素に同一に設定する。
【００３１】
＜まとめ＞
以上のとおり、本実施の形態の画像変形装置１０によれば、演算時間の長い非線形の変換処理、すなわち、図４のステップＳ１６における演算処理（前式（１））の繰返し回数を元画像３の画素数に相当するＷｓ×Ｈｓ回とすることができ、冒頭の従来技術における繰返し回数（変形画像４の画素数に相当するＷｄ×Ｈｄ回）よりも少なくすることができる。
したがって、元画像３と変形情報５の入力から、その変形画像４を表示部１９に出力するまでの時間を短くして画像の表示更新をスムーズにすることができ、特に、変形画像４のリアルタイムな描画を行うことができるという格別有益な効果が得られる。
【００３２】
なお、この効果は、元画像３の画素数（Ｗｓ×Ｈｓ）より変形画像４の画素数（Ｗｄ×Ｈｄ）が多い場合に成立する。言い換えれば、元画像３の画素数（Ｗｓ×Ｈｓ）が変形画像４の画素数（Ｗｄ×Ｈｄ）より少ない場合は、却って、演算処理の繰返し回数が増加して逆効果になるが、このような場合は冒頭の従来技術を適用すればよい。すなわち、図４のステップＳ１２の後に、元画像３の画素数（Ｗｓ×Ｈｓ）と変形画像４の画素数（Ｗｄ×Ｈｄ）の大小関係を判定するステップを追加し、その判定結果が「（Ｗｓ×Ｈｓ）＜（Ｗｄ×Ｈｄ）」を満たす場合に、図４のステップＳ１３以降を実行し、満たさない場合に図１６のステップＳ２以降を実行すればよい。
【００３３】
また、本実施の形態では、元画像３の画素Ｐｉの座標（Ｘｓ，Ｙｓ）から変形画像４の画像Ｑｉの座標（Ｘｄ，Ｙｄ）を特定するために、前式（１）の写像Ｆを用いているが、これに限定されない。例えば、以下に説明するような線形補間式を用いてもよい。
図７は、元画像の図形と変形画像の図形を示す図である。この図では、矩形状図形を略台形状図形に変形する例を示している。矩形状図形の各コーナ座標はそれぞれ時計周り順に（０，０）、（ｘ１，０）、（ｘ１，ｙ１）、（０，ｙ１）であり、略台形状図形の各コーナ座標はそれぞれ時計周り順に（ｘ３，ｙ３）、（ｘ１，０）、（ｘ１，ｙ１）、（ｘ４，ｙ４）である。両図形の右上コーナおよび右下コーナの座標は同一であるから、両図形の右辺は等長である。
したがって、図示の変形画像は、元画像の左辺側を上下に少し引き伸ばし、かつ、同左辺側を若干右に傾けたものであり、元画像と非相似の変形画像である。
【００３４】
このような変形画像において、その任意の画素Ｑの座標（Ｘｄ，Ｙｄ）は、次の二つの線形補間式（３）（４）によって特定することができる。
Ｘｄ＝［Ａ］＋［Ｂ］＋［Ｃ］−［Ｄ］    ……（３）
Ｙｄ＝［Ｅ］＋［Ｆ］−［Ｇ］＋［Ｈ］    ……（４）
但し、［Ａ］＝ｘ３
［Ｂ］＝（ｘ４−ｘ３）×Ｙｓ／ｙ１
［Ｃ］＝（ｘ１−ｘ３）×Ｘｓ／ｘ１
［Ｄ］＝（ｘ４−ｘ３）×Ｘｓ×Ｙｓ／ｘ１×ｙ１
［Ｅ］＝ｙ３
［Ｆ］＝（ｙ４−ｙ３）×Ｙｓ／ｙ１
［Ｇ］＝ｙ３×Ｘｓ／ｘ１
［Ｈ］＝（ｙ１＋ｙ３−ｙ４）×Ｘｓ×Ｙｓ／ｘ１×ｙ１
【００３５】
＜パノラマエディタへの応用＞
本発明は、先にも述べたように、非相似形の変形を行う画像変形装置に適用することができる。この種の画像変形装置としては、例えば、グラフィックデザイン用など様々のものが知られているが、その一つに、ディジタルカメラ等で撮影した画像の編集加工を行うエディタツールがあり、さらに、このエディタツールにはパノラマ写真の編集加工機能を搭載したもの（以下「パノラマエディタ」という）がある。
パノラマ写真とは、カメラを水平にパンさせて撮影した複数枚の画像をつなぎ合わせたものである。つなぎ合わせの部分に不自然さのないパノラマ写真を得るためには、正確な水平レベル合わせと、パン動作中のカメラの上下方向への動きを阻止する必要がある。このため、手持ち撮影では良好なパノラマ写真を得ることが困難で、撮影後におけるパノラマ写真の編集加工（特につなぎ部分の合わせ込み調整）は欠かせない。
【００３６】
以下、パノラマエディタについて説明する。
図８は、パノラマエディタ２１の構成図である。図において、パノラマエディタ２１は、オペレーティングシステムとアプリケーションプログラムソフトを実行してパノラマエディタに必要な各種機能を実現するＣＰＵ２２、ＣＰＵ２２のワークエリアとして動作するメモリ２３、オペレーティングシステムやアプリケーションプログラムソフトを格納するハードディスク２４、パノラマエディタの編集画面を表示するディスプレイ２５、不図示の他のハードウェアリソースとのインターフェースをとるＩ／Ｏ２６、キーボードやマウス等の入力装置２７およびバス２８などを含んで構成される。
なお、これらの構成は汎用のパーソナルコンピュータやワークステーション等（以下「パソコン」）におけるハードウェア構成に匹敵する。したがって、パノラマエディタ２１の典型的な実施例は、パノラマエディタに必要な各種機能を実現するためのアプリケーションプログラムソフトとパソコンとを組み合わせたものであるが、これに限定されない。上記構成と上記アプリケーションプログラムソフトとを有する電子機器であればよく、例えば、ディジタルカメラであってもよくまたはその他の画像処理機器であってもよい。
【００３７】
図９（ａ）は、パノラマエディタ２１の編集画面の表示例であり、この例では、三つの画像３２〜３４で構成されたパノラマ写真３１が表示されている。中央の画像３３と左隣の画像３２との間の重合部分および中央の画像３３と右隣の画像３４との間の重合部分は“ステッチ”と呼ばれており、重ね合わせを行うための同一画像の記録部分である。ステッチ幅は固定されていることもある。ステッチ幅固定のカメラを用いパノラマ撮影モードで１枚の画像を撮影すると、その右端のステッチ幅部分の画像が次の画像を撮影する際にモニター画面の左端に表示されるようになっており、スルー画像（構図調整用のモニター画像）をそのステッチ幅画像に重ね合わせることによって撮影時のつなぎ部分の大まかな調整を行えるようになっている。
【００３８】
ハッチングで示す中央の画像３３は選択中の画像（編集対象の画像）を示している。例えば、画像を選択したままドラッグすることにより、左右上下に移動できるようになっている。また、編集対象画像の四隅に設けられたコーナパッド３５〜３８（図１０参照）は、編集対象画像の非相似変形を行う際に用いられるものである。例えば、任意のコーナパッドをドラッグすると、そのドラッグ方向に画像が拡大または縮小されるようになっている。
【００３９】
図９（ｂ）は、左上のコーナパッド３５（または左下のコーナパッド３６）を上方向（または下方向）にドラッグしたときの選択画像３３の変形状態を示す図であり、コーナパッド３５（または３６）の動きに伴って、選択画像３３が徐々に変形しつつ表示されている。この変形表示の過程において、変形画像の表示更新が間に合わない場合、表示がギクシャクして操作感を損なうことになる。このパノラマエディタ２１は、以下に説明するように、前述の画像変形装置１０の原理を応用して変形画像の生成時間を短くしているので、かかる不都合を招くことはない。
【００４０】
図１１および図１２は、ＣＰＵ２２で実行するアプリケーションプログラムソフトのフローチャートである。このフローチャートを実行すると、まず、パノラマ画像を構成する複数の画像を読み込むためのファイル選択画面を表示し、ユーザによって選択された画像ファイルを読み込む（ステップＳ３１）。次に、各画像ファイルのステッチ情報から隣りの画像との重合部分を設定し（ステップＳ３２）、その重合部分を適用して編集画面にパノラマ写真（例えば、図９（ａ）のパノラマ写真３１参照）を表示する（ステップＳ３３）。
【００４１】
次に、イベントを検出するまで待機し（ステップＳ３４）、イベントを検出すると、そのイベントに対応した処理を実行する。例えば、画像のクリックイベントを検出すると画像選択処理を実行し（ステップＳ３５）、画像のドラッグイベントを検出すると選択画像の上下移動処理を実行し（ステップＳ３６）、コーナパッド３５〜３８のドラッグイベントを検出すると選択画像の変形編集処理を実行し（ステップＳ３７）、あるいは、不図示のメニュー選択イベント（画像の追加、挿入、削除、保存、再生、……、終了）を検出するとそのメニュー処理を実行する（ステップＳ３８〜４１）。
【００４２】
＜選択画像の変形編集処理＞
図１３は、選択画像の変形編集処理（ステップＳ３７参照）のフローチャートである。このフローチャートでは、まず、ドラッグ中であるか否かを判定し（ステップＳ５１）、ドラッグ中であれば変数ＷＤにステッチ幅の画素数ＷＤ１をセットし（ステップＳ５２）、そうでなければ変数ＷＤに選択画像の横方向画素数ＷＤ２をセットする（ステップＳ５３）。
【００４３】
次に、二つのループ変数（Ｙｓ、Ｘｓ）に０をセットして初期化（ステップＳ５４、ステップＳ５５）し、式「Ｙｓ＝＝ＨＴ」（ＨＴは選択画像３３の縦方向画素数；図９参照）を評価（ステップＳ５６）する。そして、評価結果がＦａｌｓｅの間、式「Ｘｓ＝＝ＷＤ」を評価（ステップＳ５７）し、そして、評価結果がＴｒｕｅであれば、Ｙｓを＋１（ステップＳ５８）した後、ステップＳ５５以降を実行する。
【００４４】
式「Ｘｓ＝＝ＷＤ」の評価結果がＦａｌｓｅの場合、元画像（選択画像３３）の座標（Ｘｓ，Ｙｓ）から変形画像の座標（Ｘｄ，Ｙｄ）を計算する（ステップＳ５９）。この計算には、前式（１）または前式（３）、（４）を用いることができる。座標（Ｘｄ，Ｙｄ）を計算すると、次に、座標（Ｘｄ，Ｙｄ）の画素を含む四つの画素に元画像の座標（Ｘｓ，Ｙｓ）の画素値を書き込んだ後（ステップＳ６０）、Ｘｓを＋１し（ステップＳ６１）、ステップ５７に戻る。
【００４５】
図１４は、座標（Ｘｄ，Ｙｄ）の画素を含む四つの画素の概念図であり、これら四つの画素〔（Ｘｄ，Ｙｄ）、（Ｘｄ＋１，Ｙｄ）、（Ｘｄ，Ｙｄ＋１）、（Ｘｄ＋１，Ｙｄ＋１）〕に元画像の座標（Ｘｓ，Ｙｓ）の画素値を書き込む。図１４の画素配列は、図３の上から２段目の画素配列に相当する。したがって、図１３のフローチャートは、前出の画像変形装置１０における横画素数比Ｗｒと縦画素数比Ｈｒを「２」に固定したものである。
【００４６】
元画像の対象画素（ドラッグ中はＷＤ１×ＨＴ個の画素、ドラック中でなければＷＤ２×ＨＴ個の画素）のすべてについて、ステップＳ５９の座標計算およびステップＳ６０の画素値書込みを完了すると、ステップＳ５６の式「Ｙｓ＝＝ＨＴ」の評価結果がＴｒｕｅとなり、変形後の選択画像３３を表示更新して（ステップＳ６２〜ステップＳ６５）、プログラムを終了する。
【００４７】
この表示更新処理においては、まず、左隣の画像３２と変形後の選択画像３３との重ね合わせを行い（ステップＳ６２）、次に、ドラッグ中であるか否かを判定（ステップＳ５３）してドラッグ中でなければ右隣の画像３４との重ね合わせを行った後（ステップＳ６４）、変形後のパノラマ画像３１を表示し（ステップＳ６５）、ドラッグ中であればそのまま変形後のパノラマ画像３１を表示する（ステップＳ６５）。
【００４８】
以上のようにしたから、このパノラマエディタ２１によれば、以下の効果が得られる。
（ａ）座標計算（ステップＳ５９）の繰返し回数を元画像の対象画素の数にすることができ、従来技術のように、変形画像の画素数だけ繰り返すものに比べて計算時間を短くすることができる。
（ｂ）ドラッグ中の場合は、座標計算（ステップＳ５９）の繰返し回数を元画像の一部の画素（ステッチ幅の画素）の数にすることができ、特にスムーズな画像の更新が求められるドラッグ中の操作感を改善することができる。
（ｃ）ドラッグ中の場合は、右隣の画像３４との重ね合わせ処理（ステップＳ６４）をパスするので、この点においてもスムーズな画像の更新が求められるドラッグ中の操作感を改善することができる。
【００４９】
＜付記＞
本実施の形態の主要な機能は、マイクロコンピュータを含むハードウェア資産と、ＯＳや各種プログラムなどのソフトウェア資産との有機的結合によって機能的に実現されるものであるが、ハードウェア資産およびＯＳは汎用のものを利用できるから、本発明にとって欠くことのできない必須の事項は、実質的に、図４または図１３のフローチャートで示すプログラムに集約されているということがいえる。したがって、本発明は、図４または図１３のフローチャートで示すプログラムのすべてまたはその要部を格納した、フロッピィディスク、光ディスク、コンパクトディスク、磁気テープ、ハードディスクまたは半導体メモリなどの記憶媒体若しくはこれらの記憶媒体を含む構成品（ユニット品や完成品または半完成品）を包含する。なお、上記記憶媒体または構成品は、それ自体が流通経路にのるものはもちろんのこと、ネットワーク上にあって記録内容だけを提供するものも含まれる。
【００５０】
【発明の効果】
本発明によれば、変形情報に基づいて画素座標を特定する演算処理は、元画像を構成する画素座標の個数に対応する回数だけ実行すればよく、他の補間画素の画素座標は、隣接関係によって容易に特定できるので、例えば、写像関数または線形補間式等を用いた画素座標の演算回数が実質的に元画像の画素数を超えることがなく、非相似変形を行う場合の処理を効率化することができ、例えば、変形途中の画像をリアルタイムに描画できるようになる。
【図面の簡単な説明】
【図１】画像変形装置のブロック図である。
【図２】元画像と変形画像の概念図である。
【図３】画素座標の特定と画素値設定の概念図である。
【図４】画像変形装置の全体的な動作を示すフローチャートである。
【図５】画素値設定処理のフローチャートである。
【図６】３×３個の画素に対する画素値設定の操作説明図である。
【図７】元画像の図形と変形画像の図形を示す図である。
【図８】パノラマエディタの構成図である。
【図９】パノラマエディタの編集画面の表示例を示す図である。
【図１０】コーナパッドを含む編集画面の要部拡大図である。
【図１１】ＣＰＵで実行するアプリケーションプログラムソフトのフローチャート（１／２）である。
【図１２】ＣＰＵで実行するアプリケーションプログラムソフトのフローチャート（２／２）である。
【図１３】選択画像の変形編集処理のフローチャートである。
【図１４】座標（Ｘｄ，Ｙｄ）の画素を含む四つの画素の概念図である。
【図１５】元画像１と変形画像２を示す概念図である。
【図１６】従来の画像変形処理（特に非相似変形を行うもの）のフローチャートである。
【符号の説明】
３  元画像
４  変形画像
５  変形情報
１０  画像変形装置
１１  画像入力部
１２  情報入力部
１３  第１パラメータ生成部
１４  第２パラメータ生成部
１５  変形画像座標生成部（第１特定手段）
１６  補間座標生成部（第２特定手段）
１７  画素値設定部（画素値設定手段）
【図１】
0003764972.tif 000002
【図２】
0003764972.tif 000003
【図３】
0003764972.tif 000004
【図４】
0003764972.tif 000005
【図５】
0003764972.tif 000006
【図６】
0003764972.tif 000007
【図７】
0003764972.tif 000008
【図８】
0003764972.tif 000009
【図９】
0003764972.tif 000010
【図１０】
0003764972.tif 000011
【図１１】
0003764972.tif 000012
【図１２】
0003764972.tif 000013
【図１３】
0003764972.tif 000014
【図１４】
0003764972.tif 000015
【図１５】
0003764972.tif 000016
【図１６】
0003764972.tif 000017