2012-07-20 9 views
10

私は現在コンピュータビジョンコースに在籍しています。私は最終的なプロジェクトとして、Kinectとやり取りする小さなゲームを作ります。Javaを使用してKinectにアクセスするにはどうすればよいですか?

私は今までゲームを作ることに本当に挑戦したことがないので、このゲームをJavaで作っていきたいと思います。しかし、私はデプスデータにアクセスする方法を見つけることができません(私はちょうどそれをいくつかのJavaデータ構造にパックする必要があります)とRGBデータ(同じ考え方)。

今、私はKinectと「話す」方法があります。私はthisのチュートリアルに続き、ターミナルのコマンドglviewを使ってキネクトを検出することができます。

私はKinectを使用させるためにJavaライブラリと約束したものを持っていますが、Javaを使って「ビルド」されているので、実際にはJavaではありませんGUIと通常のJava機能

私がやりたいことは何とか、Javaプログラムのトップにあるimport random.Kinect.code;を呼び出すことで、getDepth()やgetRGB()などの最も基本的なKinect機能を使用して、Javaのその他すべてを実行できるようにします。

誰も私がこれを行う方法を知っていますか? (私はMAC OSX Lionを実行しています)

+0

これはjavaを使用したインターフェイスのようですか? –

+0

もしOpenKinectがあなたのものなら、[JavaCVpro](http://www.mon-club-elec.fr/pmwiki_reference_lib_javacvPro/pmwiki.php)はうまくいくはずです... –

答えて

7

あなたが処理を使用している場合は、私が利用可能ラッパーのいずれかを使用してお勧めします。

両方を処理十分に文書化されており、多くの有用な例が含まれています。

simpleOpenNI sample

+0

それは事実ですが、私は処理していますが、Javaの奇妙な形ですが、Java言語の全面的な使い方が奇妙な構文/ショートカットを使用することを許しているかどうか分かりますか? – Alex

+0

私はこれらのライブラリをProcessing IDEとeclipseでosx 10.6でも使用しました。あなたのセットアップは何ですか?独自の処理を使用するか、Javaプロジェクトのライブラリとして使用するかは問題ありません。 eclipseの場合、[Proclipsing](http://code.google.com/p/proclipsing)をご覧になるか、単にJavaプロジェクトを作成して、Processingのcore.jarを「手動で」処理したい場合はそれを使用してください。 –

+0

単純なテキストエディタとコマンドラインを使ってプログラムを作成したいのですが、私はopenkinect(libfreenect)Javaラッパーをどのように利用するかを発見することでいくつかの進歩を遂げました。基本的には、2つのジャーを含め何らかの形でコンパイルされていました。 < - 私はこれらのプログラミングコンセプトのほとんどをかなり新しくしています。私が今説明した方法と同様に、Processingの 'core.jar'に何らかの方法で触れることができますか?私のJavaプログラムのメソッドのカップル?もしそうなら、あなたは私を助けようとして、どうすればいいのか説明できますか?これまでの助けてくれてありがとう! – Alex

1

私はいくつかのアイデアをお伝えしますが、私はKinectで試してみませんでした。
あなたは、「Java経由でいくつかのハードウェアにアクセスする方法」の質問の下で質問することができます。 あなたが私たちに提示したチュートリアルでは、Kinectにアクセスするためのライブラリ、さらに Pythonのラッパーを紹介しています。
あなたができることは、Pythonコードがラッパーをどのように実装したかを見て、JNI/JNAを使って独自のラッパーを構築することです。
さらに、私はJNectプロジェクトを調べました。これは別の答えでここに述べました@npintiが投稿しました。
eclipseプラグインには、
JNIコード(リジナルSDKコードをラップする)とeclipseプラグイン自体のEcipse RCPコードの2つの部分があります。
Eclipse RCPの部分を無視し、独自のJNIラッパーを開発するために必要なものを参照するために、JNIの実装に焦点を当てることをお勧めします。
Windowsベースの実装(たとえば、 - Kinect SDKがWindows上で動作し、Mac上でコードを実行する必要があるなど) - 私は自分のコード+いくつかのJNIチュートリアル+ Pythonラッパーを読むことであなたが提供したリンクは、あなたが提供したリンクで提示されたライブラリへのJNIラッパーの作成方法を理解するでしょう。
また、ハードウェアと通信する方法として、JNAを使用し、JNIを使​​用することはお勧めしません。
最後に、Java Script Engineを使用して、Java VODからPythonコード(Pythonラッパー)を呼び出すことができます。どのくらい役立つのかは分かりませんが、それを撃つことができます。

+0

残念ながら私は全体を見逃してしまったようです - Windows 7 Only * deal ...これに対処するために、OPはWindowsベースの仮想マシンの使用を検討するかもしれません。 – npinti

2

私は正確に同じ問題を抱えていました。私はコンピュータビジョンの研究にJavaのKinectを使いたいと思っていました。私はあなたのようなMac OSXライオンを持っていました。私が見つけた解決策は、自分のMac(VMWareまたはParallelsまたはMicrosoft HyperVを使用)でWindows 7の仮想コピーを実行し、Javaネイティブインターフェイス(JNI)を使用するKinect SDKのJavaバインディングであるopen source J4K Java for Kinect libraryを使用することです。もちろん、Windowsを実行するコンピュータでこのオープンソースライブラリを直接使用することもできます。

Kinect用のJ4K Javaライブラリには、わずか10行のJavaコードでkinectベースのアプリケーションを作成する方法に関するチュートリアルもあります。

深さ、ビデオ、およびスケルトンのデータをKinectから読み取ってJavaクラスで使用する方法を示すいくつかのソースコードの例もあります。複数のKinectを使用したり、アバターやその他の例をアニメーション化することもできます。ソースコードの例へのリンクはhereです。

あなたのようなコンピュータビジョンの用途に有用であるオープンソースのKinectビューアのスクリーンショットは以下の通りです:enter image description here

私はこの情報が助けたことを願っています。

+0

これで画像処理が遅くなることはありませんか?私は、仮想マシンを介して着信データを延期すると、パフォーマンスが低下すると思われます。 – jorrebor

+0

私はJava 7のインテルi5でJ4Kライブラリを使用しており、非常に集中的な画像処理はリアルタイム(30fps)で達成されました。 @jorreborあなたは実際の例を見ることができます[Demo1](https:// www。youtube.com/watch?v=DMRlhWSZSe8)、[Demo2](https://www.youtube.com/watch?v=RSLd-lSk9ts)、[Demo3](https://www.youtube.com/watch ?v = zBSiOIiPI)。 –

関連する問題