一種彩色二維碼生成方法及解碼方法
【專利摘要】本發(fā)明公開了一種多色彩二維碼生成方法,所述多色彩二維碼包括識別區(qū)、根據(jù)識別區(qū)進行二維碼定位的定位區(qū)、信息區(qū)、監(jiān)控信息區(qū)處理的功能區(qū),所述方法包括如下步驟:S1:分別在識別區(qū)、定位區(qū)、信息區(qū)、功能區(qū)輸入數(shù)據(jù),并分別將其數(shù)據(jù)轉(zhuǎn)換生成二進制編碼流,其中,信息區(qū)編碼流為Ix,該信息流包括N個編碼,N>0;S2:將Ix分割成Ib和Ia兩部分,并分別統(tǒng)計Ib中值為1和0的信息位的數(shù)量D1、D0;S3:通過比較Ib中D1和D0生成單色二維碼;S4:將Ia按照顏色代碼標(biāo)準進行分組,并為每一分組中二進制碼設(shè)置對應(yīng)的色彩;S5:將經(jīng)彩色編碼的Ia對S3中的單色二維碼中的黑色像素點進行色彩添加,生成多色彩二維碼。本發(fā)明是在單色二維碼的基礎(chǔ)上,通過增加多色彩信息,進一步提高信息量,數(shù)字化的彩色信息使得信息的還原變得容易。
【專利說明】一種彩色二維碼生成方法及解碼方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及二維碼領(lǐng)域,更具體地,涉及一種彩色二維碼生成方法及解碼方法。
【背景技術(shù)】
[0002]當(dāng)前的彩色二維碼技術(shù)是在黑白二維碼識別技術(shù)的基礎(chǔ)上發(fā)展而來?,F(xiàn)有的彩色二維碼的獲得方式包括將黑色置換為其他單色彩色,其信息量沒有增加。另外就是對模擬的彩色信息進行處理后添加到單色二維碼上,比如,通過增加模擬的彩色信息進一步提高加密能力。還有就是通過在空白的區(qū)域疊加模擬的彩色圖形,從而增加信息量。上述兩種方法為后續(xù)的解碼處理帶來諸多不便。也不利于操作。
【發(fā)明內(nèi)容】
[0003]為解決現(xiàn)有彩色二維碼色彩單一,容易因掉色而造成信息全部丟失,承載的信息量有限的等缺點,本發(fā)明提供了一種彩色二維碼生成方法,通過將輸入的數(shù)據(jù)信息進行分害I],對其中一部分數(shù)據(jù)進行彩色編碼,再將該彩色編碼替換剩余部分黑色信息的方法。
[0004]本發(fā)明提供了一種多色彩二維碼生成方法,所述多色彩二維碼包括識別定位區(qū)、信息區(qū)、功能區(qū),所述方法包括如下步驟:
[0005]S1:分別在識別定位區(qū)、信息區(qū)、功能區(qū)輸入數(shù)據(jù),并分別將其數(shù)據(jù)轉(zhuǎn)換生成二進制信息流,其中,信息區(qū)二進制信息流為Ix,包括N位二進制碼,N>0。本發(fā)明的目的在于提供一種多色彩二維碼,將該多色彩二維碼中信息區(qū)由現(xiàn)有技術(shù)中的黑白色改進為具有多種色彩的信息區(qū),并且其色彩信息是數(shù)字化信息,數(shù)字化的彩色信息相比較模擬的彩色信息更加不容易丟失,因為只要能識別出該中色彩的顏色即可得到其二進制編碼。
[0006]S2:將Ix分割成Ib和Ia兩部分,并分別統(tǒng)計Ib中值為I和O的信息位的數(shù)量D1'D00本發(fā)明的主要目的是將黑白色二維碼設(shè)置成具有多種色彩的二維碼,因此將信息區(qū)分割成了兩部分,一部分用于生成單色(黑白色)二維碼,一部分用于為該單色二維碼填充色彩,這兩部分的和為信息區(qū)的全部信息,才構(gòu)成多色彩二維碼的信息區(qū)的完整信息。同時,根據(jù)用戶需要,如果要將單色的二維碼增加其他Y種功能,可以根據(jù)本發(fā)明將信息區(qū)信息分割成Y部分,這Y部分信息的組合形成二維碼信息區(qū)的全部信息。
[0007]S3:比較Ib中D1和Dtl的大小后,生成單色二維碼。一般單色二維碼中的將黑色像素點的值設(shè)為1,而白色像素點的值設(shè)為O。本發(fā)明的目的在于在單色二維碼中的黑色像素點上進行色彩填充。如果在白色像素點上添加色彩,那么將比較深的顏色填充到白色像素點后與原來的黑色像素點的顏色會因顏色接近而不易區(qū)別,從而導(dǎo)致生成的二維碼模糊一片,美觀性差;而要是在黑色像素點上填充色彩,那么如果黑色像素點的數(shù)量相當(dāng)少,那么填充色彩后的二維碼的多種色彩體現(xiàn)不明顯,因此要保證黑色像素點的數(shù)量,需要統(tǒng)計值為I的信息位的數(shù)量以及值為O的信息位的數(shù)量。
[0008]S4:將Ia按照顏色代碼標(biāo)準進行分組,并為每一分組中二進制碼設(shè)置對應(yīng)的色彩。每種顏色的代碼一般都是確定的、標(biāo)準的,按照每種顏色對應(yīng)的代碼將Ia中的二進制碼設(shè)置色彩,這種方法設(shè)置的色彩是數(shù)字化的,Ia中的二進制碼按照數(shù)字化的顏色對應(yīng)的代碼進行顏色設(shè)置,在將該顏色添加到單色二維碼中。
[0009]S5:將S4中設(shè)置的色彩添加到S3中的單色二維碼中的黑色像素點中,生成多色彩二維碼。在單色二維碼上填充多種色彩,使得生成的二維碼具有多種顏色。本發(fā)明中生成的多色彩二維碼中的色彩是數(shù)字化的,只要能識別出其顏色,即可恢復(fù)其色彩信息;同時期色彩信息中也包含有信息,即便色彩脫落,也不會造成二維碼信息的全部丟失。利用本發(fā)明生成的多色彩二維碼相比較其他單色二維碼或彩色二維碼來說,承載的信息量提高。假設(shè)添加的彩色信息為三種,設(shè)單色編碼流中編碼的總數(shù)為A,其中值為I的編碼的總數(shù)為Al,而Al 3A/2,則經(jīng)色彩添加后編碼總數(shù)N = A+2A1 > 2A,可知,完成色彩添加后信息量提高至少一倍;同理可知添加2T種色彩后,N ^ (1+Τ/2)Α,可知,信息量至少提高Τ/2倍。
[0010]進一步地,S3的具體操作為當(dāng)D1 > Dtl時,在Ib中直接加載識別區(qū)定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼。單色二維碼中一般將值為I的信息位設(shè)為黑色像素點,而值為O的信息位設(shè)置白色像素點。本發(fā)明為了保證生成的多色彩二維碼在視覺上的可觀性,需要保證黑色像素點的數(shù)量不少于白色像素點的數(shù)量。
[0011 ] 當(dāng)D1Otl時,將Ib中值為I的信息位、值為O的信息位做非運算后,再在單色二進制信息流中加載識別定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼,并將該運算及做該運算的信息位通知功能區(qū)編碼流。如果黑色像素點的數(shù)量小于白色像素點的數(shù)量,那么在這種情況下填充色彩后,可能會造成添加的色彩區(qū)域少,失去色彩添加的必要性。假如黑色像素點與白色像素點的比值為1:100甚至更多,那么填充色彩后的二維碼中的色彩根本不易觀察到。
[0012]更進一步地,步驟S3之前還包括S30:對Ib中值為I的信息位、值為O的信息位做掩膜處理,并該操作通知功能區(qū)二進制信息流。
[0013]更進一步地,S4中的每一分組包括T位二進制碼。用戶可以根據(jù)需要,選擇為單色二維碼填充幾種顏色,而每種色彩對應(yīng)的顏色代碼是確定的。因為本發(fā)明將信息區(qū)轉(zhuǎn)換為了二進制的編碼流,因此本發(fā)明以2為基礎(chǔ)選擇填充顏色的種類。以填充三種顏色為例,如果為了保證色彩填充后的單色二維碼中還存在黑色,那么可選擇的為包括黑色在內(nèi)的三種色彩進行彩色設(shè)置,相應(yīng)的將色彩編碼流沒兩個編碼分為一組;假設(shè)要填充7種色彩,那么選擇的將色彩編碼流每3個二進制碼分為一組;依次照推。
[0014]更進一步地,S4還包括S41:對S4中的每一分組與其前一分組進行異或運算。為了防止色彩編碼后的色彩編碼流中顏色分布過度集中,可將該分組后的色彩編碼流中第一組與后一組的編碼進行異或運算,異或運算后的結(jié)果為:第一組因沒有前一分組,因此異或后還和之前一樣,用第一組的編碼與第二組做異或運算后作為第二組的編碼,異或運算后的第二組的編碼與第三組做異或運算作為第三組的編碼,依次類推。
[0015]進一步地,S5的具體操作為S51:掃描單色二維碼中值為I的信息位。色彩添加的對象是值為I的息位。
[0016]S52:將S4中每一個分組的色彩添加到S51中掃描出的一個值為I的信息位,生成多色彩二維碼。彩色編碼后的色彩編碼流中每T位二進制碼為一組,順序用多色二進制信息流中的分組填充單色二維碼中掃描出的黑色像素點進行填充,將多色二進制信息流中的第一組填充單色二維碼中的第一個黑色像素點,第二組填充單色二維碼中的第二個黑色像素點,依次類推。
[0017]進一步地,該方法還包括步驟S6:統(tǒng)計完成色彩添加后Ia中還沒利用的二進制碼的數(shù)量A,若A = 0,則不做任何操作;否則重新對對Ix進行分割完成S2-S5步驟。當(dāng)A =0,則表明完成色彩添加后,Ia被全部利用;否則說明Ia未被全部利用,容易造成信息浪費。
[0018]更進一步地,該方法還包括S61:當(dāng)A = O時,統(tǒng)計單色二維碼中未進行色彩添加的值為I的信息位的數(shù)量D,若D e [0,0.1D1],則完成色彩添加;否則重新對Ix進行分割完成S2-S5步驟。假設(shè)單色二進制信息流分割的區(qū)域特定大,那么完成色彩填充后剩余未填充色彩的黑色區(qū)域仍然很大,這種情況下,色彩填充的效果不好,或者說美觀度不夠。因此需要對完成色彩填充后的二維碼進行未填充判斷。
[0019]本發(fā)明還提供了一種基于多色彩二維碼生成方法的多色彩二維碼解碼方法,包括如下步驟S1:根據(jù)識別定位區(qū)掃描獲得多色彩二維碼像素。多色彩二維碼是由色彩編碼流對單色二維碼進行填充色彩得到的,因此對該多色彩二維碼進行解碼首先要將該多色彩二維碼中的色彩信息提取處理,并處理得到色彩編碼流;同時將多色彩二維碼進行黑白處理得到的圖形與單色二維碼是一致的,因為多色彩二維碼中處理的是黑色像素點,對多色彩二維碼進行處理的也是在黑色像素點上的彩色信息,因此得到的二維碼與單色二維碼是一致的。
[0020]S2:掃描提取多色彩二維碼像素中的彩色像素,將其轉(zhuǎn)換生成新的多色二進制信息流;將多色彩二維碼進行黑白處理后,掃描并提取信息區(qū)生成新的單色二進制信息流。從多色彩二維碼中提取的色彩信息經(jīng)過處理可以還原得到色彩編碼流,而對多色彩二維碼進行黑白處理后再進行解碼可以得到單色編碼流,將單色編碼流與色彩編碼流進行整合即可得到信息編碼流。
[0021]S3:根據(jù)功能區(qū)信息對新的多色二進制信息流、新的單色二進制信息流進行處理,分別獲得單色二進制信息流Ib、多色二進制信息流Ia。
[0022]S4:順序?qū)紊M制信息流Ib與多色二進制信息流Ia合并得到信息區(qū)二進制信息流Ix,順序并將Ix進行解碼獲得該信息區(qū)內(nèi)容。對信息編碼流進行解碼分析可得到該二維碼信息區(qū)的信息,該信息可包括漢字、字母、符號等。
[0023]進一步地,S3中對新的單色二進制信息流處理的具體操作為S31:向功能區(qū)查詢生成單色二維碼時,Ib是否進行了異或操作,進行了異或操作則根據(jù)進行該操作的信息位將其異或運算后進行還原,否則不做改變。S32:完成S31后,向功能區(qū)查詢生成單色二維碼時,Ib是否進行了掩膜運算,若進行了掩膜運算,則根據(jù)進行掩膜運算的信息位將S31操作后的二進制信息流進行逆向掩膜后再還原,否則不做改變。S3中對新的多色二進制信息流處理的具體操作為
[0024]S31:向功能區(qū)查詢多色二進制信息流Ia進行分組時,是否進行了補O操作,若有則去掉。S32:向功能區(qū)進行查詢生成多色二維碼時Ia是否進行了異或運算,有則對器對S31中的信息流做異或運算;否則不做處理直接得到原多色二進制信息流Ia。
[0025]本發(fā)明中,掩模是由O和I組成的一個二進制圖像。當(dāng)在某一功能中應(yīng)用掩模時,I值區(qū)域被處理,被屏蔽的O值區(qū)域不被包括在計算中。通過指定的數(shù)據(jù)值、數(shù)據(jù)范圍、有限或無限值、感興趣區(qū)和注釋文件來定義圖像掩模,也可以應(yīng)用上述選項的任意組合作為輸入來建立掩模。
[0026]本發(fā)明中,非運算指的是邏輯非,就是指本來值的反值。在計算機里面進行的是二進制運算,邏輯判斷的結(jié)果只有二個值,稱這二個值為“邏輯值”,用數(shù)的符號表示就是“ I”和“O”。因此,值為I的信息位的非運算后值為O。
[0027]本發(fā)明中的識別定位區(qū)包括二維碼的邊框信息、定位信息等;功能區(qū)包括二維碼的版本信息,生成二維碼過程的各種運算、及各運算的信息位等。
[0028]本發(fā)明所述的多色彩二維碼具有存儲的信息量大、顏色多、觀賞性強、且不會因為光照掉色而將信息全部丟失的特點。
[0029]本發(fā)明是在單色二維碼的基礎(chǔ)上,通過增加多色彩信息,進一步提高信息量,數(shù)字化的彩色信息使得信息的還原變得容易。當(dāng)多色彩二維碼圖案因各種原因一旦色彩變黑(丟失),將只損失相應(yīng)的彩色信息,不影響原單色二維碼的信息。
【專利附圖】
【附圖說明】
[0030]圖1為本發(fā)明實施例1所述的一種多色彩二維碼生成方法;
[0031]圖2為本發(fā)明實施例2所述的一種多色彩二維碼生成方法;
[0032]圖3為本發(fā)明實施例3所述的一種多色彩二維碼解碼方法。
【具體實施方式】
[0033]下面結(jié)合附圖對本發(fā)明的結(jié)構(gòu)進行詳細解釋說明。
[0034]實施例1
[0035]如圖1所示的多色彩二維碼生成方法,所述多色彩二維碼包括識別定位區(qū)、信息區(qū)、功能區(qū),該方法包括如下步驟S1:分別在識別定位區(qū)、信息區(qū)、功能區(qū)輸入數(shù)據(jù),并分別將其數(shù)據(jù)轉(zhuǎn)換生成二進制信息流,其中,信息區(qū)二進制信息流為Ix,該信息流包括N位二進制碼,N>0 ;S2:將Ix分割成Ib和Ia兩部分,并分別統(tǒng)計Ib中值為I和O的信息位的數(shù)量DpD0 ;S3:比較Ib中D1和Dtl的大小后生成單色二維碼;S4:將Ia進行分組,并按照顏色代碼標(biāo)準為每一分組中二進制碼設(shè)置對應(yīng)的色彩;S5:將S4中設(shè)置的色彩添加到S3中的單色二維碼中的黑色像素點中,生成多色彩二維碼。S3的具體操作為當(dāng)D1 ^ D0時,在Ib中直接加載識別區(qū)定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼;當(dāng)D1Oci時,將Ib中值為I的信息位、值為O的信息位做非運算后,再在單色二進制信息流中加載識別定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼,并將該運算及做該運算的信息位通知功能區(qū)編碼流。S4中的每一分組包括T位二進制碼。S5的具體操作為S51:掃描單色二維碼中值為I的信息位;S52:將S4中一個分組的色彩添加到S51中掃描出的一個值為I的信息位,生成多色彩二維碼。
[0036]假設(shè)即將生成的多色二維碼中信息區(qū)的二進制信息流為Ix,其二進制碼總數(shù)為N,N>0。本實施例中將編碼流Ix分割成了兩部分Ib和Ia,對Ib處理生成單色二維碼,利用Ia為單色二維碼進行色彩添加,Ib中值為I的信息位的數(shù)量D1、值為O的信息位的數(shù)量Dtlt5下面以在單色二維碼中添加包括黑色在內(nèi)的四種色彩為例該例說明本發(fā)明。
[0037]操作1:對Ib的操作
[0038]統(tǒng)計Ib中值為I的信息位的數(shù)量D1及值為O的信息位的數(shù)量Dtl,并比較。
[0039]當(dāng)D1 > Dtl時,在Ib中直接加載識別定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼;
[0040]當(dāng)D^Dtl時,將Ib中值為I的信息位、值為O的信息位做非運算后,再在單色編碼流中加載識別區(qū)定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼,并將該運算及做該運算的信息位通知功能區(qū)二進制信息流。
[0041]操作2:對Ia的操作
[0042]將進Ia行顏色設(shè)置,選擇包括黑色在內(nèi)的4種顏色。將Ia進行分組,每一分組包括T位二進制碼,本實施例中設(shè)T = 2,假如最后只剩下一位二進制碼,則以O(shè)補齊,并將該補O的操作通知功能區(qū)二進制信息流。并按照顏色代碼標(biāo)準為每一分組中二進制碼設(shè)置對應(yīng)的色彩。本實施例中以添加黑、紅、綠、藍組四色為例,將每種色彩按照二進制顏色代碼標(biāo)準進行設(shè)置,分別為00、01、10、11,
[0043]操作3:利用操作2處理的Ia對操作I生成的單色二維碼進行色彩添加。遍歷單色二維碼中黑色像素點,順序?qū)b中的一個分組代表的色彩替換單色二維碼中一個黑色像素點。
[0044]假設(shè)Ib中一段二進制編碼為110100,而Ia中的分組分別為00/10/11。單色編碼流生成的單色二維碼中黑色像素點分別為第一、二、四位為黑色像素點,而Ia中分組00/10/11分別代表黑色、綠色、藍色,分別利用Ia中的第一個分組00與Ib中第一位黑色像素點進行異或運算,第二個分組10與Ib中第二位黑色像素點進行異或運算,第三個分組11與Ib中第三位黑色像素點進行異或運算。為了保證色彩添加后的二維碼中還有黑色像素點,具體實施時,當(dāng)Ia中代表黑色的分組00與Ib中的黑色像素點I進行異或運算后的結(jié)構(gòu)設(shè)為00。那么替換后的結(jié)果為第一位變?yōu)?0,同理第二位變?yōu)?0,第三位不變,第四為變?yōu)?1,則經(jīng)該色彩添加后該段編碼的單色二維碼像素點顏色分別為黑色、藍色、白色、綠色。原先為110100,添加后總信息流為110100001011。
[0045]本實施例中將數(shù)據(jù)轉(zhuǎn)換為了二進制,還可選擇的將數(shù)據(jù)轉(zhuǎn)換為八進制、十進制、十六進制等計算機直接可識別的編碼流。
[0046]本實施例中,用戶實現(xiàn)的是對單色二維碼添加顏色的功能,因此將編碼流分割成了兩部分;作為可變換的實施方式,還可選擇的根據(jù)用戶對單色二維碼實現(xiàn)的功能的種類的個數(shù)將數(shù)據(jù)進行分割,可選擇的將編碼流分割成三部分或三部分以上。
[0047]作為可變換的實施方式,還可選擇的根據(jù)本發(fā)明將現(xiàn)有的單色二維碼進行處理生成多色彩二維碼,首先將現(xiàn)有的單色二維碼進行掃描提取信息,將信息區(qū)二進制碼按照本發(fā)明步驟S2-S5進行處理生成多色彩二維碼。假設(shè)原單色二維碼二進制碼總數(shù)為N,比如:N= 1000個二進制位,為此,對應(yīng)的二維碼版本編號為No6。當(dāng)按照本發(fā)明多色彩二維碼生成方法處理后,同樣的信息量可能使用N = 500個二進制位即可實現(xiàn)。為此,可以選用版本編號更低的No4,這樣在同等二維碼的面積里,像素點的面積增加,將來解碼識別的難度也就相應(yīng)降低,因為增加了彩色功能,破解的難度也明顯增加,將更有利于二維碼在現(xiàn)實中的應(yīng)用。
[0048]本發(fā)明中,色彩添加區(qū)域可以為S3中生成的整個單色二維碼區(qū)域,也可選擇的僅僅添加該單色二維碼中的信息區(qū)域。
[0049]實施例2
[0050]如圖2所示的多色彩二維碼生成方法,其在實施例1的基礎(chǔ)上,S3中比較Dl和DO之前還包括S30:對單色編碼流中值為I的信息位、值為O的信息位做掩膜處理,并該操作通知功能區(qū)。S4還包括S41:對S4中的每一分組與其前一分組進行異或運算,并將該操作通知功能區(qū)二進制信息流。該方法還包括步驟S6:統(tǒng)計完成色彩添加后Ia中還沒利用的二進制碼的數(shù)量A,若A = O,則不做任何操作;否則重新對對Ix進行分割完成S2-S5步驟。該方法還包括S61:當(dāng)A = O時,統(tǒng)計單色二維碼中未進行色彩添加的值為I的信息位的數(shù)量D,若D e [O, 0.1D1],則完成色彩添加;否則重新對Ix進行分割完成S2-S5步驟。
[0051]具體實施時,S6及S61可選擇性的取消不做;步驟S41也可選擇的取消不做。
[0052]上述所有實施方式中,色彩填充的方向可以為由外向內(nèi)、還可為由內(nèi)向外。這樣可以保證填充色彩后的二維碼的美觀性強。
[0053]本發(fā)明針對的是信息區(qū)進行色彩填充??蛇x擇將單色二維碼的其他區(qū)域按照本發(fā)明所述方法進行色彩填充。
[0054]實施例3
[0055]如圖2所示的基于實施例1所述的多色彩二維碼的解碼方法,包括如下步驟:S1:根據(jù)識別定位區(qū)掃描獲得多色彩二維碼像素;S2:掃描提取多色彩二維碼像素中的彩色像素,將其轉(zhuǎn)換生成新的多色二進制信息流;將多色彩二維碼進行黑白處理后,掃描并提取信息區(qū)生成新的單色二進制信息流;S3:根據(jù)功能區(qū)信息對新的多色二進制信息流、新的單色二進制信息流進行處理,分別獲得單色二進制信息流Ib、多色二進制信息流Ia ;S4:順序?qū)紊M制信息流Ib與多色二進制信息流Ia合并得到信息區(qū)二進制信息流Ix,順序并將Ix進行解碼獲得該信息區(qū)內(nèi)容。S3中對新的單色二進制信息流處理的具體操作為S31:向功能區(qū)查詢生成單色二維碼時,Ib是否進行了異或操作,進行了異或操作則根據(jù)進行該操作的信息位將其異或運算后進行還原,否則不做改變;S32:完成S31后,向功能區(qū)查詢生成單色二維碼時,Ib是否進行了掩膜運算,若進行了掩膜運算,則根據(jù)進行掩膜運算的信息位將S31操作后的二進制信息流進行逆向掩膜后再還原,否則不做改變;S3中對新的多色二進制信息流處理的具體操作為S31:向功能區(qū)查詢多色二進制信息流Ia進行分組時,是否進行了補O操作,若有則去掉;S32:向功能區(qū)進行查詢生成多色二維碼時Ia是否進行了異或運算,有則對器對S31中的信息流做異或運算;否則不做處理直接得到原多色二進制信息流Ia。
[0056]以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明實質(zhì)內(nèi)容上所作的任何修改、等同替換和簡單改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種多色彩二維碼生成方法,所述多色彩二維碼包括識別定位區(qū)、信息區(qū)、功能區(qū),其特征在于,該方法包括如下步驟: S1:分別在識別定位區(qū)、信息區(qū)、功能區(qū)輸入數(shù)據(jù),并分別將其數(shù)據(jù)轉(zhuǎn)換生成二進制信息流,其中,信息區(qū)二進制信息流為Ix,該信息流包括N位二進制碼,N>0 ; 52:將Ix分割成Ib和Ia兩部分,并分別統(tǒng)計Ib中值為I和O的信息位的數(shù)量D” D0 ; 53:比較Ib中D1和Dtl的大小后,生成單色二維碼; 54:將Ia按照顏色代碼標(biāo)準進行分組,并為每一分組中二進制碼設(shè)置對應(yīng)的色彩; 55:將S4中設(shè)置的色彩添加到S3中的單色二維碼中的黑色像素點中,生成多色彩二維碼。
2.根據(jù)權(quán)利要求1所述的多色彩二維碼生成方法,其特征在于,S3的具體操作為: 當(dāng)D1 > Dtl時,在Ib中直接加載識別區(qū)定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼; 當(dāng)D1Oci時,將Ib中值為I的信息位、值為O的信息位做非運算后,再在Ib中加載識別定位區(qū)二進制信息流、功能區(qū)二進制信息流成單色二維碼,并將該運算及做該運算的信息位通知功能區(qū)二進制信息流。
3.根據(jù)權(quán)利要求1所述的多色彩二維碼生成方法,其特征在于,S3操作之前還包括S30:對Ib中值為I的信息位、值為O的信息位做掩膜處理,并將該操作通知功能區(qū)二進制 息流。
4.根據(jù)權(quán)利要求1所述的多色彩二維碼生成方法,其特征在于,S4中的每一分組包括T位二進制碼。
5.根據(jù)權(quán)利要求4所述的多色二維碼生成方法,其特征在于,S4還包括S41:對S4中的每一分組與其前一分組進行異或運算,并將該操作通知功能區(qū)二進制信息流。
6.根據(jù)權(quán)利要求1所述的多色彩二維碼生成方法,其特征在于,S5的具體操作為 551:掃描單色二維碼中值為I的信息位; 552:將S4中一個分組的色彩添加到S51中掃描出的一個值為I的信息位,生成多色彩二維碼。
7.根據(jù)權(quán)利要求1所述的多色彩二維碼生成方法,其特征在于,該方法還包括步驟S6:統(tǒng)計完成色彩添加后Ia中還沒利用的二進制碼的數(shù)量A,若A = 0,則不做任何操作;否則重新對對Ix進行分割完成S2-S5步驟。
8.根據(jù)權(quán)利要求7所述的多色彩二維碼生成方法,其特征在于,該方法還包括S61:當(dāng)A = O時,統(tǒng)計單色二維碼中未進行色彩添加的值為I的信息位的數(shù)量D,若De [0,0.1D1],則完成色彩添加;否則重新對Ix進行分割完成S2-S5步驟。
9.一種多色彩二維碼解碼方法,所述多色彩二維碼是基于權(quán)利要求1-8所述的方法生成的,其特征在于,包括如下步驟: S1:根據(jù)識別定位區(qū)掃描獲得多色彩二維碼像素; 52:掃描提取多色彩二維碼像素中的彩色像素,將其轉(zhuǎn)換生成新的多色二進制信息流;將多色彩二維碼進行黑白處理后,掃描并提取信息區(qū)生成新的單色二進制信息流; 53:根據(jù)功能區(qū)信息對新的多色二進制信息流、新的單色二進制信息流進行處理,分別獲得Ib、Ia ; S4:順序?qū)⒘鱅b與Ia合并得到信息區(qū)二進制信息流Ix,并將Ix進行解碼獲得該信息區(qū)內(nèi)容。
10.根據(jù)權(quán)利要求9所述的多色彩二維碼解碼方法,其特征在于,S3中對新的單色二進制信息流處理的具體操作為 531:向功能區(qū)查詢生成單色二維碼時,Ib是否進行了異或操作,進行了異或操作則根據(jù)進行該操作的信息位將其異或運算后進行還原,否則不做改變; 532:完成S31后,向功能區(qū)查詢生成單色二維碼時,Ib是否進行了掩膜運算,若進行了掩膜運算,則根據(jù)進行掩膜運算的信息位將S31操作后的二進制信息流進行逆向掩膜后再還原,否則不做改變; S3中對新的多色二進制信息流處理的具體操作為 531:向功能區(qū)查詢多色二進制信息流Ia進行分組時,是否進行了補O操作,若有則去掉; 532:向功能區(qū)進行查詢生成多色二維碼時Ia是否進行了異或運算,有則對器對S31中的信息流做異或運算;否則不做處理直接得到原多色二進制信息流Ia。
【文檔編號】G06K7/10GK104239927SQ201410415484
【公開日】2014年12月24日 申請日期:2014年8月21日 優(yōu)先權(quán)日:2014年8月1日
【發(fā)明者】周奇 申請人:周奇