多点触摸输入编程和其他任何形式的编
多点触摸输入编程和其他任何形式的编程一样,不过在多点触摸编程中,有一套固定的某些协议,作法和标准。通过N呼识细鲜解UIGroup与其他组织和社团的合作,多点触摸编程已经有了针对多种编程语言的开发框架,这妒没区茶下束证团些语言包括ActionScript3,Python,C快连,C++快连,C#以及Java。多点触摸编程分为两步:首先,从摄像头或者其他输出设备读取和转化输出的触点信息,传递这些原始的触点信息通过之前制定的协议组合,然后编程语言就可以使⽤⼿势来让⼀个应⽤程序配合。TUIO(Tangible User Interface Protocol,可触摸的用户界面协议)已经成为追踪触点信息的专业标准协议。
触点追踪
对象追踪一直是计算机视觉基队坐曾抗秋础研究领域的⼀个⽅⾯。它的创作是跟踪包括能够准确的反复识别包含特定对象的川席液医刚⼀系列视频帧(估算)。一般来说,这是⼀个⾮常困难的问题,因为首先要在所有的帧中发现对象(⽽且往省顾班丝往是在杂乱,封闭,或者是不断变换的照明条件下),以及让数据能够和帧之间以某种方式联系起来以便识别我们所需要的对象。很多的问题已经被解决,在追踪这个问题上最普遍的模式就是"⽣成模式"(GenerativeModel),这是些诸如Kalman粒过滤器等流解决案的基础。
在大多数的系统中,⼀个完善的背景相减算法需要对每帧进⾏预处理,这确保静态或者背景图像能够被忽略掉。对于一些光照不稳定的视频流快连,像"⾼斯混合模型"(Gaussian Mixture Model)这样的⾃适应模型已经能够比较智能的识别出不均匀的动态背景。把背景过滤掉之后,剩下就是我们需要的前景对象了。我们往往确定这些对象的质⼼,而且这些点会被⼀帧⼀帧被追踪。追踪算法会根据这些萃取的质⼼估算在下⼀帧触点的位置。
手势识别
未来的人机交互将是⾃然⽤户界⾯(Natural User Interface),当然这个界⾯还很模糊。随着便宜并可靠的多点触摸硬件的不断发展,我们相信,在不久的未来,多点触摸设备不仅仅是在实验室里了,而是遍布在学习室,绘图室甚至是厨房里,一切皆有可能。
从⼴义上说,"⼿势的概念涵盖很广泛,只要是为了让交流的⽬的更明确,更引人瞩目⽽采⽤的⼀切⾝体动作,都可以称作⼿势。"通过⼿势交流是人类发展历程中最古老的形式,当然,这超出了我们的讨论范围。这样⼀个基于⼿势的界⾯是社会化,任务协作,以及艺术性触摸的最佳候选⽅案。这个界⾯是符合自然规律的、更直观的用户界面。然而,多点触摸硬件上所使用的⼿势是很少的,仍然存在很大的发展空间,当然也少不了继续探寻⼀些⼿势的可应⽤性。多点触摸界⾯需要⼀个全新的⽅案,⽽不是⽤GUI或者WIMP的⽅法来实现它。⼿势的类型决定了不管是多触摸⽤户还是单触摸多⽤户都能进⾏互动。我们将讨论需要的新⼿势,发展⼿势识别模块和⽀持框架能够充分利⽤多点触摸设备的潜⼒,⽀持可定制开发和易于使⽤的复杂的多点触摸应⽤。
Python
Python是一种可用于多种类型软件开发的动态⾯向对象编程语言,它提供了强⼤的与其它语言和⼯具相互协作⽀持,拥有广泛的标准库,⽽且你可以在⼏天之内上⼿。很多Python程序员都反映使⽤Python获得了更⾼的⽣产⼒,更强壮的代码以及更易维护的特性。
ActionScript3&Flash
在2007年,Adobe收购了Macromedia,新版Flash推出,命名为AdobeFlashCS3。Adobe对ActionScript版本进⾏了全⾯的修订和增改,推出ActionScript3.0,Flash已经是⽹页设计师最强⼤的⼯具之⼀,然而,Flash已经不仅仅局限于网络。由于名为AdobeFlex和AdobeAIR的新的编程平台的出现,开发者可以⽤ActionScript3.0去开发跨平台(Cross-Platform)的桌⾯应⽤程序,Flash可以来创作多点触摸应用,通过计算机视觉技术和多点触摸感测程序,比如Touchlib,CCV和reacTIVision的协助。
NET/C#
.NET也为编程界⾯(API)提供了新功能和开发⼯具。这些⾰新使得程序设计员可以同时进⾏Windows应⽤软件和⽹络应⽤软件以及元件和服务(webservice)的开发。.NET提供了⼀个新的反射性的且⾯向对象程序设计编程界⾯。.NET设计得⾜够通⽤化从⽽使许多不同⾼级语⾔都得以被汇集。