zoukankan      html  css  js  c++  java
  • step1---------LeapMotion开发记录------>leap motion 的Frame数据的序列化与反序列化

    第一阶段:LeapMotion Frame data的收集/序列化/反序列化

      概述:研究LeapMotion java API,开发出收集Frame数据并序列化成byte[]之后存放至以手势名称命名的文件中,以及将已经存储了Frame数据的文件凡序列化为Frame对象的程序。

        参考leapMotion-java API序列化与反序列化demo编写了最简单的程序。
        程序功能:将leapMotion采集到的帧序列化成byte数组之后存放至文件中。每个文件可以存放若干帧数据。(数据格式-->帧长度+Fram数据+帧长度+Fram数据)

      编程思路

        step1:新建java工程,导入LeapMotion java API和相关动态库(leap.jar   Leap.dll  LeapJava.dll)

        step2:导入Leap中的Sample.java,测试step1中相关文件是否成功导入

        step3:开发自己的程序(采集Frame数据-->序列化并存储至文件;文件反序列化获得List<Frame〉)

               step3最终开发结果包含下面几个类

            LeapMotionFrameFileOperation.class(序列化与反序列化的具体实现类)
            CollecteFrameDataListener.class(LeapMotion的Listener)
            CollectFrameData.class(main:调用序列化函数采集Frame数据并存储成文件)
            DisplayFileData.class(main:调用反序列化函数读取Frame文件获得  List<Frame>集合)

        step4:将上述开发结果导出成可执行程序

            eclipse中选中工程,export

            解压并添加相关文件如dll,最终结果如下

            

             

        

         step5:进入DOS,使用上述程序 

            1)收集leapMotion的Frame数据,并且将其序列化后存储至一个TXT文件中
              DOS进入runnable.zip解压后的文件夹
              运行java CollecteFrameData
              结合leap motion自带工具visualizer,待手势稳定之后在DOS中输入手势名称作为Frame数据存放的文件的名称
              程序运行完毕之后,可以看到runnable/LeapMotionData/FrameData/文件夹下有你刚刚存的文件

            2)查看Frame文件中究竟都存储了哪些Frame对象序列化后的结果
              DOS进入runnable.zip解压后的文件夹
              运行java DisplayFileData
              根据提示输入想要查看的文件名,如gesture1.txt
              就可以看到文件数据反序列化变成的Frame对象数据
                (注:上述运行方法只能将结果输出到DOS命令行窗口,
                (可以使得在命令行输出的数据信息重定向输出到文本文件中,具体按照下面的方式进行:
                (例如,在DOS命令行输入java DisplayFileData 〉E:gesture1Frame.txt    
                (就可以将原本应该在DOS命令行窗口输出的数据输出到E:gesture1Frame.txt文件中
                (小bug:现在有些东西还没有调通,只能先将gesture1.txt之类的文件先拷贝至runnable文件夹下,然后按照上述步骤操作才可以)

            

    学习的过程中总会得到一些心得体会,认真地将它们记录下来并分享给每一个愿意花费时间去阅读它们的人,然后意外地收获某个读者的评论,从而激发出新的感想,是一件十分令人欢快的事。如果你也在研习这方面的知识,欢迎加入到我们的队伍中来,和我们一起进步吧(^_^)
  • 相关阅读:
    MySQL 5.7 Invalid default value for 'CREATE_TIME'报错的解决方法
    浅析mysql中exists 与 in 的使用
    mysql 索引原理
    内存溢出与内存泄漏
    java 内部类详解
    JAVA中重写equals()方法的同时要重写hashcode()方法
    Java中volatile关键字解析
    JDK1.8 HashMap源码分析
    mysql 行转列 列转行
    Java多线程(十)——线程优先级和守护线程
  • 原文地址:https://www.cnblogs.com/lxrm/p/6112519.html
Copyright © 2011-2022 走看看