一种体感交互展示系统及方法
技术领域
本发明属于体感交互技术领域,尤其涉及一种体感交互展示系统及方法。
背景技术
目前,业内常用的现有技术是这样的:
近年来,计算机图形学、计算机动画、显示硬件等取得了迅速发展,三维模型处理技术的应用由原先的设计为主,逐渐加入新的主题:模拟现实世界,虚拟和现实交互。即从以前的“把计算机设计的模型做到现实世界中”逐渐增加“把现实世界物体放入计算机的虚拟环境中”和“让现实世界和虚拟世界进行交互”。现在,三维模型处理可以应用于虚拟现实(VR)、增强现实(AR)、混合现实(MR)、工业产品设计、影视特效、模拟仿真、计算机视觉、虚拟人、机器人、三维游戏、影视动画、广告设计等。三维模型被广泛应用,并且为了逼真地描述丰富多彩的现实世界和人类的想象力,现在,三维模型还是不足于满足各个领域的需求,仍然需要在不同的场景,根据不同的应用,去生成新模型或旧模型的新姿势。网格模型变形是构造模型的一个关键技术。虽然网格模型变形算法已经有很多研究,但是与之对应的操作手段却研究甚少。而且三维模型设计、三维交互体验等需求量庞大,需要更加普及。如何让网格模型变形的操作更容易、更直观,是一个很有价值的研究领域。而另一方面,三维交互手段正在逐渐发展起来,从佩戴传感设备到直接徒手交互,也已经有了不少的研究成果。
深度摄像机配合投影机,使得用户可以在显示屏上空悬空交互[AndrewD.Wilson.Depth-Sensing Video Cameras for 3D Tangible Tabletop Interaction[C].Horizontal Interactive Human-Computer Systems,2007.TABLETOP'07.Second AnnualIEEE International Workshop on,Newport,RI:IEEE,2007:201-204],[AndrewD.Wilson,H.Benko.Combining multiple depth cameras and projectors forinteractions on,above and between surfaces[C].ACM UIST(2010),2010:273-282]。同时有些系统把触摸平面在物理上拓展到更丰富的三维空间,它们要么使输入和输出空间化[Otmar Hilliges,Shahram Izadi,Andrew D.Wilson,Steve Hodges,Armando Garcia-Mendoza,Andreas Butz.Interactions in the air:adding further depth tointeractive tabletops[C].Proceedings of the 22nd annual ACM symposium on Userinterface software and technology,Victoria,BC,Canada:ACM,2009:139-148],要么它们的输出限制为二维投影形式。
一种把桌面系统的输出形式拓展到三维的方法,就是在跟踪输入设备的同时,结合全息投影到一块水平平面上[Maneesh Agrawala,Andrew C.Beers,Ian McDowall,BerndMark Bolas,Pat Hanrahan.The two-user Responsive Workbench:support forcollaboration through individual views of a shared space[C].Proceedings ofthe 24th annual conference on Computer graphics and interactive techniques:ACM Press/Addison-Wesley Publishing Co.,1997:327-332],[Marek Czernuszenko,Dave Pape,Daniel Sandin,Tom DeFanti,Gregory L.Dawe,Maxine D.Brown.TheImmersaDesk and Infinity Wall projection-based virtual reality displays[J].SIGGRAPH Comput.Graph.,1997,31(2):46-49],或者是使用头盔式显示器(Head MountedDisplay,简称HMD)来实现后投式桌面显示[Kousuke Nakashima,Takashi Machida,Kiyoshi Kiyokawa,Haruo Takemura.A 2D-3D integrated tabletop environment formulti-user collaboration:Research Articles[J].Comput.Animat.Virtual Worlds,2007,18(1):39-56]。但是这类系统需要头戴式硬件,并且使用跟踪式输入设备。
早期的AR系统依赖于头盔式显示或光学穿透式显示。这种方式便于移动和普遍使用,但是也有缺点:视角比较小,聚焦不准,固有的延迟,还有跟踪不精确。这就使得在使用的过程感觉不舒服和容易疲劳[Ahna R.Girshick,Kurt Akeley,MartinS.Banks.Vergence accommodation conflicts hinder visual performance and causevisual fatigue[J].Journal of Vision,2008,8(3):33-33]。由于HMD可提供沉浸感和可移动,许多研究改善HMD固有的问题,开发出更多合适应用[Oliver Bimber,RameshRaskar.Spatial Augmented Reality:Merging Real and Virtual Worlds[M].A.K.Peters,Ltd.,2005]。该系统更像是AR和桌面系统相结合的产物。一些研究在真实场景前绑定一个大光学合成器,比如:分光镜[Oliver Bimber,L.MiguelPedroBranco.The Extended Virtual Table:An Optical Extension for Table-LikeProjection Systems[J].Presence:Teleoper.Virtual Environ.,2001,10(6):613-631]或者全息显示屏[Alex Olwal,Christoffer Lindfors,Jonny Gustafsson,TorstenKjellberg,Lars Mattsson.ASTOR:An Autostereoscopic Optical See-throughAugmented Reality System[C].Proceedings of the 4th IEEE/ACM InternationalSymposium on Mixed and Augmented Reality:IEEE Computer Society,2005:24-27]。这些系统因为光学设备介于用户和真实场景之间,通常不允许用户直接和场景交互。
随着AR技术的发展,出现了一些更加轻便的应用。比如:使用移动手机[GeorgePapagiannakis,Gurminder Singh,Nadia Magnenat-Thalmann.A survey of mobile andwireless technologies for augmented reality systems[J].Comput.Animat.VirtualWorlds,2008,19(1):3-22]或平板电脑[Seung Wook Kim,Anton Treskunov,StefanMarti.DRIVE:Directly Reaching Into Virtual Environment with bare handmanipulation behind mobile display[C].Proceedings of the 2011IEEE Symposiumon 3D User Interfaces:IEEE Computer Society,2011:107-108]代替了头盔式显示器。还有使用更少的设备来跟踪[Shahram Izadi,David Kim,Otmar Hilliges,DavidMolyneaux,Richard Newcombe,Pushmeet Kohli,Jamie Shotton,Steve Hodges,DustinFreeman,Andrew Davison,Andrew Fitzgibbon.KinectFusion:real-time 3Dreconstruction and interaction using a moving depth camera[C].Proceedings ofthe 24th annual ACM symposium on User interface software and technology,SantaBarbara,California,USA:ACM,2011:559-568]或侧重于手势交互,代替特定的输入设备[Taehee Lee,Tobias Hollerer.Handy AR:Markerless Inspection of AugmentedReality Objects Using Fingertip Tracking[C].Proceedings of the 200711th IEEEInternational Symposium on Wearable Computers:IEEE ComputerSociety,2007:1-8]。在AR环境下的人手自然交互[孙超,张明敏,李扬,汤兴,潘志庚.增强现实环境下的人手自然交互[J].计算机辅助设计与图形学学报,2011,23(4):697-704]提出了点、线、面结构的自然三维交互模式。
KinectFusion介绍了简单的基于物理的交互,使用小球来模拟碰撞几何,但是并不是一直跟踪它们,也没有考虑类似摩擦力之类的效果。HoloDesk[Otmar Hilliges,DavidKim,Shahram Izadi,Malte Weiss,Andrew Wilson.HoloDesk:direct 3d interactionswith a situated see-through display[C].Proceedings of the SIGCHI Conferenceon Human Factors in Computing Systems,Austin,Texas,USA:ACM,2012:2421-2430]更进一步提供了每个小球的三维运动,并近似模拟了真实物体和虚拟物体之间的碰撞和摩擦。但是它主要是针对刚性虚拟物体的交互。
从HoloDesk效果中可以了解到由于观察视角和拍摄视角不一致,引起了投影上去的图像和视透观察到手的影像有不协调的地方。比如:有些地方重叠;有些地方留空。另外,视透方式本身就有的虚拟物体半透明的效果,对变形操作也是一种干扰。综上所述,现有技术存在的问题:
(1)已有技术主要从科学研究的角度,提供相对单一的功能,不利于体感交互展示;
(2)已有技术很少直接针对刚开始使用的用户,使用门槛高;
(3)已有技术倾向于显示即时状态,若用户想要保存过程结果不是很方便。
解决上述技术问题的难度:
首先,不仅仅要掌握单个功能的实现,而是要掌握需要展示的各个功能的实现。把它们实现还不够,还需要构建操作方式来方便地切换,用于展示;其次,要从刚开始使用的用户的角度出发,他们可能仅仅能够简单地使用计算机,而对体感交互并不了解,需要提供尽可能人性化的方式来使用它;再次,不能仅仅把拍摄得到的场景或者处理结果,显示给用户看,用户或许需要保存某个场景或记录下变化过程的各个阶段的状态。
解决上述技术问题的意义:
通过解决上述问题,可以把多种功能融合到一个系统中,用户可以很方便的切换,感受到更多内容;从用户的角度出发,研究符合用户水平的操作方式,降低了使用门槛,让更多用户体验到所实现的功能,更加利于他们了解和理解体感交互;为用户提供简便手段,用于采集多种状态数据,使得用户可以采集,以便后期把数据应用到其它地方。
发明内容
针对现有技术存在的问题,本发明提供了一种体感交互展示系统及方法。
本发明是这样实现的,一种体感交互展示系统,所述体感交互展示系统包括:
键盘输入模块,用于通过按键实现交互信息的输入;
手势输入模块,用于通过手势感应实现交互信息的输入。
进一步,所述键盘输入模块进一步包括:
模式切换单元,用于实现拍摄场景模式从Powerpoint模式、映射模式、骨架模式之间的切换;
场景定时获取单元,用于定时获取摄像头采集的图片信息;
场景单帧获取单元,用于对摄像头采集的图片信息进行保存;
背景变换单元,用于更换拍摄到的场景的背景;
保存显示单元,用于保存当前系统处理后并正在屏幕上显示的结果。
进一步,所述手势输入模块进一步包括:
拍手切换单元,用于通过拍手动作实现背景的变换;
摆手切换单元,用于通过摆手动作实现显示模式的切换。
本发明的另一目的在于提供一种运行所述体感交互展示系统的体感交互控制方法,所述体感交互控制方法包括以下步骤:
(1)摆手切换单元通过获取用户骨架信息,计算左手掌位置,并依据用户肩膀位置,检测所处的状态,是否为AtRight->MovingToL1->MovingToL2->MovingToL3->ToLeft顺序的当前或下一个位置,若是,继续记录当前位置,并检查是否到达ToLeft,若是,则表示完成一次摆手举动,即执行变换到下一个模式,否则,继续检测。若发现,左手掌变换位置出现乱序,则清除状态,重新检测。模式切换单元直接使用摆手切换单元的后半部功能,进行变换到下一个模式;
(2)拍手切换单元通过获取用户骨架信息,计算fhanddistance,和fhandsize/2比较,若前者小,则认为合上,否则,认为分开。若检测到合上,那么继续检测。若检测到分开,则进一步检查,前面一个状态是否为合上,若是,则表示进行了一次拍手,进行更换PPT或背景,否则,继续检测。背景变换单元直接使用拍手切换单元的后半部功能,进行更好背景;
(3)场景定时获取单元通过不断检测当前时间和下一次触发获取的时间m_nNextCaptureTime的大小关系,若前者小,则继续检测;若前者大,表示已经到时间获取,那么修改m_nNextCaptureTime为下一个时间点,设置m_bSaveCapture为真,触发保存当前拍摄场景m_pColorRGBX,然后设置m_bSaveCapture为假。接下来,继续检测。场景单帧获取单元直接使用场景定时获取单元的后半部功能,进行获取场景;
(4)保存显示单元通过设置m_bSaveScreenshot为真,保存当前处理结果m_pOutputRGBX,然后再设置m_bSaveScreenshot为假。m_pOutputRGBX保存的内容是当前显示的结果,可能是变换背景后的结果。
模式切换单元、背景变换单元、拍手切换单元和摆手切换单元:
本系统基于Kinect的一些功能,封装了一个功能类CKinectBasics。整个系统交互状态的变化,主要由窗口程序的函数OnFrameMove来驱动处理。
在该函数OnFrameMove里,首先调用CKinectBasics的功能函数UpdateData。在函数UpdateData中,调用Kinect的功能函数AcquireLatestFrame获取采集到的身体帧,从中获取场景中所记录的人物的骨架信息,特别是双手手掌和手指尖的位置信息。这里使用hlpos、htlpos、hrpos和htrpos分别表示左手掌、左手指尖、右手掌和右手指尖的三维位置。计算手的尺寸和双手的距离使用以下公式:
fhandsize=0.5*(CAL_NORM((hlpos.X-htlpos.X),(hlpos.Y-htlpos.Y),(hlpos.Z-htlpos.Z))+CAL_NORM((hrpos.X-htrpos.X),(hrpos.Y-htrpos.Y),(hrpos.Z-htrpos.Z)));
fhanddistance=CAL_NORM((hlpos.X-hrpos.X),(hlpos.Y-hrpos.Y),(hlpos.Z-hrpos.Z));
其中,CAL_NORM(dx,dy,dz)是计算矢量(dx,dy,dz)的长度,fhandsize为使用双手的手掌到手指尖的长度的平均作为手掌的尺寸,fhanddistance为双手手掌之间的距离。
通过连续记录,得到双手的连续位置信息和移动状态。当fhanddistance小于fhandsize的一定阈值(比如:一半),当作双手相互“合上”,而其它情况表示“分开”。当双手状态由“分开”变成“合上”,再变成“分开”,即识别成“拍手”。
把左手掌相对于身体的位置分成五种状态:在右肩的右边,用“AtRight”表示;把左肩和右肩之间的间隔按纵向分成三个区域,从右到左分别为“MovingToL1”、“MovingToL2”和“MovingToL3”;在左肩的左边,用“ToLeft”。当左手在一定时间内,所处的状态连续变化流程为:AtRight→MovingToL1→MovingToL2→MovingToL3→ToLeft,那么,识别为左手“摆手”。类似的,右手的摆手也可以依此实现。
这些检测状态记录在类CKinectBasics的对象中,后面在交互的时候使用,而每次使用后,都会把对应状态清空,以防同一次操作被重复使用。
在操作过程中,只要用户摆手,即变换当前模式,以Powerpoint模式、映射模式、骨架模式之间循环的方式切换。该功能从键盘上使用“M”键来驱动实现。而在Powerpoint模式和映射模式时,拍手,即更换PPT或背景。该功能对于背景变换时,从键盘上使用“E”或“e”键来驱动,即背景变换单元。
为了能够方便用户使用,针对Powerpoint功能,在展示系统目录里面创建一个文件夹“Media”,其中,包括两个文件夹“images”和“PPTs”。它们分别保存在映射模式和Powerpoint模式下使用的素材。
在文件夹“images”中提前放入一个图像文件。文件属性为:分辨率:1920*1080;位深度:32位;文件名:Background;文件类型:BMP文件。
在文件夹“PPTs”中,放入一个文本文件“pptlists.txt”和一些PPT内容文件。这些内容文件格式为图像文件。
文件pptlists.txt里列出一个文件列表,以下是一个实例:
6
ppt1.bmp
ppt2.bmp
ppt3.bmp
ppt4.bmp
ppt5.bmp
ppt6.bmp
第一行的“6”,表示紧跟着有6个图像文件作为PPT,用于显示。后面跟上对应行数(该实例里是6)内容,每行是对应的文件名。
系统通过读取文件pptlists.txt,确定用户用于作为PPT显示的该文件夹里的图像文件,根据列表顺序确定PPT的顺序,即展示时的顺序。
在系统中,使用一个变量g_iPPTCount来记录总的PPT总页数,而用g_iCurPPT来记录当前显示的页码。使用g_bPPTNeedChange来记录下次刷新时,是否需要变换PPT。而g_bPPTNeedChange则是需要用户交互——拍手来设置。
在骨架模式中,采用一个四棱台来代替通常使用的一根线,作为骨骼的描述。读取Kinect采集得到的骨架,用四棱台绘制出当前位置的骨架。棱台的上端小,下端大,以区分骨架的连接顺序,并给棱台的八个顶点各赋予不同的颜色,在面片上的像素点通过顶点线性插值来取得颜色。使用棱台不仅表示出骨架的位置,还可以表现出旋转的程度,另外,还可以把它当作骨架的蒙皮,那么用户也就可理解,若换成其它的三维模型,会是什么样子了。
场景定时获取单元:
为了定时记录,使用变量m_bTimerCapture作为设置状态。当它为真时,每隔5秒驱动一次保存当前视频采集的场景。计时方式用到变量m_nNextCaptureTime。m_nNextCaptureTime在初始时为0,第一次渲染把它设置成为当前时间加上5秒的时间点值,接下来,每次渲染都比较当前的时间和m_nNextCaptureTime。若当前时间更大,即设置变量m_bSaveCapture为真,将驱动一次保存。
场景单帧获取单元:
该功能使用变量m_bSaveCapture。当其为真时,再次渲染时,就获取当前可保存的文件名,可以采用当前时间作为文件名的一部分,以防文件重名,然后就把当前的视频场景m_pColorRGBX保存下来。这个功能可以弥补定时采集不能即时控制的缺陷。
保存显示单元:
该功能使用变量m_bSaveScreenshot。当其为真时,再次渲染时,就获取当前可保存的文件名,可以采用当前时间作为文件名的一部分,以防文件重名,然后就把当前的处理结果m_pOutputRGBX保存到对应文件中。
本发明的另一目的在于提供一种实现所述体感交互控制方法的计算机程序。
本发明的另一目的在于提供一种实现所述体感交互控制方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的体感交互控制方法。
综上所述,本发明的优点及积极效果为:通过摄像头获取交互范围内的图像信息,通过红外线采集用户的身体位置信息,再使用软件算法提取出用户的形体信息,分析用户的动作,驱动软件系统中的各个应用功能。
其中,通过发明的摆手和拍手检测方法,实现切换模式。用户可以很简便地在多种模式之间切换。而各个模式是体感交互的特定功能展示。用户很容易体验到多种功能。而且在使用的过程中,相关设置和素材准备也很简单,即使仅掌握电脑的简单操作的用户也可以顺利使用,利于更多用户使用。
通过定时获取、单帧获取和保存显示三个单元,方便用户记录下体感交互的过程,有定时记录,可以用来流程性记录;有特定时刻单帧记录,可以用于捕捉特定场景;保存所显示的处理结果,可以让用户方便地得到变换后的背景和前景相结合的结果图片。
附图说明
图1是本发明实施例提供的体感交互展示系统结构示意图;
图中:1、键盘输入模块;1-1、模式切换单元;1-2、场景定时获取单元;1-3、场景单帧获取单元;1-4、背景变换单元;1-5、保存显示单元;2、手势输入模块;2-1、拍手切换单元;2-2、摆手切换单元。
图2是本发明实施例提供的体感交互控制方法流程图。
图3是本发明实施例提供的骨架模式显示效果截屏图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的体感交互展示系统包括:键盘输入模块1、手势输入模块2。
键盘输入模块1,用于通过按键实现交互信息的输入。
手势输入模块2,用于通过手势感应实现交互信息的输入。
键盘输入模块1进一步包括:模式切换单元1-1、场景定时获取单元1-2、场景单帧获取单元1-3、背景变换单元1-4、保存显示单元1-5。
模式切换单元1-1,用于实现拍摄场景模式从Powerpoint模式、映射模式、骨架模式之间的切换。
场景定时获取单元1-2,用于定时获取摄像头采集的图片信息。
场景单帧获取单元1-3,用于对摄像头采集的图片信息进行保存。
背景变换单元1-4,用于更换拍摄到的场景在显示时的背景。
保存显示单元1-5,用于保存当前系统处理后并正在屏幕上显示的结果。
手势输入模块2进一步包括:拍手切换单元2-1、摆手切换单元2-2。
拍手切换单元2-1,用于通过拍手动作实现背景的变换。
摆手切换单元2-2,用于通过摆手动作实现显示模式的切换。
如图2所示,本发明实施例提供的体感交互控制方法包括以下步骤:
摆手切换单元2-2,通过获取用户骨架信息,计算左手掌位置,并依据用户肩膀位置,检测所处的状态,是否为AtRight->MovingToL1->MovingToL2->MovingToL3->ToLeft顺序的当前或下一个位置,若是,继续记录当前位置,并检查是否到达ToLeft,若是,则表示完成一次摆手举动,即执行变换到下一个模式,否则,继续检测。若发现,左手掌变换位置出现乱序,则清除状态,重新检测。模式切换单元1-1,直接使用摆手切换单元2-2的后半部功能,进行变换到下一个模式。
拍手切换单元2-1,通过获取用户骨架信息,计算fhanddistance,和fhandsize/2比较,若前者小,则认为合上,否则,认为分开。若检测到合上,那么继续检测。若检测到分开,则进一步检查,前面一个状态是否为合上,若是,则表示进行了一次拍手,进行更换PPT或背景,否则,继续检测。背景变换单元1-4,直接使用拍手切换单元2-1的后半部功能,进行更好背景。
场景定时获取单元1-2,通过不断检测当前时间和下一次触发获取的时间m_nNextCaptureTime的大小关系,若前者小,则继续检测;若前者大,表示已经到时间获取,那么修改m_nNextCaptureTime为下一个时间点,设置m_bSaveCapture为真,触发保存当前拍摄场景m_pColorRGBX,然后设置m_bSaveCapture为假。接下来,继续检测。场景单帧获取单元1-3,直接使用场景定时获取单元1-2的后半部功能,进行获取场景。
保存显示单元1-5,通过设置m_bSaveScreenshot为真,保存当前处理结果m_pOutputRGBX,然后再设置m_bSaveScreenshot为假。m_pOutputRGBX保存的内容是当前显示的结果,可能是变换背景后的结果。
下面结合具体实施例对本发明的应用原理作进一步的描述。
一、硬件配置如下:
(1)64位CPU,如x64;
(2)4GB以上内存;
(3)3.1GHz物理多核,每个有2个逻辑核,或者更快的处理器;
(4)适用于Kinect for Windows v2 sensor的USB 3.0控制器;
(5)兼容于DX11的图形适配器;
(6)一个微软的Kinectv2传感器,包括电源适配器和USB线。
二、软件配置如下:
操作系统:Embedded 8 Standard,Windows 8,Windows 8.1;
开发运行平台:Visual Studio 2012 or Visual Studio 2013。
三、系统的安装及搭建
1、安装Kinect for Windows SDK 2.0:
(1)确保Kinect sensor未插到计算机的任何USB端口上;
(2)双击KinectSDK-v2.0_1409-Setup.exe启动安装;
(3)当成功完成安装Kinect for Windows SDK,其间会重启一下,把Kinectsensor连接到电源适配器上,并把电源适配器插入插座。把电源适配器上的USB线插到电脑的USB3.0接口上。驱动安装将自动开始;
(4)等到驱动安装完成,可以通过打开设备管理器,查看“KinectSensorDevice”是否在设备列表中,以此来确认安装是否成功。注:在第一次插入时,设备上的固件需要更新,所以在最开始的时间里,设备枚举将发生多次;如果通过一个USB3.0主控制适配器来把USB3.0功能加到已有电脑上,请确认它可兼容Windows8,并且支持二代;
(5)按说明安装本系统,也可以把整个系统软件复制到任一通用目录中。
四、系统的功能与交互动作说明
提供两类交互方式,键盘输入和手势输入。
1、键盘输入时,点击以下所列的键,实现对应的功能:
(1)M或m键:
换成下一个模式。按顺序有以下几种模式:Powerpoint模式、映射模式、骨架模式。这几种模式循环执行,即到骨架模式后,若再按M或m,将重新变成Powerpoint模式。
Powerpoint模式:将把预先放置好的图片(PPT截屏)类似PPT,可以浏览,通过手势来进行前后翻页。
映射模式:分析摄像头拍摄到的场景,把颜色帧分离成前景和背景。通过交互,更换背景;背景是预设图片。
骨架模式:表示所得骨架可以应用到模型的骨架控制中,控制一些三维模型,比如:使用四棱台来表示各个骨骼。
(2)T或t键:
定时获取摄像头的内容,并保存;通过定时采集摄像头内容并保存,可以得到活动过程中的一系列的图片,制作展示图片集,抓拍到优美场景。
(3)C或c键(在映射模式下):
保存当前摄像头拍到的场景,保存成为一张图片,".\\Captures\\KinectCapture-%s.bmp",即当前目录下的Captures文件夹里,文件以“KinectCapture-”为起始,”%s”是把时、分、秒以"hh'-'mm'-'ss"模式生成的字符串,只要不是同一秒内按下,同一天内不会有重复。图像文件的格式为bmp格式;按键即启动,仅采一次。
(4)E或e键(在映射模式下):
变换背景图片,把当前拍摄得到场景,通过算法把前景和背景分离,然后把背景换成另一幅图片。图片是用户预先设置好,可以是各种各样的图片,比如:纯色、风景照、动画场景等。
(5)S或s键(在映射模式下):
保存当前屏幕显示的内容,并保存;把当前处理结果,即在屏幕上显示的内容,保存图片;让用户制成现场换背景的图片。
2、手势输入时,通过以下不同手势实现不同功能:
(1)拍手,检测两只手的位置,当两手原来是相离,在比较短时间内,合在一起,然后分开,判定为一次拍手;根据这个动作,在该系统中,如果当前处于映射模式,那么就变换当前背景;如果当前处于Powerpoint模式,那么就切换到下一页。
(2)摆手,把人体前方区域,沿垂直方向,分成五个区域,从右到左分别为:AtRight、MovingToL1、MovingToL2、MovingToL3、ToLeft。检测左手的位置,当左手处在右侧区域,进入RtoLState_AtRight状态,在比较短时间内,按顺序从右向左,分别进入五个区域,判定为一次摆手;根据这个动作,在该系统中,进行显示模式的变换。实现的功能跟前面介绍的按“M或m键”的效果一样。
本发明的操作方式在实际实验过程中进行了测试并使用。Powerpoint模式和背景模式的具体效果,根据不同的素材有不同的效果。而骨架模式,以四棱台表现骨骼的效果如图3。图3是依本发明设计出来的系统界面截图。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。