CN104133665B - 基于图像检测的定位方法与装置 - Google Patents
基于图像检测的定位方法与装置 Download PDFInfo
- Publication number
- CN104133665B CN104133665B CN201310585139.2A CN201310585139A CN104133665B CN 104133665 B CN104133665 B CN 104133665B CN 201310585139 A CN201310585139 A CN 201310585139A CN 104133665 B CN104133665 B CN 104133665B
- Authority
- CN
- China
- Prior art keywords
- image
- target widget
- interface
- contact surface
- father
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于图像检测的定位方法与装置。其中方法包括:从程序运行的第一界面中截取目标控件的第一图像;根据第一界面的布局确定目标控件的布局参数;根据程序当前运行的第二界面、第一界面和目标控件的布局参数,确定目标控件在第二界面的位置区域;从目标控件在第二界面的位置区域截取目标控件的第二图像;根据第一图像和第二图像,检测是否定位到目标控件。本发明通过采用上述方案,能够准确定位目标控件在第二界面的位置区域,从位置区域截取目标控件在第二界面的第二图像,能够准确获取目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,能够有效地扩大基于图像检测定位方法的应用场景。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于图像检测的定位方法与装置。
背景技术
图形用户界面(Graphical User Interface,简称GUI)程序操作自动化主要应用在自动化测试中,自动替用户完成一些复杂的输入操作,降低用户的使用门槛。
GUI程序操作自动化最主要包括界面控件的定位和模拟用户操作两部分。其中模拟用户操作基本都是通过模拟windows输入事件完成,区别不大。界面控件的定位受界面实现方式不同的影响方法较多,主要分基于界面控件检测的定位和基于图像检测的定位。其中基于界面控件检测的方法要求界面引擎必须向外暴露接口,使得自动化程序能够获取到控件的句柄,并进一步获取控件的详细信息。当界面引擎不向第三方开放这些接口的时候就完全不可用了,比如基于非公开DirectUI引擎实现的应用程序。而基于图像检测的定位会解决基于界面控件检测的方法遇到的问题,可以不依赖界面引擎,完全基于最终的视觉效果来检测控件,与人眼识别更接近,也更智能。现有的基于图像检测的定位技术,通过预先截取操作过程中会出现的图像,然后在自动化测试过程中对软件运行时的界面进行截图,在整幅界面截图中搜索预先截取的图像来定位目标控件。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有的基于图像检测的定位的方法,基本都是把整个程序界面全部截取下来,然后在大图像中搜索预先截取的小图像。这种方法对图像的分辨率有较高的要求,要求程序运行时和预先截取图像时的分辨率(即尺寸)必须是一样的,否则图像被缩放后无法搜索。而且如果程序运行时出现了多个预先截取的控件的小图像时,这种方法是无法分辨到底哪个图像才是要寻找的目标控件的,因此现有的基于图像检测的定位方法应用场景的局限性较高。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种基于图像检测的定位方法及装置。所述技术方案如下:
一方面,提供了一种基于图像检测的定位方法,所述方法包括:
从程序运行的第一界面中截取目标控件的第一图像;
根据所述第一界面的布局,确定所述目标控件的布局参数;
根据所述程序当前运行的第二界面、所述第一界面和所述目标控件的布局参数,确定所述目标控件在所述第二界面的位置区域;
从所述目标控件在所述第二界面的位置区域截取所述目标控件的第二图像;
根据所述第一图像和所述第二图像,检测是否定位到所述目标控件;
其中,所述第一界面为所述程序运行的默认尺寸对应的界面,所述第二界面为对所述第一界面进行放大或者缩小的界面。
另一方面,提供了一种基于图像检测的定位装置,所述装置包括:
截取模块,用于从程序运行的第一界面中截取目标控件的第一图像;所述第一界面为所述程序运行的默认尺寸对应的界面;
确定模块,用于根据所述第一界面的布局,确定所述目标控件的布局参数;
所述确定模块,还用于根据所述程序当前运行的第二界面、所述第一界面和所述目标控件的布局参数,确定所述目标控件在所述第二界面的位置区域;所述第二界面为对所述第一界面进行放大或者缩小的界面;
所述截取模块,还用于从所述目标控件在所述第二界面的位置区域截取所述目标控件的第二图像;
检测模块,用于根据所述第一图像和所述第二图像,检测是否定位到所述目标控件。
本发明实施例的基于图像检测的定位方法及装置,通过从程序运行的第一界面中截取目标控件的第一图像;根据第一界面的布局,确定目标控件的布局参数;根据程序当前运行的第二界面、第一界面和目标控件的布局参数,确定目标控件在第二界面的位置区域;从目标控件在第二界面的位置区域截取目标控件的第二图像;根据第一图像和第二图像,检测是否定位到目标控件。本发明实施例的技术方案,能够克服现有技术中无法在程序界面运行时尺寸与预设尺寸不一致时寻找到目标控件的小图像的缺陷,能够准确定位目标控件在第二界面的位置区域,然后再具体从该位置区域截取目标控件在第二界面的第二图像,能够准确获取该目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,因此,采用本发明实施例的技术方案,能够有效地扩大基于图像检测定位方法的应用场景。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的基于图像检测的定位方法的流程图;
图2为本发明实施例提供的界面布局示意图;
图3为本发明另一实施例提供的基于图像检测的定位方法的流程图;
图4为本发明实施例提供的第一界面示意图;
图5为图4所示的第一界面中的目标控件的第一图像;
图6为本发明实施例提供的第二界面示意图;
图7为图6所示的第二界面中的目标控件的第二图像;
图8为图5所示的第一图像的直方图;
图9为图7所示的第二图像的直方图;
图10为本发明实施例提供的第三界面示意图;
图11为图10所示的第三界面中的目标控件的第三图像;
图12为图11所示的第三图像的直方图;
图13为本发明实施例提供的基于图像检测的定位装置的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
图1为本发明一实施例提供的基于图像检测的定位方法的流程图。本实施例的基于图像检测的定位方法的执行主体为基于图像检测的定位装置,该基于图像检测的定位装置可以为通过软件集成的。如图1所示,本实施例的基于图像检测的定位方法,具体可以包括如下步骤:
100、从程序运行的第一界面中截取目标控件的第一图像;
例如,本实施例的第一界面可以为该程序运行时的默认尺寸对应的界面。例如使用时,可以打开该程序,该程序运行在默认尺寸下的第一界面,该第一界面中包括很多控件,这些空间可以以可视化图形的格式存在,这些控件可以为按钮或者文件编辑框等等。本实施例中的目标控件为本实施例中第一界面中的多个控件中的其中一个控件,该控件即为本实施例中要研究的目标控件。
101、根据第一界面的布局,确定目标控件的布局参数;
具体地,根据第一界面中包括的所有控件的布局,可以知道目标控件的布局参数。目标控件的布局参数可以包括表征该目标控件在第一界面中的所有参数。例如该目标控件的布局参数可以包括目标控件在第一界面中的大小、目标控件在第一界面中相对于父容器的对齐方式、目标控件相对于父容器的边距以及目标控件是否随父容器缩放的属性值;父容器为第一界面的主窗口或者主窗口中的部分。其中对齐方式可以包括上、下、左、右、左上、右上、左下、右下、居中等等。目标控件是否随父容器缩放的属性值可以为Ture或者False,当为True的话表示目标控件随父容器缩放,当为False时表示目标控件不随父容器缩放。例如图2为本发明实施例提供的界面布局示意图。如图2中窗口A为第一界面的主窗口,窗口B为主窗口的一部分,控件C为窗口B中的一部分。这里窗口B为控件C的父容器,窗口A为窗口B的父容器。在确定目标控件的布局参数时都是以目标控件相对于父容器的布局参数。而父容器也可以采用类似的布局参数确定方式确定该父容器相对于该父容器的父容器的布局参数,依此类推,直到推论到父容器为主窗口时。这样,可以根据每一个目标控件、及其相对于父容器的布局参数,以及其父容器相对于父容器的父容器的布局参数,直到推理到主窗口,这样可以确定每一个目标控件在主窗口中的位置。例如图2中当需要确定目标控件C在主窗口A中的位置时,可以根据目标控件C相对于窗口B的布局参数以及窗口B相对于主窗口A的布局参数,可以确定目标控件在主窗口A中的布局位置。
102、根据程序当前运行的第二界面、第一界面和目标控件的布局参数,确定目标控件在第二界面的位置区域;
本实施例中的第二界面为对第一界面进行放大或者缩小的界面。如第一界面为默认尺寸的界面时,第二界面为对默认尺寸的界面进行放大或者缩小得来的。该步骤中,根据第一界面、第二界面以及目标控件在第一界面的目标控件在第一界面中的大小、目标控件在第一界面中相对于父容器的对齐方式以及目标控件相对于父容器的边距以及目标控件是否随父容器缩放的属性值,可以推理确定出目标控件在第二界面的位置区域。
103、从目标控件在第二界面的位置区域截取目标控件的第二图像;
具体地,由于步骤102已经准确确定出了目标控件在第二界面中的位置区域,本步骤即从第二界面中步骤102中确定的位置区域上截取目标控件在第二界面中的第二图像。
104、根据第一图像和第二图像,检测是否定位到目标控件。
由于第一图像和第二图像分别为目标控件在第一界面和第二界面的目标控件的图像,对第一图像和第二图像进行检测,便可以确定是否定位到目标控件。
本实施例的基于图像检测的定位方法及装置,通过从程序运行的第一界面中截取目标控件的第一图像;根据第一界面的布局,确定目标控件的布局参数;根据程序当前运行的第二界面、第一界面和目标控件的布局参数,确定目标控件在第二界面的位置区域;从目标控件在第二界面的位置区域截取目标控件的第二图像;根据第一图像和第二图像,检测是否定位到目标控件。本实施例的技术方案,能够克服现有技术中无法无法在程序界面运行时尺寸与预设尺寸不一致时准确寻找到目标控件的小图像的缺陷,能够准确定位目标控件在第二界面的位置区域,然后再具体从该位置区域截取目标控件在第二界面的第二图像,能够准确获取该目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,因此,采用本实施例的技术方案,能够有效地扩大基于图像检测的定位方法的应用场景。
可选地,在上述图1所示实施例的技术方案的基础上,其中步骤102“根据程序当前运行的第二界面、第一界面和目标控件的布局参数,确定目标控件在第二界面的位置区域”,具体可以包括如下步骤:
(1)根据目标控件是否随父容器缩放的属性值、目标控件在第一界面中的大小、第一界面的大小和第二界面的大小,确定目标控件在第二界面中的大小;
例如当目标控件随父容器缩放的属性值为False时,此时目标控件在第二界面中的大小与在第一界面中的大小相同。当目标控件随父容器缩放的属性值为True时,此时可以根据第一界面的大小和第二界面的大小以及目标控件在第一界面中的大小,推算出目标控件在第二界面中的大小。
(2)根据目标控件在第一界面中相对于父容器的边距、第一界面的大小和第二界面的大小,确定目标控件在第二界面中相对于父容器的边距;
由于根据第一界面的大小和第二界面的大小可以确定第二界面相对于第一界面的放大或者缩小的比例,然后根据目标控件在第一界面中相对于父容器的边距推算出目标控件在第二界面中相对于父容器的边距。
(3)根据目标控件在第一界面中相对于父容器的对齐方式、目标控件在第二界面中的大小和目标控件在第二界面中相对于父容器的边距,确定目标控件在第二界面的位置区域。
根据上述实施例的记载,虽然每一个目标控件的布局参数都是相对于其父容器,但是每一个父容器的布局参数都可以采用类似的方式来确定。因此即使当该父容器不是主窗口时,也可以采用类推的方式确定该目标控件的位置区域。因此,该步骤中,可以根据目标控件在第一界面中相对于父容器的对齐方式、目标控件在第二界面中的大小和目标控件在第二界面中相对于父容器的边距,确定目标控件在第二界面的位置区域。
进一步可选地,在上述实施例的技术方案的基础上,其中步骤104“根据第一图像和第二图像,检测是否定位到目标控件”,具体可以包括:根据第一图像中包括的文字和第二图像中包括的文字,检测是否定位到目标控件;和/或者根据第一图像的颜色和第二图像中的颜色,检测是否定位到目标控件。
也就是说,可以只检测第一图像中包括的文字和第二图像中包括的文字,或者检测只检测第一图像的颜色和第二图像中的颜色,来确定是否定位到目标控件。或者同时即检测第一图像中包括的文字和第二图像中包括的文字,又检测只检测第一图像的颜色和第二图像中的颜色,只有两者检测都通过,才能确定定位到目标控件,否则则认为未定位到目标控件。
进一步地,例如当根据第一图像中包括的文字和第二图像中包括的文字,检测是否定位到目标控件,具体可以包括如下步骤:
(a)分别从第一图像和第二图像中提取第一图像中包括的文字和第二图像中包括的文字;
例如其中的文字可以为字母组成的单词或者数字或者汉字等等,在此不做限制。
(b)判断第一图像中包括的文字和第二图像中包括的文字是否相同,当相同时,确定定位到目标控件;否则未定位到目标控件。
在本实施例中,当第一图像中包括的文字和第二图像中包括的文字相同,说明采用本实施例的方式获取的目标控件的第二图像是准确的,即定位到目标控件,否则未定位到目标控件。
进一步地,例如根据第一图像的颜色和第二图像中的颜色,检测是否定位到目标控件,具体可以包括如下步骤:
(A)分别提取第一图像的颜色直方图和第二图像的颜色直方图;
本实施例中的颜色的直方图中可以包括图像的颜色信息,例如可以采用红(R)、绿(G)和蓝(B)信息来表示。
(B)分别从第一图像的颜色直方图和第二图像的颜色直方图中获取第一图像的颜色值和第二图像的颜色值;
例如从第一图像中获取第一图像对应的R的值、G的值和B的值。同理也从第二图像中获取第二图像对应的R的值、G的值和B的值。
(C)判断第一图像的颜色值和第二图像的颜色值的差值是否小于或者等于预设阈值,若是小于或者等于预设阈值,确定定位到目标控件,否则未定位到目标控件。
例如分别判断第一图像的R值与第二图像的R值的差值是否小于或者等于预设阈值,判断第一图像的G值与第二图像的G值的差值是否小于或者等于预设阈值、再判断第一图像的B值与第二图像的B值的差值是否小于或者等于预设阈值,只有三者都小于或者等于预设阈值时,才确定定位到目标控件,否则未定位到目标控件。
需要说明的是,本实施例中的预设阈值可以根据实际需求来设定,例如可以为该差值相对于在第一图像中对应的值的百分之五等等。
需要说明的是,还可以采用对比第一图像和第二图像的色彩、亮度和对比度,当第一图像的色彩、亮度和对比度,分别与第二图像对应的色彩、亮度和对比度的差值,分别小于或者等于预设阈值,确定定位到目标控件,否则未定位到目标控件。原理类似,在此不再赘述。
上述实施例的所有可选技术方案,可以采用可以结合的方式任意组合形成本发明的可选实施例,在此不再赘述。
上述实施例的所有可选技术方案,能够克服现有技术中无法准确寻找到目标控件的小图像的缺陷,能够准确定位目标控件在第二界面的位置区域,然后再具体从该位置区域截取目标控件在第二界面的第二图像,能够准确获取该目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,因此,采用上述实施例的技术方案,能够有效地扩大基于图像检测的定位方法的应用场景。
图3为本发明另一实施例提供的基于图像检测的定位方法的流程图。该实施例在上述图1所示实施例的技术方案的基础上,进一步更加详细地介绍本发明的技术方案。如图3所示,本实施例的基于图像检测的定位方法,具体可以包括如下步骤:
200、打开该程序,从该程序运行的默认尺寸下的第一界面中截取目标控件的第一图像;
参考上述实施例的记载,该第一界面中包括多个控件,本实施例中选择一个控件为目标控件,并从第一界面中截取目标控件的第一图像。
201、根据第一界面的布局,确定目标控件在第一界面中的大小、目标控件在第一界面中相对于父容器的对齐方式、目标控件相对于父容器的边距以及目标控件是否随父容器缩放的属性值;
由于相对于主窗口,可能不太能够准确描述目标控件的位置。因此,为了准确地表示目标控件的位置,可以对第一界面进行划分,从主窗口开始层层划分父子窗口,知道能够将目标控件放在一个比较小的窗口中,且能够在该窗口中准确表述其关系即可。每一个窗口的父辈窗口为父容器。例如可以参考上述图2中的表示方式。目标控件在第一界面中的大小、目标控件在第一界面中相对于父容器的对齐方式、目标控件相对于父容器的边距以及目标控件是否随父容器缩放的属性值中各参数值的解释可以参考上述实施例的记载。
202、根据目标控件是否随父容器缩放的属性值、目标控件在第一界面中的大小、第一界面的大小和第二界面的大小,确定目标控件在第二界面中的大小;
本实施例中目标控件的大小可以采用宽和高来表示。例如表示的格式可以为:x,y(宽,高)。
203、根据目标控件在第一界面中相对于父容器的边距、第一界面的大小和第二界面的大小,确定目标控件在第二界面中相对于父容器的边距;
其中目标控件在第一界面中相对于父容器的边距和目标控件在第二界面中相对于父容器的边距,均可以采用四个参数来表示,例如边距格式可以为:left,top,right,bottom(左,上,右,下),也就是说该目标控件距离父容器的左、上、右和下的位置。但是使用中,为了简便,可以结合目标控件在第一界面中相对于父容器的对齐方式来表示,例如当对齐当时为左上对齐时,此时可以将边距格式中的右和下置为零。当采用右上对齐时,此时可以将边距格式中的左下置为零。当采用居中时,此时左和右不能同时有数值,为了便于定位,需要左和右中一侧为零。同理,上和下也不能同时有数值,需要上和下一侧为零。
204、根据目标控件在第一界面中相对于父容器的对齐方式、目标控件在第二界面中的大小和目标控件在第二界面中相对于父容器的边距,确定目标控件在第二界面的位置区域;
其中目标控件在第一界面中相对于父容器的对齐方式和目标控件在第二界面中相对于父容器的对齐方式相同,因此可以根据目标控件在第二界面中相对于父容器的对齐方式、目标控件在第二界面中的大小和目标控件在第二界面中相对于父容器的边距,采用上述实施例的步骤,可以准确确定出目标控件在第二界面的位置区域。
205、从目标控件在第二界面的位置区域截取目标控件的第二图像;
也就是说该第二图像为该目标控件在第二界面的图像。
206、判断第一图像和第二图像中是否包括文字,当包括时,执行步骤207;否则执行步骤208;
27、判断第一图像中包括的文字和第二图像中包括的文字是否相同,当相同时,执行步骤208;否则当不相同时,否则确定未定位到目标控件,结束;
本实施例的文字可以为数字,字符串或者汉字或者它们的组合等等。
208、分别提取第一图像的颜色直方图和第二图像的颜色直方图;
209、分别从第一图像的颜色直方图和第二图像的颜色直方图中获取第一图像的颜色值和第二图像的颜色值;
本实施例中提取的是第一图像的R、G和B值,以及第二图像的R、G和B值。进一步地,还可以从颜色直方图中获取亮度、色彩以及对比度,进行增加判断的条件。
210、判断第一图像的颜色值和第二图像的颜色值的差值是否小于或者等于预设阈值,若是小于或者等于预设阈值,确定定位到目标控件,结束;否则确定未定位到目标控件,结束。
本实施例的颜色值分别包括R、G和B值三个值,要对两个图像的三个值分别进行检测,当三个颜色的差值都小于或者等于预设阈值时,才确定定位到目标控件,否则只要有一个颜色的差值大于预设阈值时,都确定未定位到目标控件。当增加亮度、色彩以及对比度中的某一个或者多个时,同理,要判断所有要判断的参数的差值都小于或者等于预设阈值时,才确定定位到目标控件,否则只要有一个颜色的差值大于预设阈值时,都确定未定位到目标控件。
本实施例的基于图像检测的定位方法,通过采用上述方案能够克服现有技术中无法准确寻找到目标控件的小图像的缺陷,能够准确定位目标控件在第二界面的位置区域,然后再具体从该位置区域截取目标控件在第二界面的第二图像,能够准确获取该目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,因此,采用上述实施例的技术方案,能够有效地扩大基于图像检测的定位方法的应用场景。
下面以“英雄联盟”客户端为例,介绍本发明实施例的技术方案。例如:
(1)先启动程序后,先记录下程序的默认尺寸为:1280*800。图4为本发明实施例提供的第一界面示意图。如图4所示,即为该“英雄联盟”客户端在默认尺寸1280*800的截面图。
(2)以play按钮作为目标控件,从图4所示第一界面中截取play按钮的第一图像。如图5所示为图4所示的第一界面中的目标控件的第一图像。
(3)缩放一下第一界面,根据程序界面缩放时目标控件play按钮的布局变化来定义play按钮的布局参数。例如定义的布局参数如下表1所示:
表1
根据上述表1中的定义表示:play按钮相对主窗口的左上角位置固定,距离主窗口左边571像素,距离主窗口上边17像素,按钮尺寸为142*56,跟随主窗口缩放而缩放,默认状态下截图为play_normal.bmp。
通过这样的布局描述组合,只要程序界面中的控件不是毫无规律的出现,总能够通过一定层次的布局嵌套来描述控件的布局信息。
(4)对程序的界面进行移动,例如程序的界面被缩小到1024*640,此时对界面再次进行截图得到第二界面。图6为本发明实施例提供的第二界面示意图。如图6所示,该第二界面即为该程序的界面在1024*640象素下的界面。
(5)计算当前界面的缩放比为:1024/1280=0.8;而play按钮的布局属性中指定了zoom=true,所以经过计算得到实际play按钮的布局信息应该为:size=113,44,margin=456,13,0,0;对第二界面抓图后,从第二界面中截取从(x:456,y:13)开始(width:113,height:44)的图像,得到该目标控件的第二图像;如图7为图6所示的第二界面中的目标控件的第二图像。
(6)进行图像比对;图5所示的原尺寸的PLAY按钮1,和程序实际运行时获取到的图7所示的PLAY按钮2的对比情况如下表2所示;其中图8为图5所示的第一图像的直方图。图9为图7所示的第二图像的直方图。
表2
第一图像 | 第二图像 | |
size | 142,56 | 113,44 |
margin | 571,17,0,0 | 456,13,0,0 |
截图 | 图5 | 图7 |
直方图 | 图8 | 图9 |
从图5和图7进行观察,这两个图像通过肉眼是可以判定为同一幅图像的,但是经过缩放后,受缩放算法的影响,和缩放比例计算造成的位置误差,是不能直接把两幅图像进行像素级比对的。本实施例中通过提取两幅图像的颜色直方图,对R/G/B/Gray四个维度进行比对,并设定一个预设阈值,比如平均误差不超过5%即认定图像一致,预设阈值可以根据程序实际运行情况调整。其中Gray表示图像的亮度。
假设当前程序已经不在主界面,而处于图10所示的本发明实施例提供的第三界面上,此时从图10所示的第三界面中对目标控件位置的截图获得如图11所示的第三图像。
此时再进行图像对比,将图5所示的第一图像和图11所示的第三图像的对比情况如下表3所示;其中图12为图3所示第三图像对应的直方图。
表3
第一图像 | 第三图像 | |
size | 142,56 | 113,44 |
margin | 571,17,0,0 | 456,13,0,0 |
截图 | 图5 | 图11 |
直方图 | 图8 | 图12 |
通过对截图和预设截图的颜色信息比对,很容易判定第三图像中的并非PLAY按钮的控件。
通过上述实施例可以顺利判断程序界面上的目标控件当前是否显示,然后通过模拟键盘鼠标事件对其进行操作,进一步对后续的界面进行分析判断,即可完成对程序的自动化操作。
上述实施例中,只描述了最简单的长宽比固定的情况下的界面描述定义,对于长宽比不固定的程序,对x轴和y轴分别设置zoom属性,一样是可以支持的。
且上述实施例中的图像比对,如果目标控件所在的目标区域除了显示该目标控件,还有可能显示其他和该控件颜色特征非常相似的其他图像时,可能会导致判定失误,这种状况下,可以将目标区域分隔成多块(比如四块),逐块进行比对,来提高准确度。或者如果目标区域有明显的文字和纹理,可以引入文字检测,对检测后的文字进行比对,也可以解决尺寸缩放对图像比对的干扰。
本实施例的基于图像检测的定位方法,通过采用上述方案能够克服现有技术中无法准确寻找到目标控件的小图像的缺陷,能够准确定位目标控件在第二界面的位置区域,然后再具体从该位置区域截取目标控件在第二界面的第二图像,能够准确获取该目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,因此,采用上述实施例的技术方案,能够有效地扩大基于图像检测的定位方法的应用场景。
图13为本发明实施例提供的基于图像检测的定位装置的结构示意图。如图13所示,本实施例的基于图像检测的定位装置,具体可以包括截取模块10、确定模块11和检测模块12。
其中截取模块10用于从程序运行的第一界面中截取目标控件的第一图像;确定模块11用于根据第一界面的布局,确定目标控件的布局参数;该确定模块11还用于根据程序当前运行的第二界面、第一界面和目标控件的布局参数,确定目标控件在第二界面的位置区域;截取模块10与确定模块11连接,截取模块10还用于从确定模块11确定的目标控件在第二界面的位置区域截取目标控件的第二图像;检测模块12与截取模块10连接,检测模块12用于根据截取模块10截取的第一图像和第二图像,检测是否定位到目标控件。
本实施例的基于图像检测的定位装置,通过采用上述模块实现基于图像检测的定位与上述相关方法实施例的实现机制相同,详细可以参考上述实施例的记载,在此不再赘述。
本实施例的基于图像检测的定位装置,采用上述模块通过从程序运行的第一界面中截取目标控件的第一图像;根据第一界面的布局,确定目标控件的布局参数;根据程序当前运行的第二界面、第一界面和目标控件的布局参数,确定目标控件在第二界面的位置区域;从目标控件在第二界面的位置区域截取目标控件的第二图像;根据第一图像和第二图像,检测是否定位到目标控件。本实施例的技术方案,能够克服现有技术中无法准确寻找到目标控件的小图像的缺陷,能够准确定位目标控件在第二界面的位置区域,然后再具体从该位置区域截取目标控件在第二界面的第二图像,能够准确获取该目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,因此,采用本实施例的技术方案,能够有效地扩大基于图像检测的定位方法的应用场景。
在上述实施例的技术方案的基础上,其中第一界面为程序运行的默认尺寸对应的界面,第二界面为对第一界面进行放大或者缩小的界面。
可选地,在上述实施例的技术方案的基础上,布局参数包括目标控件在第一界面中的大小、目标控件在第一界面中相对于父容器的对齐方式、目标控件相对于父容器的边距以及目标控件是否随父容器缩放的属性值;父容器为第一界面的主窗口或者主窗口中的部分。
可选地,在上述实施例的技术方案的基础上,确定模块11具体用于根据目标控件是否随父容器缩放的属性值、目标控件在第一界面中的大小、第一界面的大小和第二界面的大小,确定目标控件在第二界面中的大小;并根据目标控件相对于父容器的边距、第一界面的大小和第二界面的大小,确定目标控件在第二界面中相对于父容器的边距;再根据目标控件在第一界面中相对于父容器的对齐方式、目标控件在第二界面中的大小和目标控件在第二界面中相对于父容器的边距,确定目标控件在第二界面的位置区域。
可选地,在上述实施例的技术方案的基础上,检测模块12具体用于根据截取模块10截取的第一图像中包括的文字和截取模块10截取的第二图像中包括的文字,确定是否定位到目标控件;和/或者根据截取模块10截取的第一图像的颜色和截取模块10截取的第二图像中的颜色,确定是否定位到目标控件。
可选地,在上述实施例的技术方案的基础上,检测模块12具体用于分别从截取模块10截取的第一图像和截取模块10截取的第二图像中提取第一图像中包括的文字和第二图像中包括的文字;判断第一图像中包括的文字和第二图像中包括的文字是否相同,当相同时,确定定位到目标控件;否则未定位到目标控件。
可选地,在上述实施例的技术方案的基础上,检测模块12具体用于分别提取截取模块10截取的第一图像的颜色直方图和截取模块10截取的第二图像的颜色直方图;分别从第一图像的颜色直方图和第二图像的颜色直方图中获取第一图像的颜色值和第二图像的颜色值;判断第一图像的颜色值和第二图像的颜色值的差值是否小于或者等于预设阈值,若是小于或者等于预设阈值,确定定位到目标控件,否则未定位到目标控件。
上述实施例的所有可选技术方案,可以采用可以结合的方式任意组合形成本发明的可选实施例,在此不再赘述。
上述实施例的所有可选技术方案,能够克服现有技术中无法准确寻找到目标控件的小图像的缺陷,能够准确定位目标控件在第二界面的位置区域,然后再具体从该位置区域截取目标控件在第二界面的第二图像,能够准确获取该目标控件在第二界面的图像,从而根据第一图像和第二图像检测是否定位到目标控件,因此,采用上述实施例的技术方案,能够有效地扩大基于图像检测的定位方法的应用场景。
需要说明的是:上述实施例提供的基于图像检测的定位装置在基于图像检测的定位时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的基于图像检测的定位装置与基于图像检测的定位的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种基于图像检测的定位方法,其特征在于,所述方法包括:
从程序运行的第一界面中截取目标控件的第一图像;
根据所述第一界面的布局,确定所述目标控件的布局参数;
根据所述程序当前运行的第二界面、所述第一界面和所述目标控件的布局参数,确定所述目标控件在所述第二界面的位置区域;
从所述目标控件在所述第二界面的位置区域截取所述目标控件的第二图像;
根据所述第一图像和所述第二图像,检测是否定位到所述目标控件;
其中,所述第一界面为所述程序运行的默认尺寸对应的界面,所述第二界面为对所述第一界面进行放大或者缩小的界面。
2.根据权利要求1所述的方法,其特征在于,所述布局参数包括所述目标控件在所述第一界面中的大小、所述目标控件在所述第一界面中相对于父容器的对齐方式、所述目标控件相对于所述父容器的边距以及所述目标控件是否随所述父容器缩放的属性值;所述父容器为所述第一界面的主窗口或者所述主窗口中的部分。
3.根据权利要求2所述的方法,其特征在于,根据所述程序当前运行的第二界面、所述第一界面和所述目标控件的布局参数,确定所述目标控件在所述第二界面的位置区域,包括:
根据所述目标控件是否随所述父容器缩放的属性值、所述目标控件在所述第一界面中的大小、所述第一界面的大小和所述第二界面的大小,确定所述目标控件在所述第二界面中的大小;
根据所述目标控件相对于所述父容器的边距、所述第一界面的大小和所述第二界面的大小,确定所述目标控件在所述第二界面中相对于所述父容器的边距;
根据所述目标控件在所述第一界面中相对于所述父容器的对齐方式、所述目标控件在所述第二界面中的大小和所述目标控件在所述第二界面中相对于所述父容器的边距,确定所述目标控件在所述第二界面的位置区域。
4.根据权利要求1-3任一所述的方法,其特征在于,根据所述第一图像和所述第二图像,检测是否定位到所述目标控件,包括:
根据所述第一图像中包括的文字和所述第二图像中包括的文字,检测是否定位到所述目标控件;
和/或者根据所述第一图像的颜色和所述第二图像中的颜色,检测是否定位到所述目标控件。
5.根据权利要求4所述的方法,其特征在于,根据所述第一图像中包括的文字和所述第二图像中包括的文字,检测是否定位到所述目标控件,包括:
分别从所述第一图像和所述第二图像中提取所述第一图像中包括的文字和所述第二图像中包括的文字;
判断所述第一图像中包括的文字和所述第二图像中包括的文字是否相同,当相同时,确定定位到所述目标控件;否则未定位到所述目标控件。
6.根据权利要求4所述的方法,其特征在于,根据所述第一图像的颜色和所述第二图像中的颜色,检测是否定位到所述目标控件,包括:
分别提取所述第一图像的颜色直方图和所述第二图像的颜色直方图;
分别从所述第一图像的颜色直方图和所述第二图像的颜色直方图中获取所述第一图像的颜色值和所述第二图像的颜色值;
判断所述第一图像的颜色值和所述第二图像的颜色值的差值是否小于或者等于预设阈值,若是小于或者等于所述预设阈值,确定定位到所述目标控件,否则未定位到所述目标控件。
7.一种基于图像检测的定位装置,其特征在于,所述装置包括:
截取模块,用于从程序运行的第一界面中截取目标控件的第一图像;所述第一界面为所述程序运行的默认尺寸对应的界面;
确定模块,用于根据所述第一界面的布局,确定所述目标控件的布局参数;
所述确定模块,还用于根据所述程序当前运行的第二界面、所述第一界面和所述目标控件的布局参数,确定所述目标控件在所述第二界面的位置区域;所述第二界面为对所述第一界面进行放大或者缩小的界面;
所述截取模块,还用于从所述目标控件在所述第二界面的位置区域截取所述目标控件的第二图像;
检测模块,用于根据所述第一图像和所述第二图像,检测是否定位到所述目标控件。
8.根据权利要求7所述的装置,其特征在于,所述布局参数包括所述目标控件在所述第一界面中的大小、所述目标控件在所述第一界面中相对于父容器的对齐方式、所述目标控件相对于所述父容器的边距以及所述目标控件是否随所述父容器缩放的属性值;所述父容器为所述第一界面的主窗口或者所述主窗口中的部分。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,具体用于根据所述目标控件是否随所述父容器缩放的属性值、所述目标控件在所述第一界面中的大小、所述第一界面的大小和所述第二界面的大小,确定所述目标控件在所述第二界面中的大小;并根据所述目标控件相对于所述父容器的边距、所述第一界面的大小和所述第二界面的大小,确定所述目标控件在所述第二界面中相对于所述父容器的边距;再根据所述目标控件在所述第一界面中相对于所述父容器的对齐方式、所述目标控件在所述第二界面中的大小和所述目标控件在所述第二界面中相对于所述父容器的边距,确定所述目标控件在所述第二界面的位置区域。
10.根据权利要求7-9任一所述的装置,其特征在于,所述检测模块,具体用于根据所述第一图像中包括的文字和所述第二图像中包括的文字,确定是否定位到所述目标控件;和/或者根据所述第一图像的颜色和所述第二图像中的颜色,确定是否定位到所述目标控件。
11.根据权利要求10所述的装置,其特征在于,所述检测模块,具体用于分别从所述第一图像和所述第二图像中提取所述第一图像中包括的文字和所述第二图像中包括的文字;判断所述第一图像中包括的文字和所述第二图像中包括的文字是否相同,当相同时,确定定位到所述目标控件;否则未定位到所述目标控件。
12.根据权利要求10所述的装置,其特征在于,所述检测模块,具体用于分别提取所述第一图像的颜色直方图和所述第二图像的颜色直方图;分别从所述第一图像的颜色直方图和所述第二图像的颜色直方图中获取所述第一图像的颜色值和所述第二图像的颜色值;判断所述第一图像的颜色值和所述第二图像的颜色值的差值是否小于或者等于预设阈值,若是小于或者等于所述预设阈值,确定定位到所述目标控件,否则未定位到所述目标控件。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310585139.2A CN104133665B (zh) | 2013-11-19 | 2013-11-19 | 基于图像检测的定位方法与装置 |
PCT/CN2014/091244 WO2015074521A1 (en) | 2013-11-19 | 2014-11-17 | Devices and methods for positioning based on image detection |
HK15101405.0A HK1200939A1 (zh) | 2013-11-19 | 2015-02-09 | 基於圖像檢測的定位方法與裝置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310585139.2A CN104133665B (zh) | 2013-11-19 | 2013-11-19 | 基于图像检测的定位方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104133665A CN104133665A (zh) | 2014-11-05 |
CN104133665B true CN104133665B (zh) | 2015-09-30 |
Family
ID=51806353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310585139.2A Active CN104133665B (zh) | 2013-11-19 | 2013-11-19 | 基于图像检测的定位方法与装置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN104133665B (zh) |
HK (1) | HK1200939A1 (zh) |
WO (1) | WO2015074521A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104133665B (zh) * | 2013-11-19 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 基于图像检测的定位方法与装置 |
CN103645890B (zh) * | 2013-11-29 | 2017-12-01 | 北京奇虎科技有限公司 | 一种用于在图形用户界面中定位控件的方法和装置 |
CN105302413B (zh) * | 2015-10-14 | 2020-11-13 | 惠州Tcl移动通信有限公司 | 控件的ui测试方法及系统 |
CN105511725A (zh) * | 2015-12-09 | 2016-04-20 | 网易(杭州)网络有限公司 | 界面中控件的显示方法及装置 |
CN106445816B (zh) * | 2016-09-07 | 2019-01-25 | 美的智慧家居科技有限公司 | 控件执行方法和装置 |
CN110162362B (zh) * | 2019-04-15 | 2023-07-25 | 腾讯科技(深圳)有限公司 | 动态控件位置检测与测试方法、装置、设备及存储介质 |
CN110175609B (zh) * | 2019-04-22 | 2023-02-28 | 创新先进技术有限公司 | 界面元素检测方法、装置及设备 |
CN110058765B (zh) * | 2019-04-29 | 2022-06-03 | 重庆长安汽车股份有限公司 | 一种液晶仪表截屏方法及系统 |
CN111953739B (zh) * | 2020-07-20 | 2023-10-03 | 厦门美柚股份有限公司 | 一种资源下载的方法、装置及介质 |
CN115359008A (zh) * | 2022-08-24 | 2022-11-18 | 京东方科技集团股份有限公司 | 显示界面的测试方法及装置、存储介质、电子设备 |
CN117032676B (zh) * | 2023-10-09 | 2024-01-26 | 之江实验室 | 一种容器自适应的方法、装置、存储介质及电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894168A (zh) * | 2010-06-30 | 2010-11-24 | 优视科技有限公司 | 移动终端网页页面的排版显示方法及系统 |
CN102662942A (zh) * | 2010-12-24 | 2012-09-12 | 通用电气公司 | 元数据生成系统和方法 |
CN102799428A (zh) * | 2012-06-28 | 2012-11-28 | 北京大学 | 交互式软件中的操作记录与回放方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101580999B1 (ko) * | 2009-01-06 | 2015-12-30 | 삼성전자주식회사 | 애플리케이션 간의 콘텐츠를 이동하는 장치 및 방법 |
CN102270109B (zh) * | 2011-08-23 | 2014-04-02 | 上海网达软件股份有限公司 | 不同分辨率的用户界面的自转换方法及自转换系统 |
CN103188543A (zh) * | 2013-03-19 | 2013-07-03 | 东莞宇龙通信科技有限公司 | 遥控方法及装置 |
CN104133665B (zh) * | 2013-11-19 | 2015-09-30 | 腾讯科技(深圳)有限公司 | 基于图像检测的定位方法与装置 |
-
2013
- 2013-11-19 CN CN201310585139.2A patent/CN104133665B/zh active Active
-
2014
- 2014-11-17 WO PCT/CN2014/091244 patent/WO2015074521A1/en active Application Filing
-
2015
- 2015-02-09 HK HK15101405.0A patent/HK1200939A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101894168A (zh) * | 2010-06-30 | 2010-11-24 | 优视科技有限公司 | 移动终端网页页面的排版显示方法及系统 |
CN102662942A (zh) * | 2010-12-24 | 2012-09-12 | 通用电气公司 | 元数据生成系统和方法 |
CN102799428A (zh) * | 2012-06-28 | 2012-11-28 | 北京大学 | 交互式软件中的操作记录与回放方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104133665A (zh) | 2014-11-05 |
WO2015074521A1 (en) | 2015-05-28 |
HK1200939A1 (zh) | 2015-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104133665B (zh) | 基于图像检测的定位方法与装置 | |
CN105631880B (zh) | 车道线分割方法和装置 | |
CN102830958B (zh) | 一种获取界面控件信息的方法及系统 | |
KR101719088B1 (ko) | 영역 분할 방법 및 검사 장치 | |
CN104731694B (zh) | 浏览器兼容性测试分析方法及浏览器兼容性测试分析系统 | |
EP2506218B1 (en) | Method, terminal, and computer-readable recording medium for trimming a piece of image content | |
CN111124888B (zh) | 录制脚本的生成方法和装置及电子装置 | |
CN104463138B (zh) | 基于视觉结构属性的文本定位方法及系统 | |
CN107615251A (zh) | 信息处理装置、信息处理方法及程序 | |
CN104123529A (zh) | 人手检测方法及系统 | |
CN107239390B (zh) | 校对应用界面信息的方法和装置 | |
CN105068918A (zh) | 一种页面测试方法及装置 | |
CN106777114A (zh) | 一种视频分类方法及系统 | |
CN104766354B (zh) | 一种增强现实绘图的方法及移动终端 | |
CN104598907A (zh) | 一种基于笔画宽度图的图像中文字数据提取方法 | |
JP4242796B2 (ja) | 画像認識方法及び画像認識装置 | |
CN106371614A (zh) | 手势识别的优化方法和装置 | |
CN105404682B (zh) | 一种基于数字图像内容的图书检索方法 | |
CN112084103A (zh) | 界面测试方法、装置、设备和介质 | |
JP2016122367A5 (zh) | ||
WO2020133201A1 (en) | Automated identification of input elements in graphical user interface | |
CN111080664B (zh) | 一种数据处理方法、装置及计算机存储介质和计算机 | |
JP2011003022A (ja) | 画像処理装置及びプログラム | |
CN109214240A (zh) | 文档图像处理的方法及装置 | |
US20240193741A1 (en) | Method for correcting colored image using artificial neural network, and device therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1200939 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1200939 Country of ref document: HK |