“Programming” カテゴリのアーカイブ



から機能追加しました!!

・財布画像アップデート

twitter上で前回の動画に言及してくれていた
ちょりさん(http://www.nicovideo.jp/mylist/15194746)に
ダメもとで財布イラストを依頼してみたところ,
キレイな財布イラストを描いて頂きました.
本当にありがとうございます!!

・小銭音再生機能
加速度センサの値を取得して,激しく振りが検出された場合に
小銭の音が鳴ります.

・スライドして段階的にバリバリ鳴る
指をスライドすることで段階的にバリバリ鳴ります

・財布の開閉が可能
指を上下にスライドすることで財布が開閉します.
※バリバリ音は開くときのみに鳴ります

・「やめて!!」表示機能
振ったとき or たくさんスライドすると「やめて!!」という
メッセージが表示されます.

AppStore申請完了しました!!
受領されたらアプリの配信URLと動画を公開したいと思います.

このエントリの続きを読む »

Comments 1 コメント »

昨日の酒の勢いで,「彼氏の財布がマジックテープ式だった」
iPhoneアプリで再現してみました.製作時間1時間ということで
かなりヘタレな実装ですが,マジックテープ式財布を扱った
iPhoneアプリとしては世界初なはず!!(多分)



絵が得意な方がいらっしゃいましたら,絵を提供下さい。。。
動画にある絵はパワポでてきとーに描きました(苦笑)

某絵師さんに財布のイラスト依頼しました!!

*************************

【追記(2009/10/26)】

タグがカオスな感じになってきた!!
「無駄に高画質」タグはちょっと意外だったかも.
無駄って言うな-!! ヽ(`Д´)ノウワァァァン
#ビデオカメラ持ってるのに出すのが面倒でデジカメで撮りました.

あと,「実写でもいいんじゃね」「くだらねぇww」
ってコメントに対しては,自分でもそう思ってるので
全く反論の余地がありません(汗)

【追記(2009/11/1)】
描画方法をOpenGL ESに変更したり,100均でマジックテープ入手して
サンプリングしたりしてます.短い音をスワイプ量によって鳴らして
それらしく鳴るのかはやってみないとなんとも。。。
#コメントが流れすぎて要望機能の全てを拾えないかも.

今週末くらいに形になって,気分が乗ったらAppStoreに申請したいな-と.

このエントリの続きを読む »

Comments コメントなし »

GAINERをC++で扱うライブラリgainercxx v0.1をリリースしました.
詳細はgainercxx公式サイトをご覧下さい.

現在,和文ドキュメントを作っていないので時間を見つけて作りたいな-と思っています.
あと,いくつか未実装のAPIがあるのでその辺は追々実装したいところ.

というわけで,ソースコード,ドキュメントも置いてあるので
ツッコミ等があればコメント欄 or メールでお願いします.

それにしても地味に疲れたなー.主に英語ドキュメント作成が。。。orz

Comments コメントなし »

GAINERをC++で扱うライブラリをごにょごにょと整理中.
昔自分で書いたコードがコールバック関数をセットしないと落ちるようになっていて泣いた。。。orz

とりあえず,GAINERについているボタン押したとき,離したときのイベント発行等を確認.
APIとしてはこちらのサイトにあるのに近いかなと.
基本的にはprocessingにあるGAINERのAPIに合わせるつもりです.

あとはドキュメント整備かな-.これから英語がさらに必要になりそうなのでドキュメントは
英語で書こうかと思っています.日本語での需要があれば後で書きます(多分)
#Doxygenで生成するドキュメントのローカライズってどうすれば効率良いんだろう??

というわけで,アルファ版的なものを今週末に(できたら)リリース予定です.
やる気の波が非常に激しいdandelionの頑張りにご期待下さい(苦笑)
#とか書くとなんか打ち切りフラグのよう(以下略)

Comments コメントなし »

dandelion’s log » CV・ARに関する普通じゃない勉強会で発表した
GAINERをC++で扱うライブラリ(for Windows)の公開準備中です.
自由に使って欲しいのでMITライセンスで配布予定.

公式サイト,README,COPYING,ChangeLogを途中まで作って疲れた(苦笑)
#英語面倒くさい。。。orz

あと,現在,自身の環境ではWindows Vistaでしか動作確認できないため,
GAINERをお持ちでWindows XP環境で動作確認して頂ける方がおられましたら,


までご連絡下さい.

準備ができ次第追って連絡させていただきます.

■サンプル動画
加速度センサの値をもとにティーポットを傾けるサンプルプログラム.



加速度センサの値をもとにウマウマ(゚∀゚)するサンプルプログラム.

Comments コメントなし »

あの楽器関連の進捗.
OSC(Open Sound Control)関連のライブラリを調査してみました.
※現段階でライセンスがGPLとわかっているものは除外.

ObjC OSC
Objective-CによるOSC実装.iPhoneアプリに使うならこれが一番簡単?
ライセンスをこれから確認しないと。。。

oscpack — a simple C++ OSC packet manipulation library
C++によるOSC実装.BSD-style license.
これをObjective-Cに移植するって手もありか?

ということで,とりあえず,Mac環境でoscpackライブラリを生成して,送受信サンプルプログラムを動作させる
ところまでやってみました.すんなりとObjective-Cに移植できるのかな??

************************

最近,第三者視点で顔色が悪いらしい.気付かなかった!!
言われてみればそんな感じがするような,しないような(←よくわかってない)

自覚が無いあたりがいろいろマズい気がする。。。orz
その辺にはあまり興味が無いんだろうな>自分
とりあえず,今日は早めに寝よう.

Comments コメントなし »

動画投稿完了.昨日寝る前にやろうと思ったらアップロード300人待ちだったので,
諦めました.なので起きてから投稿.

基本的に前のエントリに書いたことを動画にしただけです.
#動画作成がどんどん適当になっているのは仕様d(以下略)

あと,サウンドエフェクトをちょっと勉強するために,

C言語ではじめる音のプログラミング―サウンドエフェクトの信号処理

著者/訳者:青木 直史

出版社:オーム社( 2008-12 )

定価:¥ 2,730

単行本 ( 168 ページ )

ISBN-10 : 4274206505

ISBN-13 : 9784274206504




を買ってみました.C言語のサンプル付き(※ここ重要)で
説明もわかりやすいので初学者には良さそうですね.

*************************************

話ががらっと変わりますが,
@IT:OSSライセンスが求める条件とは?
という記事がわかりやすいです.OSSライセンスの説明には難しい用語がたくさん出てくるので
腰を据えて読むのが大変なんですが,この記事はよくまとまっているかなと.次回の記事を楽しみにしておきます.

Comments コメントなし »

巷で流行のAdobe AIRアプリ開発の手始めとしてmp3 player(らしきもの)を作ってみました.
【参考サイト】:Adobe AIRでクールなMP3プレーヤーを作ってみる:CodeZine

ということで,上記サイトを読み始めると,

<対象読者>
* Flash、Flexでの開発経験のある人。
* 基本的なActionScript3.0の知識のある人。
* プラットフォームを問わないアプリケーションを開発したい人。

と書いてあったりします.
ええと,ちなみに自分のステータスについてですが,

* Flash、Flexでの開発経験のある人。     → 全くありません。。。orz
* 基本的なActionScript3.0の知識のある人。 → (ほとんど)ありません。。。orz
* プラットフォームを問わないアプリケーションを開発したい人。→ ちょっと興味アリ

ということでいきなり幸先が不安な感じです(苦笑)
まぁ,「細かいこと考えるより手を動かそう!!」という軽いノリでスタート.

上記サイト読みつつ,紹介されているものと同等の機能は10分位で実装完了.
ただ,差分機能を付けないと何だか負けな感じなので,ActionScriptのAPIを調べて,
PauseボタンとProgressBarを追加してみました.

あと,Openボタンの右側のテキストフィールドにはファイル名だけ入れるように
したかったんですけど,mp3のID3タグに格納されている曲名って文字コードが
Shift-JISだったりUTF-8だったりして,ちゃんとやろうと思うと文字コード判定,
文字コード変換が必要なので今回は諦めました  orz (ActionScript初心者には荷が重かった。。。)

というわけで,今回の成果物を公開してみます. → download
※実行にはAdobe AIRランタイムを事前にインストールしておく必要があります.

全くのAdobe AIR初心者でも1時間位でmp3 player(らしきもの)が作れちゃう
この敷居の低さはスゴイなーと思いました.> Adobe AIR


Comments コメントなし »

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:¥ 3,570

Amazon価格:¥ 3,570

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777




をO’Reilly様より献本頂きました.ありがとうございます.
読了後レビューを書かせていただきます.

ということで,気分も乗ってきたので
OpenCVのCVS版(20081010)で遊んでみた
というエントリで試したSURFを動画に適用してみました.
※追跡対象は「実例で学ぶゲーム3D数学」です.

ある程度オクルージョンが発生してても追跡できてますね.

Comments 1 コメント »

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の方に利用方法を書くかもしれません.

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

C++:
  1. //----------------------------------------------------------------------
  2. // 概要       : PS3EyeLibを用いたキャプチャサンプル
  3. // ファイル名 : CapturePS3Eye.cpp
  4. // 使用ライブラリ: 
  5. //  OpenCV for MS-Windows 1.1
  6. //  http://sourceforge.net/projects/opencvlibrary/
  7. //
  8. //  PS3EyeLib
  9. //  http://alexpopovich.wordpress.com/2008/10/20/ps3eye-camera-sdk-for-use-in-your-own-applications/
  10. //
  11. // Author    : dandelion
  12. // Date      : Oct 22, 2008; 20:00
  13. //----------------------------------------------------------------------
  14.  
  15. #include <iostream>
  16. #include <cstdlib>
  17.  
  18. //ヘッダインクルード(OpenCV関連)
  19. #include "cv.h"
  20. #include "cxcore.h"
  21. #include "highgui.h"
  22.  
  23. //ヘッダインクルード(PS3EyeLib関連)
  24. #include "IPS3EyeLib.h"
  25.  
  26. //ライブラリ読み込み(OpenCV関連)
  27. #pragma comment(lib,"cv.lib")
  28. #pragma comment(lib,"cxcore.lib")
  29. #pragma comment(lib,"highgui.lib")
  30.  
  31. //ライブラリ読み込み(PS3EyeLib関連)
  32. #pragma comment(lib,"PS3EyeLib.lib")
  33.  
  34. #define CAPTURE_WIDTH  320 //キャプチャサイズ(幅)
  35. #define CAPTURE_HEIGHT 240 //キャプチャサイズ(高さ)
  36. #define FPS             30 //フレームレート
  37. #define COLOR_DEPTH     24 //depth
  38.  
  39. using namespace std;
  40.  
  41. // 利用可能フォーマット表示関数(プロトタイプ宣言)
  42. void displayAvailableFormats(void);
  43.  
  44. int main(int argc, char *argv[])
  45. {
  46.   int key = 0;
  47.  
  48.   //キャプチャ画像
  49.   IplImage *image = cvCreateImage(cvSize(CAPTURE_WIDTH, CAPTURE_HEIGHT), IPL_DEPTH_8U, 3);
  50.  
  51.   //ウィンドウ
  52.   char* window_name = "Capture using IPS3EyeLib";
  53.   cvNamedWindow(window_name, CV_WINDOW_AUTOSIZE);
  54.  
  55.   // PS3EyeLibオブジェクト生成
  56.   IPS3EyeLib *pCam = IPS3EyeLib::Create();
  57.  
  58.   // 利用可能なフォーマットの表示
  59.   displayAvailableFormats();
  60.  
  61.   // キャプチャフォーマットの設定
  62.   pCam->SetFormat(IPS3EyeLib::GetFormatIndex(CAPTURE_WIDTH,CAPTURE_HEIGHT,FPS));
  63.  
  64.   // イメージ用バッファの確保
  65.   PBYTE pBuffer=new BYTE[(CAPTURE_WIDTH*CAPTURE_HEIGHT*COLOR_DEPTH)/8];
  66.  
  67.   // キャプチャ開始
  68.   pCam->StartCapture();
  69.  
  70.   //ESCキーが押されるまでキャプチャを続ける
  71.   while(key != 0x1b)
  72.   {
  73.     if(pCam->GetFrame(pBuffer, COLOR_DEPTH, false))
  74.     {
  75.       //キャプチャ画像をimageDataにコピー
  76.       memcpy(image->imageData, pBuffer, image->imageSize);
  77.  
  78.       //画像表示
  79.       cvShowImage(window_name, image);
  80.     }
  81.  
  82.     //キー入力
  83.     key = cvWaitKey(1);
  84.   }
  85.  
  86.   // イメージ用バッファの解放
  87.   delete [] pBuffer;
  88.  
  89.   // 後処理(PS3EyeLib関連)
  90.   pCam->StopCapture();
  91.   delete pCam;
  92.  
  93.   // 後処理(OpenCV関連)
  94.   cvDestroyWindow(window_name);
  95.   cvReleaseImage(&image);
  96.  
  97.   return 0;
  98. }
  99.  
  100. // 利用可能フォーマット表示関数
  101. void displayAvailableFormats(void)
  102. {
  103.   cout <<"[Available Formats]" <<endl;
  104.   for(int i=0; i<IPS3EyeLib::GetNumFormats(); i++)
  105.   {
  106.     int width, height, rate;
  107.     char *description;
  108.  
  109.     width       = IPS3EyeLib::GetFormats()[i].width;
  110.     height      = IPS3EyeLib::GetFormats()[i].height;
  111.     rate        = IPS3EyeLib::GetFormats()[i].rate;
  112.     description = IPS3EyeLib::GetFormats()[i].formatTxt;
  113.  
  114.     cout <<description <<endl;
  115.   }
  116. }


現在,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台あっても良いかも.

Comments コメントなし »