※ getPictPoints関数(その2:三角)
[2006/07/17]
画像の指定した位置の座標を返す

 画像中の任意の位置をマウスで複数指定し、その点同士を直線で結び三角形を作ります。本関数は morphingData関数や morphingPicture関数用のデータを得るため getPictPoints関数に追加した機能です。

このボタンをクリックすると三角形作成モードになる。

【書式】

getPictPoints(pict#);
getPictPoints(pict#,pos);
getPictPoints(pict#,title$);
getPictPoints(pict#,pos,title$);

【引数】

pict# 位置座標を求めたい画像
pos 位置座標(m行2列)
title$ ウインドウのタイトル文字列

【戻値】

 指定した複数の点(3点以上)から作ったm個の三角形データでm行9列の行列データ

第1列 頂点1のX座標
第2列 頂点1のY座標
第3列 ダミー
第4列 頂点2のX座標
第5列 頂点2のY座標
第6列 ダミー
第7列 頂点3のX座標
第8列 頂点3のY座標
第9列 ダミー

【備考】

 本関数の三角形作成機能は morphingData関数やmorphingPicture関数用に開発したものです。詳しくはmorphingData、morphingPicture関数を参考にして下さい。

【例 】

変形対象の画像をクリップボードから取得

a# = getClipPict(0);
a#;

家で飼っていたゴン太です。

getPictPoints関数で変形前の画像に特徴点を設定

p = getPictPoints(a#);

 同様にgetPictPoints関数を使い変形後に移動する点を設定。今回は鼻の位置を若干下げてみることにする。

pp = getPictPoints(a#,p);

morphingPicture関数を使い画像を変形

b# = morphingPicture(a#,p,pp);
changePictSize(a#*b#,2/3);

 変形前(左)では鼻が上の方を向いていたが変形後(右)は鼻の位置が下がりなかなか良い顔になっている(お見合い写真に使えそう)。でもこんな変形が簡 単にできてしまうと何が本当なのか判らなくなってしまう。この関数も grEdit 関数同様、好きになれない関数である。どうも再現性の無いマニュアル操作は好きになれないな〜 芸術と科学は似ているようで相容れないものがあるのでは。 芸術は再現性が無く個人的・差別的、科学は誰がやっても同じ結果を得るので皆平等。決して芸術が悪いと言っている訳では有りません。ただ芸術と科学は似て いるとおっしゃる方がたまにいますが、それは間違いではないか、まったく正反対だと思うと言いたいだけです。芸術は自分に無いものを与えてくれ、科学は皆 平等にその成果を享受できるものなのでは。