Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java4Kinect检索三维关节坐标_Java_Arrays_Coordinates_Kinect_Kinect Sdk - Fatal编程技术网

Java4Kinect检索三维关节坐标

Java4Kinect检索三维关节坐标,java,arrays,coordinates,kinect,kinect-sdk,Java,Arrays,Coordinates,Kinect,Kinect Sdk,我一直在努力实现一项功能,允许我使用XBox 360检测到的人类手势驾驶机器人。目前,我正在尝试读取并打印右手的X坐标,尽管能够检测到骨骼,但该坐标仅返回0.0。我还尝试用其他关节常数替换HAND_RIGHT,但没有效果 这是我的myKinect类,它从Kinect读取值: package printTest; import edu.ufl.digitalworlds.j4k.J4KSDK; import edu.ufl.digitalworlds.j4k.Skeleton; public

我一直在努力实现一项功能,允许我使用XBox 360检测到的人类手势驾驶机器人。目前,我正在尝试读取并打印右手的X坐标,尽管能够检测到骨骼,但该坐标仅返回0.0。我还尝试用其他关节常数替换HAND_RIGHT,但没有效果

这是我的myKinect类,它从Kinect读取值:

package printTest;

import edu.ufl.digitalworlds.j4k.J4KSDK;
import edu.ufl.digitalworlds.j4k.Skeleton;

public class myKinect extends J4KSDK{

    int maxSkeletons = getMaxNumberOfSkeletons();

    Skeleton skeleton;

    @Override
    public void onColorFrameEvent(byte[] arg0) {    
    }

    @Override
    public void onDepthFrameEvent(short[] arg0, byte[] arg1, float[] arg2, float[] arg3) {  
    }

    @Override
    public void onSkeletonFrameEvent(boolean[] flags, float[] positions, float[] orientations, byte[] state) {
        System.out.print(".");
        for (int i = 0; i < maxSkeletons; i++) {
            skeleton = Skeleton.getSkeleton(i, flags, positions, orientations, state, this);

            if (flags[i]){
                skeleton.get3DJoint(Skeleton.HAND_RIGHT);
            }
        }       
    }
}
包装印刷测试;
导入edu.ufl.digitalworlds.j4k.J4KSDK;
导入edu.ufl.digitalworlds.j4k.Skeleton;
公共类myKinect扩展了J4KSDK{
int maxSkeletons=getMaxNumberOfSkeletons();
骨骼;
@凌驾
公共无效onColorFrameEvent(字节[]arg0){
}
@凌驾
public void onDepthFrameEvent(短[]arg0,字节[]arg1,浮点[]arg2,浮点[]arg3){
}
@凌驾
public void onskletonframeEvent(布尔[]标志、浮点[]位置、浮点[]方向、字节[]状态){
系统输出打印(“.”);
对于(int i=0;i
这是我的KinectPrint类,它打印出坐标值:

package printTest;

import edu.ufl.digitalworlds.j4k.J4KSDK;
import edu.ufl.digitalworlds.j4k.Skeleton;

public class KinectPrint {

    public static void main(String[] args) {
        myKinect kinect = new myKinect();
        kinect.start(J4KSDK.SKELETON);
        kinect.setSeatedSkeletonTracking(true);
        System.out.println("Initializing...");

        try {
            Thread.sleep(5000);
        } catch(InterruptedException e) {}

        float handX;
        for(int i = 0; i < 10; i++) {
            handX = kinect.skeleton.get3DJointX(Skeleton.HAND_RIGHT);
            System.out.println(handX);
            try {
                Thread.sleep(1000);
            } catch(InterruptedException e) {}
        }

        kinect.stop();
        System.out.println("Completed!");
    }
}
包装印刷测试;
导入edu.ufl.digitalworlds.j4k.J4KSDK;
导入edu.ufl.digitalworlds.j4k.Skeleton;
公共类KinectPrint{
公共静态void main(字符串[]args){
myKinect kinect=新的myKinect();
开始(J4KSDK.SKELETON);
kinect.setSeatedSkeletonTracking(真);
System.out.println(“初始化…”);
试一试{
睡眠(5000);
}捕获(中断异常e){}
浮动手柄;
对于(int i=0;i<10;i++){
handX=kinect.skeleton.get3DJointX(skeleton.HAND\u RIGHT);
系统输出打印LN(handX);
试一试{
睡眠(1000);
}捕获(中断异常e){}
}
kinect.stop();
System.out.println(“已完成!”);
}
}
其电流输出为:

正在初始化。。。
..........................................................................................................0.0
..............................0.0
.............................0.0
............................0.0
..............................0.0
..............................0.0
..............................0.0
..............................0.0
..............................0.0
..............................0.0

已完成

不链接项目。请用相关代码和您面临的问题更新问题。仅更新问题。谢谢不要链接项目。请用相关代码和您面临的问题更新问题。仅更新问题。谢谢