二維碼生成及識別_第1頁
二維碼生成及識別_第2頁
二維碼生成及識別_第3頁
二維碼生成及識別_第4頁
二維碼生成及識別_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、. 航空航天大學課程設計題 目二維碼的生成及識別小組成員: 何俊豪 懷曉 晉曉飛 瞿詩華 薛莉二一五年十一月第一章 QR碼簡介QR碼是由日本Denso公司與1994年制定出來的一種矩陣二維碼符號,它除了具有信息容量大、可靠性高、可表示漢字及圖像信息、性強等優(yōu)點外,還具有超高速響應、全方位識別等特點。QR碼符號是由正方形的細小模塊構成,分為功能區(qū)和編碼區(qū)。功能圖形包括位置探測圖形、分隔符、定位圖形、校正圖形、格式信息、版本信息等,編碼區(qū)域包括數(shù)據(jù)編碼塊和糾錯碼圖形。普通QR碼根本圖形及區(qū)域功能對照圖如圖1.1所示。圖1.1 QR碼根本構造1.1 QR碼的密度標識圖形位于兩個回字標識符之間的黑白相

2、間的條紋,用紅色線標注的,這個區(qū)域可以用于確定QR碼符號的像素方塊的密度即一個像素的大小,標識識別模塊如圖1.2所示。圖1.2 QR碼密度標識圖形1.2 位置探測圖形位置探測圖形由三個重疊的同心正方形構成,如圖1.3所示。通過探測位置探測圖形可以迅速的從背景圖像中判斷出QR碼符號的大致位置。圖1.3 QR碼探測圖形二維碼定位就是找到二維碼符號的位置探測圖形,對有明顯條碼特征的區(qū)域進展定位,然后根據(jù)圖形構造特征值對不同的條碼符號進展進一步的處理。通過QR碼的定位圖形,可以得到左上角位置探測圖形的邊界點和左下角位置探測圖形的邊界點如圖1.4a所示,因此可以采用魯棒性較好的算法擬合條碼左邊框,然后通

3、過直線擬合得到條碼的上邊框直線。在此根底上構建直角三角形,尋找出圖形中心,如圖1.4b所示,并可以得到第四個交點,如圖1.4c所示。a確定左邊界和上邊界 b確定探測圖形中心 c確定第四個交點圖1.4 條碼圖像初步定位流程1.3 版本信息QR碼符號共有40種規(guī)格,版本1的規(guī)格為21模塊21模塊,版本2為25模塊25模塊,以此類推,每一版本符號比前一版本每邊增加4個模塊,直到版本40,規(guī)格為177模塊177模塊。QR碼的版本信息圖形在整個二維碼圖像中的位置如圖1.5所示,QR碼最高版本40可容納多達1850個大寫字母或2710個數(shù)字或1108個字節(jié),或500多個漢字,比普通條碼信息容量約高幾十倍。

4、圖1.5 版本信息圖形1.4 糾錯碼QR碼具有糾錯能力,即使在使用過程中遇到污損、折疊等現(xiàn)象,也可以自動恢復數(shù)據(jù)。這一糾錯能力具備四個級別,級別越高,糾錯能力越高,但是數(shù)據(jù)量也會增加,編碼尺寸也會變大。QR碼各級別糾錯碼糾錯能力如表1.1所示。表1.1 糾錯碼級別糾錯能力對照表QR碼的糾錯能力級別L約7%級別M約15%級別Q約25%級別H約30%第二章 QR碼編碼規(guī)則介紹將輸入的數(shù)據(jù)轉變?yōu)橐粋€位流,如果最開場的模式指示符不是默認的,其前面要用ECI標頭,如果以默認的開場,位流的開頭為第一個模式的指示符,如表2.1 所示,該表定義了不同模式下的模式指示符。表2.2定義了不同模式和符號版本下的字符

5、計數(shù)指示符的長度。表2.1 模式指示符模式指示符ECI0111數(shù)字0001字母數(shù)字00108位字節(jié)0100日本漢字1000中國漢字1101構造0011FNCI0101第一位置1001第二位置終止符信息結尾0000表2.2 字符計數(shù)指示符的位數(shù)版本數(shù)字模式字母數(shù)字模式8位字節(jié)模式中國漢字模式19109881026121116102740141316122.1 數(shù)字模式編碼實現(xiàn)將輸入的數(shù)據(jù)從左至右每三位轉化成一個10位的二進制數(shù),剩余的一位或者兩位數(shù)據(jù)分別轉化成4位或7位二進制數(shù)。然后在轉換后的二進制數(shù)據(jù)前加上模式指示符和字符計數(shù)指示符。例如輸入數(shù)據(jù):88899966,編碼步驟如圖2.1所示。圖2

6、.1 數(shù)字模式編碼流程2.2 字母模式編碼實現(xiàn)字母模式編碼規(guī)則與數(shù)字模式編碼規(guī)則類似,不過首先要根據(jù)對應的字母模式編碼轉換表2.3將字符轉化為相應的數(shù)值,再將每兩個字母分為一組,前面字符的值乘以與第二個字符的值相加,所得的結果轉換為位二進制數(shù)。表2.3 字母模式編碼轉換表字符值字符值字符值字符值字符值字符值字符值字符值0066C12I18O24U30SP36.421177D13J19P25V31$37/432288E14K20Q26W32%38:443399F15L21R27*33*3944A10G16M22S28Y34+4055B11H17N23T29Z35-412.3 中國漢字模式編碼實現(xiàn)

7、GB2312標準規(guī)定的漢字字符為雙字節(jié)表示。QR的漢字編碼模式將16位的轉換為13位二進制字符序列,提高了編碼效率。編碼具體步驟:將第一字節(jié)值減去0*A6;將1的結果乘以0*60;將第二字節(jié)值減去0*A1;將2的值加上3的值;將結果轉化成13位二進制。2.4 糾錯編碼按需要將碼字序列分塊,并根據(jù)糾錯等級和分塊的碼字,產(chǎn)生糾錯碼字,并把糾錯碼字參加到數(shù)據(jù)碼字序列后面,成為一個新的序列。在二維碼規(guī)格和糾錯等級確定的情況下,其實它所能容納的碼字總數(shù)和糾錯碼字數(shù)也就確定了。糾錯碼主要通過里德-所羅門糾錯算法算出來,例如:版本10,糾錯等級時H時,總共能容納346個碼字,其中224個糾錯碼字。就是說二維

8、碼區(qū)域約1/3的碼字時冗余的。對于這224個糾錯碼字,它能夠糾正112個替代錯誤如黑白顛倒或者224個據(jù)讀錯誤無法讀到或者無法譯碼。在規(guī)格確定的條件下,將原先產(chǎn)生的序列按次序放如分塊中,按規(guī)定把數(shù)據(jù)分塊,然后對每一塊進展計算,得出相應的糾錯碼字區(qū)塊,把糾錯碼字區(qū)塊按順序構成一個序列,添加到原先的數(shù)據(jù)碼字序列后面,如圖2.2所示。圖2.2 二維碼矩陣構造2.5 Z*ing簡介Z*ing是一個開放源碼的,用Java實現(xiàn)的多種格式一維或者二維的條碼圖像處理庫,它包含了聯(lián)系到其他語言的端口,通常使用Z*ing生成相應的二維碼碼以及解碼。生成二維碼的編碼技術是指基于給定容生成二維條碼圖片,Z*ing可以

9、對生成的二維碼的圖片格式、各項參數(shù)以及二維碼類型進展設置,生成的圖片包含給定的容,當使用識別設備進展掃描時,能夠讀出給定的容。使用Z*ing進展編碼的步驟主要如下:首先,將所需的Z*ing類庫中的包導入工程;其次,對需要生成二維條碼的給定容進展編碼方式處理,防止在顯示中文時出現(xiàn)亂碼問題,并指定所生成二維條碼圖片的路徑、名稱和文件格式;然后,找到Z*ing中二維碼QR碼所對應的編碼類QR-CodeWriter,調(diào)用encode方法生成給定容對應的比特矩陣;最后將比特矩陣轉化為制定的圖片格式。第三章 處理流程及結果演示3.1處理流程二維碼處理流程如圖3.1所示,假設已有二維碼圖像,直接讀取該圖像,

10、在此根底上完成解碼識別等過程,用戶也可按照自己的意愿在文本框里輸入漢字或數(shù)值等容,調(diào)用Z*ing,生成對應的二維碼圖像。后對圖像進展灰度化、加噪平滑、二值化、旋轉校正、畸變校正等預處理,并在此根底上再次調(diào)用Z*ing完成解碼識別的過程。圖3.1 二維碼生成及處理流程圖3.2 界面設計 本實驗設計界面如圖3.2所示,界面可實現(xiàn)功能:翻開一幅二維碼圖像,對該圖像進展灰度化、加噪平滑、二值化、旋轉校正、畸變校正等預處理,并在這些過程的根底上完成對二維碼圖像的解碼過程。還可以對用戶自身想要的文字或者網(wǎng)址進展二維碼圖形的制作,并完成解碼顯示。圖3.2 界面設計3.3 預處理及其結果演示通過讀取圖像翻開待

11、處理原始二維碼圖像,并顯示該二維碼圖像如圖3.3 所示。根據(jù)待識別圖像各自特點施以不同的預處理手段。圖3.3 原始QR圖像3.3.1 灰度化處理通常情況下,使用數(shù)碼相機等攝像設備獲取的QR碼是彩色的,和灰度圖像相比,彩色圖像含有的信息量較大,所占存儲空間更多,將彩色圖像轉化成灰度圖像是為了減少存儲空間,降低運算量。灰度化處理后圖像如圖3.4所示。圖3.4 灰度化處理圖像3.3.2 平滑處理對圖像參加椒鹽噪聲,然后采用中值濾波對圖像進展平滑濾波處理,加噪及平滑處理后圖像分別如圖3.5a和b所示。a加噪圖像 b平滑圖像圖3.5 加噪平滑處理3.3.3 二值化處理標準的二維碼圖像是由黑白兩種小的模塊

12、組合而成的,灰度化之后需對圖像進展二值化處理,以便數(shù)據(jù)的壓縮、特征的突出以及圖形的識別。圖像二值化的方法是通過預先設定的一個閾值,將灰度圖像分為小于這個閾值和大于這個閾值的兩局部,通過閾值的選取可以將圖像的背景區(qū)和條碼符號分開,本文采用自適應閾值法對圖像進展二值化處理。自適應閾值法的根本原理是采用*一假定的灰度值t將圖像的灰度分為兩組,當兩組的類間方差最大時,此灰度值就是二值化的最正確閾值,二值化處理結果如圖3.6所示。圖3.6 二值化處理3.3.4 旋轉校正在二維碼圖像采集的過程之中,由于拍攝角度的問題,會導致圖像產(chǎn)生一定的旋轉畸變,本文采取霍夫變換的方法對此情況進展校正,旋轉校正前后的圖像

13、如圖3.7所示。圖3.7原圖左以及旋轉校正后的圖像右在旋轉校正之前,需要對圖像做邊緣檢測。本實驗使用的邊緣檢測算子為canny算子,canny算子可尋找圖像梯度的局部最大值,且不易受噪聲干擾,能夠很好地檢測出弱邊緣,邊緣檢測結果如圖3.8所示。圖3.8 邊緣檢測采取霍夫變換的方法對圖像進展旋轉校正,主要是在圖像空間和參數(shù)空間建立起一個線-點之間的對應關系,每條曲線表示一個點,Hough變換統(tǒng)計所有變化的峰值,并標記,得到4個頂點,如圖3.9所示。圖3.9 Hough空間顯示圖使用Hough變換檢測線段,標出線段以及線段的起始和端點,得到每條線段的斜率,并計算傾斜角度值,最后將圖像中的線條與點顯

14、示出來,如圖3.10所示。圖3.10 直線標識圖像圖像的坐標原點默認為平面的左上角,根據(jù)得到的角度值,將圖像按照角度進展旋轉,便能夠完成對圖像的旋轉校正。3.3.5 畸變矯正可能會由于角度的問題,導致圖像產(chǎn)生幾何形變,使原來的QR碼呈現(xiàn)不規(guī)則的四邊形,從而影響二維碼信息的正確提取。使用雙線性插值法將不規(guī)則則的四邊形區(qū)域通過一定的映射關系變?yōu)镼R碼標準正方形,從而方便了對二維碼信息的提取?;冃U昂笕鐖D3.10所示。圖3.10原圖左以及畸變校正后的圖像右3.4 QR碼解碼識別解碼技術是指從二維碼中讀取出所包含的信息,本實驗直接調(diào)用Z*ing完成解碼識別的過程,包括以下幾個步驟:首先,導入Z*ing類庫中的包;其次,指定二維條碼圖片的路徑;然后,找到 Z*ing 中二維條碼QR碼所對應的解碼類QR-CodeReader,調(diào)用其decode方法生成二維條碼所包含信息對應的對象;最后,讀取出對象中的信息。3

溫馨提示

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

評論

0/150

提交評論