10

私は現在コンピュータビジョンコースに参加しており、最後のプロジェクトでは、Kinectと相互作用する小さなゲームを作成します。

今までにゲームを作ることに挑戦したことがなく、言語に非常に慣れているので、このゲームをJavaで作成したいと思います。しかし、Depthデータ(Javaデータ構造にパックする必要があるだけです)とRGBデータ(同じアイデア)にアクセスする方法を見つけることができないようです。

今、私はKinectと「話す」方法があります。このチュートリアルに従いglview、ターミナルのコマンドを使用してkinectを検出できます。

Kinectを使用できるようにするJavaライブラリになることを約束したProcessingというものがありますが、Javaを使用して「構築」された独自の言語を使用しているため、実際にはJavaではないため、すべてのGUIと通常の言語を使用することはできません。 Javaの機能。

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

誰かが私がこれを行うことができる方法を知っていますか?(ところで、私はMAC OSX Lionを実行しています)

4

3 に答える 3

7

Processingを使用している場合は、利用可能なラッパーの1つを使用することをお勧めします。

どちらも十分に文書化されており、役立つ例がたくさん含まれています。

simpleOpenNIサンプル

于 2012-07-20T10:00:05.140 に答える
2

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

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

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

あなたのようなコンピュータビジョンアプリケーションに役立つオープンソースのKinectビューアのスクリーンショットを以下に示します。ここに画像の説明を入力してください

この情報がお役に立てば幸いです。

于 2013-10-24T01:23:33.850 に答える
1

私はあなたにいくつかのアイデアを与えますが、私は認めます-私はKinectでそれらを試しませんでした。
質問は、「Javaを介して一部のハードウェアにアクセスする方法」の質問に分類できます。あなたが提示したチュートリアルでは、Kinectにアクセスするためのライブラリ、さらにはPythonのラッパーも紹介しています。
できることは、Pythonコードがラッパーをどのように実装したかを確認し、JNI/JNAのいずれかを使用して独自のラッパーを作成することです。
さらに、 @npintiによって投稿された別の回答でここに記載されているJNectプロジェクトを調べました。
Eclipseプラグインには2つの部分があり
ます。元のSDKコードをラップするJNIコードと、Eclipseプラグイン自体のEcipseRCPコードです。
Eclipse RCPの部分を無視し、独自のJNIラッパーを開発するために必要なものへの参照としてそれらのJNI実装に焦点を当てることをお勧めします。
これがWindowsベースの実装であっても(つまり、Kinect SDKはWindowsで動作し、たとえばMacでコードを実行する必要があります)-コードを読むことで+いくつかのJNIチュートリアル+リンクにあるPythonラッパーあなたが提供したリンクで提示されたライブラリへのJNIラッパーを作成する方法を理解することを提供しました。
さらに、ハードウェアとの通信方法としてJNIではなくJNAを使用することを検討してください。私は、それがより簡単だと思います。
最後のオプションは、Javaスクリプトエンジンを使用することです。そして、Java VodeからPythonコード(Pythonラッパー)を呼び出す-それがどれだけ役立つかはわかりませんが、試してみることができます。

于 2012-07-20T08:40:04.533 に答える