基于安卓系統(tǒng)的圖像識別方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及圖像識別領(lǐng)域,尤其涉及一種基于安卓系統(tǒng)的圖像識別方法。
【背景技術(shù)】
[0002]目前在Android設(shè)備(操作系統(tǒng)為安卓系統(tǒng)的手機、平板電腦、電視等電子設(shè)備)的圖像識別主要方式是通過Android應(yīng)用加載不同的圖片進行逐點像素對比識別,或者是只能針對Android應(yīng)用自身的界面進行截圖,然后加載后進行逐點像素對比識別。隨著信息化的不斷深入,圖像所攜帶的數(shù)據(jù)也越來越大,上述逐點像素對比識別方法存在以下其缺點:1)目標(biāo)和查找圖像都需要讀取加載,使整個識別時間大大增加。2)只能針對Android應(yīng)用自身的界面進行動態(tài)截圖識別,無法跨不同應(yīng)用進行截圖識別。
【發(fā)明內(nèi)容】
[0003]為此,需要提供一種跨應(yīng)用識別圖像的技術(shù),節(jié)省識圖所需要的時間。為實現(xiàn)上述目的,發(fā)明人提供了一種基于安卓系統(tǒng)的圖像識別方法,包括如下步驟:
[0004]接收圖像識別命令,加載需要查找的圖像的特征;
[0005]獲取當(dāng)前屏幕顯示信息,基于屏幕顯示信息與所述需要查找的圖像的特征進行匹配處理;
[0006]輸出匹配處理結(jié)果。
[0007]具體的,所述圖像識別命令包括需要查找的圖像的路徑、相似度或查找范圍,所述圖像的特征包括圖像的長、寬或像素信息。
[0008]具體的,所述匹配處理具體包括:根據(jù)相似度計算步長、步寬;
[0009]提取圖像的特征中頂點的像素信息,將所述像素信息與屏幕顯示信息逐點匹配,得到第一頂點像素點;
[0010]根據(jù)第一頂點像素點和圖像的特征中長和寬的信息確定屏幕顯示信息中另外三個頂點像素點位置并分別進行匹配判斷;
[0011]根據(jù)頂點像素點確定目標(biāo)區(qū)塊,所述目標(biāo)區(qū)塊為以所述頂點像素點為頂點的矩形像素區(qū)塊,將所述目標(biāo)區(qū)塊的邊緣像素點根據(jù)步長與步寬選取邊緣像素采樣點,將邊緣像素采樣點與圖像的特征進行匹配判斷;
[0012]在所述目標(biāo)區(qū)塊內(nèi)根據(jù)步長及步寬選取目標(biāo)區(qū)塊采樣點,將所述目標(biāo)區(qū)塊采樣點與圖像的特征進行匹配判斷,若上述任一匹配判斷步驟不匹配則重新搜索第一頂點像素點,否則返回匹配成功信息。
[0013]進一步的,還包括步驟:進行初始化操作,所述初始化操作包括獲取安卓系統(tǒng)版本、屏幕信息。
[0014]進一步的,獲取當(dāng)前屏幕顯示信息之后還包括步驟:將所述屏幕顯示信息格式化。
[0015]一種基于安卓系統(tǒng)的圖像識別裝置,包括如下模塊:命令接收模塊、特征加載模塊、屏幕信息獲取模塊和匹配模塊;
[0016]所述命令接收模塊用于接收圖像識別命令;所述特征加載模塊用于加載需要查找的圖像的特征;所述屏幕信息獲取模塊用于獲取當(dāng)前屏幕顯示信息,所述匹配模塊用于基于屏幕顯示信息與所述需要查找的圖像的特征進行匹配處理并輸出匹配處理結(jié)果。
[0017]具體的,所述命令接收模塊接收的圖像識別命令包括需要查找的圖像的路徑、相似度或查找范圍,所述特征加載模塊加載的圖像的特征包括圖像的長、寬或像素信息。
[0018]具體的,所述匹配模塊進行的匹配處理具體包括:根據(jù)相似度計算步長、步寬;
[0019]提取圖像的特征中頂點的像素信息,將所述像素信息與屏幕顯示信息逐點匹配,得到第一頂點像素點;
[0020]根據(jù)第一頂點像素點和圖像的特征中長和寬的信息確定屏幕顯示信息中另外三個頂點像素點位置并分別進行匹配判斷;
[0021]根據(jù)頂點像素點確定目標(biāo)區(qū)塊,所述目標(biāo)區(qū)塊為以所述頂點像素點為頂點的矩形像素區(qū)塊,將所述目標(biāo)區(qū)塊的邊緣像素點根據(jù)步長與步寬選取邊緣像素采樣點,將邊緣像素采樣點與圖像的特征進行匹配判斷;
[0022]在所述目標(biāo)區(qū)塊內(nèi)根據(jù)步長及步寬選取目標(biāo)區(qū)塊采樣點,將所述目標(biāo)區(qū)塊采樣點與圖像的特征進行匹配判斷,若上述任一匹配判斷步驟不匹配則重新搜索第一頂點像素點,否則返回匹配成功信息。
[0023]進一步的,還包括初始化模塊:所述初始化模塊用于進行初始化操作,所述初始化操作包括獲取安卓系統(tǒng)版本、屏幕信息。
[0024]進一步的,還包括格式化模塊,所述格式化模塊用于將所述屏幕顯示信息格式化。
[0025]區(qū)別于現(xiàn)有技術(shù),上述技術(shù)方案通過直接從內(nèi)存獲取屏幕數(shù)據(jù),去掉打開加載圖像文件,解析圖像數(shù)據(jù)的時間,使整個圖像識別時間大大縮短,同時使用相似度取得步長搜索圖像邊緣,減少了搜索時間,也使搜索效率明顯提高。
【附圖說明】
[0026]圖1為本發(fā)明一實施方式所述基于安卓系統(tǒng)的屏幕圖像識別裝置的結(jié)構(gòu)示意圖;
[0027]圖2為本發(fā)明一實施方式所述基于安卓系統(tǒng)的屏幕圖像識別方法的流程圖。
[0028]附圖標(biāo)記說明:
[0029]101、命令接收模塊;
[0030]103、特征加載模塊;
[0031]105、屏幕信息獲取模塊;
[0032]107、匹配模塊;
[0033]109、初始化模塊;
[0034]111、格式化模塊。
【具體實施方式】
[0035]為詳細說明技術(shù)方案的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合具體實施例并配合附圖詳予說明。
[0036]請參閱圖1,為本發(fā)明一實施方式所述基于安卓系統(tǒng)的圖像識別方法的流程圖,該方法所述方法包括如下步驟:
[0037]步驟S201:接收圖像識別命令,
[0038]步驟S203:加載需要查找的圖像的特征;
[0039]步驟S205:獲取當(dāng)前屏幕顯示信息,所述獲取當(dāng)前屏幕顯示信息的方法為訪問當(dāng)前安卓系統(tǒng)的內(nèi)存數(shù)據(jù),獲取安卓系統(tǒng)當(dāng)前屏幕圖像。
[0040]基于屏幕顯示信息與所述需要查找的圖像的特征進行步驟S209匹配處理;
[0041]S211輸出匹配處理結(jié)果,如匹配成功則返回匹配成功信息,否則返回“搜索不到匹配圖像”信息。
[0042]通過上述方法,能夠直接從內(nèi)存獲取屏幕數(shù)據(jù),節(jié)省了以往內(nèi)存打開加載圖像文件,解析圖像數(shù)據(jù)的時間,使整個圖像識別時間大大縮短,也使搜索效率得到明顯提高。
[0043]在基于上述方法的某些具體的實施例中,所述圖像識別命令包括需要查找的圖像的路徑、相似度或查找范圍,其中需要查找的圖像的路徑為必須,所述裝置根據(jù)上述路徑提取需要查找的圖像,提取圖像的特征,所述圖像的特征包括圖像的長、寬或像素信息,所述像素信息即圖像中所有像素點的信息。圖像識別命令可以包含相似度與查找范圍,所述相似度與查找范圍可以根據(jù)需要進行設(shè)置,可以讓用戶自行輸入給命令接收模塊,當(dāng)圖像識別指令中不含有相似度時,可以默認相似度為I ;當(dāng)圖像識別指令中不含有查找范圍信息時,可以默認查找范圍為屏幕圖像以左上角為起點,圖像長乘寬的范圍。通過細化圖像識別命令與圖像特征信息,并允許根據(jù)用戶需要進行調(diào)整,提高了本方法的實用性以及識別效率。
[0044]具體的,所述匹配處理具體包括:根據(jù)相似度的值計算單位步長、單位步寬;其中單位步長為(1-S) *H取整、單位步寬為(l-s) *W取整,步長和步寬的單位均為個(像素);
[0045]隨后提取圖像的特征中四個頂點中任一頂點的像素信息,然后該頂點的像素信息與屏幕顯示信息逐點匹配,匹配可以從屏幕顯示信息任意方向開始,我們以提取圖像的特征中左上頂點的像素信息為例,從左至右,從上至下在屏幕顯示信息中進行逐點匹配,直到找到屏幕顯示信息中某點的與所述頂點的像素信息相匹配,將屏幕顯示信息中該點作為第一頂點像素點,并確定第一頂點像素點位置(cx, cy);
[0046]根據(jù)第一頂點像素點和圖像的特征中長⑶和寬(W)的信息確定屏幕顯示信息中另外三個頂點像素點位置{(cx+H,Cy)、(Cx,Cy+W)和(cx+H,cy+W)}并分別與圖像的特征中另外三個對應(yīng)頂點的像素信息進行匹配判斷;若判斷匹配則繼續(xù)執(zhí)行下述步驟。
[0047]根據(jù)頂點像素點確定目標(biāo)區(qū)塊,所述目標(biāo)區(qū)塊為以所述四個頂點像素點為頂點確定的矩形像素區(qū)塊,將所述目標(biāo)區(qū)塊的邊緣像素點根據(jù)步長與步寬選取邊緣像素采樣點,將邊緣像素采樣點與圖像的特征中對應(yīng)點的信息進行邊緣匹配判斷;若判斷為匹配則繼續(xù)進行下述步驟。
[0048]在所述目標(biāo)區(qū)塊內(nèi)根據(jù)步長及步寬選取目標(biāo)區(qū)塊采樣點,在某些實施例中,可以在目標(biāo)區(qū)塊第一行每隔單位步寬選取采樣點,再下移單位單位步長行,繼續(xù)每隔單位步寬選取采樣點。直到選取完全。將所述目標(biāo)區(qū)塊采樣點與圖像的特征中對應(yīng)位置的像素信息進行逐點匹配判斷。若上述任一匹配判斷步驟不匹配則重新搜索第一頂點像素點,否則返回匹配成功信息。通過匹配處理中頂點匹配、邊緣匹配和逐點匹配的匹配判斷步驟,使得匹配不但效率更高,而且還能根據(jù)相似度進行精度可調(diào)的匹配判斷,用戶可以根據(jù)實際需要調(diào)整相似度,也提高了本方法能夠滿足更多的實際情況。
[0049]進一步的,所述裝置還進行步驟S200:進行初始化操作,所述初始化操作包括獲取安卓系統(tǒng)版本、屏幕信息。所述屏幕信息為fb_var_screeninfo結(jié)構(gòu)的屏幕信息。在某些具體的實施例中,將編好的程序?qū)懭氚沧肯到y(tǒng)支持的可執(zhí)行文件中,所述程序編碼用于獲得安卓系統(tǒng)版本、屏幕顯示信息等初始化信息。所述可執(zhí)行文件存在安卓系統(tǒng)內(nèi),在執(zhí)行本方法的時候,通過安卓系統(tǒng)的Shell指令裝載并運行上述可執(zhí)行文件,所述Shell指令是安卓系統(tǒng)的用戶界面,提供了用戶與內(nèi)核進行交互操作的一種接口。它接收用戶輸入的命令并把它送入內(nèi)核去執(zhí)行。所述可執(zhí)行文件運行后,進行獲得安卓系統(tǒng)版本、屏幕信息等初始化操作。通過上述初始化操作,使得本方法能夠根據(jù)安卓系統(tǒng)的版本更有針對性的獲取內(nèi)存中的屏幕顯示信息,提高了本方法的執(zhí)行效率。
[0050]進一步的,所述裝置獲取當(dāng)前屏幕顯示信息之后還包括步驟S207:將所述屏幕顯示信息格式化。在一些具體的實施例中,通過獲取的當(dāng)前屏幕顯示信息的圖像位(AP)將屏幕顯示信息的像素點陣,轉(zhuǎn)換成RGB格式。轉(zhuǎn)換方式如下:通過屏幕顯示信息中的transp結(jié)構(gòu)中offset的值,以及red、green、blue結(jié)構(gòu)中的offset的值,通過公式:
[0051](Color>>offset)&0xFF
[0052]得到R、G、B三元色的值。再通過公式
[0053]Color = (R?24) + (G?16)+B
[0054]得到RGB格式的像素點。
[0055]進行格式轉(zhuǎn)換的