XcodeでOpencv2.4

OpenCvの開発環境をMacで構築した

ここを参考にした
http://www.tkd55.net/blog/?p=81


macports便利だなー

プロジェクトの設定だけメモっとく

  • Build Settingsタブで
    • Header Search Pathsを「/opt/local/include」
    • Library Search Pathsを「/opt/local/lib」
  • Build Phasesタブで
    • Link Binary With Librariesに必要なLibraryを追加、例えば↓

   ”libopencv_core.2.4.1.dylib”
   ”libopencv_highgui.2.4.1.dylib”
   ”libopencv_imgproc.2.4.1.dylib”


追記
相対パスどうやって指定するんだこれ・・・
ファイルの読み書きが絶対パスを指定しないとできない


さらに追記
実行ファイルはDerivedDataフォルダの下層に書き出される
DerivedData//Build/Products/Debug/ここ
そしてDerivedDataフォルダはデフォルトでは
/Users//Library/Developer/Xcode/DerivedData←ここ
このままでは絶対パスでしかファイルの読み書きができないので
File->Project SettingsでDerived Data Location を project-relativeに変更してやる

バージョン管理始めてみた

開発用PCが複数台になってソースコードの管理が混乱してきたためバージョン管理ソフトを導入することにした。
とりあえず、有名で簡単らしいgithubを導入してみた。
なお、これから出てくる単語は自分が理解できる程度のものを使っているので正確ではない(間違っている場合もあるかも)

githubにアカウントを作成

ここ→https://github.com/

sshキーペアを作成 & githubに登録

この操作はそれぞれのPCで行う。
ssh keysにid_rsa.pubの中身を丸ごとコピペする

初期設定

git config --global user.name "ユーザ名" (ユーザIDではない)
git config --global user.email 登録したメールアドレス

リポジトリの作成

リポジトリはデータの保管場所、らしい
リモートのリポジトリはボタン押して支持に従えば出来る
ローカルのリポジトリリポジトリにしたいフォルダに移動してgit init

リポジトリの関連付け

git remote add origin git@github.com:ユーザID/リポジトリ名.git
これを実行するとorigin = git@github.comとなる

すでに存在するフォルダをgitの対象フォルダにする

好きなフォルダに移動して「git init」

githubリポジトリをローカルのリポジトリにコピーする

git clone git@github.com:ユーザID/リポジトリ名.git
を実行すると、現在いるフォルダにリモートのリポジトリの内容がコピーされる

変更内容のアップロード

一番最初は
git add 変更したファイル名
git commit -m '変更内容'
git push origin master
originは上で登録したremote repositoryの場所を示す
masterは現在いるrepositoryを示す
二回目以降は
git add 変更したファイル名
git commit -m '変更内容'
git push

変更されたファイルをダウンロード

git pull

古いバージョンのファイルを手に入れる

どうやるんだろう・・・
git revert コミット名で前のバージョンに戻るらしい
コミット名はたぶんこの図の右端に出てる奴


この辺りの記事を参考にした
http://www.slideshare.net/nullpopopo/github-12293342
http://blog.glasses-factory.net/2011/08/16/github
http://wp.graphact.com/2011/02/07/github-windows-2011/
http://sourceforge.jp/magazine/09/03/16/0831212

flycapture SDKのバグ?

FlyCapture SDKの最新版( v2.3 Beta 8 )をVC2010で使ったら、デバッグ時のみ 0xc0150002のエラーが出る。
原因はFlycapture2d.dllらしいので中身を丸ごとFlycapture2.dllに変えたら動いた。
いいのかこれで・・・

Unityメモ

Unityを使う必要があったので使い方のメモを残しておく

Unity ver. 3.4.2 を使用

  • プロジェクトの作成

FileからNew Project を選択
Standard Assetsにチェックして適当な名前をつけてCreate
Layoutは使いやすいように設定する

  • オブジェクトの追加

GameObjectからCreate Other->作りたいオブジェクト(ポリゴンやカメラ、ライト)を選択する

  • ファイルの保存

Projectタブにファイルを保存するフォルダを作成する
FileからSaveを選んで作成したフォルダに保存する

  • 挙動の追加

オブジェクトを選択しComponent->Physics->Rigidbodyを選択する

プロジェクトのフォルダにスクリプト用フォルダを作成し、中にスクリプトファイルを追加する

関連付けたいスクリプトをオブエジェクトへドラッグ&ドロップ

oscpackの使い方(VC2010編)

久しぶりにOSCをつかってみたら少し手間取ったのでメモ書きを残しておく。

0.osc関連ファイルはすべてプロジェクト内にコピーする。
1.ip/win32フォルダにあるcppをすべてipにコピーする
プロパティを開き以下の操作を行う
2.構成プロパティ->C/C++プリプロセッサに「__WIN32__」を追加する。
3.構成プロパティ->リンカ->入力の追加の依存ファイルに「ws2_32.lib」と「winmm.lib」を追加する。

おわり

ジオメトリシェーダ

DirectX10のレンダリングパイプラインは次のようになっている(正確には違うんだけど)。
入力

頂点シェーダ

ジオメトリシェーダ

ラスタライザ

ピクセルシェーダ

出力


頂点シェーダとピクセルシェーダはDirectX9の時に触ったことがあるけど、ジオメトリシェーダは初めて。
ジオメトリシェーダでは頂点数の増減や移動ができる
これによって例えばモデルに毛を生やしたり出来るようになる。
DirectXSDKに付いてきたサンプルではポリゴンの各頂点を法線方向に移動させて爆破を表現している。


ジオメトリシェーダの詳細についてはMSDNを参照すること。チュートリアル 13:ジオメトリ シェーダー | Microsoft Docs
ここでは重要そうなところだけ抜粋しておく

  • ジオメトリシェーダの初期化
    • maxvertexcountの設定。maxvertexcountは出力される頂点の最大数を示す、まぁ名前の通り。
    • 関数の作成、GS〜とかが一般的。第一引数はtriangleを入れて3角形が処理されることを示し、頂点フォーマットと識別子を入力する。第二引数には出力形式とストリームを入れる。


[maxvertexcount(3)]
void GS( triangle GSPS_INPUT input[3], inout TriangleStream<GSPS_INPUT> TriStream )


今のところは使う予定ないな