android:一卡通系统,基于Android嵌入式平台的QR码识别系统 - 中国一卡通网
圖5( a) 為傾斜的條碼,圖5( b) 為采用雙線性插值旋轉的結果,實驗表明,雙線性插值處理后得到的圖像具有良好的效果,有利于條碼識別。
3. 4 圖像的矯正
由于在拍攝時,攝像頭的角度不會完全垂直于二維條碼平面,因此拍攝到的條碼或多或少會有透視效果,在手持手機拍攝時,這個問題很常見,也是圖像處理中的難點。這里使用反透視算法[7],能夠對圖像進行反透視矯正。設三維失真空間中的一點坐標[x',y ',z'],其其次坐標可以設為[x',y',z',1]T ; 三維基準空間中對應點坐標[x,y,z],其其次坐標設為[x',y',z',k]T,因此有公式為
在上述定位算法中,得到了條碼的3 個探測圖形中心點的坐標,因此可以得出條碼4 個頂點的坐標,根據如下基準點與失真點的映射關
根據式( 7) 和式( 8) ,可以得出
一般地P = 1,k = 1,失真圖像和校正后的圖像共面,那么z = z' = c,c 是常數,令c = 0,可以將( 9) 簡化為
可以根據條碼的4 組頂點,求出8 個待定系數A,B,D,E,F,H,M,N,然后對條碼的每個點進行矯正。
4 QR 碼識別系統在Android 平臺上實現
4. 1 Android 簡介 Android 是基于Linux 平臺的開源手機操作系統,它采用軟件堆層的架構,主要分為3 個部分: 操作系統、中介軟件和應用程序。底層以Linux 內核工作為基礎,用C 語言開發,只提供基本功能; 中間層包裹函數庫Library 和虛擬機Virtual Machine,由C ++ 開發;最上層是各種應用軟件,包括通話程序,短信程序等,主要以Java 作為編程語言。
為能夠快速地處理大量的數據,Android 也提供了以C /C ++ 作為開發語言的NDK( Native Developer Kit)平臺,它編譯生成的. SO 動態鏈接庫可以供AndroidSDK( Software Development Kit) 平臺下的應用程序調用。在本系統的實現中,因為圖像的預處理和解碼部分要進行大量數據運算,所以把這兩部分的程序放在NDK 下完成,攝像頭啟動與圖像采集在SDK 下實現。由于Android 的虛擬機Dalvik 不能執行. class 文件,所以要把. class 文件的字節碼轉換成. dex 文件的字節碼,識別系統的編譯過程如圖5 所示。
4. 2 圖像的采集
系統在手機上實現,圖像的采集[2 - 6]是重要的一步,在Android 平臺上,是使用Camera 類來完成攝像頭的調用和圖像采集。使用Camera mCamera = Camera.open ( ) 獲得Camera 的實例,然后使用Camera.Parameters 來設置獲得圖像的大小,最后通過實現Camera. Preview - Callback 的接口onPreviewFrame( byte []data,Camera camera) 來獲得攝像頭的圖像數據。圖像數據data 為YUV 格式,其中Y 分量的大小為 mageWidth* ImageHeight 個字節,U 分量的大小為0. 25 × ImageWith* ImageHeight 個字節,V 分量的大小和U 分量一樣,因為條碼是黑白色,Y 分量正好包含的是圖像的灰度信息,將省去對圖像進行灰度化的處理,所以在取圖像數據時,只取Y 分量進行處理。
4. 3 自動對焦 為能夠較快地獲得清晰的圖像,提高識別速度,文中使用了自動對焦技術。關鍵代碼如下:
( 1) 實現自動對焦的接口
AutoFocusCallback Camera. AutoFocusCallback mAutoFocusCallback =
new Camera. AutoFocusCallback( )
{
Public void onAutoFocus( boolean success,Camera
camera)
{
mCamera. setOneShotPreviewCallback ( mPreviewCallback)
;
}
}
( 2) 創建一個定時器
創建定時器的目的是使手機每隔一段間隔就自動對焦一次。定時器內的代碼如下:
mCamera. autoFoucs( mAutoFocusCallback) ;
5 結束語
文中研究了QR 碼的識別技術,討論了在Android平臺上實現系統的技術問題,并結合數字圖像處理技術,在Android 手機平臺上進行了QR 碼的識別技術的開發。根據圖像的大小,本系統在三星i9000( CPU 型號ARM Cortex A8,主頻為1 GHz,內存512 MB,操作系統為Android OS v2. 1) 上分別對100 幅圖像進行了測試,結果如表1 所示。
總結
以上是生活随笔為你收集整理的android:一卡通系统,基于Android嵌入式平台的QR码识别系统 - 中国一卡通网的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python字典dict
- 下一篇: android sina oauth2.