CN101964062B - 基于用户界面的图像搜索方法 - Google Patents

基于用户界面的图像搜索方法 Download PDF

Info

Publication number
CN101964062B
CN101964062B CN 201010282572 CN201010282572A CN101964062B CN 101964062 B CN101964062 B CN 101964062B CN 201010282572 CN201010282572 CN 201010282572 CN 201010282572 A CN201010282572 A CN 201010282572A CN 101964062 B CN101964062 B CN 101964062B
Authority
CN
China
Prior art keywords
image
target area
matrix
pixel
picture element
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
Application number
CN 201010282572
Other languages
English (en)
Other versions
CN101964062A (zh
Inventor
姚维
刘显健
郑立瑾
刘剑
杨轩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Shenzhou Taiyue Software Co Ltd
Original Assignee
Beijing Shenzhou Taiyue Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Shenzhou Taiyue Software Co Ltd filed Critical Beijing Shenzhou Taiyue Software Co Ltd
Priority to CN 201010282572 priority Critical patent/CN101964062B/zh
Publication of CN101964062A publication Critical patent/CN101964062A/zh
Application granted granted Critical
Publication of CN101964062B publication Critical patent/CN101964062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Analysis (AREA)

Abstract

本发明提供了一种基于用户界面的图像搜索方法,其特征在于,包括:S1:将基准图像和目标区域图像分别转换为像素矩阵;S2:根据第一预置规则读取所述目标区域图像的像素矩阵,以及根据第二预置规则识别其中与所述基准图像的像素矩阵相匹配的子像素矩阵;S3:将所述子像素矩阵对应的子图像标记为目标图像,计算其相对于所述目标区域的坐标,同时计数器加一;S4:判断所述目标区域图像的像素矩阵是否已读取完毕;若是,则导出S3中记录的所有坐标和计数器累加值;若否,则返回S2。该方法可以兼容不同操作系统和硬件设备;可以支持实现在目标区域内查找静态或动态子图像,计算其坐标并统计其数量。

Description

基于用户界面的图像搜索方法
技术领域
本发明涉及计算机图像及软件测试技术领域,尤其涉及一种基于用户界面的图像搜索方法。
背景技术
作为软件测试自动化技术之一,图形图像识别是比较重要的一项内容,其是图形用户界面自动化测试过程中不可缺少的环节。在一些特殊情况下,准确的图像识别甚至可以作为自动化测试的支撑技术之一。因此实现准确的、可靠的、兼容性强的图像识别是一项必要且重要的工作。
一些自动化测试工具自带有图像验证的功能,根据其向导截取目标对象相对区域的图像,在测试回放过程中自动验证运行时对象指定区域图像与预期截取的图像是否一致。然而,通过这种方法不能获得目标图像的坐标和当前相同图像的数量;不能同时良好支持多类型操作系统和不同的硬件设备差异;不能调整误差值;且不能识别动态图片。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何在支持多类型操作系统和克服不同的硬件设备的差异的前提下,在计算机屏幕指定的区域内查找静态/动态目标图片的数量和位置。
(二)技术方案
为解决上述技术问题,本发明的技术方案提供了一种基于用户界面的图像搜索方法,包括:
S1:将基准图像和目标区域图像分别转换为像素矩阵;所述基准图像是被测软件在当前测试例下预期生成的图像;所述目标区域图像是指被测软件生成的图像在该目标区域内的截屏;
S2:根据第一预置规则读取所述目标区域图像的像素矩阵,以及根据第二预置规则识别其中与所述基准图像的像素矩阵相匹配的子像素矩阵;所述第一预置规则是指:以像素为单位,自上向下、自左向右读取所述目标区域图像的像素矩阵,直至待读取像素无法作为左上角元素构成一个子矩阵;所述第二预置规则是指:若以当前读取像素作为左上角元素的子像素矩阵与所述基准图像的像素矩阵的对应位置的元素RGB颜色值的误差值M在一个预置的阈值范围内,则识别所述子像素矩阵与所述基准图像的像素矩阵相匹配;
S3:将所述子像素矩阵对应的子图像标记为目标图像,计算目标图像相对于所述目标区域的坐标,即该目标图像的中心点在目标区域图像中的坐标值,同时计数器加一,所述计数器用于统计目标区域图像中目标图像的数量;
S4:判断所述目标区域图像的像素矩阵是否已读取完毕;若是,则导出S3中记录的所有坐标和计数器累加值;若否,则返回S2。
进步一地,所述步骤S1还包括:将不同操作系统或硬件设备对同一图像的唯一截图作为基准图像预存于磁盘,通过调用与所述磁盘的路径相对应的XML标签获取所述基准图像。
其中,所述步骤S1中,使用java的JDK所提供的PixelGrabber类,将所述基准图像和目标区域图像分别转换为以RGB整型颜色值作为元素的像素矩阵。
进一步地,当所述基准图像为动态图像时,所述方法在步骤S1之前还包括:S0:将所述基准图像解析为若干帧静态图像;且所述方法在步骤S4之后还包括:S5:针对所述若干帧的静态图像逐帧依次执行所述步骤S2-S4。
其中,所述预置的阈值范围为M≤150。
进一步地,所述第二预置规则还包括:若所述基准图像为不完全透明,则从基准图像像素矩阵中依次提取不透明的像素值,与目标区域图像中待比对的子矩阵中的对应元素进行匹配。
(三)有益效果
根据本发明的基于用户界面的图像搜索方法,可以在目标区域内查找静态或动态子图像,计算其坐标并统计其数量;根据本发明的方法可以兼容不同操作系统和硬件设备。
附图说明
图1是根据本发明的基于用户界面的图像搜索方法的流程图;
图2是根据本发明的基于用户界面的图像搜索方法的一个实施例的像素矩阵转换及图像匹配示意图。
具体实施方式
本发明提出的基于用户界面的图像搜索方法,结合附图和实施例说明如下。
如图1所示,本实施例的基于用户界面的图像搜索方法包括以下步骤:
S1:将基准图像和目标区域图像均转换为像素矩阵;
根据本发明的实施例,目标区域是指用户界面,例如,计算机屏幕上的指定区域;目标区域图像是指被测软件生成的图像在该指定区域内的截屏(屏幕截图,下文用Pic表示);基准图像是被测软件在当前测试例下预期生成的图像,包括静态图像和动态图像,可以从已运行的被测软件中截取符合业务逻辑的图片作为基准图像,也可以将产品设计人员或界面设计人员等提供的设计图片作为基准图像,以实际需求为准。具体来说,默认情况下使用设计图片;当设计图片与特定计算机不能匹配一致,且通过人眼识别的判断差异在产品设计的允许范围内,则使用截图。
根据本发明的实施例,将基准图像和目标区域内的图像转换为RGB值表示的像素矩阵。具体来说,使用java的JDK所提供的PixelGrabber类,把目标区域图像和基准图像分别转换为以RGB整型颜色值表示的像素矩阵,每个像素都有自己的颜色值。如图2所示,本实施例中,将基准图像转换为3x3元素矩阵B,将目标区域图像转换为5x5元素矩阵B,其中,矩阵B和矩阵S中的每一元素均对应一RGB整型值。关于像素矩阵的转换和RGB整型值均为已知技术,在此不做赘述。
优选地,对于动态测试需求,即:当基准图像为动态图像时,该步骤S1之前还应包括对动态图像进行解析的步骤,将被测软件预期生成的动态图像解析为若干帧静态图像,解析帧数以实际需求为准,一般情况下按该动态图像的实际全部帧数进行解析,解析结果作为静态基准图像集合进行遍历使用;如需要减小解析出的静态图像基数以提高遍历效率,则可在不影响可靠性的前提下减少解析出的静态图片数量。
具体来说,基准图像一般作为磁盘文件预先保存。由于存在不同操作系统或硬件设备(例如,WindowsXP与WindowsVista;GeForce8400MG显卡芯片计算机与Intel(R)GMA3000显卡芯片计算机),被测软件生成的图像有可能会有细微的差异,这样的差异会导致本发明的图像搜索方法不能兼容多个设备,并且此类问题不能通过设置误差值的方法统一解决。在这种情况下,可以使用图片管理类,通过XML方式映射对应的磁盘路径,该路径下只存放各设备对于同一图像的唯一截图,即:用户只需要传入定义好的基准图像XML标签,并在需要的情况下截取基准图片保存到标签指明的真实磁盘路径(如果该路径下已经有基准图像且符合要求,则不再需要截图)即可;这里,各设备对同一图像的唯一截图是指:在两台或更多不同的计算机上截取相同应用程序同一界面同一区域(相对程序界面的坐标相同)的Pic。当然,也可以根据具体情况,在软件产品需求设计允许的误差范围内截取不同尺寸的图片,例如在一台计算机中以某一点为起始截取40x40像素的图片,在另一台计算机相同起始点截取39x39像素的图片,这两幅图片如果可以唯一表示同一业务逻辑,则可视为相同的图片。
S2:根据第一预置规则读取所述目标区域图像的像素矩阵,以及根据第二预置规则识别其中与所述基准图像的像素矩阵相匹配的子像素矩阵;
在本实施例中,第一预置规则是指:以像素为单位,自上向下、自左向右读取所述目标区域图像的像素矩阵,直至待读取像素无法作为左上角元素构成一个子矩阵;第二预置规则是指:若该目标区域图像的像素矩阵中的某个子矩阵(以某一像素点作为左上角元素的子像素矩阵)与所述基准图像的像素矩阵的对应位置的元素RGB值的误差值(本实施例中,误差值是指两个元素的差值的绝对值)在一个预置的阈值范围内(优选为150),则识别所述像素矩阵所对应的子图像为目标图像。
具体来说,仍以图2为例详细描述步骤S2中的矩阵匹配过程。如图2所示,由于基准图像被转换为3x3元素矩阵B,则,在目标区域图像像素矩阵S中,从第一行第一列的元素S11开始直到元素S33为止,以先横向再纵向的顺序,依次读取每一元素,将以当前读取到的元素作为起始元素的3x3元素子矩阵(例如,图中加框部分显示的是以S22为起始元素构成的3x3元素子矩阵G)与基准图像像素矩阵B进行比照,比较两个矩阵对应元素的像素颜色值是否匹配。例如,首先将以S11作为起始元素的3x3元素子矩阵与矩阵B进行比对,依次比较S11与B11、S12与B12、......S33与B33的颜色值是否匹配;然后将以S12作为起始元素的3x3元素子矩阵与矩阵B进行比对,依次比较S12与B11、S13与B12、......S34与B33的颜色值是否匹配;依次类推,最后将以S33作为起始元素的3x3元素子矩阵与矩阵B进行比对,依次比较S33与B11、S34与B12、......S55与B33的颜色值是否匹配。基于矩阵B的宽度,总共比较九次。
在进行上述对应矩阵元素比较时,先判断基准图像是否为完全透明,如果完全透明则认为匹配失败,透明值的获取通过java的JDK所提供的BufferedImage下getTransparency()获得。当基准图像不透明或部分像素不透明(即:不完全透明)时,从基准图像像素矩阵(例如矩阵B)中依次取不透明的像素值,并在目标区域图像像素矩阵(例如矩阵S)取出对应的像素值,比较这两个像素RGB整型值的差值绝对值是否大于一个预置的阈值,如果大于该阈值则判定该像素匹配失败,也表示整个子矩阵所对应的子图像匹配失败;若小于该阈值,则继续比较下一个像素,直到所有基准图像像素比较完毕。
S3:将所述子像素矩阵对应的子图像标记为目标图像,计算其相对于所述目标区域的坐标,同时计数器加一;
在本实施例中,如上所述,当以某个像素点为基准(从矩阵左上角元素起始计算)的子矩阵和基准图像的矩阵匹配一致时,则认为成功查找到一个目标图像;此时,计算出该目标图像的中心点在目标区域图像中的坐标值(该坐标值以像素为单位),同时计数器(该计数器用于统计目标区域图像中目标图像的数量)加一。具体来说,已被识别的目标图像/子像素矩阵的宽度和高度是已知的(应与基准图像一致),而目标区域图像的像素矩阵作为窗口对象也可以通过窗口特有属性(例如标题和进程ID)来识别,进而读取其宽度和高度。由于当前读取的像素点是线性读取的,所以可以直接确定其在目标区域图像的像素矩阵中的位置;基于上述信息,当前像素点横坐标x值加上基准图像宽度的一半,再加上目标区域左上角横坐标x值,即为被搜索到的目标图像的中心在目标区域图像中的横坐标x值;该目标图像纵坐标y值的计算方式以此类推。
S4:判断所述目标区域图像的像素矩阵是否已读取完毕;若是,则导出S3中记录的所有坐标和计数器累加值,由此完成本次图像搜索,获得目标图像坐标及目标图像数量。若否,则返回S2,继续进行搜索。
在本实施例中,当基准图像为动态图像时,如前所述,该动态图像将首先为解析为多帧静态图像。此时,针对所述若干帧的静态图像逐帧依次执行所述步骤S2-S4。即,在目标区域截屏中以静态图像识别方法逐帧查找,当匹配到与当前帧相同的图像时即为成功匹配到目标图像。由此完成对动态图像的搜索识别。
因此,根据本发明的图像搜索方法对上层应用透明且支持兼容不同设备差异。此处,兼容不同系统图像识别是在前述步骤S1的基础上以策略方式实现。具体来说,针对不同系统的应用程序截取相同的相对位置的图像,并统一保存到同一磁盘文件夹内,该文件夹内的图像业务逻辑正确性由人为保证。当执行本实施例的方法时,遍历该文件夹内的图像文件,依次取出基准图像在目标区域图像内查找。如果有严格的验证需求,则通过文件命名规则策略和当前计算机类型比较是否为针对该计算机截取的图像,依此方法来准确取出唯一的基准图像。例如在网卡地址为00-EE-EE-09-33-E2的计算机截取图片并保存为00EEEE0933E2.png图片文件,在执行根据本发明的图像搜索方法时,识别当前机器的网卡地址后,在XML文件指明的路径下取出名称为00EEEE0933E2.png的图片作为基准图像即可。
以上实施方式仅用于说明本发明,而并非对本发明的限制,有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。

Claims (6)

1.一种基于用户界面的图像搜索方法,其特征在于,包括:
S1:将基准图像和目标区域图像分别转换为像素矩阵;所述基准图像是被测软件在当前测试例下预期生成的图像;所述目标区域图像是指被测软件生成的图像在该目标区域内的截屏;
S2:根据第一预置规则读取所述目标区域图像的像素矩阵,以及根据第二预置规则识别其中与所述基准图像的像素矩阵相匹配的子像素矩阵;所述第一预置规则是指:以像素为单位,自上向下、自左向右读取所述目标区域图像的像素矩阵,直至待读取像素无法作为左上角元素构成一个子矩阵;所述第二预置规则是指:若以当前读取像素作为左上角元素的子像素矩阵与所述基准图像的像素矩阵的对应位置的元素RGB颜色值的误差值M在一个预置的阈值范围内,则识别所述子像素矩阵与所述基准图像的像素矩阵相匹配;
S3:将所述子像素矩阵对应的子图像标记为目标图像,计算目标图像相对于所述目标区域的坐标,即该目标图像的中心点在目标区域图像中的坐标值,同时计数器加一,所述计数器用于统计目标区域图像中目标图像的数量;
S4:判断所述目标区域图像的像素矩阵是否已读取完毕;若是,则导出S3中记录的所有坐标和计数器累加值;若否,则返回S2。
2.如权利要求1所述的基于用户界面的图像搜索方法,其特征在于,所述步骤S1还包括:将不同操作系统或硬件设备对同一图像的唯一截图作为基准图像预存于磁盘,通过调用与所述磁盘的路径相对应的XML标签获取所述基准图像。
3.如权利要求1所述的基于用户界面的图像搜索方法,其特征在于,所述步骤S1中,使用java的JDK所提供的PixelGrabber类,将所述基准图像和目标区域图像分别转换为以RGB整型颜色值作为元素的像素矩阵。
4.如权利要求1所述的基于用户界面的图像搜索方法,其特征在于,当所述基准图像为动态图像时,所述方法在步骤S1之前还包括:S0:将所述基准图像解析为若干帧静态图像;且所述方法在步骤S4之后还包括:S5:针对所述若干帧的静态图像逐帧依次执行所述步骤S2-S4。
5.如权利要求1所述的基于用户界面的图像搜索方法,其特征在于,所述预置的阈值范围为M≤150。
6.如权利要求1所述的基于用户界面的图像搜索方法,其特征在于,所述第二预置规则还包括:若所述基准图像为不完全透明,则从基准图像像素矩阵中依次提取不透明的像素值,与目标区域图像中待比对的子矩阵中的对应元素进行匹配。
CN 201010282572 2010-09-14 2010-09-14 基于用户界面的图像搜索方法 Active CN101964062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010282572 CN101964062B (zh) 2010-09-14 2010-09-14 基于用户界面的图像搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010282572 CN101964062B (zh) 2010-09-14 2010-09-14 基于用户界面的图像搜索方法

Publications (2)

Publication Number Publication Date
CN101964062A CN101964062A (zh) 2011-02-02
CN101964062B true CN101964062B (zh) 2013-06-12

Family

ID=43516927

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010282572 Active CN101964062B (zh) 2010-09-14 2010-09-14 基于用户界面的图像搜索方法

Country Status (1)

Country Link
CN (1) CN101964062B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377119B (zh) * 2012-04-23 2017-07-25 腾讯科技(深圳)有限公司 一种非标准控件自动化测试方法和装置
CN103514090A (zh) * 2012-06-26 2014-01-15 腾讯科技(深圳)有限公司 测试浏览器的方法和装置
CN104899146B (zh) * 2015-06-19 2018-04-24 安一恒通(北京)科技有限公司 基于图像匹配技术的软件稳定性测试方法和装置
DE102016223079B4 (de) * 2016-11-23 2024-03-28 Robert Bosch Gmbh Verfahren und Vorrichtung zur Ermittlung einer Zuordnung zwischen einem Matrixelement einer Matrix und einem Vergleichsmatrixelement einer Vergleichsmatrix mittels Korrespondenztabelle
CN107194340B (zh) * 2017-05-15 2022-03-01 窦露 利用计算机视觉搜索登山遇险人员的方法及系统
CN109840546B (zh) * 2019-01-04 2023-02-03 南方医科大学南方医院 X线图像的标记识别和信息匹配方法、系统及存储介质
CN109885480B (zh) * 2019-01-14 2022-07-01 珠海金山网络游戏科技有限公司 一种基于调试桥的自动化界面兼容性测试方法及装置
CN112098770A (zh) * 2020-08-20 2020-12-18 深圳市宏旺微电子有限公司 针对动态耦合故障模拟极端环境下的测试方法和装置
CN112988518B (zh) * 2021-04-01 2023-04-18 哈尔滨工业大学 一种基于图像识别技术的实验设备实验过程实时监视方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060002472A1 (en) * 2004-06-30 2006-01-05 Mehta Kalpesh D Various methods and apparatuses for motion estimation
CN101551823A (zh) * 2009-04-20 2009-10-07 浙江师范大学 一种综合多特征图像检索方法
CN101710340A (zh) * 2009-12-15 2010-05-19 北京锐安科技有限公司 一种相似图像检索方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060002472A1 (en) * 2004-06-30 2006-01-05 Mehta Kalpesh D Various methods and apparatuses for motion estimation
CN101551823A (zh) * 2009-04-20 2009-10-07 浙江师范大学 一种综合多特征图像检索方法
CN101710340A (zh) * 2009-12-15 2010-05-19 北京锐安科技有限公司 一种相似图像检索方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US2006/0002472A1 2006.01.05

Also Published As

Publication number Publication date
CN101964062A (zh) 2011-02-02

Similar Documents

Publication Publication Date Title
CN101964062B (zh) 基于用户界面的图像搜索方法
CN107025174B (zh) 用于设备的用户界面异常测试的方法、装置和可读储介质
US8599270B2 (en) Computing device, storage medium and method for identifying differences between two images
US20150339213A1 (en) Automated testing of an application system
US8958643B2 (en) Recognition of numerical characters in digital images
CN104978270A (zh) 一种自动化地软件测试方法和装置
CN104391797A (zh) Gui控件的识别方法和装置
Delamaro et al. Using concepts of content‐based image retrieval to implement graphical testing oracles
WO2015074521A1 (en) Devices and methods for positioning based on image detection
CN111310826B (zh) 样本集的标注异常检测方法、装置及电子设备
CN109783351A (zh) 界面测试方法、装置及计算机可读存储介质
CN104573675A (zh) 作业图像的展示方法和装置
CN109325406A (zh) 待评估检测算法检测性能的评估方法、装置和计算机设备
Kıraç et al. VISOR: A fast image processing pipeline with scaling and translation invariance for test oracle automation of visual output systems
CN110309049A (zh) 网页内容监听方法、装置、计算机设备和存储介质
CN106598846A (zh) 应用界面测试方法和装置
CN116052193B (zh) Rpa界面动态表格的拾取和匹配方法及系统
CN113657361A (zh) 页面异常检测方法、装置及电子设备
CN112559341A (zh) 一种画面测试方法、装置、设备及存储介质
CN108121648B (zh) 一种界面错误监控方法
Selay et al. Adaptive random testing for image comparison in regression web testing
Ran et al. Automated visual testing for mobile apps in an industrial seting
CN113704111A (zh) 页面自动化测试方法、装置、设备及存储介质
JP2018136785A (ja) 印影照合プログラム、印影照合装置および印影照合方法
CN113554022A (zh) 电力仪器检测试验数据的自动获取方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: Room 818, 8 / F, 34 Haidian Street, Haidian District, Beijing 100080

Patentee after: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd.

Address before: 100089 Beijing city Haidian District wanquanzhuang Road No. 28 Wanliu new building A block 5 layer

Patentee before: BEIJING ULTRAPOWER SOFTWARE Co.,Ltd.

CP02 Change in the address of a patent holder