【具体实施方式】
在一个实施例中,如图1所示,一种控制窗口图片显示的方法,包括如下步骤:
步骤S10,通过包含标记区域的交互设备产生姿态。
本实施例中,标记区域是交互设备的一个区域或设置在交互设备上的标记,如反光材料等。
具体的,在一个实施例中,交互设备可以是手持装置,可将手持装置的一部分或全部设定为指定的颜色或形状,则该指定颜色或形状的部分即形成标记区域。另外,可在手持装置上设置指定颜色或形状的标记(如反光材料),则该指定颜色或形状的标记即形成标记区域。
在另一个实施例中,交互设备还可以是人体部位(例如人脸、手掌、手臂等),具有皮肤颜色的人体部位即形成标记区域。另外,可在人体部分上附带指定颜色或形状的标记(如反光材料),则该指定颜色或形状的标记即形成标记区域。
步骤S20,采集包含标记区域的图像。
在一个实施例中,可通过摄像机采集包含标记区域的二维可见光图像。优选的,还可在摄像机的镜头前加入红外滤光片,用于滤去除红外波段的其他波段光线,则采集的图像为二维红外图像。由于可见光图像中,场景中的物体会对标记区域的识别形成干扰,而红外图像因滤除掉了可见光信息,干扰较少,因此二维红外图像更有利于提取标记区域。在另一个实施例中,可利用传统的立体视觉系统、结构光系统或TOF(time of flight,飞行时间)深度相机采集包含标记区域的三维图像(即三维深度图像)
步骤S30,识别标记区域的姿态。
所谓姿态,是指标记区域在图像中所形成的姿势状态。本实施例中,姿态为标记区域与预设位置之间的夹角。在二维图像中,姿态为二维图像中的标记区域与一个预设位置之间的夹角,称为姿态角;在三维图像中,姿态为三维图像中的标记区域与两个预设位置之间的夹角,此时姿态为两个夹角组成的姿态角向量。具体的,在二维图像中,可设置标记区域的姿态为标记区域与二维坐标系的X轴之间的夹角,在三维图像中,设标记区域与两个预设位置之间的夹角为第一夹角和第二夹角,可设置第一夹角为标记区域在三维坐标系中的XOY平面中的射影与X轴之间的夹角,并设置第二夹角为标记区域与其在XOY平面中的射影之间的夹角。
本发明中的所指的“姿态”为不同实施例中的姿态角或姿态角向量。
步骤S40,生成姿态对应的控制指令。
在一个实施例中,可根据绝对姿态生成对应的控制指令,绝对姿态即为当前帧图像中的标记区域的姿态。步骤S40的具体过程为:获取当前帧图像中的标记区域的姿态,根据预设的姿态与控制指令之间的映射关系生成与姿态对应的控制指令。
在另一个实施例中,采集的包含标记区域的图像为图像序列,可根据相对姿态生成对应的控制指令,相对姿态为当前帧图像中的姿态与前预设帧(前K帧)图像中的姿态之间的差值,即姿态角或姿态角向量之间的差值。步骤S40的具体过程为:获取当前帧图像中的标记区域的姿态与前预设帧(前K帧)图像中的标记区域的姿态之间的相对姿态,根据预设的相对姿态与控制指令之间的映射关系生成与相对姿态对应的控制指令。
具体的,可设置K=1,以二维图像为例,设当前帧图像中标记区域的姿态为30度,上一帧图像中标记区域的姿态为90度,则当前帧图像中的标记区域的姿态与上一帧图像中标记区域的姿态之间的相对姿态为-60度。
步骤S50,根据控制指令控制窗口图片的显示。
例如,控制指令为“扩大20%”,则将原窗口或图片扩大20%并显示扩大的窗口或图片;若控制指令为“缩小80%”,则将原窗口或图片缩小80%并显示缩小的窗口或图片。
上述控制窗口图片显示的方法,根据采集到的包含标记区域的图像识别出标记区域所产生的姿态,并生成姿态对应的控制指令,进一步的根据控制指令控制窗口图片的显示。这种方式不需要用户操作多个操控部件,只需要挥动交互设备产生姿态即可,操作起来更为简单和灵活,而且在交互设备没有电源的情况下,用户同样可以操作交互设备产生姿态以控制窗口图片的显示,而且还可以将人体部位本身作为交互设备产生姿态,因而这种方式加强了用户的体验,提高了用户的操作便利性。
如图2所示,在一个实施例中,步骤S30的具体过程包括:
步骤S302,提取图像中的标记区域。
在一个实施例中,所采集到的包含标记区域的图像为二维图像,步骤S302的具体过程为:提取图像中与预设颜色模型匹配的像素,对获取的像素进行连通域检测,提取检测得到的连通域中的标记区域。
本实施例中,可预先建立颜色模型。例如标记区域的色彩为红色,则可预先建立红色模型,该模型中像素的RGB值分量可在200到255之间,G、B分量可接近于零;获取采集的图像中满足该红色模型的RGB值的像素即为红色像素。另外,当采集的图像中由人体部位形成标记区域时,则可获取采集的图像中与预设肤色模型匹配的像素。对获取的像素进行连通域检测,得到多个连通域,连通域是若干个连续的像素组成的集合。
本实施例中,由于标记区域的大小和形状应大致是固定不变的,在对获取的像素进行连通域检测时,可计算得到获取的像素中的所有连通域的周长和/或面积。具体的,连通域的周长可为连通域边界像素的个数,连通域的面积可为连通域中的全部像素的个数。进一步的,可将获取的连通域的周长和/或面积与预设标记区域的周长和/或面积进行对比,获取满足预设标记区域的周长和/或面积的连通域即为标记区域。优选的,还可将周长的平方与面积的比值作为判断准则,连通域的该比值满足预设标记区域的该比值,则该连通域为标记区域。
在另一个实施例中,所采集的图像可以为三维图像。步骤S302的具体过程为:对图像进行分割,提取图像中的连通域,计算连通域的属性值,将连通域的属性值与预设的标记区域属性值进行对比,符合预设的标记区域属性值的连通域即为标记区域。
具体的,当三维深度图像中两个相邻的像素深度相差小于预先设定的阈值时,例如5厘米,则认为两个像素连通,对整个图像进行连通域检测,可得到包含标记连通域的一系列连通域。
本实施例中,连通域的属性值包括连通域的尺寸和形状。具体的,计算连通域的尺寸/形状,与交互设备上的标记的尺寸/形状进行对比,得到符合标记的尺寸/形状的连通域即为标记区域的连通域(标记区域)。以矩形标记为例,即交互设备上的标记在采集的图像中为矩形,预先设定好标记的长度和宽度,计算连通域对应的物理区域的长度和宽度,该长度和宽度与标记的长度和宽度越接近,则连通域与标记区域越相似。
进一步的,计算连通域对应的物理区域的长度和宽度的过程如下:计算连通域像素的三维坐标的协方差矩阵,采用如下公式计算连通域对应的物理区域的长度和宽度:
其中,k为预先设定的系数,例如设为4,当λ为协方差矩阵最大特征值时,则l为连通域的长度,当λ为协方差矩阵第二大的特征值时,则l为连通域的宽度。
进一步的,还可预先设定矩形标记的长宽比,例如长宽比为2,则连通域对应的物理区域的长宽比越接近于预设设定的矩形标记的长宽比,则连通域与标记区域越相似,具体的,采用如下公式计算连通域对应的物理区域的长宽比:
其中,r为连通域的长宽比,λ
0为协方差矩阵的最大特征值,λ
1为协方差矩阵的第二大特征值。
步骤S304,获取标记区域中的像素坐标,根据像素坐标产生标记区域姿态。
具体的,在一个实施例中,如图3所示,交互设备包括手持部分和附着于手持部分的标记,其中,标记可为长条形状的反光材料,优选的,可以为椭圆或矩形形状。在其他实施例中,交互设备还可为人体部位,如脸、手掌、手臂等,则采集到的图像中的标记区域即为人体部位的区域。
本实施例中,标记区域为一个连续区域,则根据像素坐标产生标记区域的姿态的过程为:计算得到像素坐标的协方差矩阵,获取协方差矩阵最大特征值对应的特征向量,根据特征向量产生标记区域的姿态。
具体的,设采集的图像为二维图像,且标记区域的像素坐标的协方差矩阵的最大特征向量为[dir_u,der_v]T,在二维图像中,标记区域的姿态为姿态角。则当dir_u≠0时,可设置标记区域的姿态角为:arctan(dir_v/dir_u)。当dir_u=0时,可设置标记区域的姿态角为90度或-90度。
设采集的图像为三维图像,且标记区域的像素坐标的协方差矩阵的最大特征向量为[dir
x,dir
y,dir
z]
T。在三维图像中,标记区域的姿态为姿态角向量。则当dir
x≠0且dir
y≠0,可设置标记区域的姿态角向量的第一夹角为:arccos
标记区域的姿态角向量的第二夹角为:
当dir
x=0且dir
y=0时,可设置标记区域的姿态角向量的第一夹角为90度或-90度,标记区域的姿态角向量的第二夹角为0度。
在另一个实施例中,标记区域包括两个部分,分别为第一连续区域和第二连续区域。如图4所示,两个标记区域分别附着在交互设备的手持部分的前端,标记区域的可以为圆点、椭圆或矩形。如图5所示,可将标记区域设置在手持部分的两端。在其他实施例中,还可将标记设置在人体部位上,例如设置在人脸、手掌或手臂上。应当说明的是,所设置的两个标记可以大小、形状、颜色等特征上不一致。
本实施例中,根据像素坐标产生标记区域的姿态的具体过程包括:计算第一连续区域的重心和第二连续区域的重心,根据第一连续区域的重心的像素坐标和第二连续区域的重心的像素坐标产生标记区域的姿态。
具体的,可计算连续区域中的全部像素坐标的平均值,所得到的像素坐标即为连续区域的重心。设采集的图像为二维图像,且计算得到的两个连续区域的重心分别为A(u1,v1)和B(u2,v2)。在二维图像中,标记区域的姿态为上文中的姿态角。当u1≠u2时,可设置标记区域的姿态角为arctan((v2-v1)/(u2-u1)),当u1=u2时,可设置标记区域的姿态角为标记区域的姿态角为90度或-90度。
设采集的图像为三维图像,且计算得到的两个连续区域的重心分别为A(x1,y1,z1)和B(x2,y2,z2)。在三维图像中,标记区域的姿态为上文中的姿态角向量。当
时,可设置标记区域的姿态角向量的第一夹角为:
可设置标记区域的姿态角向量的第二夹角为:
当
时,可设置标记区域的姿态角向量的第一夹角为90度或-90度,标记区域的姿态角向量的第二夹角为0度。
如图6所示,在一个实施例中,上述步骤S40的具体过程包括:
步骤S402,根据预设的姿态与控制指令类型之间的映射关系获取姿态对应的控制指令类型。
在一个实施例中,上述姿态包括绝对姿态和/或相对姿态,可预先存储绝对姿态或/和相对姿态与控制指令类型之间的映射关系表至数据库中,根据绝对姿态或/和相对姿态获取对应的控制指令类型。
具体的,控制指令类型即为控制窗口/图片显示的指令类型,控制指令类型与调整幅度共同构成控制指令的两个重要参数,控制指令类型与调整幅度唯一确定一个具体的控制指令。显示设备可根据控制指令类型来确定进行何种类型的显示控制,进一步的根据调整幅度来确定进行该种类型的显示控制的幅度。具体的,姿态的一个取值范围对应一种控制指令类型,姿态的一个具体的取值对应一个调整幅度。在二维图像中,姿态为姿态角,则该姿态角的取值范围(即一个一维区间)对应一种控制指令类型,在三维图片中,姿态为两个夹角组成的姿态角向量,则可任意设置其中的一个夹角的取值范围(即一个一维区间)对应一种控制指令类型,也可以设置两个夹角的取值范围(即一个二维区域)对应一种控制指令类型。
优选的,控制指令类型包括打开类指令、退出类指令、扩大类指令、缩小类指令、左旋类指令、右旋类指令、向前切换类指令、向后切换类指令等。其中,打开类指令指的是打开并显示指定窗口或图片,退出类指令即为退出窗口或图片的显示,扩大或缩小类指令即为扩大或缩小显示的窗口或图片,左旋或右旋类指令即为将显示的窗口或图片向左旋转或向右旋转,向前或向后类切换指令指的是在当活跃的窗口或可显示的图片有多个时,显示当前窗口/图片的前几个或后几个窗口/图片。
具体的,以二维图像为例,姿态为姿态角,可预先设定当姿态角在(a,b)范围内时,则对应某一控制指令类型,当姿态角在(c,d)范围内时,则对应另一控制指令类型。其中,a、b、c、d都为预先设定的角度,满足a<b,c<d,且集合[a,b]和集合[c,d]的交集为空。
例如,可预先设定当绝对姿态角为0度至5度时,对应打开类指令;当绝对姿态角为85度至90度时,对应退出类指令;当绝对姿态角在10度至30度时,对应扩大类指令;当绝对姿态角在-10度至-30度时,对应缩小类指令;当绝对姿态角在35度至55度时,对应左旋类指令;当绝对姿态角在-35度至-55度时,对应右旋类指令;当绝对姿态角在60度至80度时,对应向前切换类指令;当绝对姿态角在-60度至-80度时,对应向后切换类指令,等等。
在另一个实施例中,还可根据相对姿态角获取控制指令类型。例如,可预先设定当相对姿态角为5度至40度时,对应打开类指令;当相对姿态角为-5度至-40度时,对应退出类指令;当相对姿态角在50度至85度时,对应扩大类指令;当相对姿态角在-50度至-85度时,对应缩小类指令;当相对姿态角在95度至140度时,对应左旋类指令;当相对姿态角在-95度至-140度时,对应右旋类指令;当相对姿态角在150度至175度时,对应向前切换类指令;当相对姿态角在-150度至-175度时,对应向后切换类指令,等等。
另外,在三维图像中,姿态为姿态角向量,包括第一夹角和第二夹角,可以预先建立其中的一个夹角(如第一夹角)与控制指令类型之间的映射关系,根据该夹角来获取控制指令类型,原理与二维图像类似,在此不再赘述。在另一个实施例中,也可以建立两个夹角与控制指令类型之间的映射关系,根据这两个夹角来获取控制指令类型。例如,可预先设置当第一夹角为0至5度且第二夹角为85至90度时,对应打开类指令,等等。
步骤S404,根据预设的姿态与调整幅度之间的映射关系获取姿态对应的调整幅度。
具体的,可预先设定绝对姿态或/和相对姿态与调整幅度之间的映射关系,根据绝对姿态或/和相对姿态获取对应的调整幅度。以二维图像为例,姿态为姿态角,设姿态角在(m,n)范围内时,对应某一控制指令类型,则可设定该种控制指令类型的调整幅度与姿态角的映射关系为:y=k*(x-m)/(n-m),其中,y为调整幅度,x为姿态角,k为上限。
例如,设相对姿态角在50度至85度范围内时,对应的控制指令类型为扩大类指令,则可设定调整幅度(即窗口或图片的扩大倍率)与姿态角的映射关系为:y=100%*(x-50)/(85-50),其中,y为调整幅度,x为姿态角,100%为窗口或图片的最大扩大倍率。当相对姿态角为60度时,可计算得到调整幅度为40%,即窗口或图片扩大40%。再比如,当相对姿态角在150度至175度范围内时,对应的控制指令类型为向前切换类指令,则可设定调整幅度(即向前切换的窗口或图片的个数)与姿态角的映射关系为:
其中,y为调整幅度,x为姿态角,9为可向前切换的窗口或图片的最大数量(当活跃的窗口个数为10个,或可显示的图片张数为10张时,则最多可向前切换的窗口个数或图片张数为10),
为向下取整符号(因为向前切换的窗口或图片的最大数量只能为整数)。例如当相对姿态角为155度时,可计算得到调整幅度为2,即向前切换2个窗口或2张图片。
另外,在三维图像中,所识别出的姿态包含两个姿态角,可以使用其中的一个姿态角来获取调整幅度,也可以使用两个姿态角来获取调整幅度。使用其中一个姿态角的方法原理与二维图像类似,在此则不再赘述。使用两个姿态角时,可预先设置调整幅度为两个姿态角的二元函数。
值得注意的是,在一个实施例中,当某一类型的控制指令没有调整幅度的变化时,则不需要获取姿态对应的调整幅度。例如,当姿态落入打开类指令或退出类指令的取值范围时,由于打开类指令和退出类指令没有调整幅度的变化,因此不需要再根据姿态的取值获取调整幅度。步骤S406,根据姿态对应的控制指令类型和调整幅度生成相应的控制指令。
例如,姿态对应的控制指令类型为扩大类指令,调整幅度为10%,则生成扩大10%的指令,即生成将显示的窗口或图片扩大10%的指令;若姿态对应的控制指令类型为向前切换类指令,调整幅度为3,则生成向前切换3(个/张窗口或图片)的指令,等等。优选的,若指令为向前切换3(个/张窗口或图片),则步骤S50可将显示的窗口/图片切换为当前窗口/图片往前数第3个窗口/图片,若当前窗口/图片前面的窗口/图片数量少于3,则可将当前窗口/图片切换到第一个/张窗口或图片。
值得注意的是,在一个实施例中,当某一类型的控制指令没有调整幅度的变化时,可直接根据姿态对应的控制指令类型生成相应的控制指令。例如,当控制指令类型为打开类指令、退出类指令时,不需要获取调整幅度,即可分别生成相应的控制指令:打开指定的窗口或图片进行显示、退出显示的窗口或图片。
上述控制窗口图片显示的方法,通过产生一个姿态即可生成对应的控制指令类型和调整幅度,几乎可做到一步到位,而不需要用户操作多个操控部件(如按键等),先选择控制指令类型,进入到扩大、缩小、左旋、右旋等控制指令类型的控制界面或控制菜单后,再逐步地进行扩大幅度、缩小幅度等调整幅度的控制,从而提高了用户的操作便利性。
在一个实施例中,如图7所示,一种控制窗口图片显示的系统,包括交互设备10、姿态识别器、显示设备50,所述姿态识别器包括图像采集模块20、姿态识别模块30、指令生成模块40,其中:
交互设备10用于通过标记区域产生姿态。
本实施例中,标记区域是交互设备10的一个区域或设置在交互设备10上的标记,如反光材料等。
具体的,在一个实施例中,交互设备10可以是手持装置,可将手持装置的一部分或全部设定为指定的颜色或形状,则该指定颜色或形状的部分即形成标记区域。另外,可在手持装置上设置指定颜色或形状的标记(如反光材料),则该指定颜色或形状的标记即形成标记区域。
在另一个实施例中,交互设备10还可以是人体部位(例如人脸、手掌、手臂等),具有皮肤颜色的人体部位即形成标记区域。另外,可在人体部分上附带指定颜色或形状的标记(如反光材料),则该指定颜色或形状的标记即形成标记区域。
图像采集模块20用于采集包含标记区域的图像。
在一个实施例中,图像采集模块20可通过摄像机采集包含标记区域的二维可见光图像。在另一个实施例中,图像采集模块20可利用传统的立体视觉系统、结构光系统或TOF(time of flight,飞行时间)深度相机采集包含标记区域的三维图像(即三维深度图像)
姿态识别模块30用于识别标记区域的姿态。
所谓姿态,是指标记区域在图像中所形成的姿势状态。本实施例中,姿态为标记区域与预设位置之间的夹角。在二维图像中,姿态为二维图像中的标记区域与一个预设位置之间的夹角,称为姿态角;在三维图像中,姿态为三维图像中的标记区域与两个预设位置之间的夹角,此时姿态为两个夹角组成的姿态角向量。具体的,在二维图像中,可设置标记区域的姿态为标记区域与二维坐标系的X轴之间的夹角,在三维图像中,设标记区域与两个预设位置之间的夹角为第一夹角和第二夹角,可设置第一夹角为标记区域在三维坐标系中的XOY平面中的射影与X轴之间的夹角,并设置第二夹角为标记区域与其在XOY平面中的射影之间的夹角。
本发明中的所指的“姿态”为不同实施例中的姿态角或姿态角向量。
指令生成模块40用于生成姿态对应的控制指令。
在一个实施例中,指令生成模块40可根据绝对姿态生成对应的控制指令,绝对姿态即为当前帧图像中的标记区域的姿态。具体的,指令生成模块40可获取当前帧图像中的标记区域的姿态,根据预设的姿态与控制指令之间的映射关系生成与姿态对应的控制指令。
在另一个实施例中,图像采集模块20采集的包含标记区域的图像为图像序列,指令生成模块40可根据相对姿态生成对应的控制指令,相对姿态为当前帧图像中的姿态与前预设帧(前K帧)图像中的姿态之间的差值,即姿态角或姿态角向量之间的差值。指令生成模块40可获取当前帧图像中的标记区域的姿态与前预设帧(前K帧)图像中的标记区域的姿态之间的相对姿态,根据预设的相对姿态与控制指令之间的映射关系生成与相对姿态对应的控制指令。
具体的,设K=1,以二维图像为例,若当前帧图像中标记区域的姿态为30度,上一帧图像中标记区域的姿态为90度,则当前帧图像中的标记区域的姿态与上一帧图像中标记区域的姿态之间的相对姿态为-60度。
显示设备50用于根据控制指令控制窗口图片的显示。
例如,控制指令为“扩大20%”,则显示设备50将原窗口或图片扩大20%并显示扩大的窗口或图片;若控制指令为“缩小80%”,则显示设备50将原窗口或图片缩小80%并显示缩小的窗口或图片。
上述控制窗口图片显示的系统,根据采集到的包含标记区域的图像识别出标记区域所产生的姿态,并生成姿态对应的控制指令,进一步的根据控制指令控制窗口图片的显示。这种方式不需要用户操作多个操控部件,只需要挥动交互设备产生姿态即可,操作起来更为简单和灵活,而且在交互设备没有电源的情况下,用户同样可以操作交互设备产生姿态以控制窗口图片的显示,而且还可以将人体部位本身作为交互设备产生姿态,因而这种方式加强了用户的体验,提高了用户的操作便利性。
如图8所示,在一个实施例中,姿态识别模块30包括标记区域提取单元302、姿态识别单元304:
标记区域提取单元302用于提取图像中的标记区域。
在一个实施例中,若图像采集模块20所采集到的包含标记区域的图像为二维图像,则标记区域提取单元302可提取图像中与预设颜色模型匹配的像素,对获取的像素进行连通域检测,提取检测得到的连通域中的标记区域。
在另一个实施例中,若图像采集模块20所采集的图像可以为三维图像,则标记区域提取单元302可对图像进行分割,提取图像中的连通域,计算连通域的属性值,将连通域的属性值与预设的标记区域属性值进行对比,符合预设的标记区域属性值的连通域即为标记区域。
姿态识别单元304用于获取标记区域中的像素坐标,根据像素坐标产生标记区域姿态。
在一个实施例中,若标记区域提取单元302提取的标记区域为一个连续区域,则姿态识别单元304可获取标记区域中的像素坐标,计算得到像素坐标的协方差矩阵,获取协方差矩阵最大特征值对应的特征向量,根据特征向量产生标记区域的姿态。
具体的,设图像采集模块20采集的图像为二维图像,且标记区域的像素坐标的协方差矩阵的最大特征向量为[dir_u,dir_v]T,在二维图像中,标记区域的姿态为姿态角。则当dir_u≠0时,姿态识别单元304可设置标记区域的姿态角为:arctan(dir_v/dir_u)。当dir_u=0时,姿态识别单元304可设置标记区域的姿态角为90度或-90度。
设采集的图像为三维图像,且标记区域的像素坐标的协方差矩阵的最大特征向量为[dir
x,dir
y,dir
z]
T。在三维图像中,标记区域的姿态为姿态角向量。则当dir
x≠0且dir
y≠0,姿态识别单元304可设置标记区域的姿态角向量的第一夹角为:
标记区域的姿态角向量的第二夹角为:arctan
当dir
x=0且dir
y=0时,姿态识别单元304可设置标记区域的姿态角向量的第一夹角为90度或-90度,标记区域的姿态角向量的第二夹角为0度。
在另一个实施例中,若标记区域提取单元302提取的标记区域包括两个部分,分别为第一连续区域和第二连续区域,则姿态识别单元304可获取第一连续区域的像素坐标和第二连续区域的像素坐标,计算第一连续区域的重心和第二连续区域的重心,根据第一连续区域的重心的像素坐标和第二连续区域的重心的像素坐标产生标记区域的姿态。
具体的,姿态识别单元304可计算连续区域中的全部像素坐标的平均值,所得到的像素坐标即为连续区域的重心。设图像采集模块20采集的图像为二维图像,且计算得到的两个连续区域的重心分别为A(u1,v1)和B(u2,v2)。在二维图像中,标记区域的姿态为上文中的姿态角。当u1≠u2时,姿态识别单元304可设置标记区域的姿态角为arctan((v2-v1)/(u2-u1)),当u1=u2时,姿态识别单元304可设置标记区域的姿态角为标记区域的姿态角为90度或-90度。
设图像采集模块20采集的图像为三维图像,且计算得到的两个连续区域的重心分别为A(x1,y1,z1)和B(x2,y2,z2)。在三维图像中,标记区域的姿态为上文中的姿态角向量。当
时,姿态识别单元304可设置标记区域的姿态角向量的第一夹角为:
标记区域的姿态角向量的第二夹角为:
当
时,姿态识别单元304可设置标记区域的姿态角向量的第一夹角为90度或-90度,标记区域的姿态角向量的第二夹角为0度。
如图9所示,在一个实施例中,指令生成模块40的包括指令类型获取单元402、调整幅度获取单元404、指令产生单元406:
指令类型获取单元402用于根据预设的姿态与控制指令类型之间的映射关系获取姿态对应的控制指令类型。
在一个实施例中,上述姿态包括绝对姿态和/或相对姿态,可预先存储绝对姿态或/和相对姿态与控制指令类型之间的映射关系表至数据库中,指令类型获取单元402可根据绝对姿态或/和相对姿态获取对应的控制指令类型。
具体的,控制指令类型即为控制窗口/图片显示的指令类型,控制指令类型与调整幅度共同构成控制指令的两个重要参数,控制指令类型与调整幅度唯一确定一个具体的控制指令。显示设备50可根据控制指令类型来确定进行何种类型的显示控制,进一步的根据调整幅度来确定进行该种类型的显示控制的幅度。具体的,姿态的一个取值范围对应一种控制指令类型,姿态的一个具体的取值对应一个调整幅度。在二维图像中,姿态为姿态角,则该姿态角的取值范围(即一个一维区间)对应一种控制指令类型,在三维图片中,姿态为两个夹角组成的姿态角向量,则可任意设置其中的一个夹角的取值范围(即一个一维区间)对应一种控制指令类型,也可以设置两个夹角的取值范围(即一个二维区域)对应一种控制指令类型。
优选的,控制指令类型包括打开类指令、退出类指令、扩大类指令、缩小类指令、左旋类指令、右旋类指令、向前切换类指令、向后切换类指令等。其中,打开类指令指的是打开并显示指定窗口或图片,退出类指令即为退出窗口或图片的显示,扩大或缩小类指令即为扩大或缩小显示的窗口或图片,左旋或右旋类指令即为将显示的窗口或图片向左旋转或向右旋转,向前或向后切换类指令指的是在当活跃的窗口或可显示的图片有多个时,显示当前窗口/图片的前几个或后几个窗口或图片。
具体的,以二维图像为例,姿态为姿态角,可预先设定当姿态角在(a,b)范围内时,则对应某一控制指令类型,当姿态角在(c,d)范围内时,则对应另一控制指令类型。其中,a、b、c、d都为预先设定的角度,满足a<b,c<d,且集合[a,b]和集合[c,d]的交集为空。
例如,可预先设定当绝对姿态角为0度至5度时,对应打开类指令;当绝对姿态角为85度至90度时,对应退出类指令;当绝对姿态角在10度至30度时,对应扩大类指令;当绝对姿态角在-10度至-30度时,对应缩小类指令;当绝对姿态角在35度至55度时,对应左旋类指令;当绝对姿态角在-35度至-55度时,对应右旋类指令;当绝对姿态角在60度至80度时,对应向前切换类指令;当绝对姿态角在-60度至-80度时,对应向后切换类指令,等等。
在另一个实施例中,指令类型获取单元402还可根据相对姿态角获取控制指令类型。例如,可预先设定当相对姿态角为5度至40度时,对应打开类指令;当相对姿态角为-5度至-40度时,对应退出类指令;当相对姿态角在50度至85度时,对应扩大类指令;当相对姿态角在-50度至-85度时,对应缩小类指令;当相对姿态角在95度至140度时,对应左旋类指令;当相对姿态角在-95度至-140度时,对应右旋类指令;当相对姿态角在150度至175度时,对应向前切换类指令;当相对姿态角在-150度至-175度时,对应向后切换类指令,等等。
另外,在三维图像中,姿态为姿态角向量,包括两个夹角,分别设为第一夹角和第二夹角,可以预先建立其中的一个夹角(如第一夹角)与控制指令类型之间的映射关系,指令类型获取单元402可根据该夹角来获取控制指令类型,原理与二维图像类似,在此不再赘述。在另一个实施例中,也可以建立两个夹角与控制指令类型之间的映射关系,指令类型获取单元402可根据该两个夹角来获取控制指令类型。例如,可预先设置当第一夹角为0至5度且第二夹角为85至90度时,对应打开类指令,等等。
调整幅度获取单元404用于根据预设的姿态与调整幅度之间的映射关系获取所述姿态对应的调整幅度。
具体的,可预先设定绝对姿态或/和相对姿态与调整幅度之间的映射关系,调整幅度获取单元404可根据绝对姿态或/和相对姿态获取对应的调整幅度。以二维图像为例,姿态为姿态角,设姿态角在(m,n)范围内时,对应某一控制指令类型,则可预先设定该种控制指令类型的调整幅度与姿态角的映射关系为:y=k*(x-m)/(n-m),其中,y为调整幅度,x为姿态角,k为上限。
例如,设相对姿态角在50度至85度范围内时,对应的控制指令类型为扩大类指令,则可设定调整幅度(即窗口或图片的扩大倍率)与姿态角的映射关系为:y=100%*(x-50)/(85-50),其中,y为调整幅度,x为姿态角,100%为窗口或图片的最大扩大倍率。当相对姿态角为60度时,调整幅度获取单元404可计算得到调整幅度为40%,即窗口或图片扩大40%。再比如,当相对姿态角在150度至175度范围内时,对应的控制指令类型为向前切换类指令,则可预先设定调整幅度(即向前切换的窗口或图片的个数)与姿态角的映射关系为:
其中,y为调整幅度,x为姿态角,9为可向前切换的窗口或图片的最大数量(当活跃的窗口个数为10个,或可显示的图片张数为10张时,则最多可向前切换的窗口个数或图片张数为10),
为向下取整符号(因为向前切换的窗口或图片的最大数量只能为整数)。例如当相对姿态角为155度时,调整幅度获取单元404可计算得到调整幅度为2,即向前切换2个窗口或2张图片。
另外,在三维图像中,所识别出的姿态包含两个姿态角,可以使用其中的一个姿态角来获取调整幅度,也可以使用两个姿态角来获取调整幅度。使用其中一个姿态角的方法原理与二维图像类似,在此则不再赘述。使用两个姿态角时,可预先设置调整幅度为两个姿态角的二元函数。
值得注意的是,在一个实施例中,当某一类型的控制指令没有调整幅度的变化时,则不需要获取姿态对应的调整幅度。例如,当姿态落入打开类指令或退出类指令的取值范围时,由于打开类指令和退出类指令没有调整幅度的变化,因此不需要再根据姿态的取值获取调整幅度。
指令产生单元406用于根据姿态对应的控制指令类型和调整幅度生成相应的控制指令。
例如,姿态对应的控制指令类型为扩大类指令,调整幅度为10%,则指令产生单元406生成扩大10%的指令,即生成将显示的窗口或图片扩大10%的指令;若姿态对应的控制指令类型为向前切换类指令,调整幅度为3,则生成向前切换3(个/张窗口或图片)的指令,等等。优选的,若指令为向前切换3(个/张窗口或图片),则显示设备50可将显示的窗口/图片切换为当前窗口/图片往前数第3个窗口/图片,若当前窗口/图片前面的窗口/图片数量少于3,则显示设备50可将当前窗口/图片切换到第一个/张窗口或图片。
值得注意的是,在一个实施例中,当某一类型的控制指令没有调整幅度的变化时,指令产生单元406可直接根据姿态对应的控制指令类型生成相应的控制指令。例如,当控制指令类型为打开类指令、退出类指令时,不需要获取调整幅度,即可分别生成相应的控制指令:打开指定的窗口或图片进行显示、退出显示的窗口或图片。
上述控制窗口图片显示的系统,通过产生一个姿态即可生成对应的控制指令类型和调整幅度,几乎可做到一步到位,而不需要用户操作多个操控部件(如按键等),先选择控制指令类型,进入到扩大、缩小、左旋、右旋等控制指令类型的控制界面或控制菜单后,再逐步地进行扩大幅度、缩小幅度等调整幅度的控制,从而提高了用户的操作便利性。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。