Marilenaでアイドル(3)

さてさて。
もうてらこで発表してからだいぶたってしまいましたが、
この無駄に長く解説してきたシリーズも今回で最後です。
前回、前々回からどうぞ。
って言っても、もうほとんど終わっているので、解説するところはほとんどないんですが、、。
FlickrとMarilena
前々回、一番最初で、Marilenaの使い方を説明しました。
その時に、ここに画像のURLを入れればいい、と書いたと思います。
それがここ。
public function FaceDetector() {
initUI();
initDetector();
faceImage.load( new URLRequest("<b>013.jpg</b>") );
}
で、as3flickrlibを使用して、Flickr上の画像のURLをゲット。
それがこれ。
var photoArr : Array = e.data.photos.photos;
for(var i:Number = 0; i<photoArr.length; i++){
farm = photoArr[i].farm;
server = photoArr[i].server;
id = photoArr[i].id;
secret = photoArr[i].secret;
owner = photoArr[i].ownerId;
//画像のURL
trace( 'http://farm' + farm + '.static.flickr.com/' + server + '/' + id + '_' + secret + '.jpg');
}
もうおわかりのように、これでFlickrから取得してきたURLを、Marilenaに渡してやることが出来ます。
これによって、Flickrの画像を顔認識にかけてやることができます。
で、エロく
あとは、顔と判定されたポイント(Rectangleで返ってくる)をもとに、
顔からした、顔が半分切れたバストショットになるように調整。
調整した結果が、これ。
緑の枠が、Marilenaで取ってきた顔の範囲で、青の枠がそこから割り出した見せたい範囲。
割り出した、っても実際に目で確認しながら調整しただけ。
顔の範囲の下半分から始めて、顔の範囲の高さの三倍分の高さにしただけ。
式にするとこう。
//顔の範囲を rect とする xx = rect.x - rect.width / 2; yy = rect.y + rect.height / 2; ww = rect.width * 2; hh = rect.height * 3;
結果的にたいていのものが上手くいったので、これでいいか、ってことで。
(顔認識自体が上手くいってないものは除いて)
まとめ
だいたい以上で終了。
自分のわかってる範囲で、説明しきったはずです。
最後にソースを一式アップしときます。
ほんと、既存のものをいじっただけ&汚いソースですが、、、。
※動作させるには別途、以下が必要です。(ライブラリ)
Marilena
as3flickrlib
as3corelib
tweener
FlashCS3で、Main.asをドキュメントクラスに設定してお使い下さい。
・Marilenaシリーズ
Marilenaでアイドル(1)
Marilenaでアイドル(2)




[...] 07.09 Marilenaでアイドル(3) [...]
[...] » Marilenaでアイドル(3) trace 6.12.09 / 7pm [...]