您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > 非官方Touchlib手册
第1页共12页非官方Touchlib手册作者:LaurenceMuller翻译:TianKevinOriginalsource:Multi-touchdisplays:design,applicationsandperformanceevaluation.(Master’sThesis)Lastupdated:20thJune2008翻译:TianKevinkevin_martin@163.comlastupdated:2010-12-3第2页共12页APPENDIXBTouchlibReference目前touchlib没有官方文档,只在svn里有少量配置的示例。这个文档提供了touchlib配置和使用的大部分内容。B.1项目详细信息项目地址:://code.google.com/p/touchlib/SVN(repository):这个配置文件包含了以下部分:1.XML版本定义例如:?xmlversion=”1.0”?2.跟踪配置例如:blobconfigdistanceThreshold=”250”minDimension=”2”maxDimension=”250”ghostFrames=”0”minDisplacementThreshold=”2.000000”/第3页共12页这是blobtracker的概要配置。distanceThreshold:一个blob可以跑多少个像素点;inDimension:一个touch可以捕捉到的最小的物体;maxDimension:一个touch可以捕捉到的最大的物体;ghostFrames:确定blobtracker用多少帧来确定物体移动;minDisplacementThreshold:当一个物体移动了多少个像素点的时候才发出一个update消息。3.Boundingbox(包围盒)例如:bboxulX=”0.000000”ulY=”0.000000”lrX=”1.000000”lrY=”1.000000”/确定在摄像头拍摄到的哪个区域进行识别。ul指左上角,lr指右下角,满屏区域为0~1。需要注意的是,这个信息相当于在某一个区域内允许触摸,而其他区域不允许触摸。比如经过校点后,针对于屏幕(不是摄像区域)是满屏校正,满屏触摸。再增加一个包围盒后,包围盒外面的区域不允许触摸,但内部区域触摸还是准确的。举个例子:经过校点后,原来windows整个桌面都可以触摸,但有个变态的要求,要求任务栏不允许触摸,于是增加个包围盒,把桌面放进去,任务栏排除在包围盒外,这样任务栏就不能触摸了。4.屏幕校准点例如:screen...[points].../screen这些点一般通过configapp进行设置,对屏幕上的20个点进行校正。5.Thefiltergraph(滤波图)例如:filtergraph...[filters].../filtergraph第4页共12页滤器(filters),在下一章有详细说明。B.3TouchLib过滤器(Touchlibfilters)概述:所有的过滤器的申明,都必须在两个filgetgraph的标签里。filtergraph.../filtergraph第一个滤波图必须是一个视频输入(可以是摄像头、影像文件等),最后一个必须是rectify滤波。B.3.1视频捕获滤器(Videocapturefilters)cvcapture说明:这个是touchlib默认使用的视频捕获接口。它采用了OpenCV函数获取视频流信息。当然,作为测试使用,这也可以用一个影像文件作为输入源。使用方法(影像文件):cvcapturelabel=”cvcapture”sourcevalue=”../tests/rear4.avi”//cvcapture使用方法(摄像机):cvcapturelabel=”cvcapture”sourcevalue=”cam”//cvcapturedsvlcapture说明:这是通过DirectShow捕获视频输入流的方式。使用方法:第5页共12页dsvlcapturelabel=”dsvlcapture”/cmucapture说明:这个滤器是通过CMU驱动获取1394火线接口的视频图像输入流的方式。使用方法:cmucapturelabel=”cmucapture”brightnessvalue=”-1”/exposurevalue=”-1”/flipRGBvalue=”false”/gainvalue=”87”/gammavalue=”1”/modevalue=”640x480mono”/ratevalue=”30fps”/saturationvalue=”90”/sharpnessvalue=”80”/whitebalanceHvalue=”0”/whitebalanceLvalue=”-1”//cmucapturevwcapture说明:这个过滤器是采用VideoWrapper的API获取1394火线接口的视频图像输入流的方式。使用方法:vwcapturelabel=”capture1”videostringvalue=”pgr:064030grey161rgb”//vwcapture第6页共12页videostring参数和具体的摄像机的接口方式有关。使用DCAM规格的摄像机:参数:”dcam:camNumwidthframeRatecolorModescale”例如:”dcam:064030rgb2”使用灰色阶图像格式的摄像机:参数:”pgr:camNumwidthframeRatecolorModescaleoutputMode”例如:”pgr:064030grey81rgb”使用VidCapture(DirectShow)的摄像机:参数:”vc:camNumwidthframeRatecolorModescaleoutputMode”例如:”vc:064015rgb0”B.3.2视频处理过滤器(Videoprocessingfilters)MonoFilter(由彩色变为黑白灰阶图过滤器)说明:TouchLib需要8位灰色位阶图作为输入图像。这个过滤器只有当前面的视频获取设备获取到的图像不符合Touchlib要求的图像格式的时候才需要使用。使用方法:monolabel=”monofilter”/BackgroundFilter(背景过滤器)第7页共12页说明:这个过滤器会保存一个背景图像,并且实时将获取到的图像删除掉背景。使用方法:backgroundremovelabel=”backgroundfilter”thresholdvalue=”20”//backgroundremovethreshold参数范围是0~255。SmoothingFilter(平滑过滤器)说明:Smoothing过滤器会对源图像执行高斯模糊算法。使用方法:smoothlabel=”smoothfilter”/InvertFilter(反转过滤器)说明:Invert过滤器会反转灰色图。只有FI的情况下才需要这个过滤器。使用方法:invertlabel=”invert”/ScalerFilter(增益过滤器)说明:如果前面的过滤器处理后图像效果很差(微弱),这个过滤器可以增强(放大)效果。第8页共12页使用方法:scalerlabel=”scaler”levelvalue=”70”//scalerBrightnessandContrastFilter(亮度和对比度过滤器)说明:在一些特殊情况下,我们可能需要增加图像的亮度和对比度。这个过滤器只在FTIR下使用。使用方法:brightnesscontrastlabel=”brightnesscontrast4”brightnessvalue=”0.1”/contrastvalue=”0.4”//brightnesscontrastHighpassFilter(高亮过滤器)说明:当使用RI或者FI的时候,它能捕捉到的块的亮度相对于FTIR要弱很多。但是只要对比度足够明显,Highpass过滤器可以增强这些用于捕捉的物体的亮度。使用方法:highpasslabel=”highpass”filtervalue=”6”/scalevalue=”32”//highpassHighpassFilter(简单高亮过滤器)第9页共12页说明:和前面一个过滤器目的相同,但是这个过滤器使用了更简单的算法,速度要比上一个默认的HipassFilter速度快。这个过滤器有2个方法来增强源图像。正常情况下,一般建议设置noiseMethod为1。使用方法:simplehighpasslabel=”simplehighpass”blurvalue=”13”/noisevalue=”3”/noiseMethodvalue=”1”//simplehighpassBarrelDistortionCorrectionFilter(弧形变形纠正过滤器)说明:广角镜头常常会形成带弧度的变形,而这种变形Touchlib是没有默认算法可以纠正的。这个过滤器可以根据镜头特点纠正弧形的变形。这个过滤器需要由弧形变形校正工具形成的camera.yml文件。当然,校正后的图像可能会丢失掉一部分重要的区域。要解决这个问题,可以通过设置bordersize属性来纠正。如果校正后的图像丢失的区域不重要,直接设置bordersize为0就行了。使用方法:barreldistortioncorrectionlabel=”barreldistortioncorrection1”bordersizevalue=”20”//barreldistortioncorrectionCropFilter(裁剪过滤器)说明:允许用户裁剪视频图像。第10页共12页posX和posY的值确定了要裁剪图像的左上角,height和width值确定了要裁剪图像的大小。使用方法:croplabel=”crop”posXvalue=”40”/posYvalue=”40”/heightvalue=”120”/widthvalue=”160”//cropRectifyFilter(纠正过滤器)说明:这是整个过滤器流程中最后一步。level的设置可以将一些噪点给过滤掉,而让真正有用的点给显示出来。经过这个过滤器后的图像将被用来进行物体检测。使用方法:rectifylabel=”rectify”levelvalue=”75”//rectifylevel的范围是0~255。B.4Touchlib校正为了矫正Touchlib,我们需要一个完整的多点触摸桌面,主要是包含了一个摄像机和一个投影仪。首先,我们先根据例子里面的config.xml文件,创建一个我们自己合适的配置文件。每一种多点触摸技术都有不同的过滤器序列。完成一个完整的过滤器序列后,我们可以启动Touchlib的bin目录下的configapp.exe文件(linux下是在/src/configapp)进行配置。启动configapp.exe后,屏幕上会显示出在config.xml中配置的几个过滤器窗口。调第11页共12页整这几个过滤器窗口中的滚动条来加强需要的效果,直到rectify过滤器能清楚显示触摸的点为止。如果需要重新获取背景图像,可以按”b”键。当各个过滤器窗口看起来的图像效果已经比较满意后,我们就可以开始校点了。按回车键进入到全屏模式,我们
本文标题:非官方Touchlib手册
链接地址:https://www.777doc.com/doc-1979994 .html