先日Blogに書いた通り、Kinectを動かすためのJava環境を作ったので、OpenNIのお試しとして以前から作りたかった疑似3Dビューワー的な物(Kinectカメラ一個で取った3D画像の視点を変えられるやつ)をとりあえず作ってみた。
前回全く言及しなかったが、それぞれ以下のようなバージョンを使っている。
OS:Mac OS X 10.6.8
Java:1.6.0_29
Eclipse:3.7.1
OpenNI:MacOSX-v1.5.2.7
サンプルの作成には、OpenNIのSampleに入っていた、Java版SimpleViewerのソースコードを使い回す。
1.Depthを取得する
DepthGenerator depthGen = DepthGenerator.create(context);
DepthMetaData depthMD = depthGen.getMetaData();
ShortBuffer depth = depthMD.getData().createShortBuffer();
depthというShortBufferの中に 640 * 480 の長さで 0 から 10000の
short値が入ってる。(測定不能の場合0が入っているっぽいので、除外した方がよい)
2.カメラ画像(Image)を取得する
ImageGenerator imageGen = ImageGenerator.create(context);
ImageMetaData imageMD = imageGen.getMetaData();
ByteBuffer image = imageMD.getData().createByteBuffer();
imageというByteBufferの中に 640 * 480 * 3 の長さでRGB値が入ってる。
Color オブジェクトを作るには、以下のようにする。
Color color = new Color(image.get() & 0xff, image.get() & 0xff, image.get() & 0xff);
3.グルグルまわす部分を作る。
グルグルまわす機構は、とくにOpenNIは関係ないので省略。座標を再計算してimageに書き出して、Graphicsにpaintしているだけ。今回は20秒で鉛直方向を軸にしてくるくる周り続ける機構を作った。
以上、画像を貼りたいが家が汚いので貼らないことにする。
---
疑似3Dビューワーとして格好いいのは
Kinect RGBDemo v0.6.1
などがある。
前回全く言及しなかったが、それぞれ以下のようなバージョンを使っている。
OS:Mac OS X 10.6.8
Java:1.6.0_29
Eclipse:3.7.1
OpenNI:MacOSX-v1.5.2.7
サンプルの作成には、OpenNIのSampleに入っていた、Java版SimpleViewerのソースコードを使い回す。
1.Depthを取得する
DepthGenerator depthGen = DepthGenerator.create(context);
DepthMetaData depthMD = depthGen.getMetaData();
ShortBuffer depth = depthMD.getData().createShortBuffer();
depthというShortBufferの中に 640 * 480 の長さで 0 から 10000の
short値が入ってる。(測定不能の場合0が入っているっぽいので、除外した方がよい)
2.カメラ画像(Image)を取得する
ImageGenerator imageGen = ImageGenerator.create(context);
ImageMetaData imageMD = imageGen.getMetaData();
ByteBuffer image = imageMD.getData().createByteBuffer();
imageというByteBufferの中に 640 * 480 * 3 の長さでRGB値が入ってる。
Color オブジェクトを作るには、以下のようにする。
Color color = new Color(image.get() & 0xff, image.get() & 0xff, image.get() & 0xff);
3.グルグルまわす部分を作る。
グルグルまわす機構は、とくにOpenNIは関係ないので省略。座標を再計算してimageに書き出して、Graphicsにpaintしているだけ。今回は20秒で鉛直方向を軸にしてくるくる周り続ける機構を作った。
以上、画像を貼りたいが家が汚いので貼らないことにする。
---
疑似3Dビューワーとして格好いいのは
Kinect RGBDemo v0.6.1
などがある。