本發(fā)明涉及一種用于解碼二維光學(xué)代碼的方法。尤其是,本發(fā)明涉及一種對其中根據(jù)單個獲取的圖像解碼不成功的二維光學(xué)代碼進行解碼的方法,例如,該方法對讀取被定位在反射表面上的二維光學(xué)代碼,有特別的應(yīng)用。
背景技術(shù):用語“二維光學(xué)代碼”,是指一組圖形標(biāo)記,被定位在標(biāo)簽或直接在產(chǎn)品上,借助該標(biāo)記,信息與沿一個或多個方向安排的被分成白色、黑色或有色小塊(cell)的表面相關(guān)聯(lián)。市場上最普遍的一些二維符號表示(symbology)是PDF-417、QRCode、或Aztec,并且不同符號表示的二維代碼,可以由形狀(例如正方形或矩形),和/或由編碼數(shù)據(jù)的方式(例如矩陣排列或重疊的條碼),和/或由存儲的數(shù)據(jù)的量區(qū)別。所有這些二維代碼,即使它們涉及符號表示的不同類型,也能夠使大量“有意義的數(shù)據(jù)”在短的空間中通過適當(dāng)排列的單一信息的組合而被編碼。應(yīng)當(dāng)指出,用語“相關(guān)信息”或“有意義的數(shù)據(jù)”,表示被編碼并被存儲在二維代碼中的任何信息或信息組。二維光學(xué)代碼是由某總數(shù)的碼字(在下面的行文和/或圖中也用CWs標(biāo)識)形成,并且代表按基本的白色、黑色或有色小塊的一定排列編碼的字母數(shù)字值的每一碼字(在下面的行文和/或圖中也用CW標(biāo)識),構(gòu)成包含在該代碼中的單一信息。除形成有意義的數(shù)據(jù)所必需的碼字外,二維光學(xué)代碼還包括冗余的碼字,它使讀出誤差能被檢測,并可能由用于對誤差自糾錯的特定算法改正,這一點在下面將更詳細說明。為了對二維代碼解碼,代碼被定位其上的圖像,借助已知的圖像分析方法被分析,以便獲得向該代碼分配的一組碼字值,等于該二維代碼從其形成的碼字總數(shù)。如果該碼字被識別,則每一碼字能夠被識別并且因而取某一數(shù)字值,或者相反,如果,例如因為圖像中碼字被定位的部分在該圖像的獲取時被損,該碼字不被識別,則能夠取未定義值。該誤差檢測和自糾錯算法,提供填充未定義值的碼字,另外亦稱洞,以及改正不正確碼字的兩種可能性。目前被所有主要二維符號表示所使用的誤差檢測和自糾錯算法,是里德-索羅門(ReedSolomon)算法(在下面的行文和/或圖中也用RS標(biāo)識),但更多的誤差檢測和自糾錯算法也是已知的,諸如舉例說,“渦輪代碼”或“卷積代碼”。用語“誤差檢測和自糾錯算法”在下面是指并不受限制地指里德-索羅門代碼或“Turbo代碼”或“卷積代碼”。由于誤差檢測和自糾錯算法的應(yīng)用,所以想到二維代碼的解碼,該解碼包括:分析代碼被定位其上的圖像;識別作為代碼一部分的碼字;以及借助應(yīng)用誤差檢測和自糾錯算法,諸如舉例說,RS算法,檢驗該代碼,如果被分析圖像已被部分地惡化,從而一定碼字的值是不正確的或未定義的,則該解碼也能夠成功進行。換句話說,二維代碼能夠被光學(xué)代碼讀取器解碼,即使它是部分不可用的,例如,因為它被覆蓋或被斑點、磨損破壞,或者還如果它被定位在反射表面上。例如,被定位在反射表面上的光學(xué)代碼的圖像,常常由于圖像的一些區(qū)中亮的光斑而部分地被破壞。盡管如此,但當(dāng)代碼的圖像的不可用或破壞的部分變得過大時,誤差檢測和自糾錯的RS算法,不能借助分析單幅圖像,對有意義的編碼數(shù)據(jù)成功地解碼,因此還必須分析同一代碼的更多的圖像。在手動讀取器的情形下,用戶因不接受任何良好的讀取注意事項,往往移動或使讀取器不同地取向,以獲取與先前的圖像不同地被照亮的圖像。另一方面,在固定的讀取器系統(tǒng)的情形下,載有代碼的物體被外部裝置或用戶移動,作隨機的或被引導(dǎo)的運動,以確保在高亮度區(qū)中連續(xù)地獲取圖像,或者相反,不良照明區(qū)位于不同的位置中。把來自連續(xù)圖像的信息組合,是周知的,以便用另外的圖像中被識別的對應(yīng)碼字,補足圖像中因獲取引起的沒有被識別的碼字,以便獲得足以使整個代碼能被解碼的信息。從一組碼字和從另外一組碼字,獲得一組被組合的碼字,用于該代碼的解碼。US7,344,080公開一種編碼信息讀取器,配有導(dǎo)軌,導(dǎo)軌中含有二維代碼的基底(通常是塑化卡片)相對于獲取并對圖像解碼的裝置移動。該裝置獲取一系列圖像,這些圖像可以含有代碼的一部分或整個代碼,隨后,這些圖像被組合,以借助組合方法獲得該代碼的完整解碼,該組合方法再調(diào)用US5,821,519中說明的方法,它是涉及直線代碼的組合方法。尤其是,根據(jù)同一直線代碼數(shù)個部分讀取的信息的組合,對編碼信息解碼的方法,一般稱為“縫合(stitching)”方法。US5,821,519涉及“縫合”直線條碼,并且是根據(jù)從含有各個部分直線掃描的圖像開始獲得的條碼的重構(gòu)。在每一被分析的圖像中,一系列字符被識別,且在各個不同圖像中,搜索可能有預(yù)設(shè)長度的,含有全同信息片段的疊加區(qū),藉此組合部分代碼片段。因為直線代碼總包括“開始”字符,“停止”字符或“定位字符”,這些字符在各次部分掃描中也被搜索,以便把被識別的每一字符,存儲在字符的重構(gòu)組中正確的位置,藉此對條碼解碼。另外,向其值被識別的每一字符分配“預(yù)期可靠度值”(ER),以確保被重構(gòu)的條碼含有具有最高ER值的被識別字符。公開的“縫合”方法,尤其要求所有字符都被識別,否則不可能對條碼解碼。然而,應(yīng)用US5,821,519公開的涉及直線條碼并專用于直線條碼的“縫合”方法,如果被應(yīng)用于二維條碼,仍然造成一些問題。首先,特別是重復(fù)的字符在二維代碼中不存在,借助重復(fù)的字符,能夠識別可用于組合部分代碼部分的疊加區(qū)。另外,如果字符的重構(gòu)組包括有未定義值的字符,則US5,821,519的解碼方法失效。這種邏輯確實不能應(yīng)用于二維代碼,因為如前所述,二維代碼可以被解碼,即使它有未定義碼字。另外,基于預(yù)期可靠度(ER)值上的字符的值的接受性,偏好有最高ER值的字符,引進概率性的選擇,且有不正確值的字符被引進字符的重構(gòu)組,因為它們非??赡馨l(fā)生。里德-索羅門算法的一個性質(zhì)是,它用已知碼字而不是不正確碼字更有效地操作,因為為了再產(chǎn)生丟失的碼字的值,該里德-索羅門算法考慮僅僅一個附加碼字,同時用于改正其值不正確的碼字,該里德-索羅門算法必須考慮兩個附加的碼字。因此,從涉及直線代碼的已知“縫合”方法導(dǎo)出的二維代碼的解碼方法,不是最佳的,并且引入對解碼自身的限制,因為它往往填充所有碼字,也接受不正確的值,從而使里德-索羅門算法的操作不太有效。在手動讀取器的情形下,或在固定的視覺系統(tǒng)的情形下,所有這種情況被反映在對良好讀取消息的長的等待中,該長的等待全面地使解碼更緩慢。
技術(shù)實現(xiàn)要素:本發(fā)明的目的,是提供一種用于對光學(xué)代碼解碼的解碼方法,對于如果根據(jù)單個被獲取的圖像對代碼的解碼不成功,因而必需考慮數(shù)個圖像的組合的對二維光學(xué)代碼的解碼,該方法尤其有效。本發(fā)明的再一個目的,是借助開發(fā)該誤差檢測和自糾錯算法的性質(zhì),使二維代碼的解碼變得快速。按照本發(fā)明,是提供一種如權(quán)利要求1所定義的解碼方法。歸因于本發(fā)明,一種解碼方法被提供,該方法尤其專用于二維光學(xué)代碼,包括圖像的組合方法,按照該方法,在對應(yīng)碼字存在時,這些碼字的值是不同的,如果該被組合組的碼字被評估為不可靠的,則該方法向該被組合組的對應(yīng)碼字,分配未定義值。按照一個實施例,如果同一值被識別許多次,至少等于預(yù)定可靠度閾值的話,該閾值尤其是大于1,則碼字被判斷為可靠。照此,因為在碼字被標(biāo)記為可靠之前,被要求連續(xù)一定數(shù)量的次數(shù)被看到總與自身全同,所以有不正確碼字的概率被降低。在對照碼字的值的情形下,如果對該碼字的可靠度閾值沒有被達到,則最好向該碼字分配未定義值。另外,把未定義值引進被組合值的組中,使該誤差檢測和自糾錯算法成功的情況更可能發(fā)生,因為如前所述,該算法在確定丟失的碼字的值而不是改正不正確的碼字中,更為有效。附圖說明本發(fā)明參照附圖能夠被更好地理解和實施,這些附圖以非限制例子的方式,說明本發(fā)明的一些實施例,附圖中:圖1畫出二維條碼的圖像,它的符號表示是PDF417,按在照明條件中用光學(xué)讀取器獲??;圖2畫出圖1中二維條碼的另外圖像,按在另外一種照明條件中被獲??;圖3畫出作為本發(fā)明目的的解碼方法的流程圖。具體實施方式參考圖1,圖上畫出的圖像,是用讀取器(圖上沒有畫出)獲取的,其中給出二維代碼1,尤其是PDF-417符號表示代碼。圖1的二維代碼,被表示為白色背景上相繼的基本黑色和白色小塊。能夠被注意到,代碼的部分圖像2已被惡化,例如因為該二維代碼被定位其上的支承表面是反射性的。該部分圖像2包括高度發(fā)光的白斑3,其上該部分圖像2的構(gòu)成二維代碼的基本小塊不能被識別。通常,白斑有幾乎均勻地白的中心區(qū)4和相反地不清晰的邊緣5,該邊緣成為惡化部分與連續(xù)的基本白色或黑色的未被惡化小塊的邊界。重要的是要強調(diào)指出,排列在不清晰邊緣5中的基本小塊,常常能夠得出有不正確值的碼字CW或數(shù)個碼字CWs。事實上,邊緣5的基本小塊,如果它們不被完全惡化,則能夠是可隨機解釋的,但可能不會再產(chǎn)生對碼字的正確值編碼的正確的白色或黑色小塊排列。二維代碼1包括某總數(shù)的碼字,并從這些碼字的值的組合,能夠編碼和在代碼中存儲“有意義的數(shù)據(jù)”。該碼字的總數(shù),能夠借助分析該二維代碼直接獲得,因為一些符號表示明顯地表明該總數(shù),該總數(shù)是由基本小塊的特定排列編碼的。另一方面,在其他符號表示中,該總數(shù)可從分別表示基本小塊的特定排列的行數(shù)和列數(shù)的兩個數(shù)獲得。應(yīng)當(dāng)理解,在下面,不失一般性,碼字的總數(shù)可借助分析該二維代碼直接獲得,或者可借助行數(shù)乘以列數(shù)的計算而從此獲得。另外,從下面應(yīng)當(dāng)理解,該解碼方法能夠包括兩者:分析已經(jīng)獲取的圖像,這些圖像是從光學(xué)代碼讀取器被連續(xù)存儲的圖像;和經(jīng)由光學(xué)代碼讀取器獲取某一圖像,以便以后立刻分析該圖像并只在前一個圖像的分析結(jié)束時獲取隨后的一個圖像。在圖3,用A表示:分析被獲取的圖像,以獲得二維代碼的碼字的總數(shù)。在圖3,用B表示:評估該碼字的總數(shù)是否已經(jīng)從被獲取的圖像獲得。應(yīng)當(dāng)理解,如果在展示二維代碼的圖像中,甚至不可能獲得碼字的總數(shù),則該圖像必須被廢棄,因為它不可分析,而步驟A必須被重復(fù),即,必須分析新的圖像。如果可能從該圖像獲得碼字的總數(shù),則該圖像被進一步分析,以便獲得被識別碼字的值的對應(yīng)組,其大小(dimension)等于碼字總數(shù),可向該圖像分配。每一碼字尤其能夠取數(shù)字值,如果該碼字已被識別的話,或者反之,取未定義值,如果該碼字不被識別的話。隨后借助應(yīng)用誤差檢測和自糾錯算法,檢驗該組碼字值,該算法在該情形下是里德-索羅門算法,但也可以是“Turbo代碼”或“卷積代碼”,以取得二維代碼的成功解碼的確認。在圖3,用C表示:分析圖像,以獲得被識別碼字的值的對應(yīng)組,并借助應(yīng)用RS算法,檢驗該組。用D表示:評估該檢驗是否成功。如果由里德-索羅門算法的檢驗已經(jīng)成功,則歸因于單個圖像的分析和檢驗的二維代碼的解碼已經(jīng)可能,而不需要與不同圖像的碼字的組合。必須強調(diào),在現(xiàn)有解碼方法中,已經(jīng)知道在每一新圖像獲取時,應(yīng)用上面方法的步驟A到D。該方法的這些步驟仍然為了完整性的原因,已經(jīng)在此出示。如果由里德-索羅門的檢驗沒有成功,則從該圖像獲得的該組碼字必需被用于與其他圖像,諸如舉例說,圖2中的另外圖像的碼字組合。無論如何,存在不同組的碼字被評估,例如先前已經(jīng)建立并存儲的被組合組,以評估我們是在圖像之間的組合的開始處,還是在該方法后面的步驟。用E表示:評估已經(jīng)建立的碼字的被組合組是否已經(jīng)存在,利用它,從該圖像獲得的碼字的獲得組能夠被組合。如果該評估有負面結(jié)果,即,我們是在圖像之間的組合的開始處,那么碼字的被組合組被建立,組的大小等于碼字總數(shù)。用J表示:存儲從該圖像獲得的該組碼字,并建立碼字的被組合組。另外被獲取的圖像,例如圖2中的圖像,是指同一個二維代碼1,它也有代碼的惡化部分圖像22,包括白斑23,其中心區(qū)24幾乎是均勻地白的,并且其邊緣25是不清晰的。應(yīng)當(dāng)強調(diào),該另外圖像的白斑23被定位在與該圖像的白斑3不同的區(qū)中,并且還有不同的幾何的形狀,因為它是在不同的發(fā)光條件下獲取的。該另外圖像,如先前所述,也被該方法的步驟A、B、C和D分析,獲得與該另外圖像相關(guān)聯(lián)的另外組碼字。如果通過單獨另外組碼字的里德-索羅門算法的檢驗是成功的,則該二維代碼只用該另外圖像解碼,沒有必要與不同圖像的碼字進行組合。該碼字的該被組合組和該組因此被廢棄,該組合是不必要的,因為解碼方法已經(jīng)終止。如果通過里德-索羅門算法的檢驗沒有成功,則評估碼字的另外組能夠與之組合的碼字的被組合組是否已經(jīng)存在。方法的步驟E被執(zhí)行,且評估有正的結(jié)果,因為從該圖像獲得的、碼字的另外組能夠與其組合的碼字的被組合組和該組,已經(jīng)存在。然而,在被組合組中各組碼字之間組合之前,要評估是否該圖像和另外圖像能組合在一起,因為它們都指同一個二維代碼。該檢驗,下面將更詳細地被公開,在圖3中以F表示。用F表示:評估該組合是否可能。如果該組合可能,則該組和另外組的碼字被組合,比較這些組的對應(yīng)碼字,并向被組合組的碼字,分配該組和/或該另外組的碼字值。圖3中,用G表示:把被組合組中碼字的該組和該另外組組合。在與被組合組的每一碼字相關(guān)聯(lián)的可靠度判據(jù)基礎(chǔ)上,被組合組中每一碼字,具體被分配未定義值或數(shù)字值,它出現(xiàn)在該組或該另外組的對應(yīng)碼字中。從該圖像獲得的組與從該另外圖像獲得的另外組的對應(yīng)碼字值,由此被比較:如果該組的一個碼字有不同于另外組的碼字的對應(yīng)值的數(shù)字值,且如果該被組合組的對應(yīng)碼字被識別為不可靠,則向該被組合組的對應(yīng)碼字分配未定義值。換句話說,最好把未定義條件引進被組合組的某些碼字,而不是在對應(yīng)碼字的不同值的數(shù)字值之間選擇,以便借助應(yīng)用里德-索羅門算法對該被組合組進行更有效的檢驗。為了識別被組合組的碼字為可靠,一組可靠度指示符已經(jīng)被建立,其大小與碼字的總數(shù)相同,該組可靠度指示符與被組合組相關(guān)聯(lián)。換句話說,每一指示符與被組合組的對應(yīng)碼字相關(guān)聯(lián),并在指示符的值的基礎(chǔ)上,被組合組的每一碼字被評估為可靠或不可靠。如果對應(yīng)的指示符具有的值大于預(yù)定可靠度閾值,該閾值是大于1的,則被組合組的碼字被評估為可靠。反之,如果對應(yīng)的指示符具有的值小于或相同于預(yù)定可靠度閾值,則該碼字被評估為不可靠。應(yīng)當(dāng)指出,該組可靠度指示符,是在被組合組的建立時建立的,而且在建立時,值1被分配給每一指示符。此外,如果向被組合組的碼字分配未定義值,則對應(yīng)的指示符被分配值0。在兩種情形下,該對應(yīng)的碼字被識別為不可靠。我們已經(jīng)說過,對應(yīng)碼字之間的比較,向該被組合組的對應(yīng)碼字分配值,只有在被組合組的碼字被識別為不可靠時才發(fā)生。為此,與被組合組的碼字相關(guān)聯(lián)的可靠度指示符,是在向指示符分配值之前被評估,且該指示符是在對應(yīng)碼字之間的比較之后被更新或保持不變。如果從該圖像獲得的組的與從該另外圖像獲得的另外組的對應(yīng)碼字有相同的數(shù)字值,則該重合的數(shù)字值被分配給被組合組的對應(yīng)碼字,而對應(yīng)的可靠度指示符被更新為增加一單位。如果從該圖像獲得的組的碼字的值是數(shù)字,而從另外圖像獲得的另外組的對應(yīng)碼字的值是未定義的,則該數(shù)字值被分配給被組合組的對應(yīng)碼字,且對應(yīng)的可靠度指示符保持不變。如果從該圖像獲得的組的碼字的值是未定義的,而從另外圖像獲得的另外組的對應(yīng)碼字的值是數(shù)字,則該數(shù)字值被分配給被組合組的對應(yīng)碼字,且對應(yīng)的可靠度指示符被更新為被分配值1。另一方面,如先前所述,如果所述被組合組的碼字被識別為可靠,則不進行對應(yīng)碼字之間的比較,且對應(yīng)的可靠度指示符不被更新。在從該圖像獲得的組的與從該另外圖像獲得的另外組的對應(yīng)碼字之間的比較結(jié)束時,借助應(yīng)用用于誤差檢測和自糾錯的里德-索羅門算法,檢驗被執(zhí)行。用H表示:借助應(yīng)用里德-索羅門算法,檢驗該被組合組。用I表示:評估該被組合組的檢驗是否已經(jīng)成功。如果借助里德-索羅門算法的檢驗沒有成功,則被組合組的碼字與新的另外組碼字的被識別的碼字之間的組合,能夠被重復(fù),該新的另外組碼字是借助上面指出的步驟A、B、C和D,由二維代碼的新的另外圖像獲得的。在另外新圖像的基礎(chǔ)上的這種重復(fù),能夠被進行下去,直到要么被組合組的解碼已經(jīng)成功地終結(jié),要么重復(fù)的預(yù)設(shè)閾值數(shù)被達到。與被組合組相關(guān)聯(lián)的該組可靠度指示符,在新的更多碼字值的基礎(chǔ)上被更新,而存儲在相繼的圖像的組合之間的每一可靠度指示符的值被保持。為了使理解該解碼方法更快速,借助比較存儲的從該圖像獲得的組的與從該另外圖像獲得的另外組的碼字,向被組合組的碼字分配值,已經(jīng)被說明。不失一般性,在被組合組的建立時,還可能向被組合組的所有碼字值分配未定義值,并把被組合組的這樣的碼字值,與從該圖像獲得的該組的對應(yīng)值,按照該方法的步驟G中先前所作說明組合。應(yīng)當(dāng)指出,在被組合組的建立時,該組可靠度指示符的每一指示符,在這種情形下被分配值0。因此,能夠不存儲從圖像獲得的該組CWs,并且在隨后建立該被組合組,但要按如下的方式繼續(xù)進行:被組合組的和有關(guān)指示符組的值,在該建立后,立刻用該組CWs的值更新。在這種情形下,該另外組的碼字,將與更新的被組合組的碼字比較,而不與從該圖像獲得的該組碼字比較?,F(xiàn)在,作為例子,讓我們在下面考慮,與數(shù)個被獲取圖像相關(guān)聯(lián)的碼字值之間的組合,以說明本發(fā)明的方法。為此目的,每一組碼字的表格表示被提供。讓我們假定,10是二維代碼的碼字總數(shù),那么該組、該另外組、以及可能的新的另外組的碼字,都有大小10。我們還假設(shè)建立新的組,作為被組合組,用于存儲所考慮碼字的各組的組合的值,且該被組合組的碼字被判斷為可靠,如果對應(yīng)的可靠度指示符大于或相同于3的話。讓我們進一步假設(shè),把從該圖像獲得的組與從該另外圖像獲得的另外組進行比較,以便向該被組合組的碼字分配值(就是說,讓我們假設(shè),不連續(xù)地組合從該圖像獲得的組與剛剛建立的被組合組以及用該另外組更新的被組合組),從而我們使每一可靠度指示符初始化為1。在表1和表2中,碼字值分別對某一圖像和另外圖像被示出。表1No值112522093874335未定義6327568未定義9351048表2No表11252209345430954563275688793510未定義在表3中示出,從該圖像獲得的組的、從該另外圖像獲得的另外組的、被組合組的、以及可靠度指示符的組的表格表示,表3的表在對應(yīng)碼字之間的比較之后被更新。表3No組另外組被組合組可靠度指示符112512512522209209209238745未定義0433309未定義05未定義4545163232322756565628未定義87871935353521048未定義481如果應(yīng)用于該被組合組的里德-索羅門算法失效,則新的另外被獲取圖像被分析,而新的另外組被識別碼字被獲得,該新的另外組被識別碼字在下面的表4中示出。表4No表112522093未定義43095456327568879351922該另外組的碼字與被組合組的碼字組合,承受可靠度指示符的初步檢驗,以便評估被組合組的哪些碼字要被認為已經(jīng)是可靠的,并不再被修改。在表5中示出,被組合組的、可靠度指示符的對應(yīng)組的、被獲取碼字的新的另外組的、更新的被組合組的、以及在對應(yīng)碼字之間比較之后更新的可靠度指示符的對應(yīng)組的表格表示。表5應(yīng)當(dāng)指出,在第二次組合結(jié)束時,有指數(shù)1、2、6、7和9的以粗斜體示出的碼字,被標(biāo)記為可靠,因為對應(yīng)的可靠度指示符已經(jīng)達到預(yù)定可靠度閾值。與其他碼字組的任何隨后的組合因而將不修改這些碼字的值,甚至比較也不會做。在表6中,從該圖像獲得的組的碼字值的,以及第二次組合之后被組合組的表格表示被提供。表6No組被組合組11251252209209387未定義4333095未定義4563232756568未定義87935351048未定義因此能夠看到,雖然該兩個組也包括未定義值的碼字,但本發(fā)明的方法,能夠改變其數(shù)量和位置。與此同時,該方法增加了可靠的碼字的數(shù)量,同時降低了被組合組中不正確碼字的數(shù)量,從而使里德-索羅門算法能成功地執(zhí)行該被組合組的檢驗。例如,表1的組中未定義值的碼字5和8已經(jīng)被分配數(shù)字值,歸因于與另外獲取的碼字的組合。反之,表1的有數(shù)字值的碼字3和10,在被組合組中已經(jīng)被分配不確定值,因為該解碼方法不認為這些值是可靠的。如已經(jīng)在先前所述,碼字的總數(shù)在本發(fā)明的解碼方法中是非常重要的數(shù)據(jù),且直到現(xiàn)在已被假設(shè),該圖像和該另外圖像是指同一個二維代碼。然而,這是不保證的,特別是在手動讀取器的情形下,如果用戶不得不獲取數(shù)個二維代碼,每一個含有不同類型的信息數(shù)據(jù)的話。例如,用戶可以為第二代碼而中斷第一代碼的獲取,而在這種情形下,如果解碼正好由于第一代碼的圖像沒有成功,那么必須防止第一個二維代碼的與第二個二維代碼的一部分的碼字的組合。圖3中,用F表示:評估該組合是否可能,而該評估包括:處理該圖像和該另外圖像,以檢驗該圖像與該另外圖像是否指同一個二維代碼。處理該圖像和該另外圖像,首先包括:分別對該圖像和該另外圖像識別碼字的總數(shù)。如果該圖像的碼字總數(shù)不同于該另外圖像的碼字總數(shù),那么先前獲取的圖像必須被廢棄,因為該兩個圖像是指不同的二維代碼。該另外圖像的碼字的總數(shù)被分配給該二維代碼。該另外組的碼字必須代替從該圖像獲得的該組的碼字而被存儲,而可能已經(jīng)被建立并被更新的被組合組,必須被廢棄。用K表示:廢棄已經(jīng)建立的被組合組和存儲的碼字組。在廢棄涉及先前分析的二維代碼的碼字的值之后,步驟J再次被執(zhí)行,再次建立碼字的被組合組,并存儲該另外組的碼字,以便隨后可能與另外的碼字組合。另一方面,如果碼字總數(shù)的檢驗成功地完成,則比較該組的與另外組的碼字的對應(yīng)值,以便計數(shù)在從該圖像獲得的組中的和在該另外組中的對應(yīng)的不同碼字的數(shù)量。如果對應(yīng)的不同碼字的數(shù)量大于第一閾值,則該圖像必須被廢棄,因為該兩個圖像指相同大小但有不同信息內(nèi)容的二維代碼。與上面已經(jīng)說過的類似,該方法的步驟K和接著的步驟J被執(zhí)行。如果對應(yīng)碼字的數(shù)量是相同的并小于第二閾值,同樣在這種情形下,該圖像必須被廢棄。與上面已經(jīng)說過的類似,該方法的步驟K和接著步驟J被執(zhí)行。應(yīng)當(dāng)指出,第一閾值能夠取小于或相同于該代碼中出現(xiàn)的碼字的總數(shù)的值,而該第二閾值能夠取大于或相同于0的值。換句話說,即使當(dāng)該組的與該另外組的對應(yīng)碼字全部不同,也能夠嘗試對該二維代碼解碼。使用時,該解碼方法的步驟被相繼執(zhí)行,如下面所列舉。步驟A:獲取的圖像被分析,以便獲得該二維代碼的碼字的總數(shù)。步驟B:評估碼字總數(shù)是否已經(jīng)從該獲取的圖像獲得。步驟C:如果已經(jīng)獲得,則該圖像被分析,以獲得被識別的碼字的值的對應(yīng)組,且用于誤差檢測和自糾錯的算法,例如RS算法,被應(yīng)用于該組。步驟D:評估該RS算法檢驗是否已經(jīng)成功。如果該檢驗沒有成功,則需要通過分析另外圖像和重復(fù)該方法從A到D的步驟,繼續(xù)進行。步驟E:評估一組被存儲的碼字是否存在,另外組的碼字能夠與該組被存儲的碼字組合。步驟J:如果一組被存儲的碼字不存在,則從該圖像獲得的該組碼字被存儲,而碼字的被組合組也被建立。步驟F:如果一組被存儲的碼字存在,則評估在兩個組之間組合是否可能。步驟G:如果該組合可能,則碼字的該組和該另外組被組合,該兩組碼字分別從某一圖像和從另外圖像獲得,借助從對應(yīng)碼字之間的比較,分配該被組合組的碼字值,并促進未定義值的選擇。步驟K:如果該組合不可能,則從該圖像和該被組合組獲得的該組碼字被廢棄,該另外組的碼字被存儲,而該被組合組再次被建立。步驟H:用于誤差檢測和自糾錯的算法,例如RS算法,被應(yīng)用于該被組合組。步驟I:評估該RS算法檢驗是否已經(jīng)成功。如果RS算法檢驗已經(jīng)成功,那么該解碼方法被終止,否則,需要通過分析另外圖像和重復(fù)該方法從A到I的步驟,繼續(xù)進行。歸因于本發(fā)明的解碼方法,該被組合組因此有被解碼的更大概率,因為它有較少數(shù)量的不正確碼字。事實上,在被組合組中有不正確碼字的概率是低的,因為某一碼字的數(shù)字值,只有它被看到在將被組合的碼字的不同組之間總等于它自身時,才被確認。此外,初步檢驗在將被組合的組的碼字上被實施,該初步檢驗使不同的二維代碼之間的組合能避免,即,與不同總數(shù)的碼字的組合,或含有不同信息數(shù)據(jù)的組合,即,與彼此非常不同的對應(yīng)碼字的組合能避免。該RS算法由此被應(yīng)用于某一被組合組,該被組合組不僅包括其中不正確的碼字的數(shù)量已經(jīng)降至最少的被組合的碼字,而且還包括從同一個二維代碼的圖像導(dǎo)出的碼字。這樣使RS算法的成功概率能最大化,從而二維代碼的解碼被加速。按照一優(yōu)選實施例,在分析圖像和/或另外圖像的碼字值之前,代碼中可與惡化圖像的區(qū)關(guān)聯(lián)的部分被檢測,如圖1和2中的部分2和22。作為這些部分的一部分的碼字,尤其是中心區(qū)4和24的碼字,初步被分配未定義值,以避免用在其中這樣的數(shù)字值是不正確值的區(qū)中的數(shù)字值識別的碼字。盡管如此,邊緣區(qū)5和25的碼字,都能夠被分配未定義值并保留用該圖像的分析識別的數(shù)字值,雖然這樣的值可能是不正確的值。歸因于這種變型,該解碼方法的執(zhí)行速度憑避免有不正確值的碼字而被進一步促進,其中全圖像的分析是可能的。