Kinect for windows 10月在中国发布。发布第二天通过京东Kinec我就到手了。
微软的Kinect for windows sdk 发现范例中只包含C#或VB语言开发的项目.
网络上开源的OpenNI仅支持Xbox 360 Kinect 不支持 PC Kinect.
现发布一个JAVA调用kinect for windows的一个工具包(JAVASE).
工具包实现了身体每个部位的监听和语言识别。
安装说明:
需要安装kinect for windows Runtime.
不支持Xbox 360 kinect.不支持OpenNI kinect驱动,仅支持微软的kinect驱动.
kinectbridge.jar中已经包含了所有身体部位的监听listener,在代码中只需注册相应部位的监听器即可.
压缩包内personImage.png是每个节点的名称供大家参考。
需要安装.NET framework4.0
代码中注释就不详细,范例代码有点乱别见怪.那是我从我的java kinect for mario游戏项目中直接抠出来的。^_^
现在分享给大家。
范例中部分代码:
public class Runner extends Thread{
/**
* @param args
* @throws InterruptedException
*/
public static void main(String[] args) throws InterruptedException {
ManagerHelper.INSTANCEOF.openKinect();//开启kinect
ManagerHelper.INSTANCEOF.regsitListener();//注册监听器
}
}
package org;
import org.base.SystemListener;
import org.control.listener.HeadListener;
import org.control.listener.LeftFootListener;
import org.control.listener.LeftHandListener;
import org.control.listener.LeftKneeListener;
import org.control.listener.RightFootListener;
import org.control.listener.RightHandListener;
import org.control.listener.RightKneeListener;
import org.cxy.kinect.KinectManager;
import org.cxy.kinect.body.Body;
public class ManagerHelper {
public static ManagerHelper INSTANCEOF=new ManagerHelper();
/**
* 注册身体监控事件
*/
public void regsitListener()
{
KinectManager.INSTANCEOF.getBody().getHead().setPartChangeListener(new HeadListener());
KinectManager.INSTANCEOF.getBody().getLeftFoot().setPartChangeListener(new LeftFootListener());
KinectManager.INSTANCEOF.getBody().getLeftHand().setPartChangeListener(new LeftHandListener());
KinectManager.INSTANCEOF.getBody().getRightFoot().setPartChangeListener(new RightFootListener());
KinectManager.INSTANCEOF.getBody().getRightHand().setPartChangeListener(new RightHandListener());
KinectManager.INSTANCEOF.getBody().getRightKnee().setPartChangeListener(new RightKneeListener());
KinectManager.INSTANCEOF.getBody().getLeftKnee().setPartChangeListener(new LeftKneeListener());
}
public void openKinect()
{
SystemListener systemListener=new SystemListener();
KinectManager.INSTANCEOF.openKinect(systemListener);
KinectManager.INSTANCEOF.openBodyProcess();//开启身体监控进程
}
/**
* 开启语言识别
* @param words 关键词
*/
public void openSpeech(String[]words)
{
KinectManager.INSTANCEOF.openSpeechProcess(words);
}
public void stopKinect()
{
KinectManager.INSTANCEOF.stopKinect();
}
public Body getBody()
{
return KinectManager.INSTANCEOF.getBody();
}
}
/**
* 监听类
* @author Administrator
*
*/
public class HeadListener implements PartChangeListener {
@Override
public void notifyChanged(Part part) {
System.out.println("头:Y:"+part.getY());
float newy=(part.getY());
if(newy<0)
{
System.out.println("你跳了");
}else
{
}
}
}
public class SystemListener implements KinectListener{
@Override
public void kinectStarted() {
System.out.println("kinect 启动");
}
@Override
public void kinectStoped() {
System.out.println("kinect 停止");
}
@Override
public void onNotifyBody() {
ControlCenter.INSTANCEOF.doWork();
}
@Override
public void onSpeechListened(String word) {
System.out.println("你说:"+word);
}
}
范例和工具包下载地址: