Kinect depolamak, hareket 2.0 dosya BVH için sdk
Kinect 2'den hareket yakalama dosyası bvh için saklamak istiyorum. Hareket bvh için yakalama ama kinect 1 here bulunan dosya uygulayan bir kod buldum. Ama ben anlayamıyorum Birkaç şey buldum kodu çalışma. Öncelikle orada hareket kinect 2.0 bvh dosya depolamak için herhangi bir uygulamasıdır. Söz kodda ikincisi tam olarak kod içinde çeşitli yerlerde bulunan İskelet iskelet nesnenin ne olduğunu kavramak için çalışıyorum. Bu konuda bir fikriniz var mı?
Vücut İskeleti skel değiştirmeye çalıştım skel kinect SDK 2.0 correspondant nesne olduğunu düşünüyorum. EDİT: Ancak vücut pozisyonu almayı denediğimde hata aldım:
tempMotionVektor[0] = -Math.Round( skel.Position.X * 100,2);
tempMotionVektor[1] = Math.Round( skel.Position.Y * 100,2) 120;
tempMotionVektor[2] = 300 - Math.Round( skel.Position.Z * 100,2);
Vücut fonksiyonu Pozisyonu skel çağırırken errros aldım. Nasıl X almak, sdk iskeletin Y Z 2.0 miyim? Yukarıdaki üç satırı değiştirmeye çalıştım:
tempMotionVektor[0] = -Math.Round(skel.Joints[0].Position.X * 100, 2);
tempMotionVektor[1] = Math.Round(skel.Joints[0].Position.Y * 100, 2) 120;
tempMotionVektor[2] = 300 - Math.Round(skel.Joints[0].Position.Z * 100, 2);
EDİT: Temelde bodyBasicsWPF ve kinect2bvh birleştirerek sonra bir bvh dosya deposu başardı. Ancak saklama ben iskelet verimli değil gibi görünüyor. Dirsek garip hareketleri vardır. Eğer dosyanın içinde bir şey değiştirmek zorunda kalırsam anlamaya çalışıyorum kinectSkeletonBVH.cp. Daha spesifik olarak ne kinect 2 sürüm için ortak eksen yönünü değiştirir. Nasıl aşağıdaki satırı değiştirebilirim: skel.JointOrientations[JointType.ShoulderCenter].Orientation
ile değiştirmeye çalıştım skel.BoneOrientations[JointType.ShoulderCenter].AbsoluteRotation.Quaternion;
. Haksız mıyım? Aşağıdaki kodu BVHBone nesneleri için ortak eklemek için kullanıyorum:
BVHBone hipCenter = new BVHBone(null, JointType.SpineBase.ToString(), 6, TransAxis.None, true);
BVHBone hipCenter2 = new BVHBone(hipCenter, "HipCenter2", 3, TransAxis.Y, false);
BVHBone spine = new BVHBone(hipCenter2, JointType.SpineMid.ToString(), 3, TransAxis.Y, true);
BVHBone shoulderCenter = new BVHBone(spine, JointType.SpineShoulder.ToString(), 3, TransAxis.Y, true);
BVHBone collarLeft = new BVHBone(shoulderCenter, "CollarLeft", 3, TransAxis.X, false);
BVHBone shoulderLeft = new BVHBone(collarLeft, JointType.ShoulderLeft.ToString(), 3, TransAxis.X, true);
BVHBone elbowLeft = new BVHBone(shoulderLeft, JointType.ElbowLeft.ToString(), 3, TransAxis.X, true);
BVHBone wristLeft = new BVHBone(elbowLeft, JointType.WristLeft.ToString(), 3, TransAxis.X, true);
BVHBone handLeft = new BVHBone(wristLeft, JointType.HandLeft.ToString(), 0, TransAxis.X, true);
BVHBone neck = new BVHBone(shoulderCenter, "Neck", 3, TransAxis.Y, false);
BVHBone head = new BVHBone(neck, JointType.Head.ToString(), 3, TransAxis.Y, true);
BVHBone headtop = new BVHBone(head, "Headtop", 0, TransAxis.None, false);
Kodu her Ortak için eksen hesaplamak nerede olduğunu bir türlü anlamıyorum.
CEVAP
Yöntem 5 yukarıdaki kod analiz sonra, oryantasyon verileri aşağıdaki gibi, atama
resultingAngles[1] = orientationData[0]; // orientation z axis to y axis
resultingAngles[2] = orientationData[1]; // orientation x axis to z axis
resultingAngles[0] = orientationData[2]; // orientation y axis to x axis
Y z x şekilde dönüş yaptım. Oryantasyon.. değiştirmeye çalışın
Kontrol edin ve bana haber ver.. orada sorun olabilir
Lütfen etkinlik değerleri için belgelerine bakın http://developer.android.com/guide/topics/sensors/sensors_position.html
Sıkı çalışmanız için teşekkürler..
Dosya sistemi farklı olarak bir verita...
Hareket Gıt ile yeni bir şube için en ...
Hareket mevcut, uncommited Git yeni bi...
Nasıl bir proje içinde tek bir dosya i...
Takibi bırak ve Git içinde bir dosya i...