(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. PyQt(Python+Qt)学习随笔:Qt Designer中主窗口对象dockNestingEnabled属性

    dockNestingEnabled 属性是确认主窗口的浮动部件(dock widget)是否允许嵌套的一个属性. 如果此属性为False,则浮动部件停靠区域只能包含一个浮动部件(水平或垂直).如果此 ...

  2. spring框架半自动注解

    为了简便我们的开发,让我们一起来学习半自动注解吧. 让Spring管理某些类 1.在需要被SpringIOC容器管理的类上打上相应的注解 @Component:任意组件 @Controller:控制层 ...

  3. 剑指offer二刷——数组专题——构建乘积数组

    构建乘积数组 题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A ...

  4. jQuery无限滚动

    由于demo实在虚拟桌面写的,所以懒得在敲一遍了,直接贴图了

  5. 转:什么是Shingling算法

    shingling算法用于计算两个文档的相似度,例如,用于网页去重.维基百科对w-shingling的定义如下: In natural language processing a w-shinglin ...

  6. ORACLE 10g、11g批量刷新用户密码

    一.ORACLE 10g批量刷新用户密码 select 'alter user ' || username ||' identified by values '''||password ||''';' ...

  7. el-amap 遮罩(带洞多边形)

    el-amap 遮罩(带洞多边形) 遮罩(带洞多边形) 效果图 代码 <template> <div> <el-amap vid="amapDemo" ...

  8. 阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4

    当你购买了阿里云的ecs,涉及ecs的有两个密码,一定要搞清楚,一个密码是远程链接密码,也就是通过浏览器连接服务器的密码,另外一个是实例密码,这个密码就是ecs的root密码,一般情况下,我们经常用到 ...

  9. 用Python批量裁取图,来获取文件夹中所有图片名

    批量截图(截取正方形图,哪个边短就用哪个边作为标准来截取) 功能是裁取图片中红色框的部分. 代码为: import sys from tkinter.tix import Tk from PIL im ...

  10. python 画图二(三维图,多轴图)

    import sys reload(sys) sys.setdefaultencoding('utf-8') import matplotlib.pyplot as plt import numpy ...