一維條形碼生成與識(shí)別技術(shù)_第1頁(yè)
一維條形碼生成與識(shí)別技術(shù)_第2頁(yè)
一維條形碼生成與識(shí)別技術(shù)_第3頁(yè)
一維條形碼生成與識(shí)別技術(shù)_第4頁(yè)
一維條形碼生成與識(shí)別技術(shù)_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

一維條形碼生成與識(shí)別技術(shù)陶 勝摘 要: 介紹了 EAN-13 條形碼的構(gòu)成格式, 編碼規(guī)則及識(shí)別和生成等技術(shù), 并以 VC 實(shí)現(xiàn)條形碼圖像的生成。關(guān)鍵詞:EAN-13; 條形碼; 條碼生成1引言條形碼 (簡(jiǎn)稱條碼) 技術(shù)是集條碼理論、 光電技術(shù)、 計(jì)算 機(jī) 技 術(shù) 、 通 信 技 術(shù) 、 條碼印制技術(shù) 于 一體的一種自動(dòng)識(shí) 別 技 術(shù)。 條形碼是由寬度不同、 反射率不同的條 (黑色) 和空 (白 色), 按照一定的編碼規(guī)則編制而成, 用以表達(dá)一組數(shù)字或字 母符號(hào)信息的圖形標(biāo)識(shí)符。 條形碼符號(hào)也可印成其他顏色, 但 兩種顏色對(duì)光必須有不同的反射率, 保證有足夠的對(duì)比度。 條 碼技術(shù)具有速度快、 準(zhǔn)確率高、 可靠性強(qiáng)、 壽命長(zhǎng)、 成本低廉 等特點(diǎn), 因而廣泛應(yīng)用于商品流通、 工業(yè)生產(chǎn)、 圖書(shū)管理、 倉(cāng) 儲(chǔ)標(biāo)證管理、 信息服務(wù)等領(lǐng)域。針 對(duì) EAN-13 條 碼 , 介 紹 了 其 格 式 、 編碼規(guī)則等技術(shù)特 點(diǎn), 并在 Visual C+ 6.0 環(huán)境下實(shí)現(xiàn)了一維條碼的圖像生成與 識(shí)別, 具有較好的應(yīng)用價(jià)值。數(shù)字字符有三種編碼形式, 左側(cè)數(shù)據(jù)符奇排列、 左側(cè)數(shù)據(jù)符偶排列以及右側(cè)數(shù)據(jù)符 偶 排列 。 這樣十個(gè)數(shù)字將有 30 種 編 碼 ,數(shù)據(jù)字符的編碼圖案也有三十種,至于從這 30 個(gè)數(shù)據(jù)字 符中選哪十個(gè)字符要視具體情況而定。 在這里所謂的奇或偶是指所含二進(jìn)制 “1” 的個(gè)數(shù)為偶數(shù)或奇數(shù) 2。2.1 EAN-13 碼的格式EAN 條形碼有兩個(gè)版本 , 一 個(gè) 是 13 位 標(biāo) 準(zhǔn) 條 碼 (EAN-13 條 碼 ) , 另 一 個(gè) 是 8 位 縮 短 條 碼 (EAN-8 條 碼 ) 。 EAN-13條碼由代表 13 位數(shù)字碼的條碼符號(hào)組成, 如圖 1 所示 1。2EAN-13 條形碼簡(jiǎn)介一維條碼主要有 EAN 和 UPC 兩 種 , 其 中 EAN 碼 是 我 國(guó) 主要采取的編碼標(biāo)準(zhǔn)。 EAN 是歐洲物品條碼 (European Article圖 1 EAN-13 碼的格式前 2 位 ( F1F2 , 歐 共 體 12 國(guó) 采 用 ) 或 前 3 位 (F1F3,其他國(guó)家采用) 數(shù)字為國(guó)家或地區(qū)代碼 , 稱為前綴碼或前綴 的 英 文 縮 寫(xiě) , 是以消費(fèi)資料為 使 用 對(duì) 象 的Number Bar Code)國(guó)際統(tǒng)一商品代碼。 只要用條形碼閱讀器掃描該條碼, 便可以了解該商品的名稱、 型號(hào)、 規(guī)格、 生產(chǎn)廠商、 所屬國(guó)家或地區(qū) 等豐富信息。EAN 通用商品條碼是模塊組合型條碼 , 模塊是組成條碼 的最基本寬度單位 , 每個(gè)模塊的寬 度為 0.33 毫 米 。 在 條 碼 符 號(hào)中, 表示數(shù)字的每個(gè)條碼字符均由兩個(gè)條和兩個(gè)空組成, 它 是多值符號(hào)碼的一種, 即在一個(gè)字符中有多種寬度的條和空參 與編碼。 條和空分別由 14 個(gè)同一寬度的深、 淺顏色的模塊組 成, 一個(gè)模塊的條表示二進(jìn)制的 “1”, 一個(gè)模塊的空表示二進(jìn)號(hào) 。 例如:我國(guó)為 690, 日本為 49*, 澳大利亞為 93* 等( 其中的 “*” 表示 09 的任意數(shù)字) 。 前 綴 后 面 的 5 位 (M1M5)或 4 位 (M1M4) 數(shù)字為商品制造商的代碼, 是由該國(guó)編碼管 理局審查批準(zhǔn)并登記注冊(cè)的。 廠商代碼后面的 5 位 (I1I5) 數(shù) 字為商品代碼或商品項(xiàng)目代碼, 用以表示具體的商品項(xiàng)目, 即 具有相同包裝和價(jià)格的同一種商品。 最后一位數(shù)字為校驗(yàn)碼, 用以提高數(shù)據(jù)的可靠性和校驗(yàn)數(shù)據(jù)輸入的正確性, 校驗(yàn)碼的數(shù) 值按國(guó)際物品編碼協(xié)會(huì)規(guī)定的方法計(jì)算。2.2 EAN-13 條形碼的構(gòu)成EAN-13 條形碼的構(gòu)成如圖 2 所示。制的“0”, 每個(gè)條碼字符共有 7 個(gè)模塊。 即一個(gè)條碼字符條空寬度之和為單位元素的 7 倍, 每個(gè) 字符含條或空個(gè)數(shù) 各 為 2,相鄰元素如果相同, 則從外觀上合并為一個(gè)條或空, 并規(guī)定每 個(gè)字符在外觀上包含的條和空的個(gè)數(shù)必須各為 2 個(gè) , 所 以 EAN 碼是一種 (7, 2) 碼。圖 2 典型 EAN-13 條形碼的構(gòu)成EAN 條碼字符包括 09 共 10 個(gè)數(shù)字字符,但對(duì)應(yīng)的每個(gè)(1) 左、 右側(cè)空白: 沒(méi)有任何印刷符號(hào), 通常是空白, 位于條碼符號(hào)的兩側(cè)。 用以提示閱讀, 準(zhǔn)備掃描條碼符號(hào), 共有18 個(gè)模塊組成 (其中左側(cè)空白不得少于 9 個(gè)模塊寬度), 一般 左側(cè)空白 11 個(gè)模塊, 右側(cè)空白 7 個(gè)模塊。(2) 起始符: 條形碼符號(hào)的第一位字符是起始符, 它特殊 的條空結(jié)構(gòu)用于識(shí)別條形碼符號(hào)的開(kāi)始。 由 3 個(gè)模塊組成。(3) 左側(cè)數(shù)據(jù)符: 位于中間分隔符左側(cè), 表示一定信息的 條碼字符, 由 42 個(gè)模塊組成。(4) 中間分隔符: 位于條碼中間位置的若干條與空, 用以 區(qū)分左、 右側(cè)數(shù)據(jù)符, 由 5 個(gè)模塊組成。(5) 右側(cè)數(shù)據(jù)符: 位于中間分隔符右側(cè), 表示一定信息的 條碼字符, 由 35 個(gè)模塊組成。(6) 條碼校驗(yàn)符: 表示校驗(yàn)碼的條碼字符, 用以校驗(yàn)條碼 符號(hào)的正確與否, 由 7 個(gè)模塊組成。(7) 終止符: 條形碼符號(hào)的最后一位字符是終止符, 它特 殊的條空結(jié)構(gòu)用于識(shí)別條形碼符號(hào)的結(jié)束。 由 3 個(gè)模塊組成。一個(gè)條形碼圖案是數(shù) 條黑色和白色線條組成 , 如 圖 3 所 示。表 1EAN-13 編碼出特點(diǎn)。 前置符與左側(cè)六位字符的奇偶排列組合方式的對(duì)應(yīng)關(guān)系見(jiàn)表 2, 實(shí)際上由表 2 這種編碼規(guī)定可看出, F1 與這種組合 方式是一一對(duì)應(yīng)固定不變的 。 例 如 : 我 國(guó) 的 國(guó) 別 識(shí) 別 碼 為 “ 690” , 因此它的前置符為 “ 6” , 左 側(cè)數(shù)據(jù)符的奇偶排列為 3,“E” 表示偶字符, “O” 表示奇字符?!癘EEEOO”表 2 左側(cè)數(shù)據(jù)符奇偶排列結(jié)合方式圖 3 條形碼圖案實(shí)例圖案分成五個(gè)部分, 從左至右分別為: 起始部分、 第一數(shù)據(jù)部分、 中間部分、 第二數(shù)據(jù)部分和結(jié)束部分。(1) 起始部分: 由 11 條線組成, 從左至右分別是 8 條白 線, 一條黑線, 一條白線和一條黑線。(2) 第一數(shù)據(jù)部分: 由 42 條線組成, 是按照一定的算法 形成的, 包含了左側(cè)數(shù)據(jù)符 (d1d6) 這些數(shù)字的信息。(3) 中間部分: 由 5 條線組成, 從左到右依次是白線, 黑線, 白線, 黑線, 白線。(4) 第二數(shù)據(jù)部分: 由 42 條線組成, 是按照一定的算法 形成的, 包含了右側(cè)數(shù)據(jù)符 (d7d12) 這些數(shù)字的信息。2.4 EAN-13 條形碼的校驗(yàn)方法校驗(yàn)碼的主要作用是防止條形碼標(biāo)志因印刷質(zhì)量低劣或包 裝運(yùn)輸中引起標(biāo)志破損而造成掃描設(shè)備誤讀信息。 作為確保商 品條形碼識(shí)別正確性的必要手段, 條形碼用戶在標(biāo)志設(shè)計(jì)完成 后, 代碼的正確與否直接關(guān)系到用戶的自身利益。 對(duì)代碼的驗(yàn) 證, 校驗(yàn)碼的計(jì)算是標(biāo)志商品質(zhì)量檢驗(yàn)的重要內(nèi)容之一, 應(yīng)該 謹(jǐn)慎嚴(yán)格, 需確定代碼無(wú)誤后才可用于產(chǎn)品包裝上。下面是 EAN-13 條形碼的校驗(yàn)碼驗(yàn)算方法, 步驟如下 3:(1) 以未知校驗(yàn)位為第 1 位, 由右至左將各位數(shù)據(jù)順序排 隊(duì) (包括校驗(yàn)碼)。(2) 由第 2 位開(kāi)始, 求出偶數(shù)位數(shù)據(jù)之和, 然后將和乘以3, 得積 N1。(3) 由第 3 位開(kāi)始, 求出奇數(shù)位數(shù)據(jù)之和, 得 N2。(4) 將 N1 和 N2 相加得和 N3。(5) 用 N3 除以 10, 求得余數(shù), 并以 10 為模, 取余數(shù)的補(bǔ) 碼, 即得校驗(yàn)位數(shù)據(jù)值 C。結(jié)尾部分:由 11 條線組成,從左至右分別是一條黑 (5)線, 一條白線和一條黑線, 8 條白線。2.3 EAN-13 的編碼規(guī)則EAN-13 的編碼是由二進(jìn)制表示的 。 它 的 數(shù) 據(jù) 符 、 起 始 符、 終止符、 中間分隔符編碼見(jiàn)表 1。左側(cè)數(shù)據(jù)符有奇偶性, 它的奇偶排列取決于前置符, 所謂 前置符是國(guó)別識(shí)別碼的第一 位 F1 , 該位以消影的形式隱含在 左側(cè)六位字符的奇偶性排列中, 這是國(guó)際物品編碼標(biāo)準(zhǔn)版的突(6) 比較第 1 位的數(shù)據(jù)值與 C 的大小, 若相等, 則譯碼正確, 否則進(jìn)行糾錯(cuò)處理。例如, 設(shè) EAN-13 碼中數(shù)字碼為 6901038100578 ( 其中校 驗(yàn)碼值為 8), 該條碼字符校驗(yàn)過(guò)程為: N1=3 (7+0+1+3+1+9)=63, N2=5+0+8+0+0+6=19, N3=N1+N2=82, N3 除以 10 的余數(shù)為 2, 故 C=10-2=8, 譯碼正確。3EAN-13 條形碼的生成條形碼的生成方法如下 3:(1) 由 d0 根據(jù)表 3 產(chǎn)生和 d1d6 匹配的字母碼, 該字母碼 有 6 個(gè)字母組成, 字母限于 A 和 B。表 3 d0 映射表進(jìn)行搭配結(jié)果為 9A、 0B、 1B、 0B、 3A、 8A, 查表 4 得第一部分?jǐn)?shù)據(jù)的編碼分別為 0001011、 0100111、 0110011、 0100111、0111101、 0110111; d7d12 和 C 進(jìn)行搭配結(jié)果為 1C、 0C、 0C、5C、 7C、 8C, 查表 4 得第二 部分?jǐn)?shù)據(jù)的編碼分別為 1100110、1110010、 1110010、 1001110、 1000100、 1001000。條形碼識(shí)別44.1 條碼識(shí)別的基本原理EAN-13 是一種 (7, 2) 碼, 即每個(gè)字符的總寬度為 7 個(gè)模 塊寬, 交替由兩個(gè)條和兩個(gè)空組成, 而每個(gè)條空的寬度不超過(guò)4 個(gè)模塊, 如圖 4 所示。(2) 將 d1d6 和 d0 產(chǎn)生的字母碼按位進(jìn)行搭配, 來(lái)產(chǎn)生一個(gè)數(shù)字-字母匹配對(duì)。 并通過(guò)查表 4 生成條形碼的第一數(shù)據(jù)部 分。圖 4 EAN-13 條碼寬度的定義圖 4 中 C1, C2, C3, C4 表示當(dāng)前字符中四個(gè)相鄰條、 空的寬度, T 是一個(gè)字符的寬度 , 滿足: 1Ci4, Ci 為整數(shù), i=表 4數(shù)字 字母映射表41, 2, 3, 4; 且 T=Ci=7。i=1用 n 表示當(dāng)前字符單位模塊的寬度 , 則 n=T/7。 令 mi=Ci/n, i=1, 2, 3, 4 。 由 m1, m2, m3, m4 的值可以得到編碼。 例 如 : 若 m1=1, m2=3, m3=1, m4=2, 且條碼的排列 為 條 空 條 空, 則可知當(dāng)前字符的編碼為 1000100, 是右側(cè)偶字符 7。 若 m1=3, m2=1, m3=1, m4=2, 且條碼的排列為空 條 空 條, 則可知當(dāng)前字符的編碼為 0001011, 是左側(cè)偶字符 9。由于條碼印刷和圖像采集設(shè)備的限制 , 在圖像采 集 時(shí) 邊 緣 部分還存在著半像素問(wèn)題, 實(shí)際掃描后得到的圖像會(huì)出現(xiàn)一定 程度的邊緣模糊, 尤其當(dāng)條碼密度較大, 條空間距較小時(shí)邊緣 模糊更為明顯。 邊緣出現(xiàn)模糊時(shí), 將導(dǎo)致尋找條空邊緣時(shí)產(chǎn)生 一定偏差, 當(dāng)這個(gè)偏差超過(guò)半個(gè)模塊寬度時(shí) , 便會(huì)出現(xiàn)誤碼。 如果再考慮到流通過(guò)程中磨損、 水漬浸泡等因素引起的圖像缺 陷, 在這種情況下如果用邊緣檢測(cè)的方法確定條空序列會(huì)大大 降低條碼的識(shí)別率。 本文采用的方法為: 以起始模塊的中心為 起始中心、 一個(gè)單位模塊寬度為間距來(lái)檢測(cè)條空序列。4.2 條形碼掃描方向的判別為了能夠正確地解譯條形碼, 在解譯條形碼符號(hào)所表示的 數(shù)據(jù)之前, 需要先進(jìn)行條形碼掃描方向的判別, EAN-13 的起(3) 將 d7d12 和 C 進(jìn)行搭配, 并通過(guò)查表 4 生成條形碼的第二數(shù)據(jù)部分。(4) 按照兩部分?jǐn)?shù)據(jù)繪制條形碼 : 1 對(duì)應(yīng)黑線, 0 對(duì)應(yīng)白 線。例如, 假設(shè)一個(gè)條形碼的數(shù)據(jù)碼為: 6901038100578。 d0=6, 對(duì)應(yīng)的字母碼為 ABBBAA, d1d6 和 d0 產(chǎn) 生 的 字 母 碼 按 位始字符和終止字符的編碼結(jié)構(gòu)都是“101”, 只能通過(guò)它進(jìn)行碼制的判別 (對(duì)于多種條碼識(shí)別的時(shí)候, 其它碼制的條碼起始字符和終止字符都不是 “101”), 但 是不能通過(guò)起始 字 符 和 終 止 字符來(lái)判別它的掃描方向。 由 EAN-13 碼的編碼結(jié)構(gòu)可知, 它 的右側(cè)字符為全偶, 而左側(cè)字符的奇偶順序由前置符決定, 沒(méi) 有 全 偶 的 , 從 而 可 以 利 用 此 原 理 來(lái) 確 定 EAN-13 碼 的 掃 描 方 向。 如果掃描到的前 6 個(gè)字符為全偶, 即為反向掃描, 否則為 正向掃描。4.3 條形碼字符的判別方法從上述條碼識(shí)別原理知, 它的邏輯值可以通過(guò)和單位模塊 比較判別。 這種方法對(duì)于印刷質(zhì)量很好、 沒(méi)有缺陷的條碼很適 用, 但是對(duì)于條碼印刷質(zhì)量存在缺陷, 則不能正確地解譯。 因 此本文提出了一種解決此類問(wèn)題的較好方法, 即相似邊距離測(cè) 量方法。表 6 EAN-13 條碼字符值與歸一化值的對(duì)應(yīng)關(guān)系(反向譯碼)表 7 和表 8 分別為正向譯碼和反向譯碼時(shí) EAN-13 條 碼 編碼與歸一化值的對(duì)應(yīng)關(guān)系。表 7EAN-13 條碼編碼與歸一化值的對(duì)應(yīng)關(guān)系(正向譯碼)圖 5 條碼字符寬度示圖相似邊距離就是相鄰條和空的寬度之和 , 如圖 5 中的 T1,T2, 定義 T1, T2 的歸一化值 AT1 和 AT2 如下:表 8EAN-13 條碼字符值與歸一化值的對(duì)應(yīng)關(guān)系(反向譯碼)表 5 列出了正向譯碼時(shí) EAN-13 條碼字符值與歸一化值 的對(duì)應(yīng)關(guān)系,表 6 列出了反向譯碼時(shí) EAN-13 條(AT1, AT2)碼字符值與歸一化值 (AT1, AT2) 的對(duì)應(yīng)關(guān)系, 其中 “E” 表示偶字符, “O” 表示奇字符。表 5 EAN-13 條碼字符值與歸一化值的對(duì)應(yīng)關(guān)系(正向譯碼)由表 58 可以看出, 條形碼編碼和歸一化值在多數(shù)情況下呈現(xiàn)一一對(duì)應(yīng)的關(guān)系, 只要確定了歸一化值就能確定字符值 , 但是有四種情況例外。 以正向譯碼為例, 在表 6 中, 左側(cè)奇字 符和右側(cè)偶字符 1, 7 歸一化值均為 44, 左側(cè)奇字 符 和 右 側(cè) 偶 字符 2, 8 歸一化值均為 33, 左側(cè)偶字符 1, 7 歸一化值均為 34, 左側(cè)偶字符 2, 8 歸一化值均為 43, 這幾種情況可 以 根 據(jù) 字 符 的條空寬度 C1, C2, C3, C4 進(jìn)一步判別。 表 9 為 1728 字 符 標(biāo)準(zhǔn)條空寬度值, 其中字符上有“-” 的對(duì)應(yīng)條, 否則對(duì)應(yīng)空。或 T2 哪個(gè)處在臨界值, 修改它的歸一化整數(shù)值 , 這樣可實(shí)現(xiàn)糾錯(cuò)。(2) 當(dāng)字符數(shù)據(jù)為 2、 8、 1、 7 時(shí) , 由于條碼寬度不精確 表 9 1728 字符標(biāo)準(zhǔn)條空寬度值導(dǎo)致誤碼,即 2 判成 8、 1 判成 7,或 反 之 。 分析這種誤碼相 對(duì)于校驗(yàn)位的差值有一定規(guī)律, 因此可利用此規(guī)律進(jìn)行糾錯(cuò) 。由 EAN-13 校驗(yàn)方法知: 當(dāng)偶數(shù)位上有 2 錯(cuò)譯成 8 或 1 錯(cuò)譯成7 時(shí), 計(jì)算得到的實(shí)譯值與校驗(yàn)值差-8 或 2, 反之 8 錯(cuò)譯成 2 或 7 錯(cuò)譯成 1 時(shí), 計(jì)算得到的實(shí)譯值與校驗(yàn)值差 8 或-2; 當(dāng)奇 數(shù)位上有 2 錯(cuò)譯成 8 或 1 錯(cuò)譯成 7 時(shí), 計(jì)算得到的實(shí)譯值與校 驗(yàn)值差-6 或 4, 反之, 8 錯(cuò)譯成 2 或 7 錯(cuò)譯成 1 時(shí), 計(jì)算得到 的實(shí)譯值與校驗(yàn)值差 6 或-4; 當(dāng)然別的字符譯錯(cuò)也可能出現(xiàn)這 些 差 值 , 但 幾 率 很 小 , 可 以 不 予 考 慮 。 這 樣若程序校驗(yàn)沒(méi)通 過(guò), 可加一個(gè)判斷, 根據(jù)差值判斷其屬于上述哪種情況, 找出 出錯(cuò)的字符并糾正。5 程序?qū)崿F(xiàn)5.1 應(yīng)用 Visual C+生成條形碼圖像5.11 創(chuàng)建工程文件(1) 打開(kāi) VC+ 6.0, 點(diǎn)擊 “File” 菜單的 “New” 菜單項(xiàng),根據(jù)表 9 中各字符條空寬度的特點(diǎn)可知: 對(duì)于左側(cè)奇字右 側(cè) 偶 字 符 1 和 7, 可 通 過(guò) 比 較 C3 與 C4 來(lái) 判 別 , 若 C3符、C4, 則為字符 1, 反之為 7; 對(duì)于左側(cè)奇字符、 右側(cè)偶字符 2和 8, 可通過(guò)比較 C2 與 C3 來(lái)判別, 若 C2C3 , 則為字符 8, 反 之為 2; 對(duì)于左 側(cè) 偶 字 符 1 和 7, 可 通 過(guò) 比 較 C1 與 C2 來(lái) 判 別, 若 C1C2, 則為字符 7, 反之為 1; 對(duì)于左側(cè)偶字符 2 和8, 可通過(guò)比較 C2 與 C3 來(lái)判別,為 8。若 C2C3,則為字符 2,反之采用相似邊距離歸一化的條碼識(shí)別方法, 當(dāng)條碼質(zhì)量存在缺陷使得實(shí)際測(cè)量值和條碼應(yīng)該具有的理論值有較大偏差時(shí) , 仍能正確解譯。 例如對(duì)于左側(cè)奇字符 “0” 進(jìn)行譯碼, 該 字符 的四個(gè)元素寬度的理論值應(yīng)該是 C1=3, C2=2, C3=1, C4=1, 但 是由于印刷等原因的影響 , 實(shí)際上測(cè)量值是 C1=2.5, C2=2.5,C3=0.8, C4=1.2。 如果只根據(jù)元素寬度的測(cè)量值進(jìn)行譯碼 , 那么這四個(gè)元素的寬度測(cè)量值四舍五 入 取 整 后 分 別 為 3、 3、 1、1, 從而造成譯碼錯(cuò)誤。 若采取相似邊距離歸一化的條碼識(shí)別 方法進(jìn)行譯碼, 此時(shí) T1=C1+C2=5, T2=C2+C3=3.3, T=7, AT1=5, AT2=3, 由表 7 知字符編碼為左側(cè)奇字符 “0” 。 可見(jiàn)利用相似 邊距離歸一化的條碼識(shí)別方法判別字符值, 可以得到比較滿意 的效果。4.4 糾錯(cuò)處理采用相似邊距離歸一化的譯碼方法能夠在一定程度上消除 條、 空誤差對(duì)譯碼識(shí)別的影響。 當(dāng)系統(tǒng)誤差特別是條碼印刷誤 差較大導(dǎo)致 T1、 T2 改變時(shí), 譯碼將出錯(cuò)。 因此譯碼軟件應(yīng) 具 有一定的糾錯(cuò)能力, 以減少條空寬度值不精確的影響, 提高條 碼識(shí)別率 1。 糾錯(cuò)主要從以下兩方面進(jìn)行:(1) 如果條碼字符的 T1 或 T2 在臨界位置, 當(dāng)條或空的寬 度有誤差時(shí), 就會(huì)導(dǎo)致 或 的整數(shù)值增 1 或減 1。 如果 AT1 和 AT2 中只有一個(gè)發(fā)生錯(cuò)誤, 則引起該字符的奇偶性、 字符值的 改變, 如果 AT1 和 AT2 都出錯(cuò) , 則引起該字符值的改變 , 但 奇偶性未變。 實(shí)際情況中第一種現(xiàn)象出現(xiàn)的概率比第二種情況在出現(xiàn)的界面 中 選 定欄 , 點(diǎn) 擊“ Projects”“ MFC APPWizard(exe)”, 工程文件名為 Generator。 按 “確定” 按紐, 進(jìn)入 MFCAPPWizard。(2) 在 MFC APPWizard 第 一 步 選 擇 Single document 文 檔 類型。 第二步和第三步按 默 認(rèn) 方 式 。 第 四 步 中 去 掉 “Docking” 前toolbar” 、 “Initial status bar” 、 “Printing and print preview面的 “”, 即不選該三項(xiàng)。 然后點(diǎn)擊 “Advanced ”, 在出現(xiàn)的界面中填寫(xiě) “File extension” 為 “bmp”。 第五步和第六步按 默認(rèn)方式。 最終生成工程 Generator。(3) 修改菜單。 增加 操作 菜單; 刪除 “編輯” 菜單; 修改“幫助” 菜單。 參見(jiàn)工程文件。( 4) 插入兩個(gè)對(duì)話框 (IDD_WELCOME、IDD_GIVECODE)并修改這兩個(gè)對(duì)話框。 參見(jiàn)工程文件。類代碼編制5.1.2(1) 在 Generator 工程中增加新類 CWelcomeDlg, 類 型 為Generic Class。(2) 在 Generator 工程中增加新類 CGiveCodeDlg, 類 型 為Generic Class。(3) 點(diǎn)擊 “View” 菜單的 “ClassWizard” 菜單項(xiàng), 在出現(xiàn) 的界面中, 選擇 Class Name 為 “CGeneratorView”, 增加成員函 數(shù), Object Ids、 Messages、 Member functions 分別為:1) ID_EDIT_GIVE、 COMMAND、 ON_ID_EDIT_GIVE:COMMAND;2) ID_FILE_SAVE、 COMMAND、 ON_ID_FILE_SAVE。(4) 給類 GeneratorView 添加成員變量, 參見(jiàn)源程序大得多, 因此本文主要對(duì)第一種情況進(jìn)行糾錯(cuò)。由表 1 和表 2可知, 右側(cè)字符為全偶字符排列, 左側(cè)字符有 10 種奇偶排列,這 11 種排列構(gòu)成有效的排列集合, 把所譯的字符串奇偶 排列 與有效的奇偶排列對(duì)比, 判斷是否為排列集合成員。 若是, 所 譯的字符串不作任何 處理 ; 若不是, 所譯碼出錯(cuò), 并 找 出 T1數(shù) , Object Ids、 Messages、 Member functions 分 別 為 :CmainFrame、 WM_CREATE、 ON_WM_CREATE;(5) 打開(kāi)文件 MainFrame.cpp, 增加 “#include WelcomeDlg.h”, 增加代碼, 參見(jiàn)源程序。(6) 打開(kāi) RecognizorView.cpp 源文件, 輸入成員函 數(shù) , 參 見(jiàn)源程序。(7) 編譯、 連接、 運(yùn)行。6結(jié)語(yǔ)介紹了一維條碼格式、 編碼規(guī)則等技術(shù)特點(diǎn), 以及條碼圖 像生成與識(shí)別的基本原理, 并用 Visual C+實(shí)現(xiàn)了條碼圖像生 成和具有一定糾錯(cuò)能力的條碼識(shí)別軟件。 盡管關(guān)于一維條碼識(shí) 別的設(shè)備很多, 但這些都是針對(duì)于光電識(shí)別的。 光電識(shí)別設(shè)備 只能識(shí)別印刷質(zhì)量好的條碼, 而通過(guò)圖像處理技術(shù)辨識(shí)一維條 碼能對(duì)質(zhì)量差的條碼達(dá)到好的識(shí)別效果, 因此它明顯優(yōu)于光電 識(shí)別設(shè)備。參考文獻(xiàn)1 熊 小 寒 條形碼技術(shù)與標(biāo)準(zhǔn)化 M 天 津 : 天 津 大 學(xué) 出 版 社, 19922 李金哲等 條形碼自動(dòng)識(shí)別技術(shù) M 遼寧: 科學(xué)技術(shù)出版 社, 19933 蘇彥華等 數(shù)字圖像識(shí)別技術(shù)典型案例 M . 北京:人民郵 電出版社, 2004(收 稿 日 期 : 2009-12-26)決戰(zhàn) CeBIT 2010 科士達(dá)全線產(chǎn)品強(qiáng)勢(shì)出擊3 月 2 日, 全球規(guī)模領(lǐng)先的 ICT 產(chǎn)業(yè)盛會(huì)2010 年 漢諾 威消費(fèi)電子、 信息及通信博覽會(huì) (CeBIT 2010) 在德國(guó)漢諾威展 覽中心拉開(kāi)帷幕, 來(lái)自全球 個(gè)國(guó)家和地區(qū)的 000 多家公司 參加了本屆展會(huì), 其中, 連續(xù)多年參加本展會(huì)的中國(guó)大陸本土 UPS 行業(yè)旗艦品牌廠商 深圳科士達(dá)科技股份有限公司, 再 次以高規(guī)格展臺(tái)形象、 全系列具有業(yè)界領(lǐng)先水準(zhǔn)的創(chuàng)新型產(chǎn)品 吸引了來(lái)自各個(gè)國(guó)家和地區(qū)的電源采購(gòu)商, 在開(kāi)幕當(dāng)日即成為 本屆展會(huì)倍受矚目的中國(guó)展商之一。以 “發(fā)展 挑 戰(zhàn)ICT 為您成就更好的事業(yè) 和生活 ” 為 主 題的本屆展會(huì), 將從 IT 和通訊 (ICT) 發(fā)展趨勢(shì)出發(fā), 以商 業(yè) 解決方案、 ICT 技術(shù)基礎(chǔ)設(shè)備、 未來(lái)科技等角度 , 為 全 球 業(yè) 界 展現(xiàn)最新科技成果。 開(kāi)幕當(dāng)日, 共有 300 多家中國(guó)大陸本土企 業(yè)亮相, 展出內(nèi)容集中在電子消費(fèi)/數(shù)碼產(chǎn)品、 衛(wèi)星導(dǎo)航、 汽車 解決方案 、 通訊類產(chǎn)品等 方面 , 而臺(tái)灣則有包 括華 碩 、 宏 碁 、 微星在內(nèi)的 200 多家企業(yè)參展, 此外, 本屆展會(huì)還將有包括德 國(guó) 總 理 梅 克 爾 、 西班牙首相薩 帕 特羅 , 以 及 微 軟 、 英 特 爾 、 SAP、 戴 爾 、 IBM、 Google、 Skype、 摩 特 羅 拉 、 阿 爾 卡 特 等 政 界和國(guó)際知名企業(yè)的高階主管將出席。Generatorview.h。(5) 打 開(kāi) 文 件 GeneratorView.h, 增 加 代 碼 , 參 見(jiàn) 源 程 序 。打開(kāi)文件 GeneratorView.cpp, 增加代碼, 參見(jiàn)源程序。(6) 點(diǎn)擊 “View” 菜單的 “ClassWizard” 菜單項(xiàng), 在出現(xiàn) 的 界 面 中 , 選 擇 Class Name 為 “CWelcomeDlg” , 增 加 成 員 函 數(shù) , Object Ids、 Messages、 Member functions 分 別 為 : IDOK、 BN_CLICKED、 OnOK ()。(7) 點(diǎn)擊 “View” 菜單的 “ClassWizard” 菜單項(xiàng), 在出現(xiàn)的 界 面 中 ,選 擇 Class Name 為 “ CMainFrame” ,增 加 成 員 函數(shù) , Object Ids、 Messages、 Member functions 分 別 為 :CmainFrame、 WM_CREATE、 OnCreate()。(8) 打開(kāi)文件 MainFrame.cpp, 增加 “#

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論