基于圖像檢測的定位方法與裝置制造方法
【專利摘要】本發(fā)明公開了一種基于圖像檢測的定位方法與裝置。其中方法包括:從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像;根據(jù)第一界面的布局確定目標(biāo)控件的布局參數(shù);根據(jù)程序當(dāng)前運(yùn)行的第二界面、第一界面和目標(biāo)控件的布局參數(shù),確定目標(biāo)控件在第二界面的位置區(qū)域;從目標(biāo)控件在第二界面的位置區(qū)域截取目標(biāo)控件的第二圖像;根據(jù)第一圖像和第二圖像,檢測是否定位到目標(biāo)控件。本發(fā)明通過采用上述方案,能夠準(zhǔn)確定位目標(biāo)控件在第二界面的位置區(qū)域,從位置區(qū)域截取目標(biāo)控件在第二界面的第二圖像,能夠準(zhǔn)確獲取目標(biāo)控件在第二界面的圖像,從而根據(jù)第一圖像和第二圖像檢測是否定位到目標(biāo)控件,能夠有效地?cái)U(kuò)大基于圖像檢測定位方法的應(yīng)用場景。
【專利說明】基于圖像檢測的定位方法與裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種基于圖像檢測的定位方法與裝置。
【背景技術(shù)】
[0002]圖形用戶界面(Graphical User Interface,簡稱⑶I)程序操作自動化主要應(yīng)用在自動化測試中,自動替用戶完成一些復(fù)雜的輸入操作,降低用戶的使用門檻。
[0003]GUI程序操作自動化最主要包括界面控件的定位和模擬用戶操作兩部分。其中模擬用戶操作基本都是通過模擬windows輸入事件完成,區(qū)別不大。界面控件的定位受界面實(shí)現(xiàn)方式不同的影響方法較多,主要分基于界面控件檢測的定位和基于圖像檢測的定位。其中基于界面控件檢測的方法要求界面引擎必須向外暴露接口,使得自動化程序能夠獲取到控件的句柄,并進(jìn)一步獲取控件的詳細(xì)信息。當(dāng)界面引擎不向第三方開放這些接口的時候就完全不可用了,比如基于非公開Directn引擎實(shí)現(xiàn)的應(yīng)用程序。而基于圖像檢測的定位會解決基于界面控件檢測的方法遇到的問題,可以不依賴界面引擎,完全基于最終的視覺效果來檢測控件,與人眼識別更接近,也更智能。現(xiàn)有的基于圖像檢測的定位技術(shù),通過預(yù)先截取操作過程中會出現(xiàn)的圖像,然后在自動化測試過程中對軟件運(yùn)行時的界面進(jìn)行截圖,在整幅界面截圖中搜索預(yù)先截取的圖像來定位目標(biāo)控件。
[0004]在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:現(xiàn)有的基于圖像檢測的定位的方法,基本都是把整個程序界面全部截取下來,然后在大圖像中搜索預(yù)先截取的小圖像。這種方法對圖像的分辨率有較高的要求,要求程序運(yùn)行時和預(yù)先截取圖像時的分辨率(即尺寸)必須是一樣的,否則圖像被縮放后無法搜索。而且如果程序運(yùn)行時出現(xiàn)了多個預(yù)先截取的控件的小圖像時,這種方法是無法分辨到底哪個圖像才是要尋找的目標(biāo)控件的,因此現(xiàn)有的基于圖像檢測的定位方法應(yīng)用場景的局限性較高。
【發(fā)明內(nèi)容】
[0005]為了解決現(xiàn)有技術(shù)的問題,本發(fā)明實(shí)施例提供了一種基于圖像檢測的定位方法及裝置。所述技術(shù)方案如下:
[0006]一方面,提供了一種基于圖像檢測的定位方法,所述方法包括:
[0007]從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像;
[0008]根據(jù)所述第一界面的布局,確定所述目標(biāo)控件的布局參數(shù);
[0009]根據(jù)所述程序當(dāng)前運(yùn)行的第二界面、所述第一界面和所述目標(biāo)控件的布局參數(shù),確定所述目標(biāo)控件在所述第二界面的位置區(qū)域;
[0010]從所述目標(biāo)控件在所述第二界面的位置區(qū)域截取所述目標(biāo)控件的第二圖像;
[0011]根據(jù)所述第一圖像和所述第二圖像,檢測是否定位到所述目標(biāo)控件。
[0012]另一方面,提供了一種基于圖像檢測的定位裝置,所述裝置包括:
[0013]截取模塊,用于從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像;
[0014]確定模塊,用于根據(jù)所述第一界面的布局,確定所述目標(biāo)控件的布局參數(shù);
[0015]所述確定模塊,還用于根據(jù)所述程序當(dāng)前運(yùn)行的第二界面、所述第一界面和所述目標(biāo)控件的布局參數(shù),確定所述目標(biāo)控件在所述第二界面的位置區(qū)域;
[0016]所述截取模塊,還用于從所述目標(biāo)控件在所述第二界面的位置區(qū)域截取所述目標(biāo)控件的第二圖像;
[0017]檢測模塊,用于根據(jù)所述第一圖像和所述第二圖像,檢測是否定位到所述目標(biāo)控件。
[0018]本發(fā)明實(shí)施例的基于圖像檢測的定位方法及裝置,通過從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像;根據(jù)第一界面的布局,確定目標(biāo)控件的布局參數(shù);根據(jù)程序當(dāng)前運(yùn)行的第二界面、第一界面和目標(biāo)控件的布局參數(shù),確定目標(biāo)控件在第二界面的位置區(qū)域;從目標(biāo)控件在第二界面的位置區(qū)域截取目標(biāo)控件的第二圖像;根據(jù)第一圖像和第二圖像,檢測是否定位到目標(biāo)控件。本發(fā)明實(shí)施例的技術(shù)方案,能夠克服現(xiàn)有技術(shù)中無法在程序界面運(yùn)行時尺寸與預(yù)設(shè)尺寸不一致時尋找到目標(biāo)控件的小圖像的缺陷,能夠準(zhǔn)確定位目標(biāo)控件在第二界面的位置區(qū)域,然后再具體從該位置區(qū)域截取目標(biāo)控件在第二界面的第二圖像,能夠準(zhǔn)確獲取該目標(biāo)控件在第二界面的圖像,從而根據(jù)第一圖像和第二圖像檢測是否定位到目標(biāo)控件,因此,采用本發(fā)明實(shí)施例的技術(shù)方案,能夠有效地?cái)U(kuò)大基于圖像檢測定位方法的應(yīng)用場景。
【專利附圖】
【附圖說明】
[0019]為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0020]圖1為本發(fā)明一實(shí)施例提供的基于圖像檢測的定位方法的流程圖;
[0021]圖2為本發(fā)明實(shí)施例提供的界面布局示意圖;
[0022]圖3為本發(fā)明另一實(shí)施例提供的基于圖像檢測的定位方法的流程圖;
[0023]圖4為本發(fā)明實(shí)施例提供的第一界面示意圖;
[0024]圖5為圖4所示的第一界面中的目標(biāo)控件的第一圖像;
[0025]圖6為本發(fā)明實(shí)施例提供的第二界面示意圖;
[0026]圖7為圖6所示的第二界面中的目標(biāo)控件的第二圖像;
[0027]圖8為圖5所示的第一圖像的直方圖;
[0028]圖9為圖7所示的第二圖像的直方圖;
[0029]圖10為本發(fā)明實(shí)施例提供的第三界面示意圖;
[0030]圖11為圖10所示的第三界面中的目標(biāo)控件的第三圖像;
[0031]圖12為圖11所示的第三圖像的直方圖;
[0032]圖13為本發(fā)明實(shí)施例提供的基于圖像檢測的定位裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0034]圖1為本發(fā)明一實(shí)施例提供的基于圖像檢測的定位方法的流程圖。本實(shí)施例的基于圖像檢測的定位方法的執(zhí)行主體為基于圖像檢測的定位裝置,該基于圖像檢測的定位裝置可以為通過軟件集成的。如圖1所示,本實(shí)施例的基于圖像檢測的定位方法,具體可以包括如下步驟:
[0035]100、從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像;
[0036]例如,本實(shí)施例的第一界面可以為該程序運(yùn)行時的默認(rèn)尺寸對應(yīng)的界面。例如使用時,可以打開該程序,該程序運(yùn)行在默認(rèn)尺寸下的第一界面,該第一界面中包括很多控件,這些空間可以以可視化圖形的格式存在,這些控件可以為按鈕或者文件編輯框等等。本實(shí)施例中的目標(biāo)控件為本實(shí)施例中第一界面中的多個控件中的其中一個控件,該控件即為本實(shí)施例中要研究的目標(biāo)控件。
[0037]101、根據(jù)第一界面的布局,確定目標(biāo)控件的布局參數(shù);
[0038]具體地,根據(jù)第一界面中包括的所有控件的布局,可以知道目標(biāo)控件的布局參數(shù)。目標(biāo)控件的布局參數(shù)可以包括表征該目標(biāo)控件在第一界面中的所有參數(shù)。例如該目標(biāo)控件的布局參數(shù)可以包括目標(biāo)控件在第一界面中的大小、目標(biāo)控件在第一界面中相對于父容器的對齊方式、目標(biāo)控件相對于父容器的邊距以及目標(biāo)控件是否隨父容器縮放的屬性值;父容器為第一界面的主窗口或者主窗口中的部分。其中對齊方式可以包括上、下、左、右、左上、右上、左下、右下、居中等等。目標(biāo)控件是否隨父容器縮放的屬性值可以為Ture或者False,當(dāng)為True的話表示目標(biāo)控件隨父容器縮放,當(dāng)為False時表示目標(biāo)控件不隨父容器縮放。例如圖2為本發(fā)明實(shí)施例提供的界面布局示意圖。如圖2中窗口A為第一界面的主窗口,窗口 B為主窗口的一部分,控件C為窗口 B中的一部分。這里窗口 B為控件C的父容器,窗口 A為窗口 B的父容器。在確定目標(biāo)控件的布局參數(shù)時都是以目標(biāo)控件相對于父容器的布局參數(shù)。而父容器也可以采用類似的布局參數(shù)確定方式確定該父容器相對于該父容器的父容器的布局參數(shù),依此類推,直到推論到父容器為主窗口時。這樣,可以根據(jù)每一個目標(biāo)控件、及其相對于父容器的布局參數(shù),以及其父容器相對于父容器的父容器的布局參數(shù),直到推理到主窗口,這樣可以確定每一個目標(biāo)控件在主窗口中的位置。例如圖2中當(dāng)需要確定目標(biāo)控件C在主窗口 A中的位置時,可以根據(jù)目標(biāo)控件C相對于窗口 B的布局參數(shù)以及窗口 B相對于主窗口 A的布局參數(shù),可以確定目標(biāo)控件在主窗口 A中的布局位置。
[0039]102、根據(jù)程序當(dāng)前運(yùn)行的第二界面、第一界面和目標(biāo)控件的布局參數(shù),確定目標(biāo)控件在第二界面的位置區(qū)域;
[0040]本實(shí)施例中的第二界面為對第一界面進(jìn)行放大或者縮小的界面。如第一界面為默認(rèn)尺寸的界面時,第二界面為對默認(rèn)尺寸的界面進(jìn)行放大或者縮小得來的。該步驟中,根據(jù)第一界面、第二界面以及目標(biāo)控件在第一界面的目標(biāo)控件在第一界面中的大小、目標(biāo)控件在第一界面中相對于父容器的對齊方式以及目標(biāo)控件相對于父容器的邊距以及目標(biāo)控件是否隨父容器縮放的屬性值,可以推理確定出目標(biāo)控件在第二界面的位置區(qū)域。
[0041]103、從目標(biāo)控件在第二界面的位置區(qū)域截取目標(biāo)控件的第二圖像;
[0042]具體地,由于步驟102已經(jīng)準(zhǔn)確確定出了目標(biāo)控件在第二界面中的位置區(qū)域,本步驟即從第二界面中步驟102中確定的位置區(qū)域上截取目標(biāo)控件在第二界面中的第二圖像。
[0043]104、根據(jù)第一圖像和第二圖像,檢測是否定位到目標(biāo)控件。
[0044]由于第一圖像和第二圖像分別為目標(biāo)控件在第一界面和第二界面的目標(biāo)控件的圖像,對第一圖像和第二圖像進(jìn)行檢測,便可以確定是否定位到目標(biāo)控件。
[0045]本實(shí)施例的基于圖像檢測的定位方法及裝置,通過從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像;根據(jù)第一界面的布局,確定目標(biāo)控件的布局參數(shù);根據(jù)程序當(dāng)前運(yùn)行的第二界面、第一界面和目標(biāo)控件的布局參數(shù),確定目標(biāo)控件在第二界面的位置區(qū)域;從目標(biāo)控件在第二界面的位置區(qū)域截取目標(biāo)控件的第二圖像;根據(jù)第一圖像和第二圖像,檢測是否定位到目標(biāo)控件。本實(shí)施例的技術(shù)方案,能夠克服現(xiàn)有技術(shù)中無法無法在程序界面運(yùn)行時尺寸與預(yù)設(shè)尺寸不一致時準(zhǔn)確尋找到目標(biāo)控件的小圖像的缺陷,能夠準(zhǔn)確定位目標(biāo)控件在第二界面的位置區(qū)域,然后再具體從該位置區(qū)域截取目標(biāo)控件在第二界面的第二圖像,能夠準(zhǔn)確獲取該目標(biāo)控件在第二界面的圖像,從而根據(jù)第一圖像和第二圖像檢測是否定位到目標(biāo)控件,因此,采用本實(shí)施例的技術(shù)方案,能夠有效地?cái)U(kuò)大基于圖像檢測的定位方法的應(yīng)用場景。
[0046]可選地,在上述圖1所示實(shí)施例的技術(shù)方案的基礎(chǔ)上,其中步驟102 “根據(jù)程序當(dāng)前運(yùn)行的第二界面、第一界面和目標(biāo)控件的布局參數(shù),確定目標(biāo)控件在第二界面的位置區(qū)域”,具體可以包括如下步驟:
[0047](I)根據(jù)目標(biāo)控件是否隨父容器縮放的屬性值、目標(biāo)控件在第一界面中的大小、第一界面的大小和第二界面的大小,確定目標(biāo)控件在第二界面中的大小;
[0048]例如當(dāng)目標(biāo)控件隨父容器縮放的屬性值為False時,此時目標(biāo)控件在第二界面中的大小與在第一界面中的大小相同。當(dāng)目標(biāo)控件隨父容器縮放的屬性值為True時,此時可以根據(jù)第一界面的大小和第二界面的大小以及目標(biāo)控件在第一界面中的大小,推算出目標(biāo)控件在第二界面中的大小。
[0049](2)根據(jù)目標(biāo)控件在第一界面中相對于父容器的邊距、第一界面的大小和第二界面的大小,確定目標(biāo)控件在第二界面中相對于父容器的邊距;
[0050]由于根據(jù)第一界面的大小和第二界面的大小可以確定第二界面相對于第一界面的放大或者縮小的比例,然后根據(jù)目標(biāo)控件在第一界面中相對于父容器的邊距推算出目標(biāo)控件在第二界面中相對于父容器的邊距。
[0051](3)根據(jù)目標(biāo)控件在第一界面中相對于父容器的對齊方式、目標(biāo)控件在第二界面中的大小和目標(biāo)控件在第二界面中相對于父容器的邊距,確定目標(biāo)控件在第二界面的位置區(qū)域。
[0052]根據(jù)上述實(shí)施例的記載,雖然每一個目標(biāo)控件的布局參數(shù)都是相對于其父容器,但是每一個父容器的布局參數(shù)都可以采用類似的方式來確定。因此即使當(dāng)該父容器不是主窗口時,也可以采用類推的方式確定該目標(biāo)控件的位置區(qū)域。因此,該步驟中,可以根據(jù)目標(biāo)控件在第一界面中相對于父容器的對齊方式、目標(biāo)控件在第二界面中的大小和目標(biāo)控件在第二界面中相對于父容器的邊距,確定目標(biāo)控件在第二界面的位置區(qū)域。
[0053]進(jìn)一步可選地,在上述實(shí)施例的技術(shù)方案的基礎(chǔ)上,其中步驟104 “根據(jù)第一圖像和第二圖像,檢測是否定位到目標(biāo)控件”,具體可以包括:根據(jù)第一圖像中包括的文字和第二圖像中包括的文字,檢測是否定位到目標(biāo)控件;和/或者根據(jù)第一圖像的顏色和第二圖像中的顏色,檢測是否定位到目標(biāo)控件。
[0054]也就是說,可以只檢測第一圖像中包括的文字和第二圖像中包括的文字,或者檢測只檢測第一圖像的顏色和第二圖像中的顏色,來確定是否定位到目標(biāo)控件?;蛘咄瑫r即檢測第一圖像中包括的文字和第二圖像中包括的文字,又檢測只檢測第一圖像的顏色和第二圖像中的顏色,只有兩者檢測都通過,才能確定定位到目標(biāo)控件,否則則認(rèn)為未定位到目標(biāo)控件。
[0055]進(jìn)一步地,例如當(dāng)根據(jù)第一圖像中包括的文字和第二圖像中包括的文字,檢測是否定位到目標(biāo)控件,具體可以包括如下步驟:
[0056](a)分別從第一圖像和第二圖像中提取第一圖像中包括的文字和第二圖像中包括的文字;
[0057]例如其中的文字可以為字母組成的單詞或者數(shù)字或者漢字等等,在此不做限制。
[0058](b)判斷第一圖像中包括的文字和第二圖像中包括的文字是否相同,當(dāng)相同時,確定定位到目標(biāo)控件;否則未定位到目標(biāo)控件。
[0059]在本實(shí)施例中,當(dāng)?shù)谝粓D像中包括的文字和第二圖像中包括的文字相同,說明采用本實(shí)施例的方式獲取的目標(biāo)控件的第二圖像是準(zhǔn)確的,即定位到目標(biāo)控件,否則未定位到目標(biāo)控件。
[0060]進(jìn)一步地,例如根據(jù)第一圖像的顏色和第二圖像中的顏色,檢測是否定位到目標(biāo)控件,具體可以包括如下步驟:
[0061](A)分別提取第一圖像的顏色直方圖和第二圖像的顏色直方圖;
[0062]本實(shí)施例中的顏色的直方圖中可以包括圖像的顏色信息,例如可以采用紅(R)、綠(G)和藍(lán)(B)信息來表示。
[0063](B)分別從第一圖像的顏色直方圖和第二圖像的顏色直方圖中獲取第一圖像的顏色值和第二圖像的顏色值;
[0064]例如從第一圖像中獲取第一圖像對應(yīng)的R的值、G的值和B的值。同理也從第二圖像中獲取第二圖像對應(yīng)的R的值、G的值和B的值。
[0065](C)判斷第一圖像的顏色值和第二圖像的顏色值的差值是否小于或者等于預(yù)設(shè)閾值,若是小于或者等于預(yù)設(shè)閾值,確定定位到目標(biāo)控件,否則未定位到目標(biāo)控件。
[0066]例如分別判斷第一圖像的R值與第二圖像的R值的差值是否小于或者等于預(yù)設(shè)閾值,判斷第一圖像的G值與第二圖像的G值的差值是否小于或者等于預(yù)設(shè)閾值、再判斷第一圖像的B值與第二圖像的B值的差值是否小于或者等于預(yù)設(shè)閾值,只有三者都小于或者等于預(yù)設(shè)閾值時,才確定定位到目標(biāo)控件,否則未定位到目標(biāo)控件。
[0067]需要說明的是,本實(shí)施例中的預(yù)設(shè)閾值可以根據(jù)實(shí)際需求來設(shè)定,例如可以為該差值相對于在第一圖像中對應(yīng)的值的百分之五等等。
[0068]需要說明的是,還可以采用對比第一圖像和第二圖像的色彩、亮度和對比度,當(dāng)?shù)谝粓D像的色彩、亮度和對比度,分別與第二圖像對應(yīng)的色彩、亮度和對比度的差值,分別小于或者等于預(yù)設(shè)閾值,確定定位到目標(biāo)控件,否則未定位到目標(biāo)控件。原理類似,在此不再贅述。
[0069]上述實(shí)施例的所有可選技術(shù)方案,可以采用可以結(jié)合的方式任意組合形成本發(fā)明的可選實(shí)施例,在此不再贅述。
[0070]上述實(shí)施例的所有可選技術(shù)方案,能夠克服現(xiàn)有技術(shù)中無法準(zhǔn)確尋找到目標(biāo)控件的小圖像的缺陷,能夠準(zhǔn)確定位目標(biāo)控件在第二界面的位置區(qū)域,然后再具體從該位置區(qū)域截取目標(biāo)控件在第二界面的第二圖像,能夠準(zhǔn)確獲取該目標(biāo)控件在第二界面的圖像,從而根據(jù)第一圖像和第二圖像檢測是否定位到目標(biāo)控件,因此,采用上述實(shí)施例的技術(shù)方案,能夠有效地?cái)U(kuò)大基于圖像檢測的定位方法的應(yīng)用場景。
[0071]圖3為本發(fā)明另一實(shí)施例提供的基于圖像檢測的定位方法的流程圖。該實(shí)施例在上述圖1所示實(shí)施例的技術(shù)方案的基礎(chǔ)上,進(jìn)一步更加詳細(xì)地介紹本發(fā)明的技術(shù)方案。如圖3所示,本實(shí)施例的基于圖像檢測的定位方法,具體可以包括如下步驟:
[0072]200、打開該程序,從該程序運(yùn)行的默認(rèn)尺寸下的第一界面中截取目標(biāo)控件的第一圖像;
[0073]參考上述實(shí)施例的記載,該第一界面中包括多個控件,本實(shí)施例中選擇一個控件為目標(biāo)控件,并從第一界面中截取目標(biāo)控件的第一圖像。
[0074]201、根據(jù)第一界面的布局,確定目標(biāo)控件在第一界面中的大小、目標(biāo)控件在第一界面中相對于父容器的對齊方式、目標(biāo)控件相對于父容器的邊距以及目標(biāo)控件是否隨父容器縮放的屬性值;
[0075]由于相對于主窗口,可能不太能夠準(zhǔn)確描述目標(biāo)控件的位置。因此,為了準(zhǔn)確地表示目標(biāo)控件的位置,可以對第一界面進(jìn)行劃分,從主窗口開始層層劃分父子窗口,知道能夠?qū)⒛繕?biāo)控件放在一個比較小的窗口中,且能夠在該窗口中準(zhǔn)確表述其關(guān)系即可。每一個窗口的父輩窗口為父容器。例如可以參考上述圖2中的表示方式。目標(biāo)控件在第一界面中的大小、目標(biāo)控件在第一界面中相對于父容器的對齊方式、目標(biāo)控件相對于父容器的邊距以及目標(biāo)控件是否隨父容器縮放的屬性值中各參數(shù)值的解釋可以參考上述實(shí)施例的記載。
[0076]202、根據(jù)目標(biāo)控件是否隨父容器縮放的屬性值、目標(biāo)控件在第一界面中的大小、第一界面的大小和第二界面的大小,確定目標(biāo)控件在第二界面中的大小;
[0077]本實(shí)施例中目標(biāo)控件的大小可以采用寬和高來表示。例如表示的格式可以為:x,y(寬,高)。
[0078]203、根據(jù)目標(biāo)控件在第一界面中相對于父容器的邊距、第一界面的大小和第二界面的大小,確定目標(biāo)控件在第二界面中相對于父容器的邊距;
[0079]其中目標(biāo)控件在第一界面中相對于父容器的邊距和目標(biāo)控件在第二界面中相對于父容器的邊距,均可以采用四個參數(shù)來表示,例如邊距格式可以為:left,top, right,bottom (左,上,右,下),也就是說該目標(biāo)控件距離父容器的左、上、右和下的位置。但是使用中,為了簡便,可以結(jié)合目標(biāo)控件在第一界面中相對于父容器的對齊方式來表示,例如當(dāng)對齊當(dāng)時為左上對齊時,此時可以將邊距格式中的右和下置為零。當(dāng)采用右上對齊時,此時可以將邊距格式中的左下置為零。當(dāng)采用居中時,此時左和右不能同時有數(shù)值,為了便于定位,需要左和右中一側(cè)為零。同理,上和下也不能同時有數(shù)值,需要上和下一側(cè)為零。
[0080]204、根據(jù)目標(biāo)控件在第一界面中相對于父容器的對齊方式、目標(biāo)控件在第二界面中的大小和目標(biāo)控件在第二界面中相對于父容器的邊距,確定目標(biāo)控件在第二界面的位置區(qū)域;
[0081]其中目標(biāo)控件在第一界面中相對于父容器的對齊方式和目標(biāo)控件在第二界面中相對于父容器的對齊方式相同,因此可以根據(jù)目標(biāo)控件在第二界面中相對于父容器的對齊方式、目標(biāo)控件在第二界面中的大小和目標(biāo)控件在第二界面中相對于父容器的邊距,采用上述實(shí)施例的步驟,可以準(zhǔn)確確定出目標(biāo)控件在第二界面的位置區(qū)域。
[0082]205、從目標(biāo)控件在第二界面的位置區(qū)域截取目標(biāo)控件的第二圖像;
[0083]也就是說該第二圖像為該目標(biāo)控件在第二界面的圖像。
[0084]206、判斷第一圖像和第二圖像中是否包括文字,當(dāng)包括時,執(zhí)行步驟207 ;否則執(zhí)行步驟208 ;
[0085]27、判斷第一圖像中包括的文字和第二圖像中包括的文字是否相同,當(dāng)相同時,執(zhí)行步驟208 ;否則當(dāng)不相同時,否則確定未定位到目標(biāo)控件,結(jié)束;
[0086]本實(shí)施例的文字可以為數(shù)字,字符串或者漢字或者它們的組合等等。
[0087]208、分別提取第一圖像的顏色直方圖和第二圖像的顏色直方圖;
[0088]209、分別從第一圖像的顏色直方圖和第二圖像的顏色直方圖中獲取第一圖像的顏色值和第二圖像的顏色值;
[0089]本實(shí)施例中提取的是第一圖像的R、G和B值,以及第二圖像的R、G和B值。進(jìn)一步地,還可以從顏色直方圖中獲取亮度、色彩以及對比度,進(jìn)行增加判斷的條件。
[0090]210、判斷第一圖像的顏色值和第二圖像的顏色值的差值是否小于或者等于預(yù)設(shè)閾值,若是小于或者等于預(yù)設(shè)閾值,確定定位到目標(biāo)控件,結(jié)束;否則確定未定位到目標(biāo)控件,結(jié)束。
[0091]本實(shí)施例的顏色值分別包括R、G和B值三個值,要對兩個圖像的三個值分別進(jìn)行檢測,當(dāng)三個顏色的差值都小于或者等于預(yù)設(shè)閾值時,才確定定位到目標(biāo)控件,否則只要有一個顏色的差值大于預(yù)設(shè)閾值時,都確定未定位到目標(biāo)控件。當(dāng)增加亮度、色彩以及對比度中的某一個或者多個時,同理,要判斷所有要判斷的參數(shù)的差值都小于或者等于預(yù)設(shè)閾值時,才確定定位到目標(biāo)控件,否則只要有一個顏色的差值大于預(yù)設(shè)閾值時,都確定未定位到目標(biāo)控件。
[0092]本實(shí)施例的基于圖像檢測的定位方法,通過采用上述方案能夠克服現(xiàn)有技術(shù)中無法準(zhǔn)確尋找到目標(biāo)控件的小圖像的缺陷,能夠準(zhǔn)確定位目標(biāo)控件在第二界面的位置區(qū)域,然后再具體從該位置區(qū)域截取目標(biāo)控件在第二界面的第二圖像,能夠準(zhǔn)確獲取該目標(biāo)控件在第二界面的圖像,從而根據(jù)第一圖像和第二圖像檢測是否定位到目標(biāo)控件,因此,采用上述實(shí)施例的技術(shù)方案,能夠有效地?cái)U(kuò)大基于圖像檢測的定位方法的應(yīng)用場景。
[0093]下面以“英雄聯(lián)盟”客戶端為例,介紹本發(fā)明實(shí)施例的技術(shù)方案。例如:
[0094](I)先啟動程序后,先記錄下程序的默認(rèn)尺寸為:1280*800。圖4為本發(fā)明實(shí)施例提供的第一界面示意圖。如圖4所示,即為該“英雄聯(lián)盟”客戶端在默認(rèn)尺寸1280*800的截面圖。
[0095](2)以play按鈕作為目標(biāo)控件,從圖4所示第一界面中截取play按鈕的第一圖像。如圖5所示為圖4所示的第一界面中的目標(biāo)控件的第一圖像。
[0096](3)縮放一下第一界面,根據(jù)程序界面縮放時目標(biāo)控件play按鈕的布局變化來定義play按鈕的布局參數(shù)。例如定義的布局參數(shù)如下表I所示:
[0097]表I
[0098]
【權(quán)利要求】
1.一種基于圖像檢測的定位方法,其特征在于,所述方法包括: 從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像; 根據(jù)所述第一界面的布局,確定所述目標(biāo)控件的布局參數(shù); 根據(jù)所述程序當(dāng)前運(yùn)行的第二界面、所述第一界面和所述目標(biāo)控件的布局參數(shù),確定所述目標(biāo)控件在所述第二界面的位置區(qū)域; 從所述目標(biāo)控件在所述第二界面的位置區(qū)域截取所述目標(biāo)控件的第二圖像; 根據(jù)所述第一圖像和所述第二圖像,檢測是否定位到所述目標(biāo)控件。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述第一界面為所述程序運(yùn)行的默認(rèn)尺寸對應(yīng)的界面,所述第二界面為對所述第一界面進(jìn)行放大或者縮小的界面。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述布局參數(shù)包括所述目標(biāo)控件在所述第一界面中的大小、所述目標(biāo)控件在所述第一界面中相對于父容器的對齊方式、所述目標(biāo)控件相對于所述父容器的邊距以及所述目標(biāo)控件是否隨所述父容器縮放的屬性值;所述父容器為所述第一界面的主窗口或者所述主窗口中的部分。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)所述程序當(dāng)前運(yùn)行的第二界面、所述第一界面和所述目標(biāo)控件的布局參數(shù),確定所述目標(biāo)控件在所述第二界面的位置區(qū)域,包括: 根據(jù)所述目標(biāo)控件是否隨所述父容器縮放的屬性值、所述目標(biāo)控件在所述第一界面中的大小、所述第一界面的大小和所述第二界面的大小,確定所述目標(biāo)控件在所述第二界面中的大?。? 根據(jù)所述目標(biāo)控件相對于所述父容器的邊距、所述第一界面的大小和所述第二界面的大小,確定所述目標(biāo)控件在所述第二界面中相對于所述父容器的邊距; 根據(jù)所述目標(biāo)控件在所述第一界面中相對于所述父容器的對齊方式、所述目標(biāo)控件在所述第二界面中的大小和所述目標(biāo)控件在所述第二界面中相對于所述父容器的邊距,確定所述目標(biāo)控件在所述第二界面的位置區(qū)域。
5.根據(jù)權(quán)利要求1-4任一所述的方法,其特征在于,根據(jù)所述第一圖像和所述第二圖像,檢測是否定位到所述目標(biāo)控件,包括: 根據(jù)所述第一圖像中包括的文字和所述第二圖像中包括的文字,檢測是否定位到所述目標(biāo)控件; 和/或者根據(jù)所述第一圖像的顏色和所述第二圖像中的顏色,檢測是否定位到所述目標(biāo)控件。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,根據(jù)所述第一圖像中包括的文字和所述第二圖像中包括的文字,檢測是否定位到所述目標(biāo)控件,包括: 分別從所述第一圖像和所述第二圖像中提取所述第一圖像中包括的文字和所述第二圖像中包括的文字; 判斷所述第一圖像中包括的文字和所述第二圖像中包括的文字是否相同,當(dāng)相同時,確定定位到所述目標(biāo)控件;否則未定位到所述目標(biāo)控件。
7.根據(jù)權(quán)利要求5所述的方法,其特征在于,根據(jù)所述第一圖像的顏色和所述第二圖像中的顏色,檢測是否定位到所述目標(biāo)控件,包括: 分別提取所述第一圖像的顏色直方圖和所述第二圖像的顏色直方圖; 分別從所述第一圖像的顏色直方圖和所述第二圖像的顏色直方圖中獲取所述第一圖像的顏色值和所述第二圖像的顏色值; 判斷所述第一圖像的顏色值和所述第二圖像的顏色值的差值是否小于或者等于預(yù)設(shè)閾值,若是小于或者等于所述預(yù)設(shè)閾值,確定定位到所述目標(biāo)控件,否則未定位到所述目標(biāo)控件。
8.一種基于圖像檢測的定位裝置,其特征在于,所述裝置包括: 截取模塊,用于從程序運(yùn)行的第一界面中截取目標(biāo)控件的第一圖像; 確定模塊,用于根據(jù)所述第一界面的布局,確定所述目標(biāo)控件的布局參數(shù); 所述確定模塊,還用于根據(jù)所述程序當(dāng)前運(yùn)行的第二界面、所述第一界面和所述目標(biāo)控件的布局參數(shù),確定所述目標(biāo)控件在所述第二界面的位置區(qū)域; 所述截取模塊,還用于從所述目標(biāo)控件在所述第二界面的位置區(qū)域截取所述目標(biāo)控件的第二圖像; 檢測模塊,用于根據(jù)所述第一圖像和所述第二圖像,檢測是否定位到所述目標(biāo)控件。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一界面為所述程序運(yùn)行的默認(rèn)尺寸對應(yīng)的界面,所述第二界面為對所述第一界面進(jìn)行放大或者縮小的界面。
10.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述布局參數(shù)包括所述目標(biāo)控件在所述第一界面中的大小、所述目標(biāo)控件在所述第一界面中相對于父容器的對齊方式、所述目標(biāo)控件相對于所述父容器的邊距以及所述目標(biāo)控件是否隨所述父容器縮放的屬性值;所述父容器為所述第一界面的主窗口或者所述主窗口中的部分。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述確定模塊,具體用于根據(jù)所述目標(biāo)控件是否隨所述父容器縮放的屬性值、所述目標(biāo)控件在所述第一界面中的大小、所述第一界面的大小和所述第二界面的大小,確定所述目標(biāo)控件在所述第二界面中的大??;并根據(jù)所述目標(biāo)控件相對于所述父容器的邊距、所述第一界面的大小和所述第二界面的大小,確定所述目標(biāo)控件在所述第二界面中相對于所述父容器的邊距;再根據(jù)所述目標(biāo)控件在所述第一界面中相對于所述父容器的對齊方式、所述目標(biāo)控件在所述第二界面中的大小和所述目標(biāo)控件在所述第二界面中相對于所述父容器的邊距,確定所述目標(biāo)控件在所述第二界面的位置區(qū)域。
12.根據(jù)權(quán)利要求8-11任一所述的裝置,其特征在于,所述檢測模塊,具體用于根據(jù)所述第一圖像中包括的文字和所述第二圖像中包括的文字,確定是否定位到所述目標(biāo)控件;和/或者根據(jù)所述第一圖像的顏色和所述第二圖像中的顏色,確定是否定位到所述目標(biāo)控件。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述檢測模塊,具體用于分別從所述第一圖像和所述第二圖像中提取所述第一圖像中包括的文字和所述第二圖像中包括的文字;判斷所述第一圖像中包括的文字和所述第二圖像中包括的文字是否相同,當(dāng)相同時,確定定位到所述目標(biāo)控件;否則未定位到所述目標(biāo)控件。
14.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述檢測模塊,具體用于分別提取所述第一圖像的顏色直方圖和所述第二圖像的顏色直方圖;分別從所述第一圖像的顏色直方圖和所述第二圖像的顏色直方圖中獲取所述第一圖像的顏色值和所述第二圖像的顏色值;判斷所述第一圖像的顏色值和所述第二圖像的顏色值的差值是否小于或者等于預(yù)設(shè)閾值,若是小于或者等于所述預(yù)設(shè)閾值,確定定位到所述目標(biāo)控件,否則未定位到所述目標(biāo)控件。
【文檔編號】G06F9/44GK104133665SQ201310585139
【公開日】2014年11月5日 申請日期:2013年11月19日 優(yōu)先權(quán)日:2013年11月19日
【發(fā)明者】林森, 李炯, 唐慶鈺 申請人:騰訊科技(深圳)有限公司