(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. 被老猿误解的Python匿名函数lambda

    在<第2.3节 Python运算符大全>老猿这样描述lambda:"上述运算符中有个lambda,这是个lambda就是用来定义一个匿名函数的.老猿认为用处不大,具体内容大家可以 ...

  2. 第11.24节 Python 中re模块的其他函数

    一. re.compile函数 正则表达式编译函数,在后面章节专门介绍. 二. re.escape(pattern) re.escape是一个工具函数,用于对字符串pattern中所有可能被视为正则表 ...

  3. Spark流式状态管理(updateStateByKey、mapWithState等)

    通常使用Spark的流式框架如Spark Streaming,做无状态的流式计算是非常方便的,仅需处理每个批次时间间隔内的数据即可,不需要关注之前的数据,这是建立在业务需求对批次之间的数据没有联系的基 ...

  4. 惊天秘密!如何在 Flutter 项目中实现操作引导

    不要冒然评价我,你只知道我的名字,却不知道我的故事,你只是听闻我做了什么,却不知我经历过什么. 俗话说得好,产品有三宝,弹窗浮层加引导. 上图截图自我司 App 晓黑板中的口算模块,相信每个 App ...

  5. Sense Sense (Beta)安装及解决部分Chrome插件安装时程序包无效:"CRX_HEADER_INVALID"

    下载地址  http://down.cnplugins.com/down/down.aspx?fn=1412/www.cnplugins.com_lhjgkmllcaadmopgmanpapmpjgm ...

  6. Springboot mini - Solon详解(七)- Solon Ioc 的注解对比Spring及JSR330

    Springboot min -Solon 详解系列文章: Springboot mini - Solon详解(一)- 快速入门 Springboot mini - Solon详解(二)- Solon ...

  7. 详解Java中的IO输入输出流!

    目录 本片要点 基本分类 发展史 文件字符流 输出的基本结构 流中的异常处理 异常处理新方式 读取的基本结构 运用输入与输出完成复制效果 文件字节流 缓冲流 字符缓冲流 装饰设计模式 转换流(适配器) ...

  8. DRF对Django请求响应做了技术升级

    Django视图是用来处理请求和响应的,Django默认是按Form和Template来设计的,如果要处理以JSON格式为主的RESTful API,那么就需要对Django请求和响应的处理代码进行优 ...

  9. CentOS 7 mini版本安装后必须要做的几件事

    Linux家族非常的庞大,诸如Debian.Ubuntu.RedHat.CentOS.ArchLinux.Gentoo,甚至还有国内比较有名的Deepin,都是Linux家族闪耀的明星.根据实际需求涉 ...

  10. css进阶 03-网页设计和开发中,关于字体的常识

    03-网页设计和开发中,关于字体的常识 #前言 我周围的码农当中,有很多是技术大神,却常常被字体这种简单的东西所困扰. 这篇文章,我们来讲一讲关于字体的常识.这些常识所涉及到的问题,有很强的可操作性, ...