空心字符驗(yàn)證碼生成方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種空心字符驗(yàn)證碼生成方法、裝置和系統(tǒng)。所述方法包括以下步驟:將實(shí)心字符生成驗(yàn)證碼原始圖片;采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處理得到處理后的圖片;將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每一個(gè)點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色;按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。上述生成空心字符驗(yàn)證碼方法、裝置和系統(tǒng),實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符驗(yàn)證碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
【專利說明】
空心字符驗(yàn)證碼生成方法、裝置和系統(tǒng)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及驗(yàn)證碼生成領(lǐng)域,特別是涉及一種空心字符驗(yàn)證碼生成方法、裝置和 系統(tǒng)。
【背景技術(shù)】
[0002] 隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的用戶使用網(wǎng)絡(luò)。用戶通過客戶端訪問網(wǎng)頁等時(shí), 有時(shí)需要輸入驗(yàn)證碼。驗(yàn)證碼是一種全自動區(qū)分計(jì)算機(jī)和人類的圖靈測試,用于區(qū)分用戶 是計(jì)算機(jī)和人的公共自動程序。在圖靈測試中,服務(wù)器會生成一個(gè)問題由用戶來解答,這個(gè) 問題可由計(jì)算機(jī)生成并驗(yàn)證,且只能由人類進(jìn)行解答。驗(yàn)證碼有多種,其中一種是空心字符 驗(yàn)證碼??招淖址啾葘?shí)心字符而言抗驗(yàn)證碼破解能力強(qiáng),因此在驗(yàn)證碼中需要大量使用 空心字符,然而空心字符數(shù)量有限,極大的限制了空心字符驗(yàn)證碼的使用。
【發(fā)明內(nèi)容】
[0003] 基于此,有必要針對傳統(tǒng)的空心字符有限,導(dǎo)致空心字符驗(yàn)證碼的使用受限的問 題,提供一種空心字符驗(yàn)證碼生成方法,能生成大量的空心字符驗(yàn)證碼,擴(kuò)展空心字符驗(yàn)證 碼的使用。
[0004] 此外,還有必要提供一種空心字符驗(yàn)證碼生成裝置和系統(tǒng)。
[0005] -種空心字符驗(yàn)證碼生成方法,包括以下步驟:
[0006] 將實(shí)心字符生成驗(yàn)證碼原始圖片;
[0007] 采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處理得到處理后的圖片;
[0008] 將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每一個(gè)點(diǎn)顏色按 照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色;
[0009] 按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。
[0010] 上述生成空心字符驗(yàn)證碼方法,通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行形態(tài) 學(xué)算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與形態(tài) 學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的 圖片中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符 驗(yàn)證碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
[0011] 一種空心字符驗(yàn)證碼生成裝置,包括:
[0012] 第一生成模塊,用于將實(shí)心字符生成驗(yàn)證碼原始圖片;
[0013] 形態(tài)學(xué)處理模塊,用于采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處理得到處理后的圖 片;
[0014] 映射處理模塊,用于將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同 的每一個(gè)點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的 各點(diǎn)的顏色;
[0015] 第二生成模塊,用于按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖 片。
[0016] 上述生成空心字符驗(yàn)證碼裝置,通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行形態(tài) 學(xué)算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與形態(tài) 學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的 圖片中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符 驗(yàn)證碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
[0017] -種空心字符驗(yàn)證碼生成系統(tǒng),包括驗(yàn)證碼生成服務(wù)器,所述驗(yàn)證碼生成服務(wù)器 用于將實(shí)心字符生成驗(yàn)證碼原始圖片,并采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處理得到處 理后的圖片,再將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每一個(gè)點(diǎn)顏 色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色, 以及按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。
[0018] 上述生成空心字符驗(yàn)證碼系統(tǒng),通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行形態(tài) 學(xué)算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與形態(tài) 學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的 圖片中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符 驗(yàn)證碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
【附圖說明】
[0019] 圖1為一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成方法的流程圖;
[0020] 圖2為實(shí)心字符生成驗(yàn)證碼原始圖片的示意圖;
[0021] 圖3為一個(gè)實(shí)施例中采用腐蝕算法生成空心字符驗(yàn)證碼圖片的方法的流程圖;
[0022] 圖4為圖2中實(shí)心字符生成的驗(yàn)證碼原始圖片腐蝕后的圖片;
[0023] 圖5為生成的空心字符驗(yàn)證碼圖片;
[0024] 圖6為腐蝕示意圖;
[0025] 圖7為腐蝕運(yùn)算的結(jié)果示意圖;
[0026] 圖8為一個(gè)實(shí)施例中采用膨脹算法生成空心字符驗(yàn)證碼圖片的方法的流程圖;
[0027] 圖9為膨脹示意圖;
[0028] 圖10為膨脹運(yùn)算的結(jié)果示意圖;
[0029] 圖11為一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成裝置的結(jié)構(gòu)框圖;
[0030] 圖12為另一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成裝置的結(jié)構(gòu)框圖;
[0031] 圖13為一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成系統(tǒng)的架構(gòu)示意圖;
[0032] 圖14為圖13中空心字符驗(yàn)證碼生成和驗(yàn)證過程的工作時(shí)序圖;
[0033] 圖15為一個(gè)實(shí)施例中服務(wù)器的內(nèi)部結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0034] 為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對 本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并 不用于限定本發(fā)明。
[0035] 圖1為一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成方法的流程圖。如圖1所示,一種空心 字符驗(yàn)證碼生成方法,包括以下步驟:
[0036] 步驟102,將實(shí)心字符生成驗(yàn)證碼原始圖片。
[0037] 圖2為將實(shí)心字體生成驗(yàn)證碼原始圖片的示意圖。如圖2所示,采用實(shí)心字體生 成的驗(yàn)證碼圖片中字符為實(shí)心字符,且字符顯示完整。字符可為字母、數(shù)字、文字等一種或 兩種以上組合。對于字母可區(qū)分大小寫,也可不區(qū)分大小寫。
[0038] 步驟104,采用形態(tài)學(xué)算法對原始圖片進(jìn)行處理得到處理后的圖片。
[0039] 具體的,形態(tài)學(xué)算法是將數(shù)學(xué)形態(tài)學(xué)(mathematical morphology)做為工具從圖 像中提取對于表達(dá)和描述區(qū)域形狀有用的圖像分量的算法,比如邊界、骨架以及凸殼等。形 態(tài)學(xué)算法可為腐蝕算法或膨脹算法。
[0040] 采用腐蝕算法或膨脹算法對原始圖片進(jìn)行處理得到處理后的圖片。
[0041] 步驟106,將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每一個(gè) 點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏 色。
[0042] 具體的,預(yù)先建立與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系。形態(tài)學(xué)算法可為腐蝕算法 或膨脹算法,則建立與腐蝕算法對應(yīng)的顏色處理關(guān)系和與膨脹算法對應(yīng)的顏色處理關(guān)系。 顏色處理關(guān)系可采用映射表的形式存儲。
[0043] 步驟108,按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。
[0044] 上述生成空心字符驗(yàn)證碼方法,通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行形態(tài) 學(xué)算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與形態(tài) 學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的 圖片中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符 驗(yàn)證碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
[0045] 圖3為一個(gè)實(shí)施例中采用腐蝕算法生成空心字符驗(yàn)證碼圖片的方法的流程圖。如 圖3所示,形態(tài)學(xué)算法為腐蝕算法,采用腐蝕算法生成空心字符驗(yàn)證碼圖片的步驟包括:
[0046] 步驟302,將實(shí)心字符生成驗(yàn)證碼原始圖片。
[0047] 實(shí)心字符生成驗(yàn)證碼原始圖片如圖2所示。
[0048] 步驟304,采用腐蝕算法對原始圖片進(jìn)行腐蝕處理得到腐蝕后的圖片。
[0049] 圖4為圖2中實(shí)心字符生成的驗(yàn)證碼原始圖片腐蝕后的圖片。如圖4所示,腐蝕 后的圖片中,白色字符aXDY中每個(gè)字符有一部分?jǐn)嚅_,顯示不連貫。
[0050] 腐蝕是一種消除邊界點(diǎn),使邊界向內(nèi)部收縮的過程。腐蝕算法可采用3x3的結(jié)構(gòu) 元素。首先掃描原始圖片中每一個(gè)像素點(diǎn),用結(jié)構(gòu)元素與該像素覆蓋的二值圖像做"與"操 作,如果都為1,則結(jié)果圖像的該像素為1,否則為〇。腐蝕的結(jié)果是使二值圖像減小一圈。
[0051] 步驟306,將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每一個(gè) 點(diǎn)顏色按照與腐蝕算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏 色。
[0052] 具體的,預(yù)先建立與腐蝕算法對應(yīng)的顏色處理關(guān)系。顏色處理關(guān)系可采用映射表 的形式存儲,如表1所示。
[0053] 表 1
[0054]
[0055] 步驟308,按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。
[0056] 圖5為生成的空心字符驗(yàn)證碼圖片。如圖5所示,字符aXDY中每個(gè)字符為空心的。
[0057] 上述生成空心字符驗(yàn)證碼方法,通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行腐蝕 算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與腐蝕算 法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的圖片 中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符驗(yàn)證 碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
[0058] 為了進(jìn)一步說明腐蝕處理的過程,舉例進(jìn)行說明,如圖6所示,將結(jié)構(gòu)元素 B平移 a后得到Ba,若Ba包含于原始圖片X,記錄a點(diǎn),所有滿足上述條件的a點(diǎn)組成的集合為X 被B腐蝕的結(jié)果,用公式表示為:E(X)=彳>| Ba C:X}=X ΘΒ。圖6中X是被處理的原始圖 片,Β是結(jié)構(gòu)元素,對于任意一個(gè)在陰影部分的點(diǎn)a,Ba包含于X,所以X被Β腐蝕的結(jié)果為 那個(gè)陰影部分。陰影部分在X的范圍之內(nèi),且比X小,就像X被剝掉了一層。此處B采用的 是對稱的。此外,B還可采用非對稱結(jié)構(gòu)。本實(shí)施例中僅列舉了一種腐蝕方式,其他腐蝕算 法也適用。
[0059] 圖7為腐蝕運(yùn)算的結(jié)果示意圖。如圖7所示,第一幅圖是被處理的圖像X(二值圖 像,針對黑點(diǎn)),第二幅圖是結(jié)構(gòu)元素 B,結(jié)構(gòu)元素 B的中心點(diǎn)為0,即當(dāng)前處理元素的位置, 腐蝕的過程是,將B的中心點(diǎn)和X上的點(diǎn)一個(gè)一個(gè)對比,如果B上的所有點(diǎn)都在X的范圍內(nèi), 則該點(diǎn)保留,否則將該點(diǎn)去掉;第三幅圖為腐蝕后的結(jié)果??梢钥闯?,腐蝕后仍在原X范圍 內(nèi),且比X包含的點(diǎn)要少。
[0060] 圖8為一個(gè)實(shí)施例中采用膨脹算法生成空心字符驗(yàn)證碼圖片的方法的流程圖。如 圖8所示,形態(tài)學(xué)算法為膨脹算法,采用膨脹算法生成空心字符驗(yàn)證碼圖片的步驟包括:
[0061] 步驟802,將實(shí)心字符生成驗(yàn)證碼原始圖片。
[0062] 步驟804,采用膨脹算法對原始圖片進(jìn)行膨脹處理得到膨脹后的圖片。
[0063] 膨脹是將與物體接觸的所有背景點(diǎn)合并到物體中,使邊界向外部擴(kuò)張的過程。膨 脹算法可采用3x3的結(jié)構(gòu)元素。首先掃描原始圖片中每一個(gè)像素點(diǎn),用結(jié)構(gòu)元素與該像素 覆蓋的二值圖像做"或"操作,如果都為〇,則結(jié)果圖像的該像素為〇,否則為〇。膨脹的結(jié)果 是使二值圖像擴(kuò)大一圈。
[0064] 步驟806,將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每一個(gè) 點(diǎn)顏色按照與膨脹算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏 色。
[0065] 具體的,預(yù)先建立與膨脹算法對應(yīng)的顏色處理關(guān)系。顏色處理關(guān)系可采用映射表 的形式存儲,如表2所示。
[0066] 表 2
[0067]
[0068] 步驟808,按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。
[0069] 上述生成空心字符驗(yàn)證碼方法,通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行膨脹 算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與膨脹算 法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的圖片 中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符驗(yàn)證 碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
[0070] 為了進(jìn)一步說明膨脹處理的過程,舉例進(jìn)行說明,如圖9所示,膨脹可看 作是腐蝕的對偶運(yùn)算,將結(jié)構(gòu)元素 B平移a后得到Ba,若Ba擊中了原始圖片X,記 錄a點(diǎn),所有滿足上述條件的a點(diǎn)組成的集合為X被B膨脹的結(jié)果,用公式表示為: D(X)={a | Ba t X丨=X猶。圖9中X是被處理的原始圖片,B是結(jié)構(gòu)元素,對于任意一個(gè) 在陰影部分的點(diǎn)a,Ba擊中X,所以X被B膨脹的結(jié)果為那個(gè)陰影部分。陰影部分包括X的 所有范圍,就像X被膨脹了一圈。此處B采用的是對稱的。此外,B還可采用非對稱結(jié)構(gòu)。 本實(shí)施例中僅列舉了 一種腐蝕方式,其他腐蝕算法也適用。
[0071] 圖10為膨脹運(yùn)算的結(jié)果示意圖。如圖10所示,第一幅圖是被處理的圖像X(二值 圖像,針對黑點(diǎn)),第二幅圖是結(jié)構(gòu)元素 B,結(jié)構(gòu)元素 B的中心點(diǎn)為0,即當(dāng)前處理元素的位 置,膨脹的過程是,將B的中心點(diǎn)和X上的點(diǎn)及周圍的點(diǎn)一個(gè)一個(gè)對比,如果B上有一個(gè)點(diǎn) 落在X的范圍內(nèi),則該點(diǎn)就為黑;第三幅圖為膨脹后的結(jié)果??梢钥闯?,膨脹后包括了原X 的所有范圍。
[0072] 圖11為一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成裝置的結(jié)構(gòu)框圖。如圖11所示,一種 空心字符驗(yàn)證碼生成裝置,包括第一生成模塊1110、形態(tài)學(xué)處理模塊1120、映射處理模塊 1130、第二生成模塊1140。其中:
[0073] 第一生成模塊1110用于將實(shí)心字符生成驗(yàn)證碼原始圖片。
[0074] 形態(tài)學(xué)處理模塊1120用于采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處理得到處理后 的圖片。形態(tài)學(xué)算法可為腐蝕算法或膨脹算法。采用腐蝕算法或膨脹算法對原始圖片進(jìn)行 處理得到處理后的圖片。
[0075] 映射處理模塊1130用于將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置 相同的每一個(gè)點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理 后的各點(diǎn)的顏色。
[0076] 具體的,預(yù)先建立與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系。形態(tài)學(xué)算法可為腐蝕算法 或膨脹算法,則建立與腐蝕算法對應(yīng)的顏色處理關(guān)系和與膨脹算法對應(yīng)的顏色處理關(guān)系。 顏色處理關(guān)系可采用映射表的形式存儲。
[0077] 第二生成模塊1140用于按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證 碼圖片。
[0078] 上述生成空心字符驗(yàn)證碼裝置,通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行形態(tài) 學(xué)算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與形態(tài) 學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的 圖片中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符 驗(yàn)證碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
[0079] 在一個(gè)實(shí)施例中,形態(tài)學(xué)算法為腐蝕算法,形態(tài)學(xué)處理模塊1120包括腐蝕處理子 模塊。腐蝕處理子模塊用于采用腐蝕算法對所述原始圖片進(jìn)行腐蝕處理得到腐蝕后的圖 片。首先掃描原始圖片中每一個(gè)像素點(diǎn),用結(jié)構(gòu)元素與該像素覆蓋的二值圖像做"與"操作, 如果都為1,則結(jié)果圖像的該像素為1,否則為0。腐蝕的結(jié)果是使二值圖像減小一圈。
[0080] 映射處理模塊1130還用于將原始圖片中的每一個(gè)點(diǎn)顏色與腐蝕后的圖片中的位 置相同的每一個(gè)點(diǎn)顏色按照與腐蝕算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理 后的各點(diǎn)的顏色。
[0081] 在一個(gè)實(shí)施例中,形態(tài)學(xué)算法為膨脹算法,形態(tài)學(xué)處理模塊1120包括膨脹處理子 模塊。膨脹處理子模塊用于采用膨脹算法對所述原始圖片進(jìn)行膨脹處理得到膨脹后的圖 片。膨脹是將與物體接觸的所有背景點(diǎn)合并到物體中,使邊界向外部擴(kuò)張的過程。膨脹算 法可采用3x3的結(jié)構(gòu)元素。首先掃描原始圖片中每一個(gè)像素點(diǎn),用結(jié)構(gòu)元素與該像素覆蓋 的二值圖像做"或"操作,如果都為〇,則結(jié)果圖像的該像素為〇,否則為〇。膨脹的結(jié)果是使 二值圖像擴(kuò)大一圈。
[0082] 映射處理模塊1130還用于將原始圖片中的每一個(gè)點(diǎn)顏色與膨脹后的圖片中的位 置相同的每一個(gè)點(diǎn)顏色按照與膨脹算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理 后的各點(diǎn)的顏色。
[0083] 圖12為另一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成裝置的結(jié)構(gòu)框圖。如圖12所示,一 種空心字符驗(yàn)證碼生成裝置,除了包括第一生成模塊1110、形態(tài)學(xué)處理模塊1120、映射處 理模塊1130、第二生成模塊1140,還包括映射關(guān)系建立模塊1150。其中:映射關(guān)系建立模 塊1150用于預(yù)先建立與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系。預(yù)先建立與形態(tài)學(xué)算法對應(yīng)的 顏色處理關(guān)系。形態(tài)學(xué)算法可為腐蝕算法或膨脹算法,則建立與腐蝕算法對應(yīng)的顏色處理 關(guān)系和與膨脹算法對應(yīng)的顏色處理關(guān)系。顏色處理關(guān)系可采用映射表的形式存儲。
[0084] 圖13為一個(gè)實(shí)施例中空心字符驗(yàn)證碼生成系統(tǒng)的架構(gòu)示意圖。如圖13所示,一 種空心字符驗(yàn)證碼生成系統(tǒng),終端1310、網(wǎng)頁服務(wù)器1320、驗(yàn)證服務(wù)器1330和驗(yàn)證碼生成 服務(wù)器1340。
[0085] 其中,終端1310上的客戶端通過URL (Uniform Resource Locator,統(tǒng)一資源定位 符)訪問網(wǎng)頁服務(wù)器1320。終端1310可為臺式計(jì)算機(jī)、平板電腦、手機(jī)、個(gè)人數(shù)字助理等。
[0086] 網(wǎng)頁服務(wù)器1320從驗(yàn)證服務(wù)器1330獲取空心字符驗(yàn)證碼圖片,并將空心字符驗(yàn) 證碼圖片返回給終端1310,在終端1310上展示給用戶,并接收用戶在終端1310上輸入的答 案,并將輸入的答案傳輸給驗(yàn)證服務(wù)器1330。
[0087] 驗(yàn)證服務(wù)器1330用于從驗(yàn)證碼生成服務(wù)器1340拉取空心字符驗(yàn)證碼圖片,并生 成與該空心字符驗(yàn)證碼對應(yīng)的驗(yàn)證碼答案,并將空心字符驗(yàn)證碼及驗(yàn)證碼答案對應(yīng)存儲, 以及將輸入的答案與存儲的驗(yàn)證碼答案進(jìn)行比較,得到驗(yàn)證結(jié)果,并將驗(yàn)證結(jié)果通過網(wǎng)頁 服務(wù)器1320下發(fā)給用戶所在的終端1310。
[0088] 具體的,驗(yàn)證服務(wù)器1330將輸入的答案與存儲的驗(yàn)證碼答案進(jìn)行比較,若相同, 則驗(yàn)證通過,若不相同,則驗(yàn)證失敗。
[0089] 驗(yàn)證碼生成服務(wù)器1340用于生成空心字符驗(yàn)證碼圖片。本實(shí)施例中,驗(yàn)證碼生成 服務(wù)器1340用于將實(shí)心字符生成驗(yàn)證碼原始圖片,并采用形態(tài)學(xué)算法對所述原始圖片進(jìn) 行處理得到處理后的圖片,再將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同 的每一個(gè)點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的 各點(diǎn)的顏色,以及按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。
[0090] 具體的,形態(tài)學(xué)算法是將數(shù)學(xué)形態(tài)學(xué)做為工具從圖像中提取對于表達(dá)和描述區(qū)域 形狀有用的圖像分量的算法,比如邊界、骨架以及凸殼等。形態(tài)學(xué)算法可為腐蝕算法或膨脹 算法。
[0091] 驗(yàn)證碼生成服務(wù)器1340還用于預(yù)先建立與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系。
[0092] 若形態(tài)學(xué)算法為腐蝕算法,驗(yàn)證碼生成服務(wù)器1340還用于采用腐蝕算法對所述 原始圖片進(jìn)行腐蝕處理得到腐蝕后的圖片,并將原始圖片中的每一個(gè)點(diǎn)顏色與腐蝕后的圖 片中的位置相同的每一個(gè)點(diǎn)顏色按照與腐蝕算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到 映射處理后的各點(diǎn)的顏色。
[0093] 腐蝕是一種消除邊界點(diǎn),使邊界向內(nèi)部收縮的過程。腐蝕算法可采用3x3的結(jié)構(gòu) 元素。首先掃描原始圖片中每一個(gè)像素點(diǎn),用結(jié)構(gòu)元素與該像素覆蓋的二值圖像做"與"操 作,如果都為1,則結(jié)果圖像的該像素為1,否則為〇。腐蝕的結(jié)果是使二值圖像減小一圈。 預(yù)先建立與腐蝕算法對應(yīng)的顏色處理關(guān)系。顏色處理關(guān)系可采用映射表的形式存儲,如表 1所示。
[0094] 若形態(tài)學(xué)算法為膨脹算法,驗(yàn)證碼生成服務(wù)器1340還用于采用膨脹算法對所述 原始圖片進(jìn)行膨脹處理得到膨脹后的圖片,并將原始圖片中的每一個(gè)點(diǎn)顏色與膨脹后的圖 片中的位置相同的每一個(gè)點(diǎn)顏色按照與膨脹算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到 映射處理后的各點(diǎn)的顏色。
[0095] 膨脹是將與物體接觸的所有背景點(diǎn)合并到物體中,使邊界向外部擴(kuò)張的過程。膨 脹算法可采用3x3的結(jié)構(gòu)元素。首先掃描原始圖片中每一個(gè)像素點(diǎn),用結(jié)構(gòu)元素與該像素 覆蓋的二值圖像做"或"操作,如果都為〇,則結(jié)果圖像的該像素為〇,否則為〇。膨脹的結(jié)果 是使二值圖像擴(kuò)大一圈。預(yù)先建立與膨脹算法對應(yīng)的顏色處理關(guān)系。顏色處理關(guān)系可采用 映射表的形式存儲,如表2所不。
[0096] 在其他實(shí)施例中,驗(yàn)證服務(wù)器1330和驗(yàn)證碼生成服務(wù)器1340可為一個(gè)服務(wù)器。
[0097] 上述生成空心字符驗(yàn)證碼裝置,通過將實(shí)心字符生成的驗(yàn)證碼原始圖片進(jìn)行形態(tài) 學(xué)算法處理后,再將原始圖片中每個(gè)點(diǎn)的顏色與處理后的圖片中每個(gè)點(diǎn)的顏色按照與形態(tài) 學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到各點(diǎn)的映射處理顏色,再將映射處理后的 圖片中各點(diǎn)顏色生成空心字符驗(yàn)證碼圖片,實(shí)現(xiàn)了將實(shí)心字符驗(yàn)證碼圖片轉(zhuǎn)換為空心字符 驗(yàn)證碼圖片,能夠生成大量的空心字符驗(yàn)證碼,擴(kuò)展了空心字符驗(yàn)證碼的使用。
[0098] 圖14為圖13中空心字符驗(yàn)證碼生成和驗(yàn)證過程的工作時(shí)序圖。結(jié)合圖13和圖 14所示,空心字符驗(yàn)證碼生成和驗(yàn)證的過程包括:
[0099] (1)驗(yàn)證碼生成服務(wù)器1340生成空心字符驗(yàn)證碼圖片。
[0100] 驗(yàn)證碼生成服務(wù)器1340可為一個(gè)或多個(gè),用于生成大量的空心字符驗(yàn)證碼圖片。 驗(yàn)證碼生成服務(wù)器1340用于將實(shí)心字符生成驗(yàn)證碼原始圖片,并采用形態(tài)學(xué)算法對所述 原始圖片進(jìn)行處理得到處理后的圖片,再將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中 的位置相同的每一個(gè)點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映 射處理后的各點(diǎn)的顏色,以及按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖 片。
[0101] (2)驗(yàn)證服務(wù)器1330從驗(yàn)證碼生成服務(wù)器1340拉取空心字符驗(yàn)證碼圖片,并根據(jù) 空心字符驗(yàn)證碼圖片生成對應(yīng)的簽名,該簽名中包括驗(yàn)證碼答案,并將空心字符驗(yàn)證碼和 驗(yàn)證碼答案對應(yīng)存儲。
[0102] (3)終端1310向網(wǎng)頁服務(wù)器1320發(fā)起訪問請求。
[0103] (4)網(wǎng)頁服務(wù)器1320根據(jù)訪問請求從驗(yàn)證服務(wù)器1330獲取空心字符驗(yàn)證碼圖片, 并將空心字符驗(yàn)證碼圖片返回給終端1310,并在終端1310上展示。
[0104] (5)終端1310接收用戶輸入的答案,并將用戶輸入的答案上傳到網(wǎng)頁服務(wù)器520。
[0105] (6)網(wǎng)頁服務(wù)器1320將用戶輸入的答案傳輸給驗(yàn)證服務(wù)器1330。
[0106] (7)驗(yàn)證服務(wù)器1330將用戶輸入的答案與存儲的驗(yàn)證碼答案進(jìn)行比較,若相同, 則驗(yàn)證通過,若不同,則驗(yàn)證失敗,并將驗(yàn)證結(jié)果通過網(wǎng)頁服務(wù)器1320返回給終端1310。
[0107] 圖15為一個(gè)實(shí)施例中服務(wù)器的內(nèi)部結(jié)構(gòu)圖,該服務(wù)器包括通過系統(tǒng)總線連接的 處理器、存儲介質(zhì)、內(nèi)存和網(wǎng)絡(luò)接口。其中,該服務(wù)器的存儲介質(zhì)存儲有操作系統(tǒng)、數(shù)據(jù)庫和 空心字符驗(yàn)證碼生成裝置,數(shù)據(jù)庫中存儲有生成的空心字符驗(yàn)證碼,該空心字符驗(yàn)證碼生 成裝置用于實(shí)現(xiàn)適用于驗(yàn)證碼生成服務(wù)器的一種空心字符驗(yàn)證碼生成方法。該服務(wù)器的處 理器用于提供計(jì)算和控制能力,支撐整個(gè)服務(wù)器的運(yùn)行。該服務(wù)器的內(nèi)存為存儲介質(zhì)中的 空心字符驗(yàn)證碼生成裝置的運(yùn)行提供環(huán)境。該服務(wù)器的網(wǎng)絡(luò)接口用于據(jù)以與外部的終端通 過網(wǎng)絡(luò)連接通信,比如接收終端發(fā)送的訪問請求以及向終端返回空心字符驗(yàn)證碼等。服務(wù) 器可以用獨(dú)立的服務(wù)器或者是多個(gè)服務(wù)器組成的服務(wù)器集群來實(shí)現(xiàn)。
[0108] 本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分流程,是可以 通過計(jì)算機(jī)程序來指令相關(guān)的硬件來完成,所述的程序可存儲于一非易失性計(jì)算機(jī)可讀取 存儲介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各方法的實(shí)施例的流程。其中,所述的存儲介 質(zhì)可為磁碟、光盤、只讀存儲記憶體(Read-Only Memory,ROM)等。
[0109] 以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并 不能因此而理解為對本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員 來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保 護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1. 一種空心字符驗(yàn)證碼生成方法,包括以下步驟: 將實(shí)心字符生成驗(yàn)證碼原始圖片; 采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處理得到處理后的圖片; 將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每一個(gè)點(diǎn)顏色按照與 形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色; 按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述形態(tài)學(xué)算法為腐蝕算法,所述方法還 包括: 采用腐蝕算法對所述原始圖片進(jìn)行腐蝕處理得到腐蝕后的圖片; 將原始圖片中的每一個(gè)點(diǎn)顏色與腐蝕后的圖片中的位置相同的每一個(gè)點(diǎn)顏色按照與 腐蝕算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述形態(tài)學(xué)算法為膨脹算法,所述方法還 包括: 采用膨脹算法對所述原始圖片進(jìn)行膨脹處理得到膨脹后的圖片; 將原始圖片中的每一個(gè)點(diǎn)顏色與膨脹后的圖片中的位置相同的每一個(gè)點(diǎn)顏色按照與 膨脹算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 預(yù)先建立與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系。5. -種空心字符驗(yàn)證碼生成裝置,其特征在于,包括: 第一生成模塊,用于將實(shí)心字符生成驗(yàn)證碼原始圖片; 形態(tài)學(xué)處理模塊,用于采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處理得到處理后的圖片; 映射處理模塊,用于將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每 一個(gè)點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn) 的顏色; 第二生成模塊,用于按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。6. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述形態(tài)學(xué)算法為腐蝕算法, 所述形態(tài)學(xué)處理模塊包括: 腐蝕處理子模塊,用于采用腐蝕算法對所述原始圖片進(jìn)行腐蝕處理得到腐蝕后的圖 片; 所述映射處理模塊還用于將原始圖片中的每一個(gè)點(diǎn)顏色與腐蝕后的圖片中的位置相 同的每一個(gè)點(diǎn)顏色按照與腐蝕算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的 各點(diǎn)的顏色。7. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述形態(tài)學(xué)算法為膨脹算法,所述形態(tài)學(xué) 處理模塊包括: 膨脹處理子模塊,用于采用膨脹算法對所述原始圖片進(jìn)行膨脹處理得到膨脹后的圖 片; 所述映射處理模塊還用于將原始圖片中的每一個(gè)點(diǎn)顏色與膨脹后的圖片中的位置相 同的每一個(gè)點(diǎn)顏色按照與膨脹算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的 各點(diǎn)的顏色。8. 根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括: 映射關(guān)系建立模塊,用于預(yù)先建立與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系。9. 一種空心字符驗(yàn)證碼生成系統(tǒng),其特征在于,包括驗(yàn)證碼生成服務(wù)器,所述驗(yàn)證碼生 成服務(wù)器用于將實(shí)心字符生成驗(yàn)證碼原始圖片,并采用形態(tài)學(xué)算法對所述原始圖片進(jìn)行處 理得到處理后的圖片,再將原始圖片中的每一個(gè)點(diǎn)顏色與處理后的圖片中的位置相同的每 一個(gè)點(diǎn)顏色按照與形態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn) 的顏色,以及按照映射處理后的圖片中各點(diǎn)的顏色生成空心字符驗(yàn)證碼圖片。10. 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述形態(tài)學(xué)算法為腐蝕算法,所述驗(yàn)證 碼生成服務(wù)器還用于采用腐蝕算法對所述原始圖片進(jìn)行腐蝕處理得到腐蝕后的圖片,并將 原始圖片中的每一個(gè)點(diǎn)顏色與腐蝕后的圖片中的位置相同的每一個(gè)點(diǎn)顏色按照與腐蝕算 法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色。11. 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述形態(tài)學(xué)算法為膨脹算法,所述驗(yàn)證 碼生成服務(wù)器還用于采用膨脹算法對所述原始圖片進(jìn)行膨脹處理得到膨脹后的圖片,并將 原始圖片中的每一個(gè)點(diǎn)顏色與膨脹后的圖片中的位置相同的每一個(gè)點(diǎn)顏色按照與膨脹算 法對應(yīng)的顏色處理關(guān)系進(jìn)行映射處理,得到映射處理后的各點(diǎn)的顏色。12. 根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述驗(yàn)證碼服務(wù)器還用于預(yù)先建立與形 態(tài)學(xué)算法對應(yīng)的顏色處理關(guān)系。13. 根據(jù)權(quán)利要求9至12中任一項(xiàng)所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括驗(yàn)證服務(wù) 器,所述驗(yàn)證服務(wù)器用于從所述驗(yàn)證碼生成服務(wù)器拉取空心字符驗(yàn)證碼圖片,并生成與所 述空心字符驗(yàn)證碼圖片對應(yīng)的驗(yàn)證碼答案。14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括網(wǎng)頁服務(wù)器,所述網(wǎng)頁 服務(wù)器用于從所述驗(yàn)證服務(wù)器獲取空心字符驗(yàn)證碼圖片,并將所述空心字符驗(yàn)證碼圖片下 發(fā)給終端,以及接收用戶在終端上輸入的答案,并將所述輸入的答案傳輸給所述驗(yàn)證服務(wù) 器;所述驗(yàn)證服務(wù)器還用于將所述輸入的答案與存儲的驗(yàn)證碼答案進(jìn)行比較,得到驗(yàn)證結(jié) 果,并將驗(yàn)證結(jié)果通過網(wǎng)頁服務(wù)器下發(fā)給用戶所在的終端。
【文檔編號】G06F21/36GK106033508SQ201510126072
【公開日】2016年10月19日
【申請日】2015年3月20日
【發(fā)明人】羅斌
【申請人】深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司