如何保存从Kinect 2.0收集的Body数据并将其保存在JSON文件中?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何保存从Kinect 2.0收集的Body数据并将其保存在JSON文件中?相关的知识,希望对你有一定的参考价值。

我正在为我的项目使用lightbuzz库。我试图从“BodyWrapper _captureBody”获取数据并将iy保存在文件中。 “_captureBody”的内容是here ...我试图序列化对象,然后我试图复制.Json文件中的内容,但这里是我得到的error。它说我不能序列化或脱盐它。这是代码的一小部分:

if (_mode == ViewMode.Capture && _currentBody != null)
        {
            _capturedBody = _currentBody.ToBodyWrapper(); //capture the data of the current body coming from kinect.
            if (i < 1)
            {
                capturebody[i] = _capturedBody;
                i++;
            }
            if (i == 1)   //i want to save the data only once
            {

                string json = new 
                javascriptSerializer().Serialize(_capturedBody);

                //write string to file
                System.IO.File.WriteAllText(@"C:path.json", json);
            }
        }

您可以使用此链接“https://vitruviuskinect.com/documentation/windows/html/e07dd042-e9f1-c9b8-2e94-c20576115f3d.htm”作为参考

答案

关节是具有关键JointType的字典。正如您在异常中看到的那样,键需要是字符串或对象。我认为如果你创建自己的类系统(使用body作为参数的构造函数)然后确保它是可序列化的,那会更好。这意味着您需要更改该属性。根据自己的经验,我试图远离字典和JSON。也许将它转换为具有Custom Joint类的类,该类具有枚举的额外属性。

另一答案

我现在自己解决了这个问题。这就是我做的,

我使用方法ToJSON来序列化Kinect Body对象。

string json = body.ToJSON();   //The body contains all the Kinect generated data.

然后我使用以下方法保存文件:

File.SaveAllText(json, "path-of-file.json");

如果上面的语法不起作用,那么你也可以用来保存.json文件:

File.WriteAllText(path-of-file,json);

最后再次阅读我使用过的JSON文件:

BodyWrapper body = File.ReadAllText("path-of-file.json").ToBodyWrapper();

无论如何,谢谢你的帮助... :-)

以上是关于如何保存从Kinect 2.0收集的Body数据并将其保存在JSON文件中?的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 使用继承Kinect2Grabber的CustomGrabber从Kinect v2中检索Body(Joint)

Kinect 音频 PCM 值

Kinect 2.0 默认姿势的中文意思

如何在.net 2.0中将数据从数据库或DataTable保存到Excel文件而没有响应

具有不同名称的多个图像存储 kinect

从 Kinect 获取 BVH 文件的 MOTION 数据