




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、 太原理工大學(xué)畢業(yè)設(shè)計(jì)(論文)用紙 緒論1.1 論文研究的背景及意義1.1.1 論文研究的背景條形碼技術(shù)起源于二次大戰(zhàn)以后。在40年代后期,美國(guó)JoewoodLand工程師就開始研究用條碼表示食品項(xiàng)目及相應(yīng)的自動(dòng)識(shí)別設(shè)備,并于1949年獲得了環(huán)形條碼的專利。1970年,美國(guó)開始在超市中推廣使用UPC碼。直到1973年,UCC (美國(guó)統(tǒng)一編碼協(xié)會(huì))實(shí)現(xiàn)了UPC碼制的標(biāo)準(zhǔn)化并建立UPC條碼系統(tǒng)。1974年,美國(guó)國(guó)防部采用Interme公司推出的39碼作為軍用條形碼碼制。由于39碼是第一個(gè)字母、數(shù)字式的條形碼,所以被廣泛應(yīng)用于工業(yè)領(lǐng)域。1977年,歐洲共同體基于UPC-12碼,制定出EAN碼,將其用
2、于歐洲物品編碼。并正式成立了EAN (歐洲物品編碼協(xié)會(huì)),后來發(fā)展為IAN (國(guó)際物品編碼協(xié)會(huì))。條碼技術(shù)的發(fā)源地是在美國(guó),然而應(yīng)用最廣泛的確是在歐洲。條碼技術(shù)在亞洲的興起比較晚,相比較而言,日本是亞洲最早使用條碼的國(guó)家,應(yīng)用和發(fā)展也是最快的。早在1978年,日本加入EAN,然而10年后,日本已成為EAN組織的最大用戶。在我國(guó),直到1988年底,成立“中國(guó)物品編碼中心”?!爸袊?guó)物品編碼中心”于1991年7月1日代表中國(guó)加入IAN。推動(dòng)了條碼技術(shù)開發(fā)和推廣應(yīng)用工作的發(fā)展。在曰常生活中最常見的是條形一維碼,而隨著計(jì)算機(jī)的發(fā)展,針對(duì)一維碼存儲(chǔ)容量不足等缺點(diǎn),產(chǎn)生了二維碼,并廣泛運(yùn)用于生活。1.1.2
3、 課題研究的意義目前,很難在實(shí)際應(yīng)用中找到一套比較完善的、適合中國(guó)實(shí)際需要的二維碼應(yīng)用系統(tǒng)。很多公司在應(yīng)用二維碼系統(tǒng)時(shí),都存在“硬件投入較大、系統(tǒng)過于龐大、系統(tǒng)架構(gòu)復(fù)雜,不適合修改調(diào)整或穩(wěn)定性及實(shí)用性不強(qiáng)”等問題。目前,識(shí)別二維碼的設(shè)備基本上采用專用設(shè)備,即使采用手持識(shí)別設(shè)備帶來了便捷性,但仍需要專用的計(jì)算機(jī)設(shè)備完成數(shù)據(jù)采集和處理,這種方式已經(jīng)成了阻礙二維碼應(yīng)用系統(tǒng)的推廣的重要因素。其中本系統(tǒng)的研究意義:1、通過分析二維碼編碼、解碼和糾錯(cuò)步驟,提出適合中國(guó)應(yīng)用的二維碼應(yīng)用系統(tǒng)的架構(gòu)方案。 2、設(shè)計(jì)符合實(shí)際需求的系統(tǒng)內(nèi)部功能模塊,使該系統(tǒng)的友善度、穩(wěn)定性、使用度、識(shí)別率以及識(shí)別速度都達(dá)到一個(gè)比較
4、不錯(cuò)的水平,適合中國(guó)市場(chǎng)。 3、本系統(tǒng)直接將識(shí)別系統(tǒng)內(nèi)置在智能手機(jī)進(jìn)行條碼的識(shí)別處理,極大地節(jié)省系統(tǒng)成本,且由于手機(jī)可隨時(shí)、隨地、隨身攜帶,給用戶提供極大的便捷性。 4、通過 3G 網(wǎng)絡(luò),進(jìn)行數(shù)據(jù)傳輸和數(shù)據(jù)采集,節(jié)省了傳統(tǒng)條碼識(shí)別系統(tǒng)采用專用計(jì)算機(jī)進(jìn)行數(shù)據(jù)處理的開銷,使得系統(tǒng)的運(yùn)行更加方便和有效。5、由于現(xiàn)代社會(huì)當(dāng)中對(duì)于手機(jī)以及其他電子設(shè)備的依賴性,以及二維碼信息傳遞的便捷性,android手機(jī)的普及率,還有社會(huì)發(fā)展的快速性,制作一款簡(jiǎn)單實(shí)用的android app,對(duì)于市場(chǎng)以及時(shí)代發(fā)展都有很重要的意義。1.2 課題主要目的本文講述了“針對(duì)中國(guó)漢字編碼,將一種符合 QR CODE 標(biāo)準(zhǔn)的二維碼
5、軟件識(shí)別系統(tǒng),在智能手機(jī)上的設(shè)計(jì)和實(shí)現(xiàn)”。該二維碼軟件系統(tǒng),在能完成基本采集識(shí)別功能的同時(shí),增加了糾錯(cuò)處理、圖像矯正、多國(guó)語轉(zhuǎn)換、網(wǎng)絡(luò)傳輸?shù)裙δ埽瑵M足各種用戶的需求。該產(chǎn)品可以應(yīng)用在多種商務(wù)應(yīng)用中,只要讓該系統(tǒng)鏈接不同的網(wǎng)絡(luò)服務(wù)器就可以實(shí)現(xiàn)不同的業(yè)務(wù)處理,使得其市場(chǎng)使用范圍增加。1.3 本系統(tǒng)的開發(fā)環(huán)境本系統(tǒng)開發(fā)環(huán)境和工具:開發(fā)平臺(tái):Microsoft Windows 7 開發(fā)環(huán)境:eclipse android專版開發(fā)工具:android 4.4 SDK 開發(fā)語言:java,android 1.4 本課題的主要成果及論文結(jié)構(gòu)1.4.1 主要成果本系統(tǒng)主要是基于zxing二維碼掃描系統(tǒng)為基礎(chǔ),
6、設(shè)計(jì)屬于我們自己的二維碼識(shí)別與生成系統(tǒng),功能上實(shí)現(xiàn)了二維碼的生成與解碼,并可以在真機(jī)上正常運(yùn)行。功能簡(jiǎn)單實(shí)用。1.4.2 論文的主要結(jié)構(gòu) 本文主要結(jié)構(gòu)是綜述,設(shè)計(jì)總體概述,系統(tǒng)結(jié)構(gòu)詳解,成果展示,結(jié)論,致謝,外文文獻(xiàn)等部分。綜述主要內(nèi)容是介紹國(guó)內(nèi)外二維碼發(fā)展的現(xiàn)狀以及本系統(tǒng)的發(fā)展現(xiàn)狀;系統(tǒng)的結(jié)構(gòu)主要是配置安卓虛擬機(jī)環(huán)境,導(dǎo)入zxing二維碼識(shí)別的源碼,配置相關(guān)類庫(kù),調(diào)試,以及修改源碼簡(jiǎn)化zxing類庫(kù)的整個(gè)部分,還有增加二維碼生成的部分文件;成果展示是展示本系統(tǒng)完成的結(jié)果,以及可以接下來升級(jí)下一版本的需求或者功能;致謝,有關(guān)對(duì)于完成本論文整個(gè)部分給予我支持和幫助的工作機(jī)構(gòu)以及個(gè)人致以感謝;參考
7、文獻(xiàn)是完成本次論文一畢業(yè)設(shè)計(jì)所參考的各種圖書和論文等文獻(xiàn)資料;外文文獻(xiàn)是相關(guān)文獻(xiàn)的翻譯。其中還有有關(guān)測(cè)試的部分,測(cè)試和運(yùn)維是一個(gè)長(zhǎng)期的部分,伴隨著一個(gè)系統(tǒng)的很長(zhǎng)時(shí)間,據(jù)統(tǒng)計(jì)一個(gè)系統(tǒng)的整個(gè)生命周期有80%的時(shí)間都是維護(hù),成本也是相當(dāng)高的,幾乎是整個(gè)系統(tǒng)預(yù)算的一半以上。1.5 本章小結(jié) 本章簡(jiǎn)要描述了本課題研究的目的、意義,以及論文的總體組織。下面會(huì)結(jié)合系統(tǒng)需求分析提出總體設(shè)計(jì)。2 相關(guān)技術(shù)分析2.1 android技術(shù)Android是一種以linux為基礎(chǔ)的開放源碼操作系統(tǒng),主要用于編寫手持設(shè)備.目前尚未有統(tǒng)一的中文名稱,中國(guó)大陸地區(qū)較多人使用安卓(非官方)或安致(官方)的名稱.Android草
8、紙系統(tǒng)最初由Andy Rubin 開發(fā),最初主要支持手持設(shè)備.2005年由google收購(gòu)注資,并聯(lián)合多家制造商組成開發(fā)手機(jī)聯(lián)盟開發(fā)改良后,逐漸擴(kuò)展到平板電腦及其他領(lǐng)域上.2010年末數(shù)據(jù)顯示,僅正式推出兩年的Android操作系統(tǒng)已經(jīng)超越稱霸十年的諾基亞symbian系統(tǒng),粵劇最受歡迎的智能手機(jī)平臺(tái).Android的主要競(jìng)爭(zhēng)對(duì)手是同處于手持設(shè)備市場(chǎng)的蘋果IOS,微軟的WP7以及RIM的Blackberry OS. 2007年11月5日,google與其他33家手機(jī)制造商(包括摩托羅拉,HTC,三星,LG)、手機(jī)晶片供應(yīng)商、軟硬件供應(yīng)商、電信業(yè)者聯(lián)合組成的開放手持裝置聯(lián)盟(簡(jiǎn)稱Open Han
9、dset Alliance),發(fā)布了名為Android的開放手機(jī)軟硬件平臺(tái)?,F(xiàn)今,OHA是由65間企業(yè)組成的商業(yè)聯(lián)盟,以為移動(dòng)裝置開放自由標(biāo)準(zhǔn)。在Android平臺(tái)公布一周后,google隨即發(fā)布了供開發(fā)者免費(fèi)自由下載,能在Windows、Mac OS X、 Linux多平臺(tái)上使用的Android軟件開發(fā)工具(Software Development Kit 簡(jiǎn)稱SDK)與相關(guān)文件。間隔數(shù)天,又在發(fā)布作業(yè)系統(tǒng)核心(kernel),與部分硬件驅(qū)動(dòng)程式的原始碼,充分展示了google欲將手機(jī)這個(gè)現(xiàn)代人不可或缺的工具推向開放的平臺(tái),讓開發(fā)者可以自由修改創(chuàng)造出符合用戶需求的手機(jī)應(yīng)用的決心。2008年9
10、月24日,T-Mobile收地公布第一臺(tái)Android手機(jī)(G1)。同日google放出了Android SDK 1.0 rc1。此版本的推出代表了開發(fā)者可以放心的使用API,而不必?fù)?dān)心會(huì)有太大的變動(dòng)。2009 年 10 月 26 日,又一個(gè)主要版本升級(jí)以創(chuàng)紀(jì)錄的速度放出。這次,大版本升級(jí)到了Android 2.1 “Eclair.” 2011年2月3日凌晨,谷歌正式發(fā)布了專用于平板電腦的Android 3.0 Honeycomb系統(tǒng)。這是首個(gè)基于Android的平板電腦專用操作。首款采用Android3.0系統(tǒng)的是MOTO XOOM 。該機(jī)是摩托羅拉移動(dòng)在2011年1月5日,在美國(guó)拉斯維加斯
11、 CES電子消費(fèi)展推出的旗下首款平板電腦。可以從版本看出android的系統(tǒng)在手機(jī)市場(chǎng)以很短的時(shí)間迅速崛起。也迅速得到眾廠商的認(rèn)可加盟,最后android 3.0推出很明顯的標(biāo)示的android系統(tǒng)進(jìn)入MID市場(chǎng)可以看出android將來一段時(shí)間的市場(chǎng)主要在手機(jī)和平板電腦市場(chǎng)。但是2010年5月19日,在2010 Google I/O大會(huì)上Google公司發(fā)布了它最新的產(chǎn)品Google TV。Google TV就是要將網(wǎng)絡(luò)和電視結(jié)合在一起,成為一套新的全家娛樂系統(tǒng)。 Android手機(jī)可以當(dāng)作Google tv的遙控器使用。 這說明google將全面進(jìn)軍物聯(lián)網(wǎng)時(shí)代,android可能成為物聯(lián)網(wǎng)
12、時(shí)代的主導(dǎo)系統(tǒng)。 未來Android會(huì)進(jìn)入各行各業(yè),發(fā)展前景無限光明。2.2 二維碼2.2.1 什么是二維碼 二維碼 (2-dimensional bar code),是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上) 分布的黑白相間的圖形記錄數(shù)據(jù)符號(hào)信息的。 在許多種類的二維條碼中,常用的碼制有:Data Matrix, Maxi Code, Aztec, QR Code, Vericode, PDF417, Ultracode, Code 49, Code 16K等。 1.堆疊式/行排式二維條碼,如,Code 16K、Code 49、PDF417(如下圖)等。 圖2.1 行排式二維碼圖2
13、.1 行排式二維碼 2.矩陣式二維碼,最流行莫過于QR CODE 二維碼的名稱是相對(duì)與一維碼來說的,比如以前的條形碼就是一個(gè)“一維碼”,它的優(yōu)點(diǎn)有:二維碼存儲(chǔ)的數(shù)據(jù)量更大;可以包含數(shù)字、字符,及中文文本等混合內(nèi)容;有一定的容錯(cuò)性(在部分損壞以后可以正常讀?。?;空間利用率高等。2.2.2 國(guó)外研究發(fā)展現(xiàn)狀國(guó)外對(duì)二維碼技術(shù)的研究開始于二十世紀(jì)八十年代。在二維碼符號(hào)表示技術(shù)研究方面,已研制出多種碼制,常見的有 PDF417,QR 碼,Code 49,Code 16K,Code One 等。這些二維碼的密度都比傳統(tǒng)的一維條碼有了較大的提高。 在二維碼設(shè)備開發(fā)研制、生產(chǎn)各個(gè)方面,國(guó)外的設(shè)備制造商生產(chǎn)的識(shí)
14、讀設(shè)備、符號(hào)生成設(shè)備,已廣泛應(yīng)用于各類二維碼應(yīng)用系統(tǒng)。二維碼作為一種全新的信息存儲(chǔ)、傳遞和識(shí)別技術(shù),自誕生之日起就得到了世界上許多國(guó)家的關(guān)注。2.2.3 國(guó)內(nèi)研究發(fā)展現(xiàn)狀1993 年,國(guó)內(nèi)開始對(duì)二維碼技術(shù)進(jìn)行研究。中國(guó)物品編碼中心對(duì)幾種常用的二維碼 PDF417,QR 碼,Data Matrix,Maxi Code,Code 49,Code 16K,Code One的技術(shù)規(guī)范進(jìn)行了翻譯和跟蹤研究。隨著我國(guó)經(jīng)濟(jì)和信息科技技術(shù)的不斷發(fā)展,國(guó)內(nèi)對(duì)二維碼這一新技術(shù)的需求與日俱增。 中國(guó)物品編碼中心在國(guó)家有關(guān)部門的大力支持下,對(duì)二維要碼技術(shù)的研究不斷深入。在消化國(guó)外相關(guān)技術(shù)資料的基礎(chǔ)上,制定了 GB/T
15、 17172-1997四一七條碼和 GB/T 18284-2000快速響應(yīng)矩陣碼。為了使二維碼技術(shù)能夠在證照管理 領(lǐng)域得到廣泛應(yīng)用,在國(guó)外應(yīng)用軟件平臺(tái)的基礎(chǔ)上,中國(guó)物品編碼中心率先開發(fā)了人像照片和指紋數(shù)據(jù)壓縮軟件。 隨著時(shí)間的推移、互聯(lián)網(wǎng)的迅猛發(fā)展,手機(jī)將成為人們獲取信息用的必備工具。2010 年,按官方統(tǒng)計(jì)數(shù)字,中國(guó)的手機(jī)用戶將達(dá)到 7.4 億,我國(guó)移動(dòng)電話用戶的龐大規(guī)模,為移動(dòng)增值服務(wù)的發(fā)展提供了堅(jiān)實(shí)的市場(chǎng)基礎(chǔ)。近年來我國(guó)移動(dòng)增值市場(chǎng)年成長(zhǎng)率高于 60%,規(guī)模不斷擴(kuò)大。與如此大的市場(chǎng)相比移動(dòng)增值業(yè)務(wù)種類較少,目前的業(yè)務(wù)遠(yuǎn)遠(yuǎn)滿足不了廣大消費(fèi)者的需求,擴(kuò)大增值業(yè)務(wù)的覆蓋面已經(jīng)成為當(dāng)務(wù)之急。 鑒
16、于此二維碼技術(shù)就可在移動(dòng)增值業(yè)務(wù)領(lǐng)域中發(fā)揮出不可替代的重要作用。2.2.4 國(guó)內(nèi)外發(fā)展對(duì)比分析對(duì)比國(guó)內(nèi)外二維碼產(chǎn)品,不難發(fā)現(xiàn):大部分二維碼系統(tǒng),都使用專用識(shí)別設(shè)備進(jìn)行數(shù)據(jù)采集。在這種情況下,要使產(chǎn)品有更廣闊的市場(chǎng),必須在功能的多元化、操作簡(jiǎn)單、識(shí)別速度快、可靠性強(qiáng)等方面做改進(jìn)。 本產(chǎn)品對(duì)傳統(tǒng)二維碼系統(tǒng)做了以下擴(kuò)展: 采用智能手機(jī)攝像頭采集二維碼圖像,采用攝像模式,可動(dòng)態(tài)連續(xù)采集、識(shí)別,加快解碼速度。 智能手機(jī)直接通過 3G 網(wǎng)絡(luò),與服務(wù)器進(jìn)行數(shù)據(jù)交互,無需采用專用計(jì)算機(jī)與專用條碼采集設(shè)備進(jìn)行數(shù)據(jù)處理。 針對(duì)手機(jī)攝像頭的特性,加入圖像矯正算法,提高識(shí)別率。2.3 QR碼的結(jié)構(gòu)與編碼理論2.3.1
17、 什么是QR CODE QR碼呈正方形,只有黑白兩色。在3個(gè)角落,印有較小,像回字的的正方圖案。這三個(gè)是幫助解碼軟件定位的圖案,使用者不需要對(duì)準(zhǔn),無論以任何角度拍攝,內(nèi)容仍可正確被讀取。 日本QR碼的標(biāo)準(zhǔn)JISX 0510在1999年1月發(fā)布,而其對(duì)應(yīng)的ISO國(guó)際標(biāo)準(zhǔn)ISO/IEC18004,在2000年6月獲得批準(zhǔn)。根據(jù)Denso Wave公司的資料,QR碼是屬于開放式的標(biāo)準(zhǔn),QR碼雖然由Denso Wave公司持有的專利,但不會(huì)被執(zhí)行。QR(Quick-Response) code是被廣泛使用的一種二維碼,解碼速度快。 它可以存儲(chǔ)多用類型。 圖2.2 QR 碼結(jié)構(gòu)圖圖2.2 QR 碼結(jié)構(gòu)圖
18、1. 位置探測(cè)圖形、位置探測(cè)圖形分隔符:用于對(duì)二維碼的定位,對(duì)每個(gè)QR碼來說,位置都是固定存在的,只是大小規(guī)格會(huì)有所差異;這些黑白間隔的矩形塊很容易進(jìn)行圖像處理的檢測(cè)。2. 校正圖形:根據(jù)尺寸的不同,矯正圖形的個(gè)數(shù)也不同。矯正圖形主要用于QR碼形狀的矯正,尤其是當(dāng)QR碼印刷在不平坦的面上,或者拍照時(shí)候發(fā)生畸變等。3. 定位圖形:這些小的黑白相間的格子就好像坐標(biāo)軸,在二維碼上定義了網(wǎng)格。4. 格式信息:表示該二維碼的糾錯(cuò)級(jí)別,分為L(zhǎng)、M、Q、H;5. 數(shù)據(jù)區(qū)域:使用黑白的二進(jìn)制網(wǎng)格編碼內(nèi)容。8個(gè)格子可以編碼一個(gè)字節(jié)。6. 版本信息:即二維碼的規(guī)格,QR碼符號(hào)共有40種規(guī)格的矩陣(一般為黑白色),
19、從21x21(版本1),到177x177(版本40),每一版本符號(hào)比前一版本 每邊增加4個(gè)模塊。7. 糾錯(cuò)碼字:用于修正二維碼損壞帶來的錯(cuò)誤。2.4 QR碼的編碼技術(shù)1. 數(shù)據(jù)分析:確定編碼的字符類型,按相應(yīng)的字符集轉(zhuǎn)換成符號(hào)字符; 選擇糾錯(cuò)等級(jí),在規(guī)格一定的條件下,糾錯(cuò)等級(jí)越高其真實(shí)數(shù)據(jù)的容量越小。2. 數(shù)據(jù)編碼:將數(shù)據(jù)字符轉(zhuǎn)換為位流,每8位一個(gè)碼字,整體構(gòu)成一個(gè)數(shù)據(jù)的碼字序列。其實(shí)知道這個(gè)數(shù)據(jù)碼字序列就知道了二維碼的數(shù)據(jù)內(nèi)容。圖 2.3 二維碼資料容量圖 2.3 二維碼資料容量圖2.4 二維碼提示符 圖2.4 二維碼提示符數(shù)據(jù)可以按照一種模式進(jìn)行編碼,以便進(jìn)行更高效的解碼,例如:對(duì)數(shù)據(jù):0
20、1234567編碼(版本1-H), 1)分組:012 345 67 2)轉(zhuǎn)成二進(jìn)制:0120000001100 3450101011001 67 1000011 3)轉(zhuǎn)成序列:0000001100 0101011001 1000011 4)字符數(shù) 轉(zhuǎn)成二進(jìn)制:80000001000 5)加入模式指示符(上圖數(shù)字)0001:0001 0000001000 0000001100 0101011001 1000011 對(duì)于字母、中文、日文等只是分組的方式、模式等內(nèi)容有所區(qū)別?;痉椒ㄊ且恢碌?. 糾錯(cuò)編碼:按需要將上面的碼字序列分塊,并根據(jù)糾錯(cuò)等級(jí)和分塊的碼字,產(chǎn)生糾錯(cuò)碼字,并把糾錯(cuò)碼字加入到數(shù)據(jù)碼
21、字序列后面,成為一個(gè)新的序列。在二維碼規(guī)格和糾錯(cuò)等級(jí)確定的情況下,其實(shí)它所能容納的碼字總數(shù)和糾錯(cuò)碼字?jǐn)?shù)也就確定了,比如:版本10,糾錯(cuò)等級(jí)時(shí)H時(shí),總共能容納346個(gè)碼字,其中224個(gè)糾錯(cuò)碼字。 就是說二維碼區(qū)域中大約1/3的碼字時(shí)冗余的。對(duì)于這224個(gè)糾錯(cuò)碼字,它能夠糾正112個(gè)替代錯(cuò)誤(如黑白顛倒)或者224個(gè)據(jù)讀錯(cuò)誤(無法讀到或者無法譯碼), 這樣糾錯(cuò)容量為:112/346=32.4%4. 構(gòu)造最終數(shù)據(jù)信息:在規(guī)格確定的條件下,將上面產(chǎn)生的序列按次序放如分塊中 按規(guī)定把數(shù)據(jù)分塊,然后對(duì)每一塊進(jìn)行計(jì)算,得出相應(yīng)的糾錯(cuò)碼字區(qū)塊,把糾錯(cuò)碼字區(qū)塊 按順序構(gòu)成一個(gè)序列,添加到原先的數(shù)據(jù)碼字序列后面。
22、 如:D1, D12, D23, D35, D2, D13, D24, D36, . D11, D22, D33, D45, D34, D46, E1, E23,E45, E67, E2, E24, E46, E68,.5. 構(gòu)造矩陣:將探測(cè)圖形、分隔符、定位圖形、校正圖形和碼字模塊放入矩陣中。把上面的完整序列填充到相應(yīng)規(guī)格的二維碼矩陣的區(qū)域中6. 掩摸:將掩摸圖形用于符號(hào)的編碼區(qū)域,使得二維碼圖形中的深色和淺色(黑色和白色)區(qū)域能夠比率最優(yōu)的分布。 一個(gè)算法,不研究了,有興趣的同學(xué)可以繼續(xù)。7. 格式和版本信息:生成格式和版本信息放入相應(yīng)區(qū)域內(nèi)。 版本7-40都包含了版本信息,沒有版本信息的
23、全為0。二維碼上兩個(gè)位置包含了版本信息,它們是冗余的。 版本信息共18位,6X3的矩陣,其中6位時(shí)數(shù)據(jù)為,如版本號(hào)8,數(shù)據(jù)位的信息時(shí) 001000,后面的12位是糾錯(cuò)位。 圖 2.5 QR二維碼 圖 2.5 QR二維碼2.5. 本章小結(jié)本章主要介紹了本課題所涉及的各項(xiàng)技術(shù),分析了各技術(shù)的起源、歷史、現(xiàn)狀以及發(fā)展前景,有些分析比較了國(guó)內(nèi)外相關(guān)技術(shù)的差距,很有時(shí)代與實(shí)際意義。3 二維碼android手機(jī)識(shí)別系統(tǒng)設(shè)計(jì)3.1 需求分析3.1.1 概述 基于無線互聯(lián)網(wǎng)的發(fā)展,為提高智能手機(jī)用戶輸入的便捷性,而進(jìn)行基于智能手機(jī)二維碼識(shí)別系統(tǒng)的研發(fā),從而提高用戶上網(wǎng)效率。為該系統(tǒng)設(shè)計(jì)提供依據(jù),特做此需求分析
24、。 本章基于智能手機(jī)二維碼識(shí)別系統(tǒng)的可能應(yīng)用場(chǎng)景,提取并分析出本系統(tǒng)的基本用戶需求,確定了本系統(tǒng)的功能性需求和非功能性需求,從而也決定了該系統(tǒng)運(yùn)行的軟、硬件環(huán)境,以便下一階段對(duì)本系統(tǒng)進(jìn)行系統(tǒng)設(shè)計(jì)。 課題相關(guān)信息: 1. 待開發(fā)系統(tǒng)名稱:基于智能手機(jī)二維碼識(shí)別系統(tǒng) 2. 本項(xiàng)目的任務(wù)提出者:項(xiàng)目經(jīng)理 3. 開發(fā)者:基于智能手機(jī)二維碼識(shí)別系統(tǒng)研發(fā)組 4. 預(yù)期用戶:具有智能手機(jī)的所有用戶 為方便閱讀,本課題對(duì)相關(guān)術(shù)語的定義進(jìn)行描述: 1.二維碼:QR code二維碼等主流二維編碼都可以,利用水平方向和垂直方向圖像單元存儲(chǔ)數(shù)據(jù)的圖形圖像。 2.智能手機(jī):Smart Phone,具有開放接口的、就是一
25、臺(tái)可以隨意安裝和卸載應(yīng)用軟件的手機(jī),通過開放接口開發(fā)并安裝的軟件,可以擴(kuò)展智能手機(jī)的功能。 3. 攝像頭:Camera。本文所指攝像頭皆為智能手機(jī)所內(nèi)置的攝像頭。 3.1.2 任務(wù)概述 (1)任務(wù)目標(biāo): 開發(fā)本系統(tǒng)目的是為了智能手機(jī)用戶更加快捷地上網(wǎng),本系統(tǒng)利用了智能手機(jī)所具有的攝像頭結(jié)合二維碼進(jìn)行網(wǎng)址解析,從而減輕了用戶記憶大量網(wǎng)址的記憶量,也節(jié)約了用戶輸入網(wǎng)址的時(shí)間。 用戶特點(diǎn): 本系統(tǒng)最終用戶使用的智能手機(jī)具有攝像頭并且建議攝像頭分辨率在一百萬像素以上最好具有自動(dòng)對(duì)焦功能,微距功能更佳,以便能獲取更加清晰的二維碼,使得識(shí)別成功率增加,縮短識(shí)別時(shí)間;另外,該用戶有上網(wǎng)需求。 (2)運(yùn)行環(huán)境
26、: 本系統(tǒng)客戶端,運(yùn)行在android智能手機(jī)設(shè)備中,本系統(tǒng)測(cè)試手機(jī)具體為魅族mx2手機(jī)。 假設(shè)和依賴: 本系統(tǒng)要正常運(yùn)行,必須保證對(duì)應(yīng)的網(wǎng)址已經(jīng)編碼成二維條形碼、并打印在相關(guān)媒介上,所采用的編碼格式與本系統(tǒng)解碼格式及版本一致,條形碼的污損率不能低于相應(yīng)編碼所規(guī)定的污損率,否則將會(huì)影響解碼糾錯(cuò)效果,直接導(dǎo)致降低識(shí)別率。另外,使用本系統(tǒng)正確解碼上網(wǎng),必須保證識(shí)別二維碼的場(chǎng)景光線效果比較好,至少保證二維條碼各部分顏色比較均勻,明暗對(duì)比度不能太強(qiáng)烈,否則也會(huì)影響識(shí)別率。使用本系統(tǒng),需要保證智能手機(jī)攝像頭分辨率最好在一百萬像素以上,最好具備自動(dòng)對(duì)焦或微距功能。使用本系統(tǒng),必須保證手機(jī)具有足夠的電量。3
27、.1.3 需求規(guī)定 系統(tǒng)的功能需求描述如下表所示:表 3.1 系統(tǒng)功能需求表序號(hào)功能點(diǎn) 描述 輸入 處理 輸出功能 1用戶界面 通過本界面實(shí)現(xiàn)人機(jī)交互用 戶 菜 單 操作響應(yīng)用戶操作根 據(jù) 用 戶 輸入 菜 單 命 令做處理 功能 2視頻采集 在本系統(tǒng)客戶端內(nèi)具有視頻采集功能,完成二維碼圖像拍攝功能二 維 碼 原 始圖像將攝像頭獲取到二維碼圖像轉(zhuǎn)換成識(shí)別模塊需要的位圖信息 位圖信息 功能 3圖像處理模塊 將視頻采集模塊采集的二維碼圖像,進(jìn)行黑白二值化處理 二 維 碼 位 圖信息根據(jù) RGB 圖轉(zhuǎn) 換 成 灰 度圖,然后轉(zhuǎn)換成黑白二值圖黑白二值圖功能 4圖像識(shí)別(定位點(diǎn)識(shí)別)通過二維碼定位點(diǎn)的特
28、征,采用模式識(shí)別的方法將二維碼從背景圖中截取出來黑白二值圖 依據(jù)QR標(biāo)準(zhǔn),利用識(shí)別算法確定定位點(diǎn)位置與個(gè)數(shù),從而判定是否存在對(duì)應(yīng)的二維碼,如果存在則將其從背景圖中截取其數(shù)據(jù)識(shí) 別 后 處 理后 的 點(diǎn) 陣 數(shù)據(jù) 功能 5數(shù)據(jù)解碼 將二維碼點(diǎn)陣數(shù) 據(jù) 通 過 處理,解析出其中數(shù)據(jù),識(shí)別出對(duì)應(yīng)的網(wǎng)址圖 形 識(shí) 別 部分 確 定 的 定位 點(diǎn) 等 特 征信息按照定位點(diǎn)位置,根據(jù)編碼標(biāo)準(zhǔn),獲取版本號(hào),從而構(gòu)建采樣網(wǎng)格,從而解析數(shù)據(jù)內(nèi)容 編 碼 在 二 維碼 中 的 網(wǎng) 址信息 功能6二維碼生成模塊寫入數(shù)據(jù),然后依據(jù)內(nèi)置算法,生成二維碼圖像,并分享要生成的字符,網(wǎng)址等內(nèi)置算法,生成二維碼二維碼圖像系統(tǒng)的
29、外部接口需求包括用戶界面、硬件接口、軟件接口、通信接口。 用戶界面: 為方便用戶使用本軟件,本系統(tǒng)所采用的用戶界面風(fēng)格簡(jiǎn)約,符合智能手機(jī)用戶使用習(xí)慣。主界面只包括一個(gè)攝像頭獲取界面,啟動(dòng)后,用戶只需要將攝像頭對(duì)準(zhǔn)二維碼,即可在主界面直接預(yù)覽到二維碼圖片內(nèi)容,如果解碼成功,則直接轉(zhuǎn)到瀏覽器界面上網(wǎng);若解碼失敗,則提示用戶重新調(diào)整手機(jī)攝像頭位置,開始重新獲取二維碼圖片內(nèi)容并重復(fù)解析識(shí)別。 硬件接口: 本系統(tǒng)需要的硬件主要包括攝像頭,安裝本軟件的智能手機(jī)必須內(nèi)置攝像頭,攝像頭分辨率必須在一百萬像素以上,否則將會(huì)延長(zhǎng)識(shí)別時(shí)間、降低識(shí)別率,從而影響識(shí)別效果 軟件接口: 攝像頭具有軟件接口,操作系統(tǒng)能提供
30、接口,直接從攝像頭獲取視頻或者拍照模式的照片位圖信息,方便本系統(tǒng)的客戶端應(yīng)用程序調(diào)用。 通信接口: 本系統(tǒng)所在的手機(jī)具備上網(wǎng)功能,能支持 Wap 等協(xié)議上網(wǎng)。 系統(tǒng)的非功能性需求包括識(shí)別率、時(shí)間性能要求、輸入輸出要求。 識(shí)別率: 要求識(shí)別率越高用戶體驗(yàn)越好,如果低于 50%,則用戶體驗(yàn)下降。可以采用提高攝像頭分辨率,優(yōu)化圖像矯正算法來提高識(shí)別率。 時(shí)間性能要求: 本系統(tǒng)軟件啟動(dòng):無特殊時(shí)間要求,與手機(jī)硬件設(shè)備相關(guān)。 識(shí)別結(jié)果響應(yīng)時(shí)間:識(shí)別成功與失敗,都應(yīng)該控制在 1 秒鐘以內(nèi)。 輸入輸出要求: (1)輸入: 要求被識(shí)別的二維碼圖像盡可能完整,污損率在國(guó)標(biāo)范圍內(nèi);拍攝識(shí)別場(chǎng)景,盡量光線比較好,使
31、得顏色均勻;攝像頭分辨率盡量大于一百萬像素,能獲取 1024768 尺寸圖片。 (2)輸出: 采用瀏覽器輸出對(duì)應(yīng)網(wǎng)站數(shù)據(jù)內(nèi)容,需要手機(jī)內(nèi)置瀏覽器并可以通過本系統(tǒng)軟件啟動(dòng);輸出提示信息簡(jiǎn)潔明了。3.2 系統(tǒng)設(shè)計(jì)3.2.1 概述 針對(duì)基于智能手機(jī)二維碼識(shí)別系統(tǒng)的需求分析,對(duì)系統(tǒng)進(jìn)行了總體設(shè)計(jì)和規(guī)劃,劃分了系統(tǒng)架構(gòu)及功能模塊,為后續(xù)各個(gè)功能模塊的設(shè)計(jì)做好準(zhǔn)備。 3.2.2 編寫目的 本章根據(jù)用戶需求分析的結(jié)果,從系統(tǒng)全局出發(fā),進(jìn)行了總體設(shè)計(jì),確定了本系統(tǒng)的總體架構(gòu),并劃分了各個(gè)功能實(shí)現(xiàn)的具體模塊,為后續(xù)模塊設(shè)計(jì)和編碼實(shí)現(xiàn)提供了指導(dǎo)和依據(jù)。 3.2.3 定義 (1)模式識(shí)別 Pattern Recog
32、nition。計(jì)算機(jī)運(yùn)用數(shù)學(xué)方法來研究模式的自動(dòng)處理和判讀。把環(huán)境和客體統(tǒng)統(tǒng)稱之為“模式”。計(jì)算機(jī)技術(shù)不斷的發(fā)展,人們研究復(fù)雜的信息處理過程成為了可能。信息處理過程的一個(gè)重要形式是生命體對(duì)環(huán)境及客體的識(shí)別。對(duì)人類而言,最為重要的是對(duì)光學(xué)信息和聲學(xué)信息的識(shí)別。這是模式識(shí)別的兩個(gè)重要方面。 (2)圖像矯正 Image Correction。通過攝像頭獲取到的圖像,可能與真實(shí)圖像之間存在一些偏差,對(duì)于本系統(tǒng)的二維碼而言,主要是產(chǎn)生了形變,本文所指圖像矯正,是對(duì)通過攝像頭獲取的二維碼進(jìn)行形狀糾正的算法及過程。 3.2.4 總體設(shè)計(jì) 首先分析了基于智能手機(jī)的二維碼識(shí)別系統(tǒng)的基本操作流程,然后根據(jù)本系統(tǒng)的
33、需求分析的結(jié)果,進(jìn)行總體設(shè)計(jì)。 (1)基本設(shè)計(jì)概念與處理流程 啟動(dòng)智能手機(jī)中安裝的本系統(tǒng)時(shí),攝像頭獲取圖像并顯示在手機(jī)屏幕中部,視點(diǎn)處于屏幕中部,若用戶對(duì)準(zhǔn)了二維條形碼,則自動(dòng)開始進(jìn)行識(shí)別處理,若識(shí)別成功并且所含編碼為有效的網(wǎng)絡(luò)地址 URL,則啟動(dòng)手機(jī)瀏覽器連接該網(wǎng)站進(jìn)行網(wǎng)絡(luò)瀏覽;若識(shí)別失敗或者編碼內(nèi)容無效,則提示用戶。 若距離二維條形碼較遠(yuǎn)或者智能手機(jī)攝像頭鏡面和二維條形碼所在平面不平行時(shí),可能導(dǎo)致識(shí)別失敗,則用戶需要調(diào)整識(shí)別角度,重新進(jìn)行識(shí)別。 (2)基本物理對(duì)象 從上面的操作需求而已得出本系統(tǒng)需要處理的數(shù)據(jù),包括以下兩方面。 (3) 二維條形碼原始圖像 由攝像頭獲取二維條形碼原始圖像,并
34、顯示在智能手機(jī)屏幕上,以便用戶進(jìn)行距離及位置的調(diào)整。 (4)二維條形碼的幾何數(shù)據(jù) 由于攝像頭與二維條形碼平面不一定絕對(duì)平行,所以拍攝的二維條形碼的形狀,可能為正方形、菱形或者梯形,距離較遠(yuǎn)或者二維條形碼有污損的情況下,還可能出現(xiàn)拍攝的原始圖像為其它形狀的情況。 (5)系統(tǒng)層次劃分 圖3.1 系統(tǒng)層次圖3.1 系統(tǒng)層次整個(gè)系統(tǒng)共分為 5 層,分別為:物理硬件層、android系統(tǒng)層、圖像捕獲和處理層、QR Code 解碼生成層以及用戶界面。(a)物理硬件層 本層是智能手機(jī)物理硬件。硬件層,提供了包括支持整個(gè)系統(tǒng)所必需的硬件模塊,包括:攝像頭、網(wǎng)絡(luò)數(shù)據(jù)收發(fā)裝置、手機(jī)操作系統(tǒng)運(yùn)行環(huán)境等。 (b)an
35、droid系統(tǒng)層 提供了對(duì)底層硬件模塊訪問的封裝,它向上層應(yīng)用程序提供了訪問底層模塊的接口和整個(gè)系統(tǒng)運(yùn)行所必需的軟件環(huán)境。 (c)圖像捕獲和處理模塊層 圖像捕獲模塊,完成對(duì) QR Code 圖形的獲取,包括通過攝像頭拍照和攝像兩種方式,并且將所捕獲的圖形轉(zhuǎn)換成 QR Code 解碼層所能處理的數(shù)據(jù)格式。 網(wǎng)絡(luò)處理模塊,負(fù)責(zé)將解碼后的數(shù)據(jù)還原后,獲取其中的網(wǎng)址,并通過網(wǎng)絡(luò)協(xié)議鏈接對(duì)應(yīng)網(wǎng)站獲取數(shù)據(jù)。 (d)QR Code 數(shù)據(jù)解碼層 完成對(duì) QR Code 圖形的解碼操作,包括:圖像采集、圖像識(shí)別、圖像預(yù)處理、圖形矯正、糾錯(cuò)的解碼處理,二維碼生成。 (e)用戶操作界面 為直接面向移動(dòng)用戶的操作界面
36、,用戶可以通過界面操作完成對(duì)整個(gè)系統(tǒng)的控制。 (6)子系統(tǒng)劃分 需要從攝像頭獲取二維碼圖像數(shù)據(jù),但是我們采用的智能手機(jī)已經(jīng)具備攝像頭,并且可以利用手機(jī)廠商公開在開發(fā)包 SDK 中的接口類來獲取數(shù)據(jù),所以該部分,直接有驅(qū)動(dòng)層和硬件層實(shí)現(xiàn),本系統(tǒng)設(shè)計(jì)中,不需要做過多處理。 所以本系統(tǒng)主要功能模塊劃分為三個(gè)部分:用戶操作界面,圖像捕獲和網(wǎng)絡(luò)處理模塊層以及數(shù)據(jù)解碼層。 另外,為了用戶使用本系統(tǒng)簡(jiǎn)捷方便,所以用戶界面比較簡(jiǎn)單,用戶界面模塊顯示從攝像頭獲取到的預(yù)覽數(shù)據(jù),調(diào)用圖像處理模塊進(jìn)行圖像識(shí)別處理,成功后,再調(diào)用數(shù)據(jù)解密模塊完成二維碼圖像的解析,最后通過解析出的網(wǎng)址啟動(dòng)手機(jī)內(nèi)置瀏覽器直接上網(wǎng)。 本系統(tǒng)
37、核心功能模塊在于:圖像處理模塊和數(shù)據(jù)解碼生成模塊。 (7)模塊功能和處理流程 下表對(duì)本系統(tǒng)各個(gè)功能模塊進(jìn)行了描述: 表 3.2 系統(tǒng)功能模塊表 序號(hào)功能點(diǎn) 輸入 處理 輸出備注 1用戶界面 用戶菜單 調(diào)用其他模塊提示信息或解碼或生成信息 2圖像采集攝像頭數(shù)據(jù)獲取攝像頭數(shù)據(jù)轉(zhuǎn)換成位圖像素?cái)?shù)據(jù)位圖信息 3圖像預(yù)處理二維碼圖像數(shù)據(jù)矯正處理二維碼位圖數(shù)據(jù) 4圖像識(shí)別(定位點(diǎn)識(shí)別)二維碼二值化圖像數(shù)據(jù) 根 據(jù) QR標(biāo)準(zhǔn)尋找圖像中定位點(diǎn),將QR 圖 從背景圖中截取二維碼有效區(qū)域數(shù)據(jù) 5核心解碼二維碼有效區(qū)域數(shù)據(jù)根據(jù)定位點(diǎn)和版本信息,依據(jù) QR 標(biāo)準(zhǔn),構(gòu)建采樣網(wǎng)格 二維碼有效數(shù)據(jù) 6糾錯(cuò)二維碼有效數(shù)據(jù)根據(jù)相
38、關(guān)算法進(jìn)行糾錯(cuò)處理編碼時(shí)輸入的信息 7圖像分享分享信息調(diào)用android虛擬機(jī)分享分享 8二維碼生成模塊要生成的字符,網(wǎng)址等內(nèi)置算法,生成二維碼二維碼圖像以上模塊中,核心算法集中在以下兩大模塊中: (1)圖像處理模塊 該模塊主要功能是實(shí)現(xiàn)將攝像頭獲取的二維碼圖像數(shù)據(jù),經(jīng)過圖像預(yù)處理、定位點(diǎn)識(shí)別,識(shí)別出所拍攝圖像中,是否含有而為碼圖像。如果含有,則將二維碼原圖根據(jù)三個(gè)定位點(diǎn)所圍成區(qū)域截取出來,將數(shù)據(jù)發(fā)送給數(shù)據(jù)解碼模塊進(jìn)行數(shù)據(jù)解析。 (2)數(shù)據(jù)解碼模塊 該模塊接收?qǐng)D像處理模塊發(fā)送到二維碼數(shù)據(jù),通過定位點(diǎn)構(gòu)建采樣網(wǎng)格,經(jīng)過核心解碼部分處理后,得到二維碼中的編碼信息;然后將編碼信息經(jīng)過糾錯(cuò)模塊處理,本
39、編碼采用的是里德所羅門糾錯(cuò)算法。 功能需求與系統(tǒng)模塊的關(guān)系 功能功能名稱 模塊1模塊2模塊3模塊4模塊5模塊6模塊7 模塊81用戶界面2視頻采集3圖像處理4圖像識(shí)別5數(shù)據(jù)解碼6二維碼生成表 3.3 功能需求與系統(tǒng)模塊關(guān)系表因?yàn)槭謾C(jī)需要手持,所以在識(shí)別二維碼過程中,手持的智能手機(jī)攝像頭與二維碼所在的平面,不一定保證平行。當(dāng)兩個(gè)平面夾角較小的時(shí)候,可以通過矯正算法將拍攝的圖像進(jìn)行矯正,但是,如果偏角比較大,拍攝的二維碼圖像形變比較嚴(yán)重時(shí),即使通過矯正算法,也很難將所有圖像矯正并識(shí)別成功,所以,這時(shí)需要人工將手機(jī)角度矯正,盡量保持與二維碼所在平面平行。 尚未解決的問題 1. 當(dāng)手機(jī)攝像頭與二維碼平面
40、夾角過大時(shí),通過現(xiàn)有矯正算法很難矯正,并識(shí)別成功; 2. 當(dāng)待識(shí)別的二維碼印刷面積過小時(shí),每個(gè)模塊所占的像素過小,則可能導(dǎo)致識(shí)別失??; 3.2.5 運(yùn)行設(shè)計(jì) 運(yùn)行模塊組合 本系統(tǒng)所運(yùn)行的智能手機(jī)操作系統(tǒng)是 android,開發(fā)平臺(tái)是魅族mx2,并且具備攝像頭。 (1)檢測(cè)到二維碼且成功解碼 當(dāng)用戶手持安裝有本系統(tǒng)的手機(jī),啟動(dòng)后,即開始進(jìn)行設(shè)想模式的識(shí)別和解碼,如果檢測(cè)到被拍攝平面有二維碼的定位點(diǎn),且三個(gè)定位點(diǎn)位置符合編碼規(guī)范的位置關(guān)系,則開始進(jìn)行圖像預(yù)處理、糾錯(cuò)和解碼,解碼成功,則啟動(dòng)瀏覽器訪問該二維碼中的網(wǎng)站。 (2)檢測(cè)到二維碼且解碼失敗 當(dāng)拍攝區(qū)域檢測(cè)到了二維碼存在,但是由于角度偏差太大
41、,光線不均勻,或者二維碼無損太嚴(yán)重,則都可能導(dǎo)致解碼失敗,本客戶端系統(tǒng)會(huì)提示用戶調(diào)整角度重新拍攝二維碼圖片。 (3)未檢測(cè)到二維碼 當(dāng)連續(xù)掃描圖像無任何定位點(diǎn)存在,或者存在定位點(diǎn)但是個(gè)數(shù)不為 3 個(gè),或者有三個(gè)或多個(gè)定位點(diǎn)但是定位點(diǎn)位置關(guān)系與標(biāo)準(zhǔn)不相符合,則提示用戶調(diào)整位置,重新識(shí)別。 運(yùn)行控制 手機(jī)用戶啟動(dòng)本系統(tǒng)客戶端后,通過手機(jī)攝像頭對(duì)準(zhǔn)二維碼進(jìn)行識(shí)別解碼,提供了兩種方式進(jìn)行拍攝解碼: 視頻攝像模式:該模式可以連續(xù)獲取圖片并進(jìn)行識(shí)別解碼。該模式優(yōu)點(diǎn)在于,可以連續(xù)拍攝識(shí)別,在較短時(shí)間內(nèi)可以實(shí)現(xiàn)多次掃描并識(shí)別解碼的過程;不足之處在于,攝像模式分辨率往往比拍攝模式要低,而分辨率會(huì)降低識(shí)別率影響識(shí)
42、別效果。拍攝模式:該模式是拍攝靜止圖像,然后開始解碼識(shí)別。該模式的優(yōu)點(diǎn)在于:對(duì)于同一款固定機(jī)型而言,拍攝模式獲取的圖片分辨率一般要高于攝像模式所獲取的圖像分辨率,這樣,識(shí)別率必定會(huì)相應(yīng)提高;不足在于,拍攝模式獲取圖像的時(shí)間往往比較長(zhǎng),一般在一秒鐘甚至更長(zhǎng)時(shí)間,才能拍攝一張圖片,直接導(dǎo)致識(shí)別解碼整體流程時(shí)間延長(zhǎng)數(shù)倍至數(shù)十倍以上,會(huì)影響用戶體驗(yàn)。所以,一般情況下,可以采用攝像模式進(jìn)行識(shí)別解碼,只有當(dāng)識(shí)別不了或者二維碼版本過高,印刷像素過小的情況下,才采用拍照模式進(jìn)行識(shí)別解碼。 運(yùn)行時(shí)間 啟動(dòng)本系統(tǒng)手機(jī)客戶端時(shí)間:沒有特殊時(shí)間要求,具體時(shí)間,與所安裝的手機(jī)硬件配置相關(guān)。配置越高啟動(dòng)速度越快。 識(shí)別解
43、碼時(shí)間:在光線、水平角度合理的范圍內(nèi),一般在 100 毫秒左右可以完成一次識(shí)別過程。 3.2.6 系統(tǒng)出錯(cuò)處理 出錯(cuò)信息 本軟件為了用戶操作方便,用戶接口很簡(jiǎn)單,而且大部分解碼識(shí)別功能都用算法實(shí)現(xiàn),用戶決定部分,只限制在攝像頭獲取到的數(shù)據(jù),所以出錯(cuò)提示信息較少。 補(bǔ)救措施 如果客戶端運(yùn)行過程中,圖像采集模塊需要消耗較多內(nèi)存,內(nèi)存大小根據(jù)拍攝模式不同而有差異,可能會(huì)出現(xiàn)內(nèi)存不夠的情況,此時(shí)可以提示用戶關(guān)掉其他程序,重新啟動(dòng)機(jī)器,再嘗試識(shí)別解碼。 3.3 基于android的二維碼識(shí)別系統(tǒng)概要設(shè)計(jì)3.3.1 本系統(tǒng)包含模塊圖3.2 主要模塊及其關(guān)系系統(tǒng)包含兩個(gè)模塊,分別為二維碼的生成模塊,二維碼的
44、解碼模塊,如圖3.2. 圖3.2 主要模塊及其關(guān)系其中二維碼的生成模塊單獨(dú)建立一個(gè)類實(shí)現(xiàn),解碼部分使用國(guó)際上流行的zxing二維碼開源代碼,由于這部分代碼很成熟,而且實(shí)現(xiàn)的功能繁多,有好多不太實(shí)用,我們基于這個(gè)源碼進(jìn)行簡(jiǎn)化處理,最終實(shí)現(xiàn)本系統(tǒng)的主要功能。本系統(tǒng)主要有兩個(gè)模塊,分別是二維碼的生成模塊,這個(gè)模塊主要是二維碼的生成,以及生成的二維碼分享功能.二維碼的解碼模塊是由掃描部分和掃描歷史組成,掃描過的二維碼都會(huì)記錄在歷史中,如果是有關(guān)電話,網(wǎng)站的二維碼可以點(diǎn)擊撥打電話或者是進(jìn)入網(wǎng)頁(yè)瀏覽信息,下載等,掃描模塊借鑒開源代碼zxing,這是個(gè)很成熟的集成模塊,是當(dāng)今開發(fā)與二維碼相關(guān)app必備的一個(gè)
45、模塊.3.3.2 系統(tǒng)主要模塊 本部分包含部分模塊的主要內(nèi)容。(一) 用戶界面模塊(1)功能 本模塊提供用戶操作的接口,主界面是拍攝窗口,顯示預(yù)覽到的二維碼圖像信息。 (2)性能 在光線正常的情況下,解碼成功時(shí)間不能太長(zhǎng),拍攝模式在 1 秒鐘以內(nèi);攝像模式在 100 毫秒以內(nèi)識(shí)別解碼完成,如果失敗,則繼續(xù)獲取下一幀圖片進(jìn)行識(shí)別解碼。 (3)輸入項(xiàng)目 輸入項(xiàng)是手機(jī)用戶通過用戶界面進(jìn)行的輸入,用戶界面模塊是通過菜單輸入選擇。 (4)輸出項(xiàng)目 主界面顯示二維碼圖像信息。 (5)限制條件 預(yù)覽和拍攝的速度,取決于手機(jī)硬件配置。 (6)測(cè)試要點(diǎn) 攝像頭對(duì)準(zhǔn)二維碼,能顯示預(yù)覽圖片。 其余的相關(guān)內(nèi)容,可以詳
46、細(xì)的參考論文的其他部分.(二) 圖像采集模塊(1)功能 圖像捕獲的主要功能是通過手機(jī)攝像頭,采集 QR 碼圖像數(shù)據(jù),將圖像數(shù)據(jù)轉(zhuǎn)換成計(jì)算機(jī)可以識(shí)別的二進(jìn)制數(shù)據(jù)格式,以便系統(tǒng)對(duì)圖像進(jìn)行分析,解碼 QR 碼的相關(guān)信息。圖像捕獲模塊是系統(tǒng)與外部進(jìn)行數(shù)據(jù)交互的接口模塊。 圖像捕獲模塊可以以兩種方式進(jìn)行工作:手機(jī)攝像模式(動(dòng)態(tài)采集)和拍照模式(靜態(tài)圖片捕獲)。 手機(jī)攝像頭數(shù)據(jù)采集,主要是利用目前智能手機(jī)上帶有的高清晰拍照攝像頭來完成的。在本系統(tǒng)中采用的手機(jī)是 Nokia 7610,它的攝像頭具有 100 萬像素采集功能,但是由于其不支持近距離拍照功能以及不能進(jìn)行白平衡調(diào)整等缺陷,因此對(duì)系統(tǒng)的解碼功能帶來
47、了一定的影響。一般的攝像頭都支持兩種功能的圖像捕獲:視頻采集模式和拍照模式,本機(jī)采用拍照模式。(2)性能 時(shí)間:在光線正常的情況下,解碼成功時(shí)間不能太長(zhǎng),拍攝模式在 1 秒鐘以內(nèi);攝像模式在 100 毫秒以內(nèi)識(shí)別解碼完成,如果失敗,則繼續(xù)獲取下一幀圖片進(jìn)行識(shí)別解碼。(3) 輸入項(xiàng)目 拍照模式下支持 4 種分辨率,分別為 1152*864、640*480、320*240 和 160*120。綜合考慮解碼速度和圖像處理量,本系統(tǒng)采用 640*480 模式進(jìn)行拍照。 (4) 輸出項(xiàng)目 視頻采集模式和拍攝模式,輸出項(xiàng)都轉(zhuǎn)換成了位圖對(duì)象,便于后續(xù)模塊進(jìn)行處理。 (5)限制條件 由于手機(jī)硬件配置高低,直接
48、決定了圖像采集的速度,所以可以根據(jù)本系統(tǒng)所安裝的真實(shí)手機(jī)配置,選擇適合的采集模式和分辨率。 (6) 測(cè)試要點(diǎn) 分別通過攝像模式、拍照模式采集圖像,傳送給圖像處理模塊。首先要判斷圖像是否能采集成功;另外,要判斷圖像顏色是否有失真現(xiàn)象。 (三) 圖像處理模塊 (1)功能 圖像處理模塊的主要功能是獲得圖像捕獲模塊的圖像數(shù)據(jù),然后針對(duì)相應(yīng)的算法對(duì)圖像進(jìn)行預(yù)處理操作,包括將彩色圖像進(jìn)行二值化操作,將彩色圖像轉(zhuǎn)換為黑白圖像,以及完成對(duì) QR 碼圖形的定位點(diǎn)識(shí)別,獲得圖形的版本信息,構(gòu)建采樣網(wǎng)絡(luò)對(duì)圖像進(jìn)行采樣,將圖形從以像素為單位轉(zhuǎn)換為以 QR 碼符號(hào)模塊為單位,方便核心解碼模塊的處理。該模塊將攝像頭采集的
49、圖片進(jìn)行二值化處理,以便傳輸給核心解碼模塊進(jìn)行解碼。 (2) 性能 時(shí)間:要求在攝像模式,二值化時(shí)間小于 100 毫秒;在拍攝模式,不能超過 1秒鐘。 精度:二值化后,不能使得二維碼邊界模糊,不能讓黑白方塊顏色區(qū)分度降低。 (3)輸入項(xiàng)目 圖像采集模塊所采集的二維碼圖像位圖數(shù)據(jù)。注意此圖像包括了二維碼和所在的背景圖像。 (4)輸出項(xiàng)目 二值化后的二維碼圖像數(shù)據(jù)。注意此圖像包括了二維碼和所在的背景圖像。(5)限制條件 必須保證光線基本均勻,否則二值化后,可能導(dǎo)致部分圖片不清晰,最終降低識(shí)別率。3.3.3 系統(tǒng)流程圖圖3.3 程序流程圖圖3.3 程序流程圖3.4 導(dǎo)入項(xiàng)目系統(tǒng)的先期工作,首先是將z
50、xing二維碼的源碼導(dǎo)入系統(tǒng),然后根據(jù)實(shí)際的使用情況加以個(gè)性化的定制.導(dǎo)入系統(tǒng),首先打開Eclipse 導(dǎo)入源碼中的 Android 項(xiàng)目,然后右擊項(xiàng)目選擇“Build path” Add External Archives 把核心庫(kù) core.jar文件加入到項(xiàng)目中。此時(shí)編譯一下項(xiàng)目,會(huì)發(fā)現(xiàn)報(bào)錯(cuò),“ Multiple substitutions specified in non-positional format; did you mean to add the formatted=false attribute?”之類的。打開raw 下的Values 發(fā)現(xiàn)錯(cuò)誤是在一個(gè)上。這里把 “pref
51、erences_custom_product_search_summary” 里的 %s %f 全部都改成 %1$s %1$f(因?yàn)槲覀冇貌坏蕉鄧?guó)語言,建議只保留默認(rèn)的Value ,其他全部刪除)。原因:由于新的SDK采用了新版本的aapt(Android項(xiàng)目編譯器),這個(gè)版本messages.In this example, the format string has two arguments: %1$s is a string and %2$d is a decimal number. You can format the string with arguements from your
52、 application.“經(jīng)過以上步驟后項(xiàng)目應(yīng)該就可以運(yùn)行了。但是ZXing的HYPERLINK t _blankandroid項(xiàng)目東西太多了,有很多是我們不需要的,得新建另一個(gè)項(xiàng)目簡(jiǎn)化它最終實(shí)現(xiàn)程序的開發(fā)。3.4.1 簡(jiǎn)化過程接下來大致介紹一下簡(jiǎn)化ZXing需要用到各個(gè)包、類的職責(zé)。CaptureActivity這個(gè)是啟動(dòng)Activity 也就是掃描器(如果是第一安裝,它還會(huì)跳轉(zhuǎn)到幫助界面)。CaptureActivityHandler 解碼處理類,負(fù)責(zé)調(diào)用另外的線程進(jìn)行解碼。可以看到在XML里面用到了 ViewfinderView 自定義view 。所以新建一個(gè)View 的包,然后把:V
53、iewfinderView 和 ViewfinderResultPointCallback 靠到里面(記得對(duì)應(yīng)修改XML里面的包)。打開 CaptureActivity 覆蓋 onCreate 方法:Overridepublicvoid onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);setContentView(R.layout.main);inactivityTimer =new InactivityTimer(this);這里調(diào)用到的 CameraManager 類是控制攝像頭的包里的類。新建一
54、個(gè)camera要是修改正包結(jié)構(gòu)。(整個(gè)簡(jiǎn)化的流程都是如此:“根據(jù)錯(cuò)誤提示,修改代碼”)。 圖3.4 CameraManager包文件圖3.4 CameraManager包文件在修改的過程中,有很多是關(guān)于R 資源的問題,在此將Values 里面的兩個(gè)xml資源文件拷入項(xiàng)目中:colos.xml 和ids.xml 。 ctrl+b 一下看看error 是不是少了很多。tyHandler(this, decodeFormats,characterSet) 用于進(jìn)行掃描解碼處理。3.4.2 解碼原理解碼是本系統(tǒng)的核心技術(shù),我們?cè)敿?xì)的介紹一下本系統(tǒng)的解碼原理.其中,上面的步驟主要都是用于對(duì)攝像頭的控制,
55、而解碼的真正工作入口是在CaptureActivityHandler 里面的。新建一個(gè)Decoding包把以下文件拷入包中:CaptureActivityHandler、DecodeFormatManager、InactivityTimer、Intents由于我們的包結(jié)構(gòu)和Zxing 項(xiàng)目的有所不同所以需要注意一下類的可訪問性同樣開始ctrl+B 編譯一下,然后開始修正錯(cuò)誤。在CaptureActivityHandler 里把 handleMessage 里的部分方法先注釋掉如:“decode_succeeded ”分支,這是解碼成功時(shí)調(diào)用 CaptureActivity 展示解碼的結(jié)果。在D
56、ecodeThread 類里,修改部分涉及Preference配置的代碼:功能代碼如下:import com.google.zxing.BarcodeFormat;import com.google.zxing.BinaryBitmap;import com.google.zxing.ChecksumException;import com.google.zxing.qrcode.decoder.Decoder;import com.google.zxing.qrcode.detector.Detector;import java.util.Hashtable;/* * 實(shí)現(xiàn)可以檢測(cè)和解碼圖像
57、中的QR碼 */publicclass QRCodeReader implements Reader /* * 定位和解碼圖像中的QR碼 *返回一個(gè)String,代表QR碼編碼的內(nèi)容 * 如果QR碼可以不被發(fā)現(xiàn)拋出NotFoundException *拋出FormatException,如果不能被解碼的QR代碼 *拋出ChecksumException的糾錯(cuò)失敗 */public Result decode(BinaryBitmap image) throws NotFoundException, ChecksumException, FormatException return decode
58、(image, null); public Result decode(BinaryBitmap image, Hashtable hints)throws NotFoundException, ChecksumException, FormatException points = detectorResult.getPoints(); Result result = new Result(decoderResult.getText(), decoderResult.getRawBytes(), points, BarcodeFormat.QR_CODE);if (decoderResult.
59、getByteSegments() != null) result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, decoderResult.getByteSegments(); publicvoid reset() /待定 /* * 檢測(cè)條碼一個(gè)“純粹”的形象 - 純黑白圖像 * 其中包含只有一個(gè)旋轉(zhuǎn)的,unskewed條碼,圖像與一些白色邊框 */publicstatic BitMatrix extractPureBits(BitMatrix image) throws NotFoundException iint leftTopBlack =
60、 image.getTopLeftOnBit();if (leftTopBlack = null) throw NotFoundException.getNotFoundInstance(); int x = leftTopBlack0; int moduleSize = x - leftTopBlack0;if (moduleSize = 0) throw NotFoundException.getNotFoundInstance(); / 發(fā)現(xiàn)第一排最右邊的黑色模塊結(jié)束int rowEndOfSymbol = width - 1;while (rowEndOfSymbol x & !ima
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高維地理關(guān)聯(lián)挖掘-洞察及研究
- 網(wǎng)絡(luò)安全設(shè)計(jì)進(jìn)度計(jì)劃保證措施
- 部編一年級(jí)語文上冊(cè)教學(xué)作業(yè)布置計(jì)劃
- 建筑行業(yè)2025人力資源年終總結(jié)及2025工作計(jì)劃
- 智慧城市EPC項(xiàng)目承包人實(shí)施計(jì)劃
- 教科版四年級(jí)科學(xué)下冊(cè)課堂活動(dòng)計(jì)劃
- 上海市閔行區(qū)閔行區(qū)莘松中學(xué)2024年物理八上期末調(diào)研試題含解析
- 蘇州大學(xué)《兒童行為觀察與評(píng)價(jià)》2023-2024學(xué)年第一學(xué)期期末試卷
- 河北工程大學(xué)科信學(xué)院《國(guó)際物流實(shí)務(wù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 上海財(cái)經(jīng)大學(xué)《中文寫作》2023-2024學(xué)年第一學(xué)期期末試卷
- 北京市殯葬惠民政策及實(shí)施可行性報(bào)告
- 2025年國(guó)家公務(wù)員考試(行測(cè))經(jīng)典75道邏輯推理題(包過)(含答案)
- 2025年湖北省中考英語試卷真題(含答案解析)
- 2025至2030中國(guó)學(xué)生校服行業(yè)發(fā)展分析及投資前景與戰(zhàn)略規(guī)劃報(bào)告
- 2025年1月遼寧省普通高中學(xué)業(yè)水平合格性考試英語試題(原卷版)
- 二年級(jí)下二升三數(shù)學(xué)暑假作業(yè)(人教)
- 2025年廣安市中考語文試卷真題(含標(biāo)準(zhǔn)答案)
- 2025【合同范本】產(chǎn)品銷售代理合同范本
- 2025年蘇教版四年級(jí)(下)期末考試數(shù)學(xué)試卷(含答案)
- 輥壓機(jī)減速機(jī)維修協(xié)議書2篇
- 酒店定制水合同范本
評(píng)論
0/150
提交評(píng)論