Tôi muốn lưu trữ dữ liệu chụp chuyển động từ Kinect 2 dưới dạng tệp BVH. Tôi tìm thấy mã mà làm như vậy cho Kinect 1 có thể được tìm thấy here. Tôi đã đi qua mã và tìm thấy một số điều mà tôi đã không thể hiểu được. Ví dụ: trong mã được đề cập, tôi đã cố gắng hiểu chính xác đối tượng Skeleton skel
, được tìm thấy ở một số nơi trong mã, thực sự là. Nếu không, có bất kỳ ứng dụng đã biết nào có sẵn để thực hiện dự định không?Store Kinect's v2.0 Chuyển động sang BVH File
EDIT: Tôi đã cố gắng thay đổi Skeleton skel thành Body skel mà tôi nghĩ là đối tượng tương ứng cho kinect SDK 2.0. Tuy nhiên, tôi đã gặp lỗi khi cố gắng lấy vị trí của cơ thể:
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);
Tôi đã gặp lỗi khi gọi chức năng Vị trí cho thân xe trượt. Làm thế nào tôi có thể lấy X, Y, Z của bộ xương trong sdk 2.0 ?? Tôi cố gắng để thay đổi ba dòng trên để:
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);
EDIT: Về cơ bản tôi quản lý để lưu trữ các tập tin một BVH sau khi kết hợp bodyBasicsWPF và kinect2bvh. Tuy nhiên, có vẻ như bộ xương tôi đang lưu trữ không hiệu quả. Có những cử động lạ ở khuỷu tay. Tôi đang cố gắng hiểu nếu tôi phải thay đổi một cái gì đó trong tập tin kinectSkeletonBVH.cp. Cụ thể hơn, những thay đổi trong định hướng trục chung cho phiên bản kinect 2 là gì. Làm thế nào tôi có thể thay đổi dòng sau: skel.BoneOrientations[JointType.ShoulderCenter].AbsoluteRotation.Quaternion;
Tôi đã cố gắng thay đổi dòng đó với skel.JointOrientations[JointType.ShoulderCenter].Orientation
. Tôi có đúng không? Tôi đang sử dụng đoạn mã sau để thêm doanh với các đối tượng BVHBone:
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);
Tôi không thể hiểu nơi bên trong mã the axis for every Joint
được tính toán.
tôi bỏ qua vấn đề này tuy nhiên Nếu bạn có bất kỳ giải pháp nó là tốt để đăng nó ở đây không chỉ cho tôi, vì tôi nhận thấy rất nhiều người tìm kiếm lưu trữ các chuyển động trong các tập tin bvh. –
Tôi có thể lưu trữ thông tin Kinect v1 và v2 cho một tệp txt. Tệp BVH này là thứ mà tôi vừa đọc và nó sẽ là một tính năng mà tôi sẽ bổ sung vào phần mềm mua lại của chúng tôi. Nếu bạn quan tâm đến các tệp * .txt, hãy cho tôi biết. Tôi chưa có giải pháp BVH phù hợp. – 16per9
kiểm tra: http://pterneas.com/2014/03/13/kinect-for-windows-version-2-body-tracking –