專利名稱:二維符號及其讀取方法
技術(shù)領(lǐng)域:
本申請涉及一種可在要識別的物品上所使用的標識符號,更具體地,涉及二維條 形碼符號以及用來對該符號所表示的信息進行識別和解碼的系統(tǒng)和方法。
背景技術(shù):
光學(xué)成像系統(tǒng)通常用于譯碼印制在物品上的數(shù)據(jù)符號,以識別該物品或者獲得與 該物品相關(guān)的信息。條形碼符號是普通的一維形式的符號表示法,并通常包括以各種寬度 的間隔而隔開的各種寬度的縱向條紋圖案。由于條紋和間隔元素具有不同的光反射特性, 所以讀取器可以通過分析從符號反射的光來將符號轉(zhuǎn)換為電信號。然后,可以分析并解碼 電信號,以提供符號的字母數(shù)字表示,其可以包含關(guān)于該物品的特定信息。這種類型的條形 碼符號目前普遍用于各種應(yīng)用,諸如存貨控制、銷售識別點、或后勤(運銷)跟蹤系統(tǒng)。由于傳統(tǒng)的一維符號表示法需要相對大量的間隔來傳達相對少量的數(shù)據(jù),所以已 經(jīng)開發(fā)了所謂的二維條形碼符號表示法。二維符號表示法可以包括占用統(tǒng)一量空間(通常 具有矩形或正方形形狀)的矩陣。代替條紋和間隔,在矩陣的特定行和列處布置圓形或正 方形標記來對應(yīng)于待傳達的信息。這種二維符號表示法以及對包含其中的數(shù)據(jù)進行電子編 碼的技術(shù)是公知的,且例如在美國專利第5,612,524號、美國專利第5,331,176號、美國專 利第4,972,475號和美國專利第4,924,078號中有所描述,其全部內(nèi)容結(jié)合于此作為參考。然而,目前二維符號表示法的應(yīng)用可能需要較大量信息的編碼。例如,用于身份 證、銀行卡或其他類型介質(zhì)的生物測量信息的編碼可能需要將較大量的數(shù)據(jù)包含在二維符 號中。因此,需要一種能夠保存這樣的數(shù)據(jù)量的二維符號表示法。此外,使用這種符號表示法可以包括在載體介質(zhì)(諸如銀行卡或ID卡)上連同其 他圖形和文本信息(諸如,照片、文本個人數(shù)據(jù)和/或組織標志)一起來設(shè)置二維條形碼。 并且,讀取這種情況下所使用的二維符號的處理可能涉及獲取整個載體介質(zhì)的攝影圖像。 同樣地,為了讀取二維符號,需要有效地在其他圖形信息中進行識別。此外,這種攝影圖像 可能是有噪聲的、失真的、照明不足的,并且可能提供損壞的或者缺失某些部分的二維圖像 的圖像。此外,在這種應(yīng)用中所使用的二維符號表示法以及用于對其進行讀取和編碼的方 法需要能夠適應(yīng)噪聲和失真,并且可以校正符號的缺失部分和/或照明不足,以精確有效地解碼這種符號。再者,對于用于諸如銀行卡上的生物測量標識應(yīng)用,二維符號表示法應(yīng)當(dāng) 相對安全并且包含防御欺詐使用或復(fù)制的安全裝置。
發(fā)明內(nèi)容
本發(fā)明通過提供用于對諸如二維符號的特定信息符號進行成像和解碼的方法和 裝置來滿足這些要求。具體地,根據(jù)本發(fā)明的二維符號可以包括限定內(nèi)部區(qū)域的四條實 線邊界線、在內(nèi)部區(qū)域中以交替圖案布置并與四條實線邊界線相鄰的第一陰影刻度標記 (tick mark)和第二陰影刻度標記、以及在交替的刻度標記內(nèi)部的數(shù)據(jù)單元。根據(jù)本發(fā)明的讀取信息符號(具有限定內(nèi)部區(qū)域的四條實線邊界線、在四條實線 邊界線的內(nèi)部區(qū)域中以交替圖案布置并與四條實線邊界線相鄰的多個第一陰影刻度標記 和多個第二陰影刻度標記、以及在多個第一陰影刻度標記和多個第二陰影刻度標記內(nèi)部的 數(shù)據(jù)單元)的方法包括獲取信息符號的圖像;識別信息符號的圖像中的四條邊界線,并在 信息符號的圖像中定位刻度標記;以及對信息符號的圖像的數(shù)據(jù)單元中的數(shù)據(jù)進行解碼。 四條實線邊界線可以有利地使信息符號更加容易且更有效地定位??潭葮擞浛梢杂欣厥?修復(fù)信息符號的圖像的任何部分變得更加有效,并提供了對于信息符號中單元中心的相對 快速的定位。此外,根據(jù)本發(fā)明的對信息符號的圖像進行二元化的方法包括對信息符號的圖 像進行分片;生成對于信息符號的圖像的每個小片的數(shù)據(jù)單元的灰階直方圖;平滑每幅生 成的灰階直方圖以指示兩個局部極大值,兩個局部極大值在其間具有局部極小值;以及基 于兩個局部極大值之間的局部極小的位置確定二元化閾值。通過對圖像進行分片并生成用 于每個小片的灰階直方圖,可以有利地以相對高的精度來二元化具有不均勻照明的信息符 號的圖像,原因在于僅將每個小片的局部區(qū)域中的亮度等級(可能相對均勻)用于確定二 元化閾值。
結(jié)合在本申請中并構(gòu)成本申請一部分的附圖示出了本發(fā)明的幾個方面,并與實施 例的描述一起用于解釋本發(fā)明的原理。以下是附圖的簡要說明圖1示出了根據(jù)本發(fā)明的信息符號的一個實施例;圖2示出了信息符號的第二實施例,其示出根據(jù)本發(fā)明的主要塊的一個實施例;圖3示出了圖2的信息符號,其示出根據(jù)本發(fā)明的描述塊的一個實施例;圖4示出了圖2的信息符號,其示出根據(jù)本發(fā)明的里德_所羅門(Reed-Solomon) 符號的一個實施例;圖5是示出了根據(jù)本發(fā)明的對信息符號進行編碼的方法的一個實施例的流程圖;圖6是示出了根據(jù)本發(fā)明的讀取信息符號的方法的一個實施例的流程圖;圖7是示出了根據(jù)本發(fā)明的對信息符號的圖像進行二元化的方法的一個實施例 的流程圖;圖8是示出了根據(jù)本發(fā)明的用于對信息符號的圖像進行二元化的平滑直方圖的 一個實施例的示圖;圖9是示出了根據(jù)本發(fā)明的在其他對象中定位信息符號的圖像的方法的一個實施例的流程圖;圖IOA和圖IOB是示出了在根據(jù)本發(fā)明的方法的一個實施例中如何可以找出信息 符號的邊界線的這種信息符號的示圖;圖11是示出了根據(jù)本發(fā)明的識別信息符號的邊界線的方法的一個實施例的流程 圖;圖12是示出了根據(jù)本發(fā)明的在信息符號中定位刻度標記的方法的一個實施例的 流程圖;圖13是示出了根據(jù)本發(fā)明的確定在信息符號的圖像中是否存在錯誤或缺失刻度 標記的方法的一個實施例的流程圖;圖14是示出了根據(jù)本發(fā)明的固定信息符號的損壞或缺失角的方法的一個實施例 的流程圖;圖15是示出了如何可以找出信息符號的單元中心的近似位置的根據(jù)本發(fā)明的信 息符號的示圖;圖16是示出了根據(jù)本發(fā)明的定位信息符號的單元的近似中心的方法的一個實施 例的流程圖;圖17A、圖17B和圖17C是示出了根據(jù)本發(fā)明的如何可以降低或去除投影失真的信 息符號的示圖;圖18A和圖18B是示出了如何降低或去除投影失真可以允許更加精確地定位信息 符號的單元中心的根據(jù)本發(fā)明的信息符號的示圖;圖19是示出了根據(jù)本發(fā)明的降低或去除投影失真以更加精確地定位信息符號的 單元中心的方法的一個實施例的流程圖;以及圖20是示出了根據(jù)本發(fā)明的解碼信息符號的方法的一個實施例的流程圖。
具體實施例方式本申請公開了可以表示可被數(shù)字化的任何形式的二元信息(包括數(shù)字、字母、圖 像、照片、圖形、以及諸如指紋或聲紋數(shù)據(jù)的生物測量信息)的標識符號。根據(jù)本發(fā)明的標 識符號優(yōu)選為二維條形碼符號,其有利地具有相對高的數(shù)據(jù)容量,可以被相對快速地讀取, 并且可以采取矩形格式(而不僅僅是正方形格式),從而其可以廣泛適應(yīng)于多種位置。此 外,根據(jù)本發(fā)明的信息符號包括誤差校正和加密功能。本申請還公開了用于讀取這種信息 符號的方法。如本文所使用的,術(shù)語“信息符號”或信息符號的“圖像”或者信息符號的任何 部分可以指其任何表示,包括但不限于可視圖像、以及轉(zhuǎn)移或存儲的數(shù)學(xué)或其他類型的數(shù) 據(jù)。此外,本發(fā)明的原理可以應(yīng)用于采用數(shù)據(jù)單元矩陣或其他符號表示法的任何符號。如 本文所使用的,信息符號是指采用數(shù)據(jù)單元矩陣的任何符號表示法,諸如商業(yè)上公知的商 標 Vericode 或 Data Matrix 或 Code One 等。I.符號結(jié)構(gòu)圖1示出了根據(jù)本發(fā)明的二維條形碼信息符號100的實例。信息符號100是2D 條形碼矩陣,其具有以正方形或矩形圖案布置的前景和背景對比陰影正方形單元。前景陰 影優(yōu)選為黑色,但也可以為其他陰影,而背景陰影優(yōu)選為白色,但也可以為與前景陰影不同 的其他陰影。在圖1的實施例中,單元102是背景陰影單元,而單元104是前景陰影單元。雖然背景單元和前景單元可以為任意陰影,但是本文圖中所示的背景單元將是白色的,而 前景單元將是黑色的。如本文所使用的,術(shù)語“顏色”可以包括黑色、白色以及灰色陰影。圖2示出了根據(jù)本發(fā)明的信息符號200的一個實施例,其劃分為數(shù)據(jù)區(qū)和非數(shù)據(jù) 區(qū)。具體地,符號200包括作為符號200的單元的最外線條的四條邊界線202、204、206和 208。邊界線202至邊界線208的所有單元優(yōu)選為前景(圖2中黑色)。緊鄰邊界線202至 邊界線208內(nèi)部的是刻度標記線212、214、216和218。線212至線218的單元通常從前景 色交替為背景色,因此,每個單元均稱為刻度標記。對齊刻度標記,從而邊界線202至邊界 線208內(nèi)側(cè)的左下角(在圖2中示為單元220,并且其在這里可以稱為基準角或原點角)為 背景色,并且邊界線202至邊界線208內(nèi)側(cè)的右上角(在圖2中示為單元230)為前景色。 從左下角的單元220開始,沿著刻度標記線212水平地以及沿著刻度標記線216垂直地按 照交替色來布置刻度標記。同樣地,從右上角的單元230開始,沿著刻度標記線214水平地 以及沿著刻度標記線218垂直地按照交替色來布置刻度標記。從圖2可以看出,并且取決 于在符號210的給定方向上存在偶數(shù)個還是奇數(shù)個單元,刻度標記的顏色上的交替可能在 與具有單元220和單元230的角相鄰的符號200的角附近中止,兩個背景色或兩個前景色 刻度標記可能呈現(xiàn)為彼此相鄰。與邊界線202至208直接相鄰并完全圍繞其的是靜止區(qū) (quiet zone),其為背景色并且優(yōu)選地至少有2個單元寬。根據(jù)本發(fā)明的信息符號可以用于在該符號附近存在其它對象或標記的應(yīng)用場合。 此外,如下所述,用于掃描信息符號的讀取器或相機很可能無法以完全無失真的方式進行 掃描。并且在讀取操作中,重要的是既能夠從其它對象和標記中識別出目標符號,也能夠在 識別之后正確地讀取該符號。邊界線和靜止區(qū)將符號與可能位于正被讀取的符號附近的其 他對象或標記區(qū)分開來。此外,如下面進一步討論的,邊界線可以有助于重建損壞的符號或 者在讀取時可能捕捉有噪聲的符號圖像??潭葮擞浿甘痉柕拿總€單元的位置。這樣,對 信息符號進行解碼的程序可以有效地定位單元中心位置。由于基準角(圖2中的單元220) 總是背景色,而對角(圖2中的單元230)總是前景色,所以這些角標記可用于確定根據(jù)本 發(fā)明的信息符號的方向以便于更有效的讀取。優(yōu)選地,除了在其中心處具有單元230的符號200的右上角處的9個單元的正方 形塊之外,邊界線202至邊界線208以及刻度標記線212至刻度標記線218內(nèi)部的區(qū)域稱 為數(shù)據(jù)區(qū)域(data area)或數(shù)據(jù)區(qū)(data zone)。如下面進一步討論的,數(shù)據(jù)區(qū)包括在信息 符號中經(jīng)編碼的實質(zhì)數(shù)據(jù)。數(shù)據(jù)區(qū)的每個單元均可以表示一個二元數(shù)位,并且根據(jù)編碼數(shù) 據(jù)可以為背景色或前景色。優(yōu)選地,將數(shù)據(jù)區(qū)進一步劃分為主要塊和描述塊。圖2示出了符號200的優(yōu)選地 為數(shù)據(jù)區(qū)的主要塊240預(yù)留的區(qū)。圖3是符號200的另一示圖,其示出了符號200的描述 塊250A、250B、250C和250D的優(yōu)選位置。如圖3所示,描述塊250A至250D中的每個均為 3X3配置的由9個單元構(gòu)成的正方形塊。這對于根據(jù)本發(fā)明的水平寬度為45個以下單元 的信息符號來說,是優(yōu)選的描述塊的尺寸和配置。對于水平寬度大于45個單元的根據(jù)本發(fā) 明的信息符號,描述塊優(yōu)選為矩形,且由12X6結(jié)構(gòu)的72個單元配置。描述塊在后文中進 一步討論。優(yōu)選地,主要塊240包括用戶數(shù)據(jù)、控制數(shù)據(jù)以及冗余數(shù)據(jù)。用戶數(shù)據(jù)包括由用戶 應(yīng)用程序直接處理的字節(jié)串?dāng)?shù)據(jù)。控制數(shù)據(jù)可以指示信息符號的配置,并且不由用戶應(yīng)用程序直接處理。容易理解,可以按照里德-所羅門碼規(guī)則,根據(jù)用戶數(shù)據(jù)和控制數(shù)據(jù)來計算 冗余數(shù)據(jù),以提供誤差檢測和校正。優(yōu)選地,根據(jù)本發(fā)明的信息符號使用3X3單元塊的方 形,以表示單個里德-所羅門符號。里德-所羅門符號在本領(lǐng)域是公知的。根據(jù)本發(fā)明的信息符號中單元的總數(shù)可以根據(jù)包含在符號中的信息量而改變。然 而,由于預(yù)留任一方向上任意行的開始和結(jié)束處的兩個單元用于符號邊界線(圖2中的行 202至208)和刻度標記線(圖2中的行212至218),所以根據(jù)本發(fā)明的符號的單元尺寸在 任一方向上為3n+4,其中,η是在相關(guān)方向上延伸的3X3里德/所羅門符號的數(shù)目。圖4示出了根據(jù)本發(fā)明的信息符號300。符號300為19X19單元的正方形矩陣, 并示出了符號300的數(shù)據(jù)區(qū)的主要塊340中的里德/所羅門符號310(盡管在圖4中未標 注全部,但數(shù)據(jù)區(qū)300中的每個3X3塊均為里德/所羅門符號310)。此外,信息符號300 包括描述塊350A、350B、350C和350D,如下所述,優(yōu)選地,它們也可以是里德/所羅門符號。 在圖4的實施例中,優(yōu)選地,每個里德/所羅門符號310為3X3單元的正方形矩陣。信息 符號中的3X3單元里德/所羅門符號的數(shù)目為χ方向上的單元數(shù)目減去4乘以y方向上 的單元減去4再除以9。因此,在信息符號300中,在χ方向上19個單元減去4,而在y方 向上19個單元減去4,為15 X 15 = 225個單元,然后除以9等于25個里德/所羅門符號。 給定信息符號中里德/所羅門符號的總數(shù)可以根據(jù)信息符號的尺寸而改變。由于3X3矩陣中的每個單元可以為前景色或背景色,所以每個3X3矩陣可以表 示(29-1)或511個里德/所羅門符號中的一個。優(yōu)選地,如本領(lǐng)域公知的,里德/所羅門符 號可以包含用戶數(shù)據(jù)和誤差校正信息。因此,可以包含在根據(jù)本發(fā)明的信息符號中使用的 里德-所羅門符號中的用戶數(shù)據(jù)和誤差校正信息的一個組合,包括被設(shè)置為提供256個字 符的8位構(gòu)造或者其他二元化結(jié)構(gòu)的用戶數(shù)據(jù),里德_所羅門符號中的剩余空間則可用于 誤差校正數(shù)據(jù)。在這種實施例中,可以按照任何期望的方式來使用8位用戶數(shù)據(jù)。例如,用 戶數(shù)據(jù)還可以格式化為6位壓縮形式。此外,用戶數(shù)據(jù)可以表示提供具有256種選擇(諸如 載色劑可以著色的所有顏色或者諸如給定軟件應(yīng)用程序?qū)S玫闹讣y細節(jié)的純二元化數(shù)據(jù)) 的數(shù)據(jù)組的查詢表中的值。在一個優(yōu)選實施例中,描述塊350A、350B、350C以及350D包括4位里德-所羅門符 號,并且可以如圖4所示地進行劃分。里德-所羅門符號在本領(lǐng)域是公知的。具體地,描述 塊350A至描述塊350D中的每個均可以包括2X2單元塊352、兩個2X 1單元塊354和356 以及單個1單元塊358。由于在圖4所示的實施例中,描述塊350A至描述塊350D可以包含 4位里德-所羅門符號,所以在每個描述塊350A至描述塊350D中,在每個4X4塊352中 可以定位一個這樣的符號,在兩個2X 1塊354和356的組合中可以定位一個這樣的符號, 以及在四個單個單元塊358的組合中可以定位一個這樣的符號。在一個實施例中,描述塊 350A至描述塊350D可以保存關(guān)于符號300的編碼或結(jié)構(gòu)的格式化信息。還可以預(yù)留描述 塊350A至描述塊350D用于任何其他目的。還考慮到描述塊350A至350D中的每個均可以 保存一個3X3里德-所羅門符號,或者任何其他尺寸(可以包含在描述塊350A至描述塊 350D的位的總數(shù)中)的符號。信息符號300還可以包括角塊360,其可以優(yōu)選地限定為單元的3X3的單元塊, 其最右上方的單元與右上角前景刻度標記對角相鄰。優(yōu)選地,角塊360中最右上方單元為 前景色,角塊360的中心單元以及該中心單元的正上和正右的單元為背景色。同樣地,角塊360的其余5個單元優(yōu)選為可變的,因此可以包含數(shù)據(jù)。在一個實施例中,角塊360的5個 可變顏色單元優(yōu)選為系統(tǒng)信息字符的計數(shù)。系統(tǒng)信息字符可以保存關(guān)于符號300的使用、 格式、編碼或其他數(shù)據(jù)的信息。優(yōu)選地,當(dāng)對這種數(shù)據(jù)進行編碼時,系統(tǒng)信息字符可以置于 任何用戶數(shù)據(jù)的前端。II.符號編碼圖5是示出使用信息對根據(jù)本發(fā)明的信息符號進行編碼的根據(jù)本發(fā)明的方法500 的流程圖。首先,在步驟502中,確定要被編碼的字符和/或其他信息。接下來,在步驟504 中,可以使用本領(lǐng)域公知的壓縮密鑰來選擇性地壓縮用戶數(shù)據(jù)。接下來,在步驟506中,根 據(jù)選擇性壓縮的用戶數(shù)據(jù)來生成線性位流。在步驟508中,基于線性位流,以本領(lǐng)域技術(shù)人 員公知的方式來計算循環(huán)冗余碼校驗(CRC)。CRC稍后可用于校驗從信息符號解碼的信息 是否正確。在步驟510中,可以使用加密密鑰來對線性位流進行選擇性加密。然后,在步驟 512中,將CRC附加至線性位流。此外,在步驟512中,如果使用,則加密密鑰和/或壓縮密 鑰可以附加至線性位流,從而這種密鑰可以包含在信息符號本身中。在步驟514中,可以使 用位屏蔽對線性位流進行選擇性隨機化。接下來,在步驟516中,基于位流生成上述里德/ 所羅門符號。在步驟518中,優(yōu)選地,交叉來自里德_所羅門符號的位值,從而對于符號的任何 損壞都將跨越不同塊來分配,因此不太可能提供不可讀的符號。里德-所羅門編碼數(shù)據(jù)的 這種交叉在本領(lǐng)域是公知的。用于交叉里德-所羅門符號的密鑰可以是提供鄰近數(shù)據(jù)的交 叉位置的查詢表。最后,在步驟520中,優(yōu)選地,隨后使用暗和亮正方形將經(jīng)交叉的位轉(zhuǎn)換為圖形表 示。這種編碼處理在本領(lǐng)域是公知的。包括用戶數(shù)據(jù)、控制數(shù)據(jù)和冗余數(shù)據(jù)的圖形表示的 部分定位在根據(jù)本發(fā)明的信息符號的數(shù)據(jù)區(qū)中。描述信息符號格式化的信息的圖形表示定 位在信息符號的描述塊中。優(yōu)選地,對包括在數(shù)據(jù)區(qū)的主要塊以及信息符號的角塊中的數(shù)據(jù)執(zhí)行圖5的方 法。優(yōu)選地,對包括在信息符號的描述塊中的數(shù)據(jù)單獨執(zhí)行相同的處理。III.符號讀取和解碼圖6是示出根據(jù)本發(fā)明的用于獲取和讀取要被讀取的信息符號的圖像的方法600 的一個實施例的流程圖。獲取圖像首先,在方法600的步驟602中,對具有要被讀取的信息符號的對象進行拍攝或者 掃描以生成其原始圖像。然后,使用本領(lǐng)域技術(shù)普通技術(shù)人員公知的技術(shù)對該原始圖像進 行像素化。圖像二元化接下來,在方法600的步驟604中,優(yōu)選地,對圖像進行二元化。如本領(lǐng)域普通技 術(shù)人員公知的,用于掃描和生成具有信息符號的對象的原始圖像的軟件可配置為,過濾原 始圖像以指示在包含信息符號的掃描對象上的感興趣的區(qū)域。如果未限定原始圖像中的感 興趣的區(qū)域,則對整個圖像進行二元化,并且認為整個圖像是感興趣的區(qū)域。如果限定了這 種感興趣的區(qū)域,則二元化可以更加精確,并且不受駐留在圖像中的其他區(qū)域中任何噪聲 或?qū)ο蟮挠绊?。如果限定了感興趣的區(qū)域,則與未限定感興趣的區(qū)域的情況相比,圖像處理操作(包括二元化)可以較快進行,原因在于可以處理圖像的較小部分。圖7是示出根據(jù)本發(fā)明的對包括信息符號的獲取圖像進行二元化的方法604'的 一個實施例的流程圖。首先,在方法604'的步驟604a中,如果圖像未處于灰階中,則將其 轉(zhuǎn)換為灰階。然而,由于當(dāng)生成原始圖像時不均勻的照明所致,這種灰階圖像的背景可能不 一致。如果相機或其他掃描器的光源沒有垂直地置于所掃描對象的上方并且對象的某些區(qū) 域比靠近光源的區(qū)域得到的照明少,則會發(fā)生這種情況。這對于照度在整個掃描的對象上 比較均勻的平板掃描器可能不是太大的問題。然而,如果原始圖像的背景不均勻,則用于二元化的全局圖像閾值不再工作。因 此,在步驟604b中,確定灰階圖像對于應(yīng)用全局閾值是否足夠均勻。如果在灰階圖像中存 在足夠的不均勻性,則優(yōu)選地,建立用于較小區(qū)域的局部閾值。因此,在步驟604c中,將原 始圖像動態(tài)劃分為基本相等尺寸的小片。通常,相對較小尺寸的小片用于相對較小的圖像, 而相對較大尺寸的小片用于相對較大的圖像。如果尺寸過小,則小背景區(qū)域可能以轉(zhuǎn)換為 前景而告終,反之亦然。如果尺寸過大,則全局閾值的問題將仍然存在。根據(jù)原始圖像的尺 寸,可以將其劃分為約3X3的小片到約30X30的小片(盡管小片不需要為正方形)。如果 在步驟604b中確定對于全局閾值來說灰階圖像足夠均勻,則在步驟604d中確定不對圖像 進行分片。以下關(guān)于步驟604e、604f和604g的討論涉及(如果對圖像進行分片)每個小片 中的操作,或者(如果未對圖像進行分片)全局圖像中的操作。閾值為0和255之間的值。 為了計算閾值,在步驟604e中,生成0至255的灰階值與給定灰階值的原始圖像(或者如 果限定了這種區(qū)域,則是這種原始圖像的感興趣的區(qū)域)的像素數(shù)的關(guān)系直方圖。這種直 方圖通常具有局部極大值的數(shù)目。因此,在步驟604f中,平滑該直方圖??梢允褂萌魏喂椒▉韴?zhí)行對直方圖的 平滑。一種這樣的方法為假設(shè)直方圖中的第一組極大值與前景像素相關(guān),而第二組極大值 與背景像素相關(guān)??梢赃M行這種假設(shè)的一種方式為沿著直方圖的曲線移動,每當(dāng)遇到隨后 的局部極大值時,則對其求平均值,直到僅剩余兩個局部極大值為止。理想地,這種平滑操作將導(dǎo)致僅具有兩個局部極大值(前景極大值和背景極大 值)、其間具有局部極小值的直方圖。圖8示出了由這種平滑處理可以得到的直方圖550。 直方圖550是像素化的原始圖像中像素的0至255的灰階值與每個灰階值處的像素數(shù)的關(guān) 系曲線圖(已經(jīng)如上所述地進行了平滑和相加)。如圖所示,該處理可以導(dǎo)致找出兩個局部 極大值,取兩個局部極大值552和554之間的局部極小值556的灰階值作為用于小片或者 用于整個像素化圖像(如果未進行分片)的閾值。在步驟604h中,如果對像素化的原始圖像進行分片,則優(yōu)選地,對照以上述方式 計算的用于整個原始像素化圖像的全局閾值來檢驗每個小片閾值。在步驟604i中,如果全 局閾值在一個或多個小片閾值的預(yù)定范圍之外,則將一個或多個小片閾值重置在全局閾值 范圍內(nèi)。如果給定的小片閾值在全局閾值范圍的上限以上,則降低小片閾值直到其在該范 圍之內(nèi)。如果給定的小片閾值在全局閾值范圍的下限以下,則提高小片閾值直到其在該范 圍之內(nèi)。在步驟604中,對圖像進行二元化。具體地,如果對原始的像素化圖像進行了分 片,則將如上確定的小片閾值應(yīng)用于相應(yīng)的小片的像素。如果像素在閾值以下,則將該像素
10指定為背景,如果像素在閾值以上,則將其指定為前景像素。由于不再需要原始像素化的灰 階圖像,所以圖像或感興趣的區(qū)域可以被適當(dāng)?shù)囟?盡管不需要),并且由二元化圖像 對最初的原始圖像進行重寫以節(jié)約存儲器和時間。使用初始化文件可以增加解碼經(jīng)掃描的信息符號的處理速度。這種初始化文件可 以由成像和/或解碼信息符號的軟件程序調(diào)用,并且可以提供相關(guān)聯(lián)信息符號的格式和結(jié) 構(gòu)方面的信息。無限制地,可包括在初始化文件中的信息可以包括感興趣的區(qū)域(其中可 找出待讀取的信息符號)的獲取圖像的位置、符號尺寸、符號的每單元像素數(shù)、圖像中符號 的近似旋轉(zhuǎn)。通過處理圖像難以精確地確定這些值中的某些值,而預(yù)先知道這些值可以使 圖像處理值更快且更精確。應(yīng)該理解,上述的根據(jù)本發(fā)明的二元化信息符號的方法可以應(yīng)用于使用數(shù)據(jù)單元 矩陣的任何信息符號。噪聲去除在方法600的步驟606中,從圖像中去除某些類型的噪聲。具體地,所獲取的原始 的像素化圖像可能以具有某些噪聲而告終,該噪聲由相機電子設(shè)備所引起,其創(chuàng)建了電子 噪聲的偽像而非真正的數(shù)據(jù)像素的黑或白像素。這種類型的噪聲通常稱為椒鹽噪聲。圖像 獲取過程中的其他類型的噪聲也可能引起這種類型的黑或白像素的錯誤創(chuàng)建。因此,大多 數(shù)濾波器可以用于去除椒鹽噪聲。大多數(shù)濾波器對于本領(lǐng)域的普通技術(shù)技術(shù)人員來說是公 知的。將圖像分割為不同對象如上所述,所獲取的圖像可能包括除了待解碼的信息符號以外的對象。因此,為了 定位符號,在步驟608中,可以將圖像分割為不同的對象。如果先前指定了在其中應(yīng)該找出 信息符號的感興趣的區(qū)域(例如,在上述初始化文件中),則該步驟是不必要的。如果未指 定感興趣的區(qū)域,則將二元化圖像分割為具有接近前景像素的部分。即,假設(shè)不以前景像素 而相互連接但在區(qū)域內(nèi)具有接近前景像素的突發(fā)(burst)的區(qū)域很可能是獨立的對象(例 如,ID照片、文本信息等)。在對象中識別2D條形碼符號在將感興趣的區(qū)域分割為多個對象之后,在步驟610中,如果區(qū)域中存在這種符 號,則識別形成2D條形碼符號的對象。圖9是示出了根據(jù)本發(fā)明的用于在二元化圖像中的 定位對象中識別信息符號的處理的流程圖。在上述步驟610a和610b中,定位接近像素的 區(qū)域,并且在二元化圖像中識別候選對象。在步驟610c中,確定經(jīng)識別的對象的參數(shù)。具 體地,數(shù)據(jù)包括但不限于區(qū)域中的像素數(shù)、區(qū)域的尺寸和縱橫比,以及對于每個識別對象所 確定的前景單元的密度。然后,在步驟610d中,用于每個對象的這些參數(shù)可以與可應(yīng)用于 正在搜索的信息符號的這種參數(shù)相比較。例如,確定二元化圖像中對象的尺寸、縱橫比和像 素數(shù)。這些參數(shù)均與信息符號的所預(yù)期的相同的參數(shù)進行比較。在步驟610e中,基于這些 比較的結(jié)果,以最可能到最不可能是信息符號的順序?qū)Χ瘓D像中的對象進行排序。如上所述,優(yōu)選地,根據(jù)本發(fā)明的信息符號包括四條實線的邊界線。因此,在排序 之后,在步驟610f中,優(yōu)選地,檢查排序在最上面的對象以確定是否存在可能形成4條邊界 線的2對相對、平行、或近似平行的線。在一個實施例中,如圖IOA和圖IOB那樣做。圖IOA 示出了根據(jù)本發(fā)明一個實施例的信息符號1000。為了確定符號1000是否包括第一對平行
11線,沿著平行掃描線1010掃描像素。首先在箭頭A的方向上從符號1000的A主邊緣開始, 其次在箭頭B的方向上從符號1000的B主邊緣開始,橫跨符號1000進行這種掃描。所尋 找的兩組連接像素,其可能在或者可能不在掃描線1010的方向上,但是必須基本上沿著某 個給定方向連接,并且每組連接像素應(yīng)該基本上沿著相同的方向。此外,連接像素應(yīng)該具有 某預(yù)定厚度。如圖IOB所示地執(zhí)行類似處理,在箭頭C的方向上沿著掃描線1020進行符號1000 的掃描,并且在箭頭D的方向上沿著掃描線1020進行掃描。如參照圖IOA所描述的,掃描 尋找兩組連接像素,每組連接像素均沿著基本相同的方向并具有預(yù)定厚度。如果找出這種連接像素的線,則在步驟610g中,檢查線內(nèi)部的區(qū)域。這種檢查尋 找如在根據(jù)本發(fā)明的信息符號中可以找出的預(yù)定數(shù)量的基本均勻的(從前景單元到背景 單元并且又回到前景單元的)變換。如果找出這種變換,則將進一步檢查作為可能的信息 符號的對象。一旦在二元化圖像中識別到信息符號的最佳候選,則為了精確地讀取和解碼根據(jù) 本發(fā)明的信息符號,優(yōu)選地,定位符號的數(shù)據(jù)區(qū)中每個單元的中心。這是因為假設(shè)在單元中 心處將給出任何單元的顏色的最佳指示。這樣,可以增加正確地確定每個單元的顏色的可 能性,從而精確地對單元進行解碼。為了定位數(shù)據(jù)區(qū)的每個單元的中心,優(yōu)選地,確定符號 的角位置。另外,為了對角進行定位,優(yōu)選地,首先找出邊界線和刻度標記線。找出符號的實線邊一旦選擇了候選對象,在步驟612中,找出并限定構(gòu)成實線邊界線的四條線(例 如,圖2中的邊界線206、208、212和214,或者圖IOA和圖IOB中所示的主邊緣和副邊緣)。 將這種邊界線限定為信息符號四條邊中的每條的最外面的連續(xù)前景單元組。圖11是示出 了找出根據(jù)本發(fā)明的符號的實線邊界線的一種方法612'的流程圖。為了限定邊界線,如上 所述并如圖IOA和圖IOB所示地檢查所選擇的對象。具體地,在方法612'的步驟612a中, 在圖IOA的箭頭A和B的方向上沿著平行掃描線1010,并且在圖IOB的箭頭C和D的方向 上沿著平行掃描線1020來獲取對象的視圖。在步驟612b中,沿著掃描線的視圖尋找背景 像素到前景像素的第一變換、然后下一個前景像素到背景像素的變換。對于沿著箭頭A、B、 C和D的四幅視圖中的每幅均記錄每次變換的位置和變換之間的像素數(shù)。在步驟612c中,在這四幅視圖的每幅中,具有較大數(shù)目變換的邊界線稱為主邊 緣,其他邊界線稱為副邊緣。例如,參見圖IOA中箭頭A的方向,A主邊緣沿著13條掃描線 1010進行變換,而A副邊緣僅沿著7條掃描線1010進行變換。給定視圖中的主線和副線在 角(其是距離該視圖的圖像側(cè)最近的點)中相交。填補邊界線的缺失部分在一個實施例中,可能存在如下情況,S卩,在識別邊界線的過程中,對于主邊界線 可能無法找出完全連續(xù)的線。步驟614重點在于填補這種不連續(xù)的線。在這種情況下,如 圖11的步驟614a和614b所示,邊界線中不連續(xù)邊緣處的背景像素到前景像素以及前景像 素到背景像素的變換可以與線結(jié)合,然后可以確定有多少前景像素落在這種線上。然后,在 步驟614c中,可通過移動所畫線的位置和斜率來重復(fù)該處理,直到沿著線所找出的所有像 素都為前景像素。如果找出多于一條這種線,則這種多條線可以取平均以填補不連續(xù)。任 何其他適當(dāng)?shù)木€修復(fù)算法也可以用于使不連續(xù)的邊界線完整。
此外,由于每條邊界線都具有等長的相對邊界線,所以如果已知與不連續(xù)邊界線 相對的邊界線的長度,則通過向不連續(xù)的邊界線添加單元,可以延長不連續(xù)的邊界線以與 相對的、完整的邊界線的長度相匹配。定位刻度標記在識別符號的邊界線之后,步驟616的重點在于查找處于邊界線內(nèi)部的前景刻度 標記和背景刻度標記。圖12是示出了根據(jù)本發(fā)明的用于定位信息符號的刻度標記的方法 616'的一個實施例的流程圖。如上所述,記錄沿著穿過所選對象的掃描線的背景像素到前 景像素的變換以及隨后前景像素到背景像素的變換之間像素的位置和數(shù)目。并且,同樣如 上所述,根據(jù)本發(fā)明的信息符號的結(jié)構(gòu)包括沿著每條邊界線內(nèi)部的單元尺寸的交替的前景 刻度標記和背景刻度標記。因此,在沒有刻度標記的情況下,所記錄的像素變換之間距離 將指示邊界線的厚度,而在存在刻度標記的情況下,所記錄的像素變換之間距離將指示邊 界線加上刻度標記的厚度。因此,在圖12的步驟616a中,確定這兩個距離(即,存在刻度 標記情況下的變換之間的距離)中的較大的一半,并且將其作為一個單元的厚度的第一近 似,其等于邊界線的厚度或者刻度標記的厚度。然后,在步驟616b中,記錄存在刻度標記情 況下(由變換之間的單元寬度距離的約兩倍表示)以及不存在刻度標記情況下(由變換之 間的約一個單元寬度距離來表示)的沿著每條邊界線的位置數(shù)目。由于符號很可能歪斜,所以測量符號邊界線和刻度標記的水平寬度和垂直寬度可 能未反映實際的單元寬度。為了更精確地確定單元寬度,在方法616'的步驟616c中,選 擇第一邊界線,并且,以距邊界線的內(nèi)邊緣約單元的近似寬度一半的距離、且基本平行于邊 界線,構(gòu)造射線(ray,半直線)。然后,在步驟616d中,確定沿著該射線的背景到前景以及 前景到背景變換的頻率。由于射線基本上平行于邊界線,所以像素變換之間的距離將給出 單元的近似寬度。因此,在步驟616e中,確定每個單元的近似寬度。此外,由于下述的投影 失真,該頻率將通常隨著射線上的位置向符號圖像的遠邊移動而增加。該頻率的增加可以 用作作為第一近似的校正因子,以解決當(dāng)確定下述的刻度標記的中心位置時產(chǎn)生的投影失 真。因此,在步驟616f中,確定并記錄沿著射線的像素變換的頻率變化。在步驟616g中,通過使用上面確定的刻度標記的數(shù)目和寬度,確定沿著邊界線的 刻度標記的位置。然而,可能存在某些刻度標記損壞或者添加了附加的刻度標記的情況。因 此,優(yōu)選地,確定沿著每條邊界線的刻度標記的數(shù)目。如上所述,相對的刻度標記線必須包 括相同數(shù)目的刻度標記,其必須還等于3n+4,其中η為整數(shù)。如果沒有滿足該標準,則在一 個實施例中,可以假設(shè)存在必須修復(fù)或去除的沿著一條或多條邊界線的損壞或額外的刻度 標記。如上所述,在找出刻度標記的數(shù)目、寬度和位置之后,可以返回并修復(fù)任何其余 的、不完整的邊界線。具體地,考慮兩條相對的水平邊界線或垂直邊界線。如果兩條邊界中 的一條在其中具有間斷,則如上所述地確定沿著相對的、完整的邊界的刻度標記的數(shù)目。然 后,確定沿著損壞的邊界的刻度標記的尺寸。最后,由于如上所述,每條邊界沿著其內(nèi)邊緣 均具有相同數(shù)目的刻度標記,所以延長損壞的邊界線,從而最終的長度等于沿著損壞邊界 的刻度標記的數(shù)目乘以沿著未損壞邊界的刻度標記的數(shù)目。如果有必要,隨后可以對其他 的相對的成對邊界執(zhí)行該操作。包括沿著所有四條邊界的刻度標記有利地使得比較有效地 重建符號邊界成為可能。
去除偽刻度標記并修復(fù)缺失刻度標記如上所述,由于掃描問題、二元化問題、噪聲、以及其他因素,在步驟616中找出的 某些前景刻度標記可能以產(chǎn)生缺失或偽刻度標記而告終。因此,在方法600的步驟618中, 去除虛假刻度標記,并添加缺失的刻度標記。圖13是示出在根據(jù)本發(fā)明的信息符號中定位缺失或偽刻度標記的優(yōu)選方法 618'的一個實施例的流程圖。由于兩條相對邊界線的內(nèi)邊緣都包括刻度標記,所以在確定 沿著第一邊界線是否存在缺失或偽刻度標記時,方法618'的步驟618a是檢查沿著相對邊 界線的刻度標記的數(shù)目。因此,如果沿著第一邊界線缺失角,且沒有相對的邊界線,則有可 能相對的邊界線包括刻度標記的正確數(shù)目,且可以沿著第一邊界線匹配該數(shù)目。然而,如果 不清楚哪條邊界線具有不正確的刻度標記數(shù)目,則在步驟618b中,可以檢驗每條邊界線的 尺寸,其必須等于3n+4,其中η為信息符號中的里德/所羅門符號的整數(shù)。如果一條邊界線 包括可接受的單元數(shù)目而另一條不包括,則可以根據(jù)需要添加或減少沿著不正確邊界線的 刻度標記,并使用來自相鄰的、已知良好的刻度標記的尺寸和位置數(shù)據(jù)。此外,如上所述,從左下角前景刻度標記和右上角背景刻度標記開始,沿著邊界線 以交替方式插入刻度標記。因此,在步驟618c中,如果邊界線具有不符合該規(guī)則的相鄰刻 度標記,則可以根據(jù)需要添加或去除刻度標記以強制執(zhí)行這種規(guī)則。修復(fù)損壞的角如上所述,對根據(jù)本發(fā)明的信息符號進行解碼的方法的一部分為定位符號的角。 然而,可能在掃描處理中或者在掃描對象自身損壞符號的一個或多個角。因此,在方法600 的步驟620中,優(yōu)選地,修補損壞的角。圖14是示出根據(jù)本發(fā)明的修復(fù)信息符號的損壞角的優(yōu)選方法620'的一個實施 例的流程圖。如果相鄰的邊界線未在公共頂點處結(jié)束,則頂點應(yīng)該位于的角可能缺失或損 壞。為了重建該角,在方法620'的步驟620a中,延長與損壞或缺失角相鄰的邊界線,直到 它們交叉為止,并且還基于與沒有損壞的角相鄰的對應(yīng)邊界線的長度來延長沿著每條邊界 線的刻度標記。該處理將定位缺失角。在方法620'的步驟620b中,確定是否有一個以上 的角損壞。如果存在,則在步驟620c中,估計實際的缺失角可能位于的位置。然后,在步驟 620d中,如下面進一步描述的,完成讀取和解碼步驟,以了解是否可以讀取信息符號。如果 無法讀取,則可以估計多個缺失角的不同位置,并且可以重復(fù)該處理。檢查符號行和列的數(shù)目如上所述,根據(jù)本發(fā)明的符號的尺寸必須為3n+4,其中η為信息符號中沿著符號 的長度或?qū)挾鹊睦锏耞所羅門符號的數(shù)目。在方法600的步驟622和步驟623中,檢查經(jīng) 定位的信息符號,以了解是否遵循該規(guī)則。如上所述,可以通過計算沿著給定邊界線的刻度 標記的數(shù)目來確定信息符號中行和列的數(shù)目。如果違反了該規(guī)則,如上所述,則可以通過添 加或去除刻度標記來調(diào)整信息符號的行或列的數(shù)目。如果沒有違反該規(guī)則,則可以如下所 述地找出單元中心的近似位置。近似的單元中心位置在方法600的步驟624中,定位信息符號的每個單元的近似中心位置。如上所述 地確定近似的刻度標記寬度和位置。根據(jù)該信息,可以近似得到符號中所有刻度標記的中 心位置。具體地,確定每個刻度標記的兩條相鄰邊緣的位置。然后,找出刻度標記中表示刻
14度標記一半寬度的、在每個方向上垂直于每個相鄰邊緣位置的位置。這可以看作是刻度標 記的近似中心。圖15示出了根據(jù)本發(fā)明的信息符號1150,具有擁有中心1160的刻度標記 1152以及單元1154。如圖所示,垂直射線1162和水平射線1164從沿著符號1150的第一 邊界線的刻度標記的中心拉伸至沿著與第一邊界線相對的邊界線的相應(yīng)的刻度標記。將每 個單元1154的近似中心看作每條垂直射線1162與每條水平射線1164的交叉點。在圖16中示出了根據(jù)本發(fā)明的查找信息符號的近似單元中心的優(yōu)選方法624' 的一個實施例的流程圖。在步驟624a中,如上所述地定位每個刻度標記的近似中心。然后, 在步驟624b中,生成垂直射線和水平射線,連接如圖15所示的相對的刻度標記的中心。在 步驟624c中,確定垂直射線和水平射線的交叉點位置,并將其看作信息符號的單元的近似 中心位置。校正圖像投影失真如果捕捉符號圖像的相機位于符號的右上方,則所得到的捕捉圖像有可能是近似 矩形的,這是所期望的。然而,如果從符號的側(cè)面或角來捕捉圖像,則所得到的符號圖像可 能具有失真的形狀。這可能使得符號的最終解碼比較困難,或者降低精確性,原因在于這可 能使單元的中心位置歪斜,如上所述,該中心是每個單元的一部分用于確定該單元的顏色。 因此,在步驟626中,可以校正圖像中的這種投影失真。在信息符號的圖像示出投影失真的情況下,遠角以小于近角的距離彼此分離,這 將導(dǎo)致不平行的邊。圖17A示出了具有投影失真的信息符號圖像1100的實施例的表示。具體地,角 1106和角1108顯得比角1102和角1104彼此更加靠近。在用于校正這種情況的方法中,在 對角之間生成對角線1112和1114。在矩形或正方形中,對角線1112和對角線1114應(yīng)該互 相平分。然而,在符號圖像1100的表示中,對角線1112和對角線1114未互相平分。具體 地,從對角線1112和1114的交叉點到角1108的距離1110小于對角線1112的長度1120 的一半。為了校正這種情況,優(yōu)選地,在對角線1112的方向上移動角1102和角1108的位 置,以使距離1110等于對角線1112的長度1120的一半。然后對于角1106和對角線1114 執(zhí)行相同處理。優(yōu)選地,使用“縮放”整數(shù)來執(zhí)行該處理,以避免浮點數(shù)學(xué)。如這里所使用 的,縮放整數(shù)指的是具有去除任何小數(shù)點從而該值為整數(shù)的數(shù)值。例如,十進制數(shù)值12. 45 的縮放整數(shù)是1245。圖17B示出了在移動其角以使對角線互相平分之后的標注為1100'的信息符號 圖像1110。具體地,符號圖像1100'的對角線1112'和1114'現(xiàn)在互相平分,在點1116' 處交叉。在移動信息符號圖像的角以解決投影失真之后,優(yōu)選地,移動(如上所述地確定 了其近似位置的)單元中心以解決投影失真。優(yōu)選地,通過首先計算本文所稱的“ζ因 子”(其是提供影響圖像給定部分的投影失真量的相對測量的校正因子)來完成該步驟。圖17C示出了根據(jù)本發(fā)明的用于計算ζ因子,然后使用其校正信息符號的圖像中 單元的中心位置的優(yōu)選方法的示圖。圖17C示出了具有投影失真的信息符號的圖像的四個 單元1410、1420、1430和1440的表示。單元1410包括對角線1404和對角線1406。圖19 是示出這種方法626'的步驟的流程圖。具體地,為了找出單元1410的角1401的ζ因子, 在方法626'的步驟626a中,計算單元1410的每條對角線1404和對角線1406的長度。在步驟626b中,確定交叉點1402的位置。在步驟626c中,確定從交叉點1402到角1401的 對角線段的長度。然后,在步驟626d中,通過將對角線1404的一半長度除以在步驟626c 中計算的對角線段的長度來確定ζ因子。在步驟626e中,對于單元1404中的其余三個角 1403、1405和1407的每個均重復(fù)該處理。為了使用這些計算的ζ因子來校正單元1410、1420、1430和1440的單元中心位 置,在方法626 ‘的步驟626f中,找出單元1410的每個角1401、1403、1405和1407相對于單 元1410的兩條對角線1404和1406的交叉點1402的x、y坐標。在步驟626g中,這種角坐 標的相對集合(relative set)中的每個均乘以用于該角的ζ因子。這些稱為“縮放坐標”。 接下來,在步驟626h中,確定單元1410的邊1412以及單元1420的邊1414的長度,并且在 步驟626i中,確定用于每條邊的角的ζ因子之間的差。即,確定邊1412的長度,并找出角 1401和角1403的ζ因子之間的差。并且,獨立地,確定邊1414的長度,并找出角1409和角 1411的ζ因子之間的差。根據(jù)邊的長度以及該邊的每個角的ζ因子的差,在步驟626j中可 以確定對于該邊的成比例的ζ因子。成比例的ζ因子將給出針對沿著所計算的一個單元或 多個單元的邊的距離的任何變化的ζ因子的變化。在步驟626k中,確定每行端點的中心點 1450和1460以及用于每個點1450和1460的ζ因子(第一行由單元1410和1420形成, 第二行由單元1430和1440形成)??煞謩e使用在步驟626j中找出的用于邊1412和1414 的成比例ζ因子來確定點1450和1460的ζ因子。在步驟6261中,步驟626h至626k的方 法用于確定單元1410、1420、1430和1440的底部邊緣的中心。在步驟626m中,步驟626k 和6261中生成的坐標用于找出單元1410的經(jīng)校正的中心。為了找出單元1410的中心的 絕對坐標,在步驟626η中,將單元1410的中心的縮放坐標除以這些坐標的ζ因子(通過使 用成比例ζ因子找出),并將結(jié)果與中心點1402的坐標相加。圖18Α和圖18Β示出了對信息符號執(zhí)行諸如圖19的方法626'的方法的結(jié)果。圖 18Α示出了具有多個單元的信息符號1200。點1210示出了信息符號1200的單元的中心 位置(其在未對投影失真進行校正的情況下計算得出)。如圖所示,許多點1210不在符號 1200的單元中心附近,并且許多點在單元之間的邊界處。圖18Β示出了信息符號1200', 使用根據(jù)本發(fā)明的校正投影失真的方法校正了任意投影失真。點1210'示出了在校正投 影失真之后計算的符號1200'的單元的中心點。如圖所示,單元的經(jīng)計算的中心點1210' 出現(xiàn)在更加靠近單元的實際中心處,并且沒有經(jīng)計算的中心點出現(xiàn)在單元之間的邊界處。 因此,與如果未校正投影失真相比,符號1200'的經(jīng)計算的單元中心點可以提供關(guān)于符號 1200'的每個單元的顏色的更加精確的信息。應(yīng)該理解,上述的降低根據(jù)本發(fā)明的信息符號圖像中的投影失真的方法可以應(yīng)用 于使用數(shù)據(jù)單元的矩陣的任何信息符號。確定符號的方向一旦獲取、重建了信息符號且降低或校正了失真,就在方法600的步驟628中正確 地確定了符號的方向以進行解碼。如上所述,只有根據(jù)本發(fā)明的信息符號的一個角(在邊 界線內(nèi)側(cè))為背景色。在正確的方向上,該方向角為左下角。所以,為了正確地定向信息符 號,方向角位于信息符號的左下部。然而,如在從透明的背面進行掃描的情況下,圖像可能 水平或垂直翻轉(zhuǎn)。為了確定是否為這種情況,做出首次嘗試來對符號進行解碼,如果首次嘗 試失敗,則生成符號的鏡像圖像,然后再次嘗試解碼。
對符號進行解碼在方法600的步驟630中,將圖像處理信息符號解碼為原始數(shù)據(jù)。圖20示出了根 據(jù)本發(fā)明的用于在上述圖像處理步驟之后對信息符號進行解碼的方法的流程圖。在步驟 630a中,將單元顏色圖案轉(zhuǎn)換為二元化數(shù)據(jù)。在一個實施例,前景單元可以轉(zhuǎn)換為“1”,而 背景單元可以轉(zhuǎn)換為“0”。如上所述,在單元的中心處確定單元的二元化值。優(yōu)選地,將該 二元化數(shù)據(jù)保存在單元的圖案中。在步驟630b中,根據(jù)對符號進行編碼時所使用的圖案, 將里德-所羅門符號定位為二元化數(shù)據(jù)圖案。然后,在步驟630c中,再次根據(jù)編碼時使用 的交叉算法,去交叉(de-interleaf)里德-所羅門符號。在步驟630d中,根據(jù)在加密期間 用于生成符號的里德-所羅門算法,從去交織的里德-所羅門符號中提取數(shù)據(jù)。如果在編 碼期間使用隨機化位屏蔽,則在步驟630e中,相應(yīng)的去隨機化位屏蔽用于對數(shù)據(jù)進行去隨 機化。并且,如果在編碼期間對數(shù)據(jù)進行加密,則在步驟630f中,對數(shù)據(jù)進行解密。如上面 參照圖5的步驟512所討論的,加密密鑰可以任選地附加至用戶數(shù)據(jù)(在加密之后)的位 流并包括在信息符號中。如果這樣做,則可以在去隨機化的數(shù)據(jù)中識別用于解密數(shù)據(jù)的密 鑰,并將其用于解密數(shù)據(jù)。在步驟630g中,計算用于經(jīng)解密的數(shù)據(jù)的CRC,并且檢查原始數(shù) 據(jù)的精確性。此時,在步驟632g中,如果確定數(shù)據(jù)不精確,則可能是因為信息符號的圖像由于 損壞或其他原因所致的未正確定向。因此,如果CRC不匹配,則在步驟634g中,可以將圖像 旋轉(zhuǎn)90度和/或可以確定圖像的鏡像圖像,并再次從步驟630a開始解碼處理。如果CRC校驗確定數(shù)據(jù)是精確的,則在步驟630h中,如果在編碼期間對數(shù)據(jù)進行 了壓縮,則優(yōu)選地對其進行解壓縮。如上所述,可以在編碼期間將壓縮密鑰附加至用戶數(shù)據(jù) 位流。如果這樣做,則附加的壓縮密鑰可以用于對數(shù)據(jù)進行解壓縮。然后,在步驟630i中, 優(yōu)選地,從得到的經(jīng)解壓縮的數(shù)據(jù)中提取原始用戶數(shù)據(jù)。在前面的描述中闡述了旨在由該文件描述的本發(fā)明的各種特征和優(yōu)點。然而,應(yīng) 該理解,雖然示出了本發(fā)明的特定形式或?qū)嵤├?,但是在不背離本發(fā)明的精神和范圍的情 況下,可以進行各種修改,包括對部件的形狀和配置的修改等。
權(quán)利要求
一種二維符號,包括四條實線邊界,限定內(nèi)部區(qū)域;多個第一陰影刻度標記和多個第二陰影刻度標記,以交替圖案布置于所述四條實線邊界的所述內(nèi)部區(qū)域,并與所述四條實線邊界相鄰;以及數(shù)據(jù)單元,在所述多個第一陰影刻度標記和所述多個第二陰影刻度標記的內(nèi)部。
2.根據(jù)權(quán)利要求1所述的符號,其中所述四條實線邊界在所述內(nèi)部區(qū)域中限定四個角;以及所述內(nèi)部區(qū)域中的三個所述角被強制為第一陰影,并且所述內(nèi)部區(qū)域中的第四個所述 角被強制為第二陰影。
3.根據(jù)權(quán)利要求2所述的符號,其中,通過查明所述內(nèi)部區(qū)域中的四個所述角中的至 少一個的陰影可以確定所述二維符號的方向。
4.根據(jù)權(quán)利要求3所述的符號,其中,通過識別所述內(nèi)部區(qū)域中被強制為所述第二陰 影的所述角可以確定所述二維符號的方向。
5.根據(jù)權(quán)利要求1所述的符號,其中所述四條實線邊界中的每條均由組成單元構(gòu)成;重建至少第一實線邊界;不重建至少第二實線邊界;以及基于所述至少第二實線邊界的長度來重建所述至少第一實線邊界。
6.根據(jù)權(quán)利要求5所述的符號,其中,通過向所述至少第一實線邊界添加單元來重建 所述至少第一實線邊界。
7.根據(jù)權(quán)利要求1所述的符號,包括多個角,在所述四條實線邊界的交點處;其中,伸展所述四條實線邊界中的至少兩條,以構(gòu)造所述多個角中的至少一個。
8.根據(jù)權(quán)利要求1所述的符號,所述符號在第一方向上延伸第一數(shù)目的單元,并且在 第二方向上延伸第二數(shù)目的單元,其中,所述多個第一陰影刻度標記和所述多個第二陰影 刻度標記的數(shù)目和尺寸用于確定所述第一數(shù)目的單元和所述第二數(shù)目的單元。
9.根據(jù)權(quán)利要求6所述的符號,所述符號在第一方向上延伸第一數(shù)目的單元,并且在 第二方向上延伸第二數(shù)目的單元,其中,所述多個第一陰影刻度標記和所述多個第二陰影 刻度標記的數(shù)目和尺寸用于確定所述第一數(shù)目的單元和所述第二數(shù)目的單元。
10.根據(jù)權(quán)利要求1所述的符號,其中,在所述四條實線邊界內(nèi)部的交替的陰影刻度標 記用于確定所述符號中行和列的數(shù)目。
11.根據(jù)權(quán)利要求1所述的符號,包括包含數(shù)據(jù)的單元的行和列;其中,在所述四條實線邊界內(nèi)部的交替的陰影刻度標記用于定位包含數(shù)據(jù)的單元的所 述行和所述列。
12.根據(jù)權(quán)利要求1所述的符號,其中所述四條實線邊界中的每條均具有相對的、基本平行的實線邊界,所述相對的、基本平 行的實線邊界是所述四條實線邊界中的另一條;與所述四條實線邊界中的至少第一條實線邊界相鄰的至少一個刻度標記缺失;以及與所述第一實線邊界相對的實線邊界相鄰的刻度標記用于重建所述至少一個缺失的 刻度標記。
13.根據(jù)權(quán)利要求1所述的符號,其中所述數(shù)據(jù)單元的至少第一部分包含加密信息; 所述數(shù)據(jù)單元的至少第二部分包含壓縮信息;以及所述數(shù)據(jù)單元進一步包含循環(huán)冗余碼校驗信息、加密密鑰信息和壓縮密鑰信息。
14.一種讀取信息符號的方法,所述信息符號具有 四條實線邊界,限定內(nèi)部區(qū)域;多個第一陰影刻度標記和多個第二陰影刻度標記,以交替圖案布置于所述四條實線邊 界的所述內(nèi)部區(qū)域,并與所述四條實線邊界相鄰;以及數(shù)據(jù)單元,在所述多個第一陰影刻度標記和所述多個第二陰影刻度標記的內(nèi)部,所述方法包括獲取所述信息符號的圖像;識別所述信息符號的圖像中的所述四條邊界;定位所述信息符號的圖像中的所述刻度標記;以及對所述信息符號的圖像的所述數(shù)據(jù)單元中的數(shù)據(jù)進行解碼。
15.根據(jù)權(quán)利要求14所述的方法,包括對所述信息符號的圖像進行二元化。
16.根據(jù)權(quán)利要求14所述的方法,包括定位所述信息符號的圖像中的所述數(shù)據(jù)單元 的中心。
17.根據(jù)權(quán)利要求14所述的方法,包括確定所述信息符號的圖像的方向。
18.根據(jù)權(quán)利要求14所述的方法,包括降低所述信息符號的圖像中的投影失真。
19.根據(jù)權(quán)利要求15所述的方法,包括 對所述信息符號的圖像進行分片;生成用于所述信息符號的圖像的每個小片中的數(shù)據(jù)單元的灰階直方圖; 平滑每幅生成的所述灰階直方圖,以指示兩個局部極大值,所述兩個局部極大值在其 間具有局部極小值;以及基于所述兩個局部極大值之間的所述局部極小值的位置確定二元化閾值。
20.一種對具有數(shù)據(jù)單元的矩陣的信息符號的圖像進行二元化的方法,所述方法包括對所述信息符號的圖像進行分片;生成用于所述信息符號的圖像的每個小片中的數(shù)據(jù)單元的灰階直方圖; 平滑每幅生成的所述灰階直方圖,以指示兩個局部極大值,所述兩個局部極大值在其 間具有局部極小值;以及基于所述兩個局部極大值之間的所述局部極小值的位置確定二元化閾值。
全文摘要
本文公開了根據(jù)本發(fā)明的標識符號以及用于對其進行讀取的系統(tǒng)和方法,標識符號優(yōu)選為二維、矩形或正方形的條形碼符號,其具有實線邊界以及與實線邊界相鄰的刻度標記區(qū)域,并且具有全向讀取、誤差檢測和校正性能。
文檔編號G06K7/10GK101978380SQ200980110258
公開日2011年2月16日 申請日期2009年1月29日 優(yōu)先權(quán)日2008年1月29日
發(fā)明者侯賽因·科哈利德·阿爾-侯賽因, 邁克爾·A·克里斯蒂安 申請人:威泰克公司