(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)运动:运动是一段时间内用户手运动的改变,运动包括:scale,ratation,translation,如下图所示

运动是两个帧之间的计算,你可以在整个Frame对象的场景中获得运动因素。同样你也可以从一个与之相关的单手Hand对象中获得运动因素。你可以使用提到的运动元素去设计你的应用程序的交互,例如,为了代替跟踪在很多帧之间的穿梭的手指的变化的数              据,你可以使用两个侦之间scale元素去让用户改变一个物体的形状。

(11)sesor image(传感器图像):随着计算跟踪数据你可以从Leapmotion控制器得到原始的图像。

图像的数据包括所测得红外亮度值和校正复杂透镜畸变所需的数据,你可以使用传感器图像增强现实效果的应用程序,尤其是在将控制器应用到VR领域。

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

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

    (1)官方文档说的是必须是JDK6,JDK7,我试了一下JDK8也是可以的 (2)我是在Windows系统下用的是Eclipse Java的开发环境这里不再多说.将下载的JDK里面的java.dll和 ...

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

    (1)为了连接LeapMotion控制器,创建controller对象,这个对象自动创建与控制器的服务或者后台程序连接,然后捕获数据提供给你的应用程序.可以使用该对象来获取连接信息. (2)获取Fra ...

  3. Java 学习笔记 第一章:Java语言开发环境搭建

    第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...

  4. 用Hyperledger Fabric(超级账本)来构建Java语言开发区块链的环境

    面向 Java 开发人员的链代码简介 您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用.本教程将帮助大家解惑.我将分步展示如何使用 Hyperledger Fabric v0.6 来构 ...

  5. 软件-集成开发环境:IDEA(Java 语言开发的集成环境)

    ylbtech-软件-集成开发环境:IDEA(Java 语言开发的集成环境) IDEA 全称IntelliJ IDEA,是用于java语言开发的集成环境(也可用于其他开发语言),IntelliJ在业界 ...

  6. IntelliJ IDEA for Mac(Java 语言开发的集成环境)破解版安装

    1.软件简介    IntelliJ IDEA 是 macOS 系统上一款 java 语言开发的集成环境,IntelliJ 在业界被公认为最好的 java 开发工具之一,尤其在智能代码助手.代码自动提 ...

  7. java语言学习笔记1

    最近也在春节的节假日里,总是会有各种各样的事情出现,没有很完整的时间来学习java以及其他方面的知识. 从昨天开始有了完整的学习体系,我去娄老师推荐的极客学院网站开始学习java语言的语法.在假期之初 ...

  8. 基于Java语言开发jt808、jt809技术文章精华索引

    很多技术开发人员喜欢追逐最新的技术,如Node.js, go等语言,这些语言只是解决了某一个方面,如只是擅长异步高并发等等,却在企业管理后台开发方面提供的支持非常不够,造成项目团队技术选项失败,开发后 ...

  9. 微信小程序后端开发(Java语言)笔记

    前言: 因为是第一次真正接触后端开发,从编码到部署服务器到上线,所以做个笔记,也供和我一样的开发小白一些参考. 一.前期工作:开发环境与工具: 1. 编程语言:Java    #笔者还没学PHP,只想 ...

随机推荐

  1. 第3.3节 强大的Python列表

    一. 列表切片操作补充 列表切片支持所有序列切片的方法,以倒序切片和步长大于1的情况再举例验证一下: l=[1,2,3,4,5] l[::2] #结果[1, 3, 5] l[-1::2] #结果[5] ...

  2. HTTP慢速拒绝服务攻击(Slow HTTP Dos)

    HTTP慢速拒绝服务攻击简介 HTTP慢速攻击是利用HTTP合法机制,以极低的速度往服务器发送HTTP请求,尽量长时间保持连接,不释放,若是达到了Web Server对于并发连接数的上限,同时恶意占用 ...

  3. centos 7系统,解决python3.x 安装后使用yum不能安装的问题(错误:urlgrabber-ext-down | KeyboardInterrupt)

    1.在安装python3.xx版本后,通过yum去安装软件会出现问题,目前我遇到的有2种问题 比如显示:urlgrabber-ext-down Downloading packages: File & ...

  4. Java程序员需要了解的底层知识(一)

    硬件基础知识 - Java相关硬件 汇编语言的执行过程(时钟发生器  寄存器  程序计数器) 计算机启动过程 进程线程纤程的基本概念面试高频 -  纤程的实现 内存管理 进程管理与线程管理(进程与线程 ...

  5. 图论——迪杰斯特拉算法(Dijkstra)实现,leetcode

    迪杰斯特拉算法(Dijkstra):求一点到另外一点的最短距离 两种实现方法: 邻接矩阵,时间复杂度O(n^2) 邻接表+优先队列,时间复杂度O(mlogn)(适用于稀疏图) (n:图的节点数,m:图 ...

  6. 个人项目作业WC

    项目github地址 https://github.com/gs735028922gs/wordc 项目相关要求 wc.exe 是一个常见的工具,它能统计文本文件的字符数.单词数和行数.这个项目要求写 ...

  7. 【Django admin 中文配置】

    打开settings.py文件,找到语言编码.时区的设置项,将内容改为如下: [其中 zh-Hans是简体中文 zh-Hant是繁体中文] LANGUAGE_CODE = 'zh-Hans' # LA ...

  8. 算法(Java实现)—— 二分搜索算法

    二分搜索算法 有序数列才可用二分查找算法 思路分析 思路分析 首先确定该数组的中间下标mid = (left + right)/ 2 然后让需要查找的数findVal和arr[mid]比较 findV ...

  9. angular8 大地老师学习笔记---第八课

    /*ViewChild获取dom节点 1.模板中给dom起一个名字 <div #myBox> 我是一个dom节点 </div> 2.在业务逻辑里面引入ViewChild imp ...

  10. 4. 上新了Spring,全新一代类型转换机制

    目录 ✍前言 版本约定 ✍正文 PropertyEditor设计缺陷 新一代类型转换 Converter 代码示例 不足 ConverterFactory 代码示例 不足 GenericConvert ...