[0111]S1234,如果有對所述像素值的標記,則以標記詞典中記錄的對應所述像素值的字符標記,按所述像素點所處像素點矩陣的位置,對所述像素點進行標記。
[0112]而對于已經(jīng)出現(xiàn)過的像素值,則可以直接從字符標記詞典中提取對應的字符標記,按所述像素點所處像素點矩陣的位置,對所述像素點進行標記。
[0113]當然,在本發(fā)明實施例中,也可以在像素點矩陣的每行或者每列結(jié)束之時,添加一個換行或者換列標識。如此可得到一張圖像的類似圖1B的m行或者m列字符串。
[0114]那么,分別對于參考圖像和待匹配圖像進行上述操作之后,則可分別得到獲得對應參考圖像的參考字符串序列和對應待匹配圖像的待匹配字符串序列,即可進行后續(xù)的相似匹配過程。
[0115]步驟130,將所述待匹配字符串序列中的字符串與參考字符串序列中的字符串進行匹配,以確定待匹配圖像是否與參考圖像相匹配。
[0116]那么對于對應參考圖像的參考字符串序列和對應待匹配圖像的待匹配字符串序列,由于匹配的對象均是字符串序列中的字符串,而對于字符串的匹配,其無需進行多維計算,只用對一維的字符串進行匹配計算即可,比如,待匹配字符串序列能夠完全匹配到參考字符串序列,或者待匹配字符串序列與參考字符串序列符合一定的相似度閾值,則可以認為相匹配。其計算速度快,占用系統(tǒng)資源也小。
[0117]優(yōu)選的,所述將所述待匹配字符串序列中的字符串與參考字符串序列中的字符串進行匹配,以確定待匹配圖像是否與參考圖像相匹配,包括:
[0118]步驟S132,對于待匹配字符串序列中與待匹配圖像對應的m行和/或η列字符串,在參考字符串序列中以參考圖像中行和/或列為單位,查找是否存在連續(xù)的、與待匹配字符串序列的m行和/或η列字符串匹配的m行和/或η列字符串;如果存在,則確定待匹配圖像與參考圖像相匹配。
[0119]在本發(fā)明實施例中,可以對應圖像的像素點矩陣的一行或者一列進行匹配。優(yōu)選的,本發(fā)明實施例中,兩幅圖像匹配時,在以行為單位生成字符串序列時,同時選擇行字符串進行匹配;在以列為單位生成字符串序列時,同時選擇列字符串進行匹配。
[0120]可以理解,圖像匹配是為了判斷待匹配圖像是否能夠在參考圖像中找到對應的區(qū)域。其參考圖像的像素點矩陣是大于等于待匹配圖像的像素點矩陣的。
[0121]那么本發(fā)明實施例中,則對于待匹配圖像的待匹配字符串序列,找到參考圖像的參考字符串序列中能夠包括待匹配字符串序列的部分(完全匹配或者滿足一定相似度)即可。為了實現(xiàn)上述過程,本發(fā)明對于可以字符串序列中的行為單位的字符串進行匹配,比如待匹配字符串序列有P行,參考字符串序列有m行,m〈p,m,p為整數(shù);那么只需要在參考字符串序列的m行中找到連續(xù)的m行,能夠與待匹配字符串序列的m行,每行能夠按序一一匹配。如果找到上述的m行,則認為待匹配圖像與參考圖像相匹配。
[0122]優(yōu)選的,對于待匹配字符串序列中與待匹配圖像對應的m行和/或η列字符串,在參考字符串序列中以相對參考圖像的行和/或列為單位,查找是否存在連續(xù)的、與待匹配字符串序列的m行和/或η列字符串匹配的m行和/或η列字符串,包括:
[0123]步驟S1320,將待匹配字符串序列中對應待匹配圖像第一行和/或列的字符串A1,逐個與參考字符串序列中對應參考圖像中的每行或每列字符串81進行匹配;
[0124]步驟S1322,對于匹配上最靠前的Bi,以Bi行和/或列為基準,按序一一將待匹配字符串序列仏后的行和/或列,與B i之后的行和/或列進行匹配;
[0125]步驟S1324,在待匹配字符串序列的各行未匹配完成之前,若出現(xiàn)任一行未能匹配上,則按序?qū)⑴cA1匹配的下一個B i,轉(zhuǎn)入以Bi行和/或列為基準,按序一一將待匹配字符串序列仏后的行和/或列,與B i之后的行和/或列進行匹配的過程;
[0126]步驟S1326,若待匹配字符串序列的m行和/或η列字符串與參考字符串序列中以為Bi基準的m行和/或η列字符串全部匹配時,則確定待匹配圖像與參考圖像相匹配。
[0127]對于步驟S1320-S1326,下面以行字符串為例,舉例進行說明:
[0128]比如,待匹配字符串序列有m行,按序分別為仏到A m。參考字符串序列中有P行,按序分別為BjIjB p。其中n〈p,p,n為整數(shù)。
[0129]那么首先把待匹配字符串序列的第一行A1與參考字符串序列的各行Bi進行匹配。如果A1沒匹配到任何B i,則確定待匹配圖像與參考圖像不匹配。
[0130]如果仏匹配到某行或者某幾行Bi,比如匹配上B7,B10, B25,那么首先以1為基準,將4與%行進行匹配;
[0131]如果^與B 8匹配上,則繼續(xù)將A 3與B 9行進行匹配;
[0132]如果^與B 9匹配不上,則判斷B 7對應的一行是錯誤的首行,按序選擇下一個與A !匹配的Bltl,繼續(xù)以Bltl為基準,將A 2與B ^進行匹配;
[0133]如果^與B ^匹配上,則繼續(xù)將A 3與B 12行進行匹配;
[0134]如果^與B 12匹配不上,則判斷B 1(|對應的一行是錯誤的首行,按序選擇下一個與A1匹配的B 25,繼續(xù)以B25為基準,將A 2與B 26進行匹配;
[0135]如果Ag B26匹配上,則將B27匹配,依次類推,如果Ani與B 匹配上,則待匹配字符串序列的m行字符串與參考字符串序列中以為Bi基準的m行字符串全部匹配,可確定待匹配圖像與參考圖像相匹配。
[0136]當對匹配上的任何一個Bi,如果均不能實現(xiàn)待匹配字符串序列的m行字符串與參考字符串序列中以為Bi基準的m行字符串全部匹配的情況,則確定待匹配圖像與參考圖像不匹配。
[0137]對于列的字符串匹配的情況,與行的字符串匹配原理一致,在此不做相似描述。
[0138]優(yōu)選的,所述將所述待匹配字符串序列中的字符串與參考字符串序列中的字符串進行匹配,以確定待匹配圖像是否與參考圖像相匹配,包括:
[0139]步驟S134,將所述待匹配字符串序列中的字符串與參考字符串序列中的字符串,進行完全匹配;當完全匹配,則定待匹配圖像與參考圖像相匹配;
[0140]比如待匹配字符串序列的個字符串“我我我你我你”,與參考字符串序列的某個字符串“我我我我我我”,兩者就不完全匹配;
[0141]而如果參考字符串序列的某個字符串為“我我我你我我”,則兩者完全匹配。
[0142]或者,步驟S136,計算所述待匹配字符串序列中的字符串與參考字符串序列中的字符串之間的萊文斯坦距離;當萊文斯坦距離小于距離閾值,則定待匹配圖像與參考圖像相匹配。
[0143]萊文斯坦距離(LD)用于衡量兩個字符串之間的相似度。對兩個字符串分別為s (原字符串)和t(目標字符串),萊文斯坦距離被定義為”將字符串s變換為字符串t所需的刪除、插入、替換操作的次數(shù)”。萊文斯坦距離越大,字符串的相似程度越低。
[0144]比如前述“我我我你我你”和“我我我我我我”,“我我我你我你”通過兩次將“你”替換為“我”的替換操作,轉(zhuǎn)換得到“我我我我我我”,兩者之間的萊文斯坦距離(LD)為2。
[0145]那么本發(fā)明會設置一個距離閾值,比如3,當萊文斯坦距離(LD)小于等于3的時候,則確定兩個字符串相匹配,大于萊文斯坦距離(LD)時,兩個字符串不匹配。
[0146]當然,本發(fā)明實施例中,還可有其他字符串的比較方法,本發(fā)明不對其加以限制。
[0147]可以理解,在本發(fā)明實施例中,可以單獨以行為順序分別獲取參考圖像和待匹配圖像的字符串序列,然后可以對兩者的字符串序列進行行字符串的匹配。也可以單獨以列為順序分別獲取參考圖像和待匹配圖像的字符串序列,然后可以對兩者的字符串序列進行列字符串的匹配。當然,也可以在以行為順序分別獲取參考圖像和待匹配圖像的字符串序列,然后對兩者的字符串序列進行行字符串的匹配的同時,以列為順序分別獲取參考圖像和待匹配圖像的字符串序列,然后可以對兩者的字符串序列進行列字符串的匹配。
[0148]優(yōu)選的,還包括:
[0149]步驟140,記錄參考圖像中被匹配上的m行的位置,以及參考圖像中被匹配上的η列的位置;
[0150]在本發(fā)明實施例中,可對參考圖像和待匹配圖像按行轉(zhuǎn)換為字符串序列,按前述原理進行行字符串的匹配;同時,也對參考圖像和待匹配圖像按列轉(zhuǎn)換為字符串序列,按前述原理進行列字符串的匹配。
[0151]匹配到參考圖像的第5行-第20行,另外還匹配到參考圖像的第10-30列,那么上述匹配到的行和列進行記錄。
[0152]步驟150,根據(jù)所述參考圖像m行的位置和η列的位置,確定待匹配圖像在所述參考圖像中的位置。
[0153]在本發(fā)明實施例中,行列交叉部分即為待匹配圖像在參考圖像中的位置。如上述例子,參考圖像的左上角像素點坐標為(5,10),右上角的坐標為(5,30),左下角的坐標為(20,10),右下角的坐標為(20,30),四個坐標連起來所圍成的區(qū)域及為待匹配圖像與參考圖像匹配的區(qū)域。
[0154]優(yōu)選的,在對于參考圖像和待匹配圖像,分別獲取各自圖像的各個像素點的像素值之前,還包括:
[0155]步驟102,將所述參考圖像和待匹配圖像進行灰度化處理。
[0156]在本發(fā)明實施例中還可以將參考圖像和待匹配圖像進行灰度化處理,將彩色圖像中的三分量R、G、B亮度求平均得到一個灰度圖,f(i,j) = (R(i,j)+G(i,j)+B(i,j))/3。當然還可以采用其他灰度化方法,本發(fā)明在此不做限制。
[0157]本步驟可以進一步減少字符串中不同字符標識的數(shù)量,降低計算量。
[0158]優(yōu)選的,在對于參考圖像和待匹配圖像,分別獲取各自圖像的各個像素點的像素值之前,還包括:
[0159]步驟104,將所述參考圖像和待匹配圖像按相同尺寸比例進行縮小。
[0160]另外,對于參考圖像和待匹配圖像,還可以按相同的尺寸比例,比如2:1進行縮小,其相當于降低了圖像的像素矩陣中的像素點的個數(shù)。
[0161]本步驟可以進一步減少字符串的長度,從而可降低計算量。
[0162]本發(fā)明實施例將參考圖像和待匹配圖像,可以分別轉(zhuǎn)化為對應參考圖像的參考字符串序列和對應待匹配圖像的待匹配字符串序列,然后以參考字符串序列中的字符串和待匹配字符串序列中的字符串為基礎,進行字符串匹配,當待匹配字符串序列中的字符串在參考字符串序列中的字符串全部匹配上之后,即可確定兩個圖像相似。而由于字符串匹配的計算形式簡單,比如兩個對字符串進行完全匹配,或者計算兩個字符串之間萊文斯坦距離(LD),小于距離閾值時即可認為兩個字符串匹配,這種字符串的匹配計算過程,內(nèi)存中記錄的數(shù)據(jù)量小,計算快速,本發(fā)明采用了一種全新的字符串類型圖像匹配方式,避免了采用灰度匹配計算量大,計算速度慢的問題,也避免了特征匹配的特征處理過程復雜的問題。
[0163]實施例二
[0164]本實施例以圖像中像素點的行為獲取方向,對本發(fā)明進行介紹。當然,對像素點的列為獲取方向的情況,其原理與行類似。在本實施例中,以漢字字符作為字符標識。
[0165]參照圖2,其示出了本發(fā)明的一種圖像匹配方法的流程示意圖,具體可以包括:
[0166]步驟210,對于參考圖像和待匹配圖像中的每個圖像,從圖像左上角按行的方向,逐個獲取各像素點的像素值。
[0167]在本發(fā)明實施例中,系統(tǒng)初始化時,可預先加載無重復漢字字符列表strCopor,加載一個初始狀態(tài)的標記詞典diet,即沒記錄任何“像素值-漢字”對初始狀態(tài)的標記詞典。
[0168]然后,本發(fā)明對于一個圖像,可以預先獲取圖像大小,即獲取圖像對應的像素點矩陣的行數(shù)m和列數(shù)η的大小。然后從(i = I, j = I)像素點開始,獲取像素點的像素值,每獲取一個像素值,則進入步驟212,進行后續(xù)的標記過程。再標記之后,在按矩陣獲取