基于移動(dòng)機(jī)器人的嵌入式開(kāi)發(fā) 課件 16-二維碼識(shí)別_第1頁(yè)
基于移動(dòng)機(jī)器人的嵌入式開(kāi)發(fā) 課件 16-二維碼識(shí)別_第2頁(yè)
基于移動(dòng)機(jī)器人的嵌入式開(kāi)發(fā) 課件 16-二維碼識(shí)別_第3頁(yè)
基于移動(dòng)機(jī)器人的嵌入式開(kāi)發(fā) 課件 16-二維碼識(shí)別_第4頁(yè)
基于移動(dòng)機(jī)器人的嵌入式開(kāi)發(fā) 課件 16-二維碼識(shí)別_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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)介

北京工業(yè)職業(yè)技術(shù)學(xué)院嵌入式系統(tǒng)應(yīng)用主講:

XXX老師二維碼識(shí)別學(xué)習(xí)目標(biāo)掌握了解熟悉嵌入式車(chē)型機(jī)器人二維碼功能實(shí)現(xiàn)軟件設(shè)計(jì)13二維碼的應(yīng)用二維碼的特點(diǎn)二維碼的API2嵌入式車(chē)型機(jī)器人的二維碼使用主講內(nèi)容主講內(nèi)容Speechcontent16.2二維碼設(shè)計(jì)案例16.1二維碼概述16.1.1二維碼簡(jiǎn)介二維碼(2-dimensionalbarcode)是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的、黑白相間的、記錄數(shù)據(jù)符號(hào)信息的圖形。二維碼在代碼編制上巧妙地利用構(gòu)成計(jì)算機(jī)內(nèi)部邏輯基礎(chǔ)的0、1比特流的概念,使用若干與二進(jìn)制相對(duì)應(yīng)的幾何形體來(lái)表示文字?jǐn)?shù)值信息,通過(guò)圖像輸入設(shè)備或光電掃描設(shè)備自動(dòng)識(shí)讀以實(shí)現(xiàn)信息自動(dòng)處理。它具有條碼技術(shù)的一些共性:每種碼制有其特定的字符集,每個(gè)字符占有一定的寬度,具有一定的校驗(yàn)功能等。同時(shí)還具有對(duì)不同行的信息自動(dòng)識(shí)別及處理圖形旋轉(zhuǎn)變化點(diǎn)功能。二維碼概述16.1.2二維碼API簡(jiǎn)介在Android中,一般使用Google公司提供的Zxing開(kāi)源庫(kù)解析二維碼。使用Zxing時(shí),首先要導(dǎo)入corejar包。導(dǎo)入完成以后,在項(xiàng)目中添加文件RGBLuminanceSource.java。該文件幫助用戶調(diào)節(jié)二維碼圖片像素的亮度,轉(zhuǎn)換為計(jì)算亮度較好的顏色。其中的代碼如下:二維碼概述importjava.io.FileNotFoundException;importandroid.graphics.Bitmap;importandroid.graphics.BitmapFactory;importcom.google.zxing.LuminanceSource;publicclassRGBLuminanceSourceextendsLuminanceSource{ privatefinalbyte[]luminances; //類的重構(gòu)

publicRGBLuminanceSource(Bitmapbitmap){ super(bitmap.getWidth(),bitmap.getHeight()); //得到圖片的寬高二維碼概述intwidth=bitmap.getWidth(); intheight=bitmap.getHeight(); //得到圖片的像素

int[]pixels=newint[width*height]; // bitmap.getPixels(pixels,0,width,0,0,width,height); luminances=newbyte[width*height]; //得到圖片每點(diǎn)像素顏色二維碼概述for(inty=0;y<height;y++){ intoffset=y*width; for(intx=0;x<width;x++){ intpixel=pixels[offset+x]; intr=(pixel>>16)&0xff; intg=(pixel>>8)&0xff; intb=pixel&0xff; //已經(jīng)是灰度圖像,所以可選擇任何通道

if(r==g&&g==b){ luminances[offset+x]=(byte)r; }二維碼概述else{ luminances[offset+x]=(byte)((r+g+g+b)>>2); } } } } //類的重構(gòu)

publicRGBLuminanceSource(Stringpath)throwsFileNotFoundException{ this(loadBitmap(path));

}二維碼概述privatestaticBitmaploadBitmap(Stringpath)throwsFileNotFoundException{ Bitmapbitmap=BitmapFactory.decodeFile(path); if(bitmap==null){ thrownewFileNotFoundException("Couldn'topen"+path); } returnbitmap;

}二維碼概述@Override publicbyte[]getMatrix(){ returnluminances; } @Override publicbyte[]getRow(intarg0,byte[]arg1){ if(arg0<0||arg0>=getHeight()){ thrownewIllegalArgumentException( "Requestedrowisoutsidetheimage:"+arg0); }二維碼概述intwidth=getWidth(); if(arg1==null||arg1.length<width){ arg1=newbyte[width]; } System.arraycopy(luminances,arg0*width,arg1,0,width); returnarg1; }}二維碼概述

第一個(gè)方法中需要一個(gè)參數(shù)BinaryBitmap,字面理解為二進(jìn)制字節(jié)圖片,這就需要接著看com.google.zxing包中的BinaryBitmap類。BinaryBitmap(Binarizerbinarizer)-com.google.zxing.BinaryBitmap這也需要一個(gè)參數(shù),按照上面的思路實(shí)例化Binarizer類時(shí),發(fā)現(xiàn)只能處理黑色圖片,要求較高。查看其開(kāi)放的接口類,發(fā)現(xiàn)HybridBinarizer類混合二進(jìn)制類可以滿足需求,得到最終需要的參數(shù)BinaryBitmap。二維碼概述主講內(nèi)容主講內(nèi)容Speechcontent16.1二維碼概述16.2二維碼設(shè)計(jì)案例16.2.1AndroidUI設(shè)計(jì)結(jié)合嵌入式車(chē)型機(jī)器人的應(yīng)用,可以開(kāi)發(fā)一個(gè)簡(jiǎn)單的二維碼識(shí)別案例,二維碼演示案例UI界面如下圖。二維碼概述整個(gè)UI設(shè)計(jì)應(yīng)用了TextView、EditText、Button和ImageView四個(gè)控件,程序源碼見(jiàn)P143。16.2.2利用Android實(shí)現(xiàn)嵌入式車(chē)型機(jī)器人的二維碼的應(yīng)用二維碼解析開(kāi)發(fā)流程,核心為core.jar包中解析類的應(yīng)用,只要得到解析類需要的參數(shù),即可通過(guò)QRCodeReader類提供的解析方法實(shí)現(xiàn)對(duì)二維碼的解析。(1)在進(jìn)行二維碼開(kāi)發(fā)時(shí),要在項(xiàng)目中的libs文件夾下添加core.jar文件夾。其為谷歌提供的二維碼解析工具包。(2)MainActivity類中編寫(xiě)的布局功能

具體開(kāi)發(fā)參考代碼見(jiàn)P144-P146二

溫馨提示

  • 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)論