本公開涉及圖像處理技術(shù)領(lǐng)域,具體而言,涉及一種基于二維碼的圖像處理方法、裝置及二維碼。
背景技術(shù):
隨著微信、支付寶等應(yīng)用程序(APP)的普及,二維碼已經(jīng)成了生活中不可或缺的一部分。
商家為了挖掘更大的市場,紛紛推出了個性化的抓人眼球的二維碼。但目前二維碼個性化程度還比較有限,主要是變更二維碼本身的顏色,或是在二維碼中間嵌入商戶小標(biāo)志。也有一些商家會請?jiān)O(shè)計(jì)師設(shè)計(jì)效果感很強(qiáng)的二維碼,但由于設(shè)計(jì)規(guī)范不符合二維碼本身的編碼邏輯,導(dǎo)致個性化程度高的二維碼很難被識別。
現(xiàn)有的技術(shù)是利用簡單的美化規(guī)則對圖片二維碼進(jìn)行融合,生成的合成圖美觀效果不好,且不一定能被正確識別。
因此,需要一種新的基于二維碼的圖像處理方法、裝置及二維碼。
技術(shù)實(shí)現(xiàn)要素:
本公開提供一種基于二維碼的圖像處理方法、裝置及二維碼,能夠至少部分地或者全部地解決上述現(xiàn)有技術(shù)中存在的問題。
本公開的其他特性和優(yōu)點(diǎn)將通過下面的詳細(xì)描述變得顯然,或部分地通過本公開的實(shí)踐而習(xí)得。
根據(jù)本公開的一個方面,提供一種基于二維碼的圖像處理方法,包括:
根據(jù)二維碼編碼算法對原始信息進(jìn)行編碼生成二維碼;
根據(jù)所述二維碼獲得二維碼蒙版位圖;
根據(jù)半色調(diào)圖像生成算法將目標(biāo)圖像生成半色調(diào)圖片;
采用PCA法將所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行融合生成合成圖像。
在本公開的一種示例性實(shí)施例中,所述采用PCA法將所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行融合生成合成圖像,利用如下公式融合:
F(m,n)=ω1A(m,n)+ω2B(m,n)
其中,F(xiàn)(m,n)代表所述合成圖像的各個像素的灰度值,A(m,n)代表所述二維碼蒙版位圖的各個像素的灰度值,B(m,n)代表所述半色調(diào)圖片的各個像素的灰度值,ω1和ω2分別代表所述二維碼蒙版位圖的第一權(quán)重系數(shù)和所述半色調(diào)圖片的第二權(quán)重系數(shù)。
在本公開的一種示例性實(shí)施例中,所述第一權(quán)重系數(shù)ω1和所述第二權(quán)重系數(shù)ω2通過以下方式獲得:
根據(jù)所述二維碼蒙版位圖和所述半色調(diào)圖片構(gòu)造數(shù)據(jù)矩陣X;
根據(jù)所述數(shù)據(jù)矩陣X計(jì)算協(xié)方差矩陣C;
計(jì)算所述協(xié)方差矩陣C的特征值;
根據(jù)所述特征值獲得所述第一權(quán)重系數(shù)ω1和所述第二權(quán)重系數(shù)ω2。
在本公開的一種示例性實(shí)施例中,所述二維碼包括多個黑白模塊,所述根據(jù)蒙版位圖和所述二維碼獲得二維碼蒙版位圖包括:
將所述蒙版位圖覆蓋于所述二維碼之上,其中所述蒙版位圖包括多個與所述黑白模塊相應(yīng)尺寸的單元,各單元中包括多個子單元,所述多個子單元中的至少一個子單元為所述蒙版位圖的數(shù)據(jù)區(qū)域,所述多個子單元的其他子單元為所述蒙版位圖的蒙版區(qū)域;
刪除所述蒙版區(qū)域獲得所述二維碼蒙版位圖。
在本公開的一種示例性實(shí)施例中,還包括:利用蟻群算法對所述合成圖像進(jìn)行優(yōu)化。
在本公開的一種示例性實(shí)施例中,所述二維碼為快速響應(yīng)碼。
根據(jù)本公開的一個方面,提供一種基于二維碼的圖像處理裝置,包括:
二維碼生成模塊,用于根據(jù)二維碼編碼算法對原始信息進(jìn)行編碼生成二維碼;
二維碼蒙版位圖生成模塊,用于根據(jù)所述二維碼獲得二維碼蒙版位圖;
半色調(diào)圖片生成模塊,用于根據(jù)半色調(diào)圖像生成算法將目標(biāo)圖像生成半色調(diào)圖片;
圖像融合模塊,用于采用PCA法將所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行融合生成合成圖像。
在本公開的一種示例性實(shí)施例中,所述圖像融合模塊包括:
提取單元,用于分別提取所述二維碼蒙版位圖和所述半色調(diào)圖片在各個點(diǎn)的像素灰度值;
計(jì)算單元,用于計(jì)算所述二維碼蒙版位圖的第一權(quán)重系數(shù)和所述半色調(diào)圖片的第二權(quán)重系數(shù);
合成單元,用于根據(jù)所述第一權(quán)重系數(shù)和所述第二權(quán)重系數(shù)對所述二維碼蒙版位圖和所述半色調(diào)圖片相同位置處的像素灰度值進(jìn)行加權(quán)平均融合。
在本公開的一種示例性實(shí)施例中,所述二維碼包括多個黑白模塊,所述二維碼蒙版位圖生成模塊包括:
覆蓋單元,用于將蒙版位圖覆蓋于所述二維碼之上,其中所述蒙版位圖包括多個與所述黑白模塊相應(yīng)尺寸的單元,各單元中包括多個子單元,所述多個子單元中的至少一個子單元為所述蒙版位圖的數(shù)據(jù)區(qū)域,所述多個子單元的其他子單元為所述蒙版位圖的蒙版區(qū)域;
刪除單元,用于刪除所述蒙版區(qū)域獲得所述二維碼蒙版位圖。
在本公開的一種示例性實(shí)施例中,還包括:優(yōu)化模塊,用于利用蟻群算法對所述合成圖像進(jìn)行優(yōu)化。
根據(jù)本公開的一個方面,提供一種二維碼,其中所述二維碼為采用上述基于二維碼的圖像處理方法生成的圖片。
根據(jù)本公開的基于二維碼的圖像處理方法、裝置及二維碼,通過采用PCA加權(quán)平均讓二維碼蒙版位圖與個性化的目標(biāo)圖像進(jìn)行融合,使得生成的效果圖能夠滿足二維碼掃描的清晰度的要求,同時盡可能多地保留了二維碼以及個性化的目標(biāo)圖像的特征信息。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性的,并不能限制本公開。
附圖說明
通過參照附圖詳細(xì)描述其示例實(shí)施例,本公開的上述和其它目標(biāo)、特征及優(yōu)點(diǎn)將變得更加顯而易見。
圖1是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理方法的流程圖。
圖2是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理方法的流程圖。
圖3A-3D示意性示出一種二維碼蒙版位圖生成過程的示意圖。
圖4A-4D示意性示出的二維碼中的一個黑模塊的二維碼蒙版位圖生成過程的示意圖。
圖5A-5D示意性示出的二維碼中的一個白模塊的二維碼蒙版位圖生成過程的示意圖。
圖6是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理方法的流程圖。
圖7A-7C示意性示出本發(fā)明實(shí)施例的圖像融合過程的示意圖。
圖8是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理裝置的框圖。
具體實(shí)施方式
現(xiàn)在將參考附圖更全面地描述示例實(shí)施方式。然而,示例實(shí)施方式能夠以多種形式實(shí)施,且不應(yīng)被理解為限于在此闡述的范例;相反,提供這些實(shí)施方式使得本公開將更加全面和完整,并將示例實(shí)施方式的構(gòu)思全面地傳達(dá)給本領(lǐng)域的技術(shù)人員。附圖僅為本公開的示意性圖解,并非一定是按比例繪制。圖中相同的附圖標(biāo)記表示相同或類似的部分,因而將省略對它們的重復(fù)描述。
此外,所描述的特征、結(jié)構(gòu)或特性可以以任何合適的方式結(jié)合在一個或更多實(shí)施方式中。在下面的描述中,提供許多具體細(xì)節(jié)從而給出對本公開的實(shí)施方式的充分理解。然而,本領(lǐng)域技術(shù)人員將意識到,可以實(shí)踐本公開的技術(shù)方案而省略所述特定細(xì)節(jié)中的一個或更多,或者可以采用其它的方法、組元、裝置、步驟等。在其它情況下,不詳細(xì)示出或描述公知結(jié)構(gòu)、方法、裝置、實(shí)現(xiàn)或者操作以避免喧賓奪主而使得本公開的各方面變得模糊。
圖1是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理方法的流程圖。
如圖1所示,基于二維碼的圖像處理方法包括:
在步驟S110中,根據(jù)二維碼編碼算法對原始信息進(jìn)行編碼生成二維碼。
在示例性實(shí)施例中,所述二維碼為快速響應(yīng)碼(QR code)。但本公開并不限定于此。
快速響應(yīng)碼是一種包括黑白方格的二維矩陣碼。每個方格可被稱為模塊(module,也稱為碼元)。快速響應(yīng)碼具有數(shù)據(jù)段。數(shù)據(jù)被轉(zhuǎn)換成比特流(Bit stream),然后可以以8比特部分(稱為碼字codeword)的形式存儲于數(shù)據(jù)段中。通常在快速響應(yīng)碼中,一個模塊表示一個比特。
在其他實(shí)施例中,所述二維碼還可以采用PDF417、Code 49、Code 16K、Code One等中的任意一種或者多種及其對應(yīng)的編碼算法生成。
下面的實(shí)施例中均以QR碼為例進(jìn)行說明。例如,利用QR編碼技術(shù)對原始信息I進(jìn)行編碼,生成二維碼E(I)。
本公開實(shí)施例用的算法對原始信息沒有要求,不受數(shù)據(jù)類型限制,可對最大長度內(nèi)的任意數(shù)據(jù)加密。
在步驟S120中,根據(jù)所述二維碼獲得二維碼蒙版位圖。
在示例性實(shí)施例中,可以根據(jù)二維碼E(I)中的黑白模塊,對二維碼進(jìn)行拆分,可利用模板刪除法(詳見下述的實(shí)施例)生成所述二維碼蒙版位圖M,使所述二維碼蒙版位圖保留原始二維碼E(I)中的黑白模塊的數(shù)據(jù)信息。
在步驟S130中,根據(jù)半色調(diào)圖像生成算法(Structure-aware Halftoning)H將目標(biāo)圖像I生成半色調(diào)圖片(halftone picture)H(I)。
在示例性實(shí)施例中,所述目標(biāo)圖像可以是顏色、字母、文字、插圖、圖標(biāo)或者標(biāo)志等,將個性化的目標(biāo)圖像結(jié)合到所述二維碼中。
可以將個性化的目標(biāo)圖像進(jìn)行處理,根據(jù)半色調(diào)圖像生成算法,生成目標(biāo)圖像的半色調(diào)圖片。
其中所述目標(biāo)圖像可以具有與二維碼相似的尺寸,如果不是這樣,可以將所述目標(biāo)圖像處理為與二維碼的尺寸匹配所需的尺寸。
在示例性實(shí)施例中,所述半色調(diào)圖片可以通過諸如非線性擴(kuò)散、隨機(jī)翻轉(zhuǎn)等的圖像處理工具產(chǎn)生,但不限于上述方法。
在步驟S140中,采用PCA(Principal Component Analysis,主成分分析或者主元分析)法將所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行融合生成合成圖像。
基于空間域的圖像融合方法就是以像素為單位,在空間域內(nèi)進(jìn)行的融合。
假設(shè)參加融合的二維碼蒙版位圖和半色調(diào)圖片分別為A,B,A和B的圖像大小均為m×n,則用矩陣A(m,n)代表原始二維碼蒙版位圖的各個像素的灰度值,矩陣B(m,n)代表原始半色調(diào)圖片的各個像素的灰度值。
在示例性實(shí)施例中,還可以包括:對所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行預(yù)處理和圖像配準(zhǔn)。
在示例性實(shí)施例中,所述采用PCA法將所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行融合生成合成圖像,利用如下公式融合:
F(m,n)=ω1A(m,n)+ω2B(m,n)
其中,F(xiàn)(m,n)代表融合后形成的所述合成圖像的各個像素的灰度值,ω1和ω2分別代表所述二維碼蒙版位圖的第一權(quán)重系數(shù)和所述半色調(diào)圖片的第二權(quán)重系數(shù)。
在示例性實(shí)施例中,其中所述第一權(quán)重系數(shù)ω1和所述第二權(quán)重系數(shù)ω2可以分別采用如下方式獲得:
根據(jù)二維碼蒙版位圖和半色調(diào)圖片A和B各個像素的灰度值來構(gòu)造數(shù)據(jù)矩陣X和數(shù)據(jù)矩陣Y:
然后,根據(jù)所述數(shù)據(jù)矩陣X和Y計(jì)算協(xié)方差矩陣C:
其中,協(xié)方差計(jì)算公式如下:
其中,i和j分別可以取值為1,2。是二維碼蒙版位圖A的灰度平均值;是第2幅半色調(diào)圖片B的灰度平均值;k=mn為二維碼蒙版位圖A或半色調(diào)圖片B具有的像素點(diǎn),xl代表二維碼蒙版位圖中的各個像素的灰度值,例如xl可以取值為x11,x12,……,xmn;yl代表半色調(diào)圖片中的各個像素的灰度值,例如yl可以取值為y11,y12,……,ymn。
接著,計(jì)算協(xié)方差矩陣C的特征值λ1、λ2,并根據(jù)所述特征值計(jì)算所述第一權(quán)重系數(shù)ω1和所述第二權(quán)重系數(shù)ω2:
ω1=λ1/(λ1+λ2)
ω2=λ2/(λ1+λ2)
將計(jì)算獲得的第一權(quán)重系數(shù)和第二權(quán)重系數(shù)代入上述的融合公式即可生成所述合成圖像。
本實(shí)施方式提供的基于二維碼的圖像處理方法,利用PCA加權(quán)平均來進(jìn)行圖像融合,使原始二維碼和個性化的目標(biāo)圖像的特征信息被盡可能地保留下來,生成效果較好的合成圖像。采用PCA加權(quán)平均融合方法具有很多優(yōu)點(diǎn),如可以有效減少圖像的無用信息,提高圖像檢測的可靠性以及圖像的利用率等。
應(yīng)清楚地理解,本公開描述了如何形成和使用特定示例,但本公開的原理不限于這些示例的任何細(xì)節(jié)。相反,基于本公開公開的內(nèi)容的教導(dǎo),這些原理能夠應(yīng)用于許多其它實(shí)施方式。
圖2是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理方法的流程圖。圖2所示的基于二維碼的圖像處理方法可適用于上述實(shí)施方式中的二維碼蒙版位圖生成過程。
二維碼可以包括但不限于黑色和白色的模塊。二維碼可以包括但不限于快速響應(yīng)碼。
下面以快速響應(yīng)碼為例進(jìn)行說明。其中所述二維碼包括多個黑白模塊,至少一部分黑白模塊用于存儲數(shù)據(jù)或碼字。碼字可以具有4,8,16或32比特的長度。模塊可以具有但不限于方形。多個黑白模塊可以連接在一起,并以二維方式排列。
如圖2所示,二維碼蒙版位圖生成過程包括:
在步驟S121中,將一蒙版位圖覆蓋于所述二維碼之上,其中所述蒙版位圖包括多個與所述黑白模塊相應(yīng)尺寸的單元,各單元中包括多個子單元,所述多個子單元中的至少一個子單元為所述蒙版位圖的數(shù)據(jù)區(qū)域,所述多個子單元的其他子單元為所述蒙版位圖的蒙版區(qū)域。
二維碼的用于存儲數(shù)據(jù)或碼字的黑白模塊的每一個模塊可以被細(xì)分為與蒙版位圖的單元的子單元相對應(yīng)的多個子模塊。每個子模塊可以包括至少一個像素。
其中在所述二維碼蒙版位圖中,可以選擇用于存儲數(shù)據(jù)或碼字的黑白模塊對應(yīng)的多個子模塊中至少一個子模塊用于代表表示碼字或數(shù)據(jù)的比特,而其他的子模塊可用于顯示至少一部分視覺特征。此時,對應(yīng)該黑白模塊的所述蒙版位圖的單元相應(yīng)位置的子單元作為所述蒙版位圖的數(shù)據(jù)區(qū)域,而該單元的其他子單元作為所述蒙版位圖的蒙版區(qū)域。
在示例性實(shí)施例中,所述蒙版位圖的數(shù)據(jù)區(qū)域可以采用透明材料,而所述蒙版位圖的蒙版區(qū)域采用非透明材料。
其中選擇用于存儲碼字的比特的子模塊應(yīng)當(dāng)確??梢哉_地讀出該比特。可以遵照二維碼的標(biāo)準(zhǔn)選擇用于存儲碼字的比特的子模塊。例如,當(dāng)二維碼是快速響應(yīng)碼時,通常選擇一個模塊中以3乘以3矩陣排列的多個子模塊的中心子模塊用于存儲碼字的比特;否則,可能無法正確地讀出該比特。然而,如果在仍能正確讀出比特的系統(tǒng)中使用二維碼,則可以選擇模塊中非中心子模塊的子模塊用于存儲碼字的比特。
各模塊可以具有但不限于相同的尺寸。各子模塊也可以具有但不限于相同的尺寸。
多個子模塊可以排列在但不限于方形矩陣中。多個子模塊可以排列在n乘以n矩陣中,其中n可以為奇數(shù)并大于1的整數(shù)。
在步驟S122中,刪除所述蒙版區(qū)域獲得所述二維碼蒙版位圖。
下面參考圖3A-3D、4A-4D和5A-5D進(jìn)行舉例說明。
如圖3A所示,根據(jù)二維碼編碼算法,將原始信息m生成二維碼E(m)。本實(shí)施例中采用QR碼的編碼算法來生成二維碼,其中黑色方格代表黑色模塊,白色方格代表白色模塊,其余部分為二維碼所需的定位點(diǎn)。
如圖3B所示,為所述蒙版位圖,其中各個白色小方塊分別代表蒙版位圖的各個單元的數(shù)據(jù)區(qū)域,黑色部分代表蒙版位圖的各個單元的蒙版區(qū)域,左上角、右上角和左下角的三個白色大方塊對應(yīng)于二維碼的定位點(diǎn)。需要說明的是,雖然圖3B中以白色來代表蒙版位圖的數(shù)據(jù)區(qū)域和定位點(diǎn),但實(shí)際上一般蒙版位圖的數(shù)據(jù)區(qū)域和定位點(diǎn)是透明的。而蒙版區(qū)域可以是非透明材料制成的。
如圖3C所示,將圖3B所示的蒙版位圖覆蓋于圖3A所示的二維碼上,得到圖3C。刪除圖3C中蒙版位圖的蒙版區(qū)域得到圖3D所示的二維碼蒙版位圖。
需要說明的是,此處以二維碼黑白模塊的中心子模塊用于存儲數(shù)據(jù)或碼字僅為示例說明,而非限制本公開。
圖4A-4D示意性示出的二維碼中的一個黑模塊的二維碼蒙版位圖生成過程的示意圖。
如圖4A所示,為二維碼中的任意一個黑模塊。如圖4B所示,將該黑模塊拆分成九格宮樣式,即一個3×3的子模塊構(gòu)成的矩陣。如圖4C所示,將蒙版位圖相應(yīng)位置的相同尺寸的一個單元覆蓋于該黑模塊上,其中該單元也為一個3×3的子單元構(gòu)成的矩陣。其中取該3×3的子單元構(gòu)成的矩陣的中心子單元為其數(shù)據(jù)區(qū)域,其他8個子單元為蒙版區(qū)域。如圖4D所示,刪除8個子單元的蒙版區(qū)域后,得到該黑模塊的二維碼蒙版位圖,即該二維碼蒙版位圖保留了該二維碼相應(yīng)位置處的數(shù)據(jù)或碼字。這樣,后續(xù)將二維碼蒙版位圖與目標(biāo)圖像進(jìn)行結(jié)合時,使得原始二維碼及合成二維碼(即合成圖像)均可被掃描并產(chǎn)生相同的結(jié)果。
圖5A-5D示意性示出的二維碼中的一個白模塊的二維碼蒙版位圖生成過程的示意圖。
如圖5A所示,為二維碼中的任意一個白模塊。如圖5B所示,將該白模塊拆分成九格宮樣式,即一個3×3的子模塊構(gòu)成的矩陣。如圖5C所示,將蒙版位圖相應(yīng)位置的相同尺寸的一個單元覆蓋于該白模塊上,其中該單元也為一個3×3的子單元構(gòu)成的矩陣。其中取該3×3的子單元構(gòu)成的矩陣的中心子單元為其數(shù)據(jù)區(qū)域,其他8個子單元為蒙版區(qū)域。如圖4D所示,刪除8個子單元的蒙版區(qū)域后,得到該白模塊的二維碼蒙版位圖,即該二維碼蒙版位圖保留了該二維碼相應(yīng)位置處的數(shù)據(jù)或碼字。這樣,后續(xù)將二維碼蒙版位圖與目標(biāo)圖像進(jìn)行結(jié)合時,使得原始二維碼及合成二維碼(即合成圖像)均可被掃描并產(chǎn)生相同的結(jié)果。
采用上述圖4A-4D及圖5A-5D的方法遍歷整個原始二維碼,就可以得到二維碼蒙版位圖。
本實(shí)施方式提供的基于二維碼的圖像處理方法,采用模板刪除法生成二維碼蒙版位圖M,模板刪除法是二維碼和九宮格蒙版的結(jié)合對原始二維碼圖像進(jìn)行處理,使二維碼蒙版位圖保留了原始二維碼的黑白兩種數(shù)據(jù)模塊。
圖6是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理方法的流程圖。
如圖6所示,基于二維碼的圖像處理方法包括:
在步驟S210中,根據(jù)二維碼編碼算法對原始信息進(jìn)行編碼生成二維碼。
在步驟S220中,根據(jù)所述二維碼獲得二維碼蒙版位圖。
在步驟S230中,根據(jù)半色調(diào)圖像生成算法將目標(biāo)圖像生成半色調(diào)圖片。
在步驟S240中,采用PCA法將所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行融合生成合成圖像。
在步驟S250中,利用蟻群算法(Ant Colony Optimization,ACO)對所述合成圖像進(jìn)行優(yōu)化。
蟻群算法,又稱螞蟻算法,是一種用來在圖中尋找優(yōu)化路徑的機(jī)率型算法。螞蟻在路徑上前進(jìn)時會根據(jù)前邊走過的螞蟻所留下的分泌物選擇其要走的路徑。其選擇一條路徑的概率與該路徑上分泌物的強(qiáng)度成正比。因此,由大量螞蟻組成的群體的集體行為實(shí)際上構(gòu)成一種學(xué)習(xí)信息的正反饋現(xiàn)象:某一條路徑走過的螞蟻越多,后面的螞蟻選擇該路徑的可能性就越大。螞蟻的個體間通過這種信息的交流尋求通向食物的最短路徑。蟻群算法就是根據(jù)這一特點(diǎn),通過模仿螞蟻的行為,從而實(shí)現(xiàn)尋優(yōu)。當(dāng)程序最開始找到目標(biāo)的時候,路徑幾乎不可能是最優(yōu)的,甚至可能是包含了無數(shù)錯誤的選擇而極度冗長的。但是,程序可以通過螞蟻尋找食物的時候的信息素原理,不斷地去修正原來的路線,使整個路線越來越短,最終找到最佳路線。這種優(yōu)化過程的本質(zhì)在于:選擇機(jī)制:信息素越多的路徑,被選擇的概率越大。更新機(jī)制:路徑上面的信息素會隨螞蟻的經(jīng)過而增長,而且同時也隨時間的推移逐漸揮發(fā)消失。協(xié)調(diào)機(jī)制:螞蟻間實(shí)際上是通過分泌物來互相通信、協(xié)同工作的。通過個體之間的信息交流與相互協(xié)作最終找到最優(yōu)解,使它具有很強(qiáng)的發(fā)現(xiàn)較優(yōu)解的能力。出錯機(jī)制:顯然如果螞蟻都往信息素多的地方移動,會導(dǎo)致局部最優(yōu)解的問題。可是,總有些具有叛逆精神的螞蟻,會不往信息素較多的地方移動,從而可以跳出局部最優(yōu)解,找到全局的最優(yōu)解。
在示例性實(shí)施例中,可以采用蟻群算法對融合后的所述合成圖像進(jìn)行優(yōu)化,得到最終的結(jié)果圖??梢园ㄒ韵虏襟E:
(1)以所述合成圖像F(m,n)作為起始節(jié)點(diǎn)i;
(2)隨機(jī)變換所述合成圖像中兩個顏色相反的像素,更新合成圖像,重復(fù)此步驟Q次,得到Q個圖,組成初始化網(wǎng)絡(luò)節(jié)點(diǎn),為每一個節(jié)點(diǎn)建立一張路由表。
其中,Q是一個可以設(shè)置的變量。一般取500次。Q的取值個數(shù)決定了網(wǎng)絡(luò)中節(jié)點(diǎn)的個數(shù),取值越大網(wǎng)絡(luò)越大,計(jì)算結(jié)果越準(zhǔn)確,但是速度慢。所述路由表就是記錄螞蟻行走路徑的表,如螞蟻1從a到b到c,螞蟻2從a到c到d等。
(3)選擇網(wǎng)絡(luò)中的某一個圖作為目的節(jié)點(diǎn)j,從起始節(jié)點(diǎn)i釋放螞蟻,尋找滿足約束條件的最優(yōu)路徑,螞蟻每走一步判斷是否滿足約束條件,如果滿足則繼續(xù)向下一個節(jié)點(diǎn)轉(zhuǎn)移,否則螞蟻死亡。
螞蟻由當(dāng)前節(jié)點(diǎn)轉(zhuǎn)移到下一個節(jié)點(diǎn)遵循隨機(jī)比例規(guī)則:
i,j分別為起點(diǎn)節(jié)點(diǎn)和目的節(jié)點(diǎn);ηij=1/dij為能見度,是兩節(jié)點(diǎn)i,j之間的距離dij的倒數(shù)。
這里的約束條件就是權(quán)重dij,若小于0,表示不滿足約束條件,螞蟻死亡;dij>0則表示螞蟻可以繼續(xù)前進(jìn)。
τij(t)為時間t時由i到j(luò)的信息素濃度;allowedk為尚未訪問過的節(jié)點(diǎn)集合;α,β為兩常數(shù),分別是信息素濃度和能見度的加權(quán)值。
其中,初始化信息素濃度為:
C=m/Cnn
其中,兩個節(jié)點(diǎn)之間的距離計(jì)算公式為:
dij=ωgG(Io,Ih)+ωt(1-SSIM(Io,Ih))
其中G為色調(diào)相似度:
其中函數(shù)g(x)返回的是x的高斯模糊圖像。
SSIM為結(jié)構(gòu)相似度:
θi指的是高斯歸一化權(quán)重;μa是圖a的平均值,μb是圖b的平均值,σa^2是圖a的方差,σb^2是圖b的方差,σab是圖a,b的標(biāo)準(zhǔn)差,k1,k2,k3都是用來維持穩(wěn)定的常數(shù)。
(4)如果螞蟻當(dāng)前節(jié)點(diǎn)為目的節(jié)點(diǎn),表明尋路成功。
重復(fù)上述步驟(3)-(4)直到螞蟻遍歷了網(wǎng)絡(luò)中的所有節(jié)點(diǎn)。
例如,網(wǎng)絡(luò)中一共有500個節(jié)點(diǎn),分別編號1~500,每一次選擇其中一個節(jié)點(diǎn)作為目的節(jié)點(diǎn),執(zhí)行操作(3)-(4),遍歷完整個網(wǎng)絡(luò),算法執(zhí)行完畢。
為了模擬螞蟻在較短路徑下留下更多的信息素,當(dāng)所有螞蟻到達(dá)終點(diǎn)時,必須把各路徑的信息素濃度重新更新一次,信息素的更新也分為兩個步驟:
首先,當(dāng)上一輪所有螞蟻到達(dá)終點(diǎn)后,網(wǎng)絡(luò)中的所有路徑上的信息素都會發(fā)生蒸發(fā);
然后,所有的螞蟻根據(jù)自己構(gòu)建的路徑長度在它們本輪經(jīng)過的網(wǎng)絡(luò)中的無向邊上釋放信息素:
其中m為螞蟻個數(shù),0<ρ<1為信息素的蒸發(fā)率,通常設(shè)置為0.5,Δτijk為第k只螞蟻在路徑i到j(luò)所留下來的信息素。
其中,
if the kth ant traverses(i,j)表示如果第k只螞蟻從i節(jié)點(diǎn)走到了j節(jié)點(diǎn)。Ck是第k只螞蟻?zhàn)咄暾麠l路徑后所得到的總路徑長度。
蟻群算法中在本實(shí)施例中沒有詳細(xì)論述的部分,可參考現(xiàn)有技術(shù)中蟻群算法的相關(guān)文獻(xiàn),在此不再贅述。
在另一些實(shí)施例中,還可以采用其他方法對所述合成圖像進(jìn)行優(yōu)化。例如,窮舉法,貪心法,爬山法,模擬退火算法,遺傳算法等。
本實(shí)施方式提供的基于二維碼的圖像處理方法,首先利用QR編碼技術(shù)對原始信息進(jìn)行處理繪制成原始二維碼圖形,再對二維碼進(jìn)行拆分,利用模板刪除法生成二維碼蒙版位圖。接著,將個性化的目標(biāo)圖像進(jìn)行處理,根據(jù)常規(guī)的半色調(diào)圖像生成算法,生成目標(biāo)圖像的半色調(diào)圖片。再利用PCA加權(quán)平均讓二維碼蒙版位圖與個性化半色調(diào)圖片進(jìn)行融合。最后,用蟻群算法對圖像進(jìn)行優(yōu)化,得到最終的結(jié)果圖。
圖7A-7C示意性示出本發(fā)明實(shí)施例的圖像融合過程的示意圖。
圖7A為原始的目標(biāo)圖像,圖7B為采用模板刪除法后生成的二維碼蒙版位圖,圖7C為采用PCA法融合所述目標(biāo)圖像和所述二維碼蒙版位圖后生成的合成圖像。
本發(fā)明與二維碼圖像本身特點(diǎn)無關(guān),對任意布局的二維碼都能達(dá)到很好的效果;對目標(biāo)圖像還原程度高,能保留目標(biāo)圖像所有特點(diǎn);生成速度快,能夠處理比之前方法更高分辨率數(shù)量級的圖像,處理速度更快。
需要注意的是,上述用于示出方法實(shí)施方式的附圖僅是根據(jù)本公開示例性實(shí)施方式的方法所包括的處理的示意性說明,而不是限制目的。易于理解,上述附圖所示的處理并不表明或限制這些處理的時間順序。另外,也易于理解,這些處理可以是例如在多個模塊中同步或異步執(zhí)行的。
下述為本公開裝置實(shí)施例,可以用于執(zhí)行本公開方法實(shí)施例。對于本公開裝置實(shí)施例中未披露的細(xì)節(jié),請參照本公開方法實(shí)施例。
圖8是根據(jù)一示例性實(shí)施方式示出的一種基于二維碼的圖像處理裝置的框圖。
如圖8所示,該基于二維碼的圖像處理裝置80包括:二維碼生成模塊810、二維碼蒙版位圖生成模塊820、半色調(diào)圖片生成模塊830以及圖像融合模塊840。
其中二維碼生成模塊810用于根據(jù)二維碼編碼算法對原始信息進(jìn)行編碼生成二維碼。
二維碼蒙版位圖生成模塊820用于根據(jù)所述二維碼獲得二維碼蒙版位圖。
半色調(diào)圖片生成模塊830用于根據(jù)半色調(diào)圖像生成算法將目標(biāo)圖像生成半色調(diào)圖片。
圖像融合模塊840用于采用PCA法將所述二維碼蒙版位圖和所述半色調(diào)圖片進(jìn)行融合生成合成圖像。
在示例性實(shí)施例中,所述圖像融合模塊利用如下公式融合:
F(m,n)=ω1A(m,n)+ω2B(m,n)
其中,F(xiàn)(m,n)代表所述合成圖像的各個像素的灰度值,A(m,n)代表所述二維碼蒙版位圖的各個像素的灰度值,B(m,n)代表所述半色調(diào)圖片的各個像素的灰度值,ω1和ω2分別代表所述二維碼蒙版位圖的第一權(quán)重系數(shù)和所述半色調(diào)圖片的第二權(quán)重系數(shù)。
在示例性實(shí)施例中,所述二維碼包括多個黑白模塊,所述二維碼蒙版位圖生成模塊包括:覆蓋單元,用于將蒙版位圖覆蓋于所述二維碼之上,其中所述蒙版位圖包括多個與所述黑白模塊相應(yīng)尺寸的單元,各單元中包括多個子單元,所述多個子單元中的至少一個子單元為所述蒙版位圖的數(shù)據(jù)區(qū)域,所述多個子單元的其他子單元為所述蒙版位圖的蒙版區(qū)域;刪除單元,用于刪除所述蒙版區(qū)域獲得所述二維碼蒙版位圖。
在示例性實(shí)施例中,還包括:優(yōu)化模塊,用于利用蟻群算法對所述合成圖像進(jìn)行優(yōu)化。
本實(shí)施方式提供的基于二維碼的圖像處理裝置,一方面利用PCA加權(quán)平均讓二維碼蒙版位圖與個性化的半色調(diào)圖片進(jìn)行融合,使得生成的合成圖像的還原性滿足掃碼清晰度的要求,且盡可能多地保留了二維碼以及個性化目標(biāo)圖像的特征信息。另一方面,用模板刪除法生成二維碼蒙版位圖,使二維碼蒙版位圖保留了原始二維碼的黑白兩種數(shù)據(jù)模塊,明確了哪些是真正有用的部分,哪些是可以舍棄的部分,使得融合后的合成圖像仍然能夠被正確識別。
根據(jù)本公開的另一示例性實(shí)施方式,還提供了一種二維碼,其中所述二維碼為采用上述基于二維碼的圖像處理方法生成的圖片。
以上具體地示出和描述了本公開的示例性實(shí)施方式。應(yīng)可理解的是,本公開不限于這里描述的詳細(xì)結(jié)構(gòu)、設(shè)置方式或?qū)崿F(xiàn)方法;相反,本公開意圖涵蓋包含在所附權(quán)利要求的精神和范圍內(nèi)的各種修改和等效設(shè)置。