画像を四角形に変形するプログラム(3) | 技術日誌

技術日誌

ここでは,電子工作,木工などの趣味での記録を書いています。
なお当初はKMK研究所のメインテーマであるSPSのノウハウを書いてきましたが,順次SPSノウハウのページに複製を作っていきます。

 長方形の画像の頂点4点を指定した位置に移動させるようなひずみを与えるプログラムを作ったことを書きました。その時は,u=aU+bUV+cV,v=iU+jUV+kVYの変換式を用いました。ここでU,V,u,vは,左下を原点に移動後,計算途中でオーバーフローしないように,変換先の座標の最大値が2になるよう正規化した値です。変換結果の各辺がわずかにカーブしていました。そこで変換式を変えてみることにしました。今回用いた変換式はu=aU+b√(UV+cV)+c,v=iU+j√(UV)+kVY+lです。U, Vが負にならないようにするため,左下を原点に移動する処理を止めました。そのため,c, lの定数が必要になりました。変換結果と元画像を下に示します。上側が変換後です。各辺の直線からのずれは更に大きくなってしまいました。また,右下に飛び地のような画像が現れました。ちなみに,4頂点は指定位置になっています。ただし,右下の指定位置は飛び地の頂点です。今後変換式をいろいろ試してみたいと思います。