LeapMotion控制器 java语言开发笔记--(LeapMotion控制器简介)

(1)LeapMotion系统识别和追踪手,手指,以及根手指类似的工具,这个设备运行在一个极小的范围,这个范围拥有个高精度,高跟踪频率可以记录离散的点,手势,和动作。

(2)LeapMotion控制器使用的是光学传感器和红外线,当控制器在其标准操作位置,有大约150度的视野时光学传感器直接沿y轴向上。在控制器上面(2英尺到1英寸)LeapMotion控制器的有效范围从25到600毫米。控制器有一个明确的、高对比度的视图对象轮廓时,控制器的检测和追踪效果最好。                       LeapMotion控制软件将传感器数据和人手的内部模型结合起来去帮助处理有挑战性的跟踪情况。

(3)LeapMotion的坐标系统(如上图所示)LeapMotion系统有一个右手的笛卡儿坐标系统。控制器的物理单位,距离:毫米  时间:微秒(一般是这样,除非有说明) 速度:毫米/秒  角度:弧度

(4)运动跟踪数据:当LeapMotion在其范围内跟踪手,手指和工具时,它提供了更新的一组数据或者一帧。每一个Frame对象代表了一个包含一组像手,手指,工具,以及被被识别出来的手势和描述整体运动场景的一组实体的帧。Frame对象本质上是LeapMotion的根数据模型。

(5)Hands:手模型提供了关于被检测到的手,这个手的手臂,和这个手有关系的手指集合的特性,位置,以及其它特性的信息。

Hands由Hand类来表示。Hand类的 palmNormal() 和direction()返回的向量值定义了手的方向。

LeapMotion软件使用一个内部的模型人手提供预测的跟踪,即使部分手是不可见的。手模型总是提供了五个手指的位置,当一只手的轮廓及其所有手指都清晰可见时跟踪是最优的。LeapMotion软件使用手的可见部分,软件的内部模型,以及过去观测计算最有可能位置的目前不可见的部分。 需要注意的是,掩

藏在手内部的手指或者LeapMotion传感器屏蔽掉的手指是通常检测不到的。Hand类的 confidence()方法返回的值表示观测到的数据和软件内部模型的符合度。

如果超过了一个人的手或者其它跟手类似的模型在出现在控制器的视图中,超过两个手可以出现在Frame的手集合。然而,为了保证好的跟随效果官方建议最多只能两只手在控制器的感应区域内。

(6)Arms:一个Arm类的对象是一个类似骨头的对象,他提供了方向、长度、宽度 和手臂的终点。当肘部不在控制器的感应范围你内,LeapMotion控制器根据过去的观察以及典型的人体比例来推测它(手臂)的位置。

(7)Fingers:LeapMotion控制器提供手上面的每一根手指的信息,如果手指完全(部分)不可见则可根据最近的观察和解剖模型的手来推测手指的特征。这些手指分别被命名为大拇指,食指,中指,无名指,和小指。

手指由Finger类得来,Finger类继承了pointable接口。

Finger类的 |Finger_tipPosition|_ and |Finger_direction|_ 向量属性值提供了手指的之间位置和之间的指向。

一根手指对象提供了一个骨头对象描述每个解剖手指骨的位置和姿态。所有手指都含有四个骨头从底部到尖。具体的结构如下图。

大拇指不适合这个骨头体系,大拇指只有三根骨头,为了编程方便,我们这里也将大拇指定义有四个骨头,只是认为Metacarpls骨头的长度为0.

(8)Tools:一个工具类的对象就像一个铅笔一样。铅笔对象都是由Tool类来实例化的,Tool类实现了Pointable接口。

一个工具对象比手指更长,更细,更直;只有细,圆的物体才会被认为是tool对象。在文档的第二版本中tools是独立于hands的。

(9)Gestures:LeapMotion软件认出确定确定的运动模型作为手势,这些手势可以表明使用者的意图和控制。Gesture对象是有Gesture类或者它的子类来定义并实例化的。

注意点:当你将手势运用到你的应用中之前,你必须识别出你想要使用的手势。控制器类有一个enableGesture()的方法来识别你使用的手势类型。

(10)

时间: 2024-10-05 21:21:41

LeapMotion控制器 java语言开发笔记--(LeapMotion控制器简介)的相关文章

LeapMotion控制器 java语言开发笔记--(Java开发环境的准备)

(1)官方文档说的是必须是JDK6,JDK7,我试了一下JDK8也是可以的 (2)我是在Windows系统下用的是Eclipse Java的开发环境这里不再多说.将下载的JDK里面的java.dll和LeapJava.dll文件拷贝到jre安装目录下的bin目录下(java虚拟机和Leapmotion控制器交换数据就是靠着两个库文件),如下图所示: 需要注意的是要区分是32位系统还是64位系统的,并使用相应的文件 (3)下载最新的sdk和LeapMotion软件的驱动服务软件在Eclipse的工

LeapMotion控制器 java语言开发笔记--(连接控制器)

(1)为了连接LeapMotion控制器,创建controller对象,这个对象自动创建与控制器的服务或者后台程序连接,然后捕获数据提供给你的应用程序.可以使用该对象来获取连接信息. (2)获取Frames:可以通过Controller对象的onFrame()方法可以获得,当你的程序需要的时候你随时都可以调用这个方法来获得控制器最近的一组数据:同样也可以实现Listener接口来获得. (3)前段应用程序和后台应用程序:LeapMotion的服务程序通常只将捕获到的数据发送到有操作系统输入焦点的

java语言学习笔记1

最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初在极客学院的注册工只是当成任务来完成的,但是并没有发现极客学院的真正作用和很大的价值,借用娄老师博客上的一句话就是,“通过网络的学习,不仅是老师与学生之间的交流,更是社会.老师和学生三方面的交流,使得学生的知识来源会更丰富更广,知识方面会有质的提高“,就对于这个极客学院,我看了相关的c语言视频,还解

Java Web开发笔记(2016-5-6 11:13、2016-5-10 11:13、2016-5-12 14:58)

http://localhost:8080/EquipmentSys/equipment/findEquipStateByEquipmentNumber.html?DEVEICEID=04:e6:76:df:f0:94 返回 1,1 设备状态(1运营,2维护,3锁定),是否更新的开关IsUpdate={1,0}(游戏APK更新条件:IsUpdate=1而且版本号不一样) /** * 接口 * @param request * @return * @throws UnsupportedEncodi

java语言开发环境

[如何搭建Java开发环境] [简介] JDK的全称是 Java Development Kit,即Java标准版开发包.Sun公司提供的一套用于开发Java应用程序的开发包,提供了编译.运行Java程序所需的各种工具和资源.包括Java编译器.Java运行时环境,以及常用的Java类库等. Java运行时环境(Java Runtime Environment)JRE.是运行Java程序的必须条件. JRM包含JVM. JVM是运行Java程序的核心虚拟机. JRM包含JVM.类加载器.字节码校

学习Java语言开发,这些不得不知

Java的学习是比较复杂的,主要表现在相关的一系列平台.规范和协议上.有经验的Java程序员都知道,只掌握了Java语言本身很难开发应用程序.总结的几点Java语言学习要点,对于初学者来说,应该很有用,仅供参考! 1. 学习的目的是为了将来进行应用程序的开发,而不是进行语言理论研究 2. 将来的应用开发是在成熟的平台上展开,而不是自己从底层开发平台   一.掌握静态方法和属性 静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征.java中大量应用了静态方法和属性,这是一个通常的技巧

Java语言开发入行记

面试 1.Java 语言数据基本类型:8种,整型.浮点类型.char类型和boolean类型. 2.删除字符串中指定元素:abcabcabc 中删除 ab. 3.ArrayList类 和 LinkedList类 区别: ArrayList类 内部采用数组存储元素,支持高效随机访问,支持动态调整大小: LinkedList类 内部采用链表存储元素,支持快速插入/删除元素,不支持高效随机访问: Vector类 所有方法都是同步的 synchronized. 4.线程安全:Vector HashTab

Java Web开发中MVC设计模式简介

一.有关Java Web与MVC设计模式 学习过基本Java Web开发的人都已经了解了如何编写基本的Servlet,如何编写jsp及如何更新浏览器中显示的内容.但是我们之前自己编写的应用一般存在无条理性,对于一个小型的网站这样的编写没有任何问题,但是一但我们需要编写大型的web工程的话,我们现有的编写模式会造成web应用的可扩展性较差,而且一但出现问题不能准确的定位出问题出在哪里. Java是一门应用设计模式比较广泛的语言.目前主流提出的23种设计模式均可在Java语言编写的程序中所应用.目前

使用Java语言开发微信公众平台(七)——音乐消息的回复

在上一节课程中,我们学习了图片消息的回复功能.根据微信公众平台的消息类型显示,微信共支持文本.图片.语音.视频.音乐.图文等6种消息类型的回复: 其中,我们已经实现了文本.图文.图片等消息的回复处理,而语音.视频两种消息类型的功能与图片消息完全一样.均需使用我们写好的文件上传接口,上传文件并获得MediaID,从而使用MediaID推送图片.语音.视频.没有学习过的同学,可进入杰瑞教育博客园继续学习:http://www.cnblogs.com/jerehedu/p/6781456.html 今