Quartz Composerで遊んでみた

Quartz Composer Book —クォーツ コンポーザー ブック—

著者/訳者:鹿野 護

出版社:ビー・エヌ・エヌ新社( 2008-09-30 )

定価:

単行本(ソフトカバー) ( 196 ページ )

ISBN-10 : 486100568X

ISBN-13 : 9784861005688



出版社サイト:Quartz Composer Book —クォーツ コンポーザー ブック— (株式会社ビー・エヌ・エヌ新社)

を読みながら,サンプルをごにょごにょいじったりしています.

プログラミングの知識が無くても,自分のアイデアを簡単に可視化できるツールなので使っていて楽しい.
また,章ごとにあるプロローグ,エピローグはメッセージ性があって,単にツールの使い方に
とどまっていないのも個人的に好印象.

Macを持っている人で,Quartz Composer使ったことない人は一度遊んでみても良いかも.


PS3EyeLibで遊んでみた

PS3Eye Camera SDK for use in your own applications!!! « Alex Popovich’s Weblogより,
PS3用のwebカメラPlayStation EyeをDirectShowでキャプチャするためのライブラリ
PS3EyeLibが公開されたようです.

AlexPさん,ありがとう.
これで先走って買ってしまったPlayStation Eyeも自作アプリで活用できます!!

ということで,早速配布されているSDKを利用し,OpenCVと組み合わせたサンプルを紹介します.
※上記サイトのサンプルを少しいじっただけですけど。。。

間違い等ありましたら,ご指摘ありましたらよろしくお願いします.
(気が向いたら)wikiの方に利用方法を書くかもしれません.

※注意 下記コードの利用は自己責任でお願いします.

[cpp]
//———————————————————————-
// 概要 : PS3EyeLibを用いたキャプチャサンプル
// ファイル名 : CapturePS3Eye.cpp
// 使用ライブラリ:
// OpenCV for MS-Windows 1.1
// http://sourceforge.net/projects/opencvlibrary/
//
// PS3EyeLib
// http://alexpopovich.wordpress.com/2008/10/20/ps3eye-camera-sdk-for-use-in-your-own-applications/
//
// Author : dandelion
// Date : Oct 22, 2008; 20:00
//———————————————————————-

#include
#include

//ヘッダインクルード(OpenCV関連)
#include “cv.h”
#include “cxcore.h”
#include “highgui.h”

//ヘッダインクルード(PS3EyeLib関連)
#include “IPS3EyeLib.h”

//ライブラリ読み込み(OpenCV関連)
#pragma comment(lib,”cv.lib”)
#pragma comment(lib,”cxcore.lib”)
#pragma comment(lib,”highgui.lib”)

//ライブラリ読み込み(PS3EyeLib関連)
#pragma comment(lib,”PS3EyeLib.lib”)

#define CAPTURE_WIDTH 320 //キャプチャサイズ(幅)
#define CAPTURE_HEIGHT 240 //キャプチャサイズ(高さ)
#define FPS 30 //フレームレート
#define COLOR_DEPTH 24 //depth

using namespace std;

// 利用可能フォーマット表示関数(プロトタイプ宣言)
void displayAvailableFormats(void);

int main(int argc, char *argv[])
{
int key = 0;

//キャプチャ画像
IplImage *image = cvCreateImage(cvSize(CAPTURE_WIDTH, CAPTURE_HEIGHT), IPL_DEPTH_8U, 3);

//ウィンドウ
char* window_name = “Capture using IPS3EyeLib”;
cvNamedWindow(window_name, CV_WINDOW_AUTOSIZE);

// PS3EyeLibオブジェクト生成
IPS3EyeLib *pCam = IPS3EyeLib::Create();

// 利用可能なフォーマットの表示
displayAvailableFormats();

// キャプチャフォーマットの設定
pCam->SetFormat(IPS3EyeLib::GetFormatIndex(CAPTURE_WIDTH,CAPTURE_HEIGHT,FPS));

// イメージ用バッファの確保
PBYTE pBuffer=new BYTE[(CAPTURE_WIDTH*CAPTURE_HEIGHT*COLOR_DEPTH)/8];

// キャプチャ開始
pCam->StartCapture();

//ESCキーが押されるまでキャプチャを続ける
while(key != 0x1b)
{
if(pCam->GetFrame(pBuffer, COLOR_DEPTH, false))
{
//キャプチャ画像をimageDataにコピー
memcpy(image->imageData, pBuffer, image->imageSize);

//画像表示
cvShowImage(window_name, image);
}

//キー入力
key = cvWaitKey(1);
}

// イメージ用バッファの解放
delete [] pBuffer;

// 後処理(PS3EyeLib関連)
pCam->StopCapture();
delete pCam;

// 後処理(OpenCV関連)
cvDestroyWindow(window_name);
cvReleaseImage(&image);

return 0;
}

// 利用可能フォーマット表示関数
void displayAvailableFormats(void)
{
cout << "[Available Formats]" << endl;
for(int i=0; i {
int width, height, rate;
char *description;

width = IPS3EyeLib::GetFormats()[i].width;
height = IPS3EyeLib::GetFormats()[i].height;
rate = IPS3EyeLib::GetFormats()[i].rate;
description = IPS3EyeLib::GetFormats()[i].formatTxt;

cout << description << endl;
}
}
[/cpp]

現在,PS3EyeLibで利用できるのは以下のフォーマットのようです(※2008/10/22現在).

320x240@15fps,
320x240@30fps,
320x240@60fps,
320x240@75fps,
320x240@100fps,
320x240@125fps,
640x480@15fps,
640x480@30fps,
640x480@40fps,
640x480@50fps,
640x480@60fps,
640x480@75fps

4000円のwebカメラでこれだけできるなんて,コストパフォーマンスがスゴすぎると思います.
学生の方は研究のお供として1台あっても良いかも.

電脳フィギュアでいろいろ問題が起きているらしい

巷で噂の電脳フィギュアがつい最近発売されたらしい.
#製品的にも技術的にも興味無いですが,ARの商用化事例として今後の成り行きには
#興味があるので(だいぶ離れて)静観の構え.

ただ,いろいろ不具合があるようで某巨大掲示板にもかなりの書き込みがある模様.
ざっと眺めた感じだと以下の不具合があるみたい.

(1)サーバからファイルがダウンロードできない
「電脳フィギュア ARis」のソフトがダウンロードできない不具合 – ITmedia +D PC USERの記事によると,
アクセスが集中したためサーバが処理できてないみたい.

それにしても,上記のITmediaの記事にある

昨日はアリスに「そんなのあんまりですぅ」と言わせてみたが、今日は逆に言わされてしまった……
アリスのキャラ設定にツンデレ属性はないはずだが。

という表現が皮肉すぎる。。。(うまいことまとめたなとは思うけど)

(2)アプリ終了時にプロセスが死なない
電脳フィギュア – サポート

Q. アプリケーションを一度終了し、再び起動した際、「二重起動は出来ません!」というエラーメッセージが表示されます。

にも書かれているように,アプリ終了時にプロセスが残ってしまうバグがあるみたいです.
事前にテストされていれば気付きそうなものですが。。。
#イベント出展,PV作成等のPRに力を入れすぎてテストがずさんになった?

(3)処理が重い
AKIBA PC Hotline! Junk Blog.: ミニレビュー:電脳フィギュアを使ってみたにCPU使用率について
レビューがありますが,かなりCPUパワーを要するようです.
第弐回天下一カウボーイ大会で展示されていた時に動作が遅い感じがしたのは気のせいじゃなかったってことか。。。
#逆にCore 2 Quad Q6600をここまで追い詰めるのはスゴイ気がする(むしろ,どうやったらそうなるかが気になる所)
#これより低速なCPUってのはざらにあると思われるので,推奨動作環境以上に動作ハードルは高い?

また,社長のblogの
もち肌ビジネスマン奮闘記: 電脳フィギュア ダウンロード混雑&インストール不具合につきご迷惑おかけしております。
というエントリのコメント欄はかなり荒れている模様.リリース早々雲行きが怪しくなってきたようです.

*********************
【追記】




Google Analyticsのログを見たら,10/17のアクセスがやたらと多いので何事かと思い,
調べてみたところ,「電脳タイプの次世代魔人形」 電脳フィギュアARis(アリス)発売 – アキバBlog
という記事にリンクされているのが原因っぽい.
あああああ,なんてところに目を付けられてしまったんだ。。。 orz

と地味に凹んでたら,某勉強会でお世話になった方の記事も紹介してあって何とも言えない安心感が(苦笑)
道連れ。。。じゃなかった,仲間がいた!!みたいな.

「攻殻機動隊」「電脳コイル」の世界を実現! – ARToolKitを使った拡張現実感プログラミング
『攻殻機動隊』『電脳メガネ』どころではない拡張現実感技術の現在 | 王様の箱庭