備忘録

開発でつまったところの備忘録.不定期に更新します.

OpenNI2+NiTE2+Xcode5+Xtion環境構築

引き続きNiTEのサンプルを動かしてみました。

NiTEのインストールは

 NiTEの最新版を落とす

 sudo ./install.sh

 ~/ .bash_profileにsource /Users/......./NiTEDevEnvironmentを追加

でサンプルが動くはずです。

Xcodeでの動かし方は

OpenNI2をXcodeで動かしたの+同じことをNiTE2でやる

です。

あと何故か

#include <NiTESampleUtilities.h>

となっていますがこれは

#include "NiTESampleUtilities.h"

に直します。

これだけ。面倒なので詳細は割愛。普通に動きました。

OpenNI2+Xcode5+Xtion環境構築

OpenNI2のインストールからサンプルをXcode5で動かすまでに詰まったのでメモ

 

OpenNI2のインストールは

http://blog.totakke.net/

を参考にしましょう。

 

やった手順は

 OpenNIのページから最新版を落とす

 sudo ./install.sh

 ~/.bash_profileにsource /Users/....../OpenNIDevEnvironmentを追加

でオッケーです。これでBinのなかのサンプルが動きます。

 

またこれはXtionだと必要ないかもですが恐らくKinectを動かす為に

 brew install libusb --universal

 brew install libtool

 brew install libfreenect

あたりをやっておきました。これはいつでもbrew uninstallで消せますので

Kinectで動かすためにはこれ+freenectDriverなるものが必要らしいですがまだやってないです。

 

さてXcodeでの動かし方ですが、とりあえずSimpleViewerを例にすると、手順は

 新プロジェクトをCommandLineTool(C++)で作る

 SimpleViewerのソースコードをプロジェクトに追加、main.cppはコピペで置き換える

 プロジェクトのBuildSettingでHeaderSearchPathにOpenNI2/Includeを、LibrarySearchPathにOpenNI2/Redistを追加

 BaseSDKを現在のOSのバージョンに合わせる

 ターゲットのBuildPhasesにlibOpenNI2.dylib、GLUT.framework、OpenGL.frameworkを追加

これでBuild Succeedするので動くはずなんですが、なぜかライブラリが見つからないとおこられてしまうので、Users/(UserName)/Library/Developer/Xcode/DerivedData/プロジェクト名-文字列/Build/Products/DebugにRedistフォルダの中身を全部コピペします

 

これで動くはずです!

次はNiTEを動かそうと思います。

ofAddListenerでエラーが出るの解決した

ofEventsのイベント通知メソッド

ofAddListener、ofRemoveListenerで

No matching function call to 'ofAddListener'

と出てどうしようもなく困っていたのですが、

    ofAddListener(ard.EInitialized, this, &testApp::setupArduino);

の、setupArduinoを

もともと

 

void setupArduino();

で宣言していたのを

 

void setupArduino(const int & version);

というように引数をちゃんとサンプル道通りにしたら通りました!

 

意味はちょっと分からないですが、写すならちゃんと写せということですね。

ofxOpenCV使ってみた

ofxOpenCV使ってみました。

使い方は、

アドオンにofxOpenCVを追加して、

Header Search Path にof_v0.8.0_osx_release/addons/ofxOpenCv/libs/opencv/includeを追加してライブラリのパスを通せばOKです。

 

使い方として一つ注意するのが、ほとんどのサイトでは

vidGrabber.getFrame();

として現在のフレーム画像を取得していますが、8.0ではgetFrameがないので、

vidGrabber.update();

として取得するということです。

 

とりあえず定番の田所さん

http://yoppa.org/ma2_10/2214.html

背景画像からの差をとって輪郭抽出をしています。

 

顔認識やってみたけど遅かったし認識精度悪し

http://inter-arteq.com/facetracking/

はやりのfacetrackerとかのほうがいいのかな

 

最後にcolor tracking

http://d.hatena.ne.jp/afeq/20101025/1287932718

とか

http://inter-arteq.com/colortracking/

とか

早くていい感じです。

iOSでカメラプレビュー

iOSアプリでカメラプレビューの実装。

 

先輩に訪ねたところ、カメラは基本的にAVFoundation、画像処理はCoreMediaあたりを使って、OpenCVは糞ということです。

 

とりあえずまずカメラプレビューを実装してみます。

一番はやっぱりappleの公式ドキュメント

https://developer.apple.com/jp/devcenter/ios/library/documentation/AVFoundationPG.pdf

で、

あとは

http://teru2-bo2.blogspot.jp/2012/05/ios.html

http://shinen1.wordpress.com/2012/12/25/ios_realtime_videoprocess/

と、万世端のgitlabのmaster>panoramagyro/iPadARTest/PanoramaViewController.mmを参考に実装できました。

 

流れ的には

CaptureSessionを作る>VideoInputを設定>VideoOutputを設定>previewLayerを作って表示したいviewのlayerのサブレイヤーにする

って感じです。

 

端末を傾けたときにカメラが回転しないという問題が起きて、

http://program.station.ez-net.jp/special/handbook/objective-c/uidevice/orientation.asp

http://craft-notes.com/iphone/uikit/iphone-ipad%E3%81%AE%E7%94%BB%E9%9D%A2%E3%81%AE%E5%90%91%E3%81%8D%E3%82%92%E6%A4%9C%E5%87%BA%E3%81%99%E3%82%8B/

あたりを参考に、傾けたときに画像を回転しなければならないのかと思いましたが、

端末の自動回転をロックすれば大丈夫なことがわかりました。

xcode5にしたときにOFのiOSコードでエラーが出る問題

xcodeを5にしたら今まで動いていたopenframeworks for iosのコードで

"Use of undeclared identifier 'GL_STENCIL_INDEX'"

とかいうエラーが出るようになりました。

解決策っぽいのがここのブログ

http://verytired.hateblo.jp/entry/2013/10/16/144808

に乗ってます

 

でもブログに乗っているように

lexical processor issue tr1/memory file not found

とかいうエラーがでてもうよくわからないので、

とりあえずもとに戻して放置します

macにopenframeworksを導入

macにofを入れたので一応メモ。

 

http://www.myu.ac.jp/~xkozima/lab/ofTutorial1.html

を見れば基本できる。

インストールしてxcodeでビルドするだけ。

 

ただこれでexampleを実行しようとするとsuceedにはなるけど何もおこらない。

http://nazo-works.hatenablog.com/entry/2013/01/10/183018

の下のほうを参考に

Xcode の Product -> Edit Scheme -> Run -> Executable のところを NoneからemptyExample.app

に切り替えれば実行されるようになります。

 

こんだけ。