亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Symbian嵌入式平臺的DM碼識別系統(tǒng)

        2010-09-25 02:58:18史秉政
        關(guān)鍵詞:條碼解碼對焦

        史秉政

        (南京航空航天大學 信息科學與技術(shù)學院,南京 210016)

        引 言

        隨著智能手機處理能力及手機攝像頭分辨率的快速提高,手機二維條碼的應用也越來越廣。手機既可以作為二維條碼的載體,比如用戶可以接收到服務商發(fā)送來的二維條碼,再到實際消費場所以此作為憑證,進行消費;也可以作為二維條碼的解碼設(shè)備,對印刷在商品包裝上的二維條碼進行解碼識別,得到商品相應的信息。目前,二維條碼在國外一些發(fā)達國家已經(jīng)有了很廣泛的應用,在我國還處于發(fā)展階段。中國移動已經(jīng)正式推出了二維條碼的業(yè)務,可以預見,手機二維條碼必將在我國發(fā)展成為重要的移動增值業(yè)務。

        DM碼(DataMatrix Code),原名Datacode,是由美國國際資料公司(International Data Matrix)于1989年發(fā)明的。DataM atrix二維條碼是一種矩陣式二維條碼,其發(fā)展構(gòu)想是希望在較小的條碼上存入更多的數(shù)據(jù)。DataMatrix二維條碼的最小尺寸是目前所有條碼中最小的,特別適合于小零件的識別,以及直接印刷在實體上。

        DataMatrix采用了復雜的糾錯碼技術(shù),使得該編碼具有超強的抗污染能力,即使編碼部分破損,也不會影響讀出全部信息。它有兩種類型,即ECC 000-140和ECC200。ECC 000-140具有幾種不同等級(ECC 050、ECC 080、ECC 100、ECC 140)的卷積錯誤糾正功能 ;而ECC 200是通過Reed-Solomon糾錯算法實現(xiàn)糾錯功能。對于新的應用,推薦使用ECC 200,本文也以 ECC 200為對象。

        本文實現(xiàn)了基于Symbian平臺的DM碼的識別系統(tǒng)。測試表明,本系統(tǒng)可以正確、快速地識別DM 碼。

        1 DM碼符號簡介

        每個DataMatrix二維條碼符號由規(guī)則排列的方形模組構(gòu)成的資料區(qū)組成,資料區(qū)的四周由定位圖形(Finder Pattern)所包圍,定位圖形的四周則由空白區(qū)包圍,資料區(qū)再以排位圖形(alignment pattern)加以分隔。

        定位圖形是資料區(qū)域的一個邊界,為一個模組寬度。其中兩條鄰邊為暗實線,主要用于限定物理尺寸,定位和符號失真。另兩條鄰邊由交替的深色和淺色模組組成,主要用于限定符號的單元結(jié)構(gòu),但也能幫助確定物理尺寸及失真,如圖1所示。

        圖1 Data Matrix圖形結(jié)構(gòu)

        2 DM碼識別與解碼的基本過程

        識別過程是對DM碼進行解碼的前期步驟,其基本步驟如下:

        ①圖像灰度化?;叶然袃煞N常見的算法:第1種是標準灰度化計算公式W=0.30R+0.59G+0.11B,第2種是最大值灰度化公式W=max(R,G,B)。設(shè)某像素的RGB的彩色各分量值為(R,G,B),其中0≤R,G,B≤255,W為灰度轉(zhuǎn)換結(jié)果,max用于求取最大值??紤]到嵌入式設(shè)備得到的待解碼圖像多為黑白顏色,為了能夠以更快的速度進行灰度化,并減少系統(tǒng)的運算量,這里采用第2種方法的改進公式W=G來進行灰度化。

        ②圖像濾波。條碼圖像的噪聲一般來自于嵌入式設(shè)備的光學采集系統(tǒng)。這種噪聲是滿足泊松分布的椒鹽噪聲,可以用適當大小的中值濾波來進行處理。

        ③圖像增強。由于圖像可能存在高光區(qū)、陰影等缺陷,可以在二值化之前進行同態(tài)濾波,以此將圖像亮度范圍壓縮,并將圖像對比度增強,可以得到比較滿意的圖像增強效果,有利于二值化操作。

        ④灰度圖像二值化處理。這里使用Ostu算法[1]計算出一個全局閾值T1,以此作為二值化的閾值。

        ⑤在得到的二值圖像上進行對DM碼定位圖形的檢測,定位圖形就是左邊與下邊的直線連在一起形成的“L”邊。關(guān)鍵是對直線的檢測。

        首先通過Sobel算子,將二維條碼圖像進行邊緣提取。然后根據(jù)Freeman準則進行直線檢測。

        Freeman直線檢測的3條準則如下:

        a.一條數(shù)字直線的8鄰域鏈碼中最多包括兩個方向,其中一個為主方向。它是決定直線方向的主要因素。

        b.這兩個方向的鏈碼值相差1(mod8)。

        c.主方向上鏈碼值相同的連續(xù)像素組成一個線段子元,除去第一個和最后一個線段子元,其余各線段子元的長度至多相差一個像素。

        對檢測到的直線段,采用以下準則判斷是否是條碼的“L”定位圖形:

        a.兩直線段夾角在90°附近時判斷兩線段夾角準則如下:設(shè)線段1中起始像素坐標為(X1,Y1),終止像素坐標為(X2,Y2);線段2中起始像素坐標為(X3,Y3),終止像素坐標為(X4,Y4),則線段1的斜率K1=(Y2-Y1)/(X2-X1),線段 2的斜率 K2=(Y4-Y3)/(X4-X3),兩線段之間的偏轉(zhuǎn)角度θ=arctg(|(K2-K1)/(1+K2K1)|)。

        由于存在透視效果,若|90°-θ|≤α(α為閾值,一般α∈[0,20°])成立,則兩線段近似認為是垂直線段。

        b.DataMatrix條碼的“L”定位圖像有交點,因此判斷兩直線是否具有相同或相近交點。

        c.由于DataMatrix條碼的特點,一般長寬比不超過3,因此判斷兩直線段長度比在1~3之間。

        將符合以上準則的直線段作為候選“L”邊,過濾其他不符合條件的直線段。

        ⑥通過得到DM碼定位圖形,可以將DM碼旋轉(zhuǎn)至水平位置,并將DM碼分割出來。

        通過以上步驟完成DM碼的識別。

        DM碼解碼基本步驟如下:

        a.識別格式信息,完成對格式信息模塊的糾錯和識別。

        b.識別版本信息,確定DM 碼的版本。

        c.消除掩膜。

        d.根據(jù)模塊排列規(guī)則,識別符號字符,得到信息和糾錯碼字。

        e.用得到的糾錯碼字對識別得到的信息進行錯誤檢測,如發(fā)現(xiàn)錯誤則進行糾錯。

        f.按照所使用的模式譯碼得出數(shù)據(jù)字符,并輸出結(jié)果。

        3 DM碼識別系統(tǒng)在Symbian平臺上的實現(xiàn)

        3.1 Symbian操作系統(tǒng)介紹

        目前,主流的智能手機操作系統(tǒng)有3種:Symbian、Windows Mobile和Linux。其中Symbian以其平臺的開放性、較低的授權(quán)費用、眾多廠商的支持、對硬件要求低、第三方軟件豐富等優(yōu)勢,成為智能手機市場上應用最為廣泛的產(chǎn)品。Symbian是一個實時、多任務的純32位操作系統(tǒng),具有功耗低、內(nèi)存占用少等特點,非常適合手機等移動設(shè)備使用,經(jīng)過不斷完善,可以支持GPRS、藍牙、SyncML以及3G技術(shù)。最重要的是,它是一個標準化的開放式平臺,任何人都可以為支持Symbian的設(shè)備開發(fā)軟件。Symbian操作系統(tǒng)融合了許多功能強大、成熟穩(wěn)定的技術(shù),其中包括豐富的應用引擎、移動電話技術(shù)、安全性、多媒體、支持多種應用界面、通信協(xié)議、軟件開發(fā)(Java和C++)等。

        根據(jù)不同的終端產(chǎn)品在屏幕尺寸、用戶輸入方式等方面的差異,Symbian給出了用戶界面風格的3種參考設(shè)計——Pearl、Crystal和Quartz,最終演變?yōu)镾ymbian上的3種主要平臺——Series 60、Series 80和 UIQ。Series 60是智能手機中應用最廣泛的系統(tǒng)版本,擁有最多第三方軟件或游戲的界面。Series 80針對屏幕分辨率為640×200像素、采用標準鍵盤輸入的高端智能手機。UIQ針對采用筆式輸入(觸摸屏)的智能手機。本系統(tǒng)是在基于Symbian Series 60 3rd FP2(第3版Features Pack 2)平臺的手機上實現(xiàn)的。

        3.2 圖像采集

        在手機移動平臺上進行DM碼解碼處理,圖像采集獲取是重要的第一步。在Symbian Serial 60平臺上,使用CCamera類對攝像頭的操作進行了封裝,提供了與攝像頭操作有關(guān)的API,并提供了一個MCameraObserver的類來通知系統(tǒng)攝像頭操作的各種關(guān)鍵事件的完成,必須實現(xiàn)這個類的所有純虛方法,以供系統(tǒng)在一個事件完成的時候進行回調(diào)。McameraObserver類與CCamera類是觀察者設(shè)計模式(observer designed Pattern)在Symbian中的具體體現(xiàn)。具體啟動攝像頭取景器步驟如下:

        首先,創(chuàng)建一個CCamera類的實例:

        這樣以后就可以通過iCamera來實現(xiàn)對攝像頭的操作了。然后,取得攝像頭的使用權(quán),這可以通過函數(shù)iCamera->Reserve()來實現(xiàn)。這是個異步函數(shù),在取得攝像頭使用權(quán)成功后,系統(tǒng)會自動調(diào)用 MCameraObserver::ReserveComplete()方法。在這個回調(diào)函數(shù)中,就可以進行下一步操作,對攝像頭進行上電啟動,通過函數(shù)iCamera->PowerOn()來實現(xiàn),同樣這也是一個異步函數(shù)。在對攝像頭上電完成后,系統(tǒng)接著就會自動調(diào)用MCameraObserver::PowerOnComplete()這個回調(diào)函數(shù),這時在這個函數(shù)中就可以啟動取景器了,具體函數(shù)為iCamera->StartViewFinderBitmapL()。當取景器得到一幀圖像的時候,系統(tǒng)就會自動的周期性的調(diào)用MCameraObserver::ViewFinderFrameReady(CFbsBitmap aFrame),而放在aFrame這個參數(shù)中的圖像就是得到的要進行處理的圖像,在這個函數(shù)中完成圖像的解碼。這樣就完成了圖像的采集工作。

        3.3 自動對焦

        一般的DM碼是印刷在商品的包裝上的,這就決定了DM碼的面積不能太大。另外手機在取景的過程中,操作者可能會有抖動的現(xiàn)象,這兩點原因就給DM碼的圖像采集造成了麻煩,可能導致攝像頭得到的圖像很不清楚,不利于后期的解碼。對于這一問題,如果攝像頭支持自動對焦(auto focus),那就可以用自動對焦來使攝像頭得到的圖像自動變得清晰。

        自動對焦是作為Symbian開發(fā)平臺SDK的擴展庫(extension library)中的一個功能,可由開發(fā)者自行將相應的頭文件和庫文件添加到SDK中。具體使用如下:

        首先包含頭文件#include<CCamAutoFocus.h>和在Symbian工程的MMP文件中鏈接庫文件LIBRARY Cam-AutoFocus.lib。然后構(gòu)造一個CCamAutoFocus類的實例,iAutoFocus=CCamAutoFocus::NewL(iCamera),這樣就可以用iAutoFocus來進行自動對焦的相應操作。

        對自動對焦進行操作需通過以下步驟:

        ①初始化:iAutoFocus->InitL(*this)。

        ②開始自動對焦:iAutoFocus->AttemptOptimisedFocusL()。

        ③取消自動對焦:iAutoFocus->Cancel()。

        ④關(guān)閉:iAutoFocus->Close()。

        對于初始化和開始自動對焦這兩個步驟,都有相應的回調(diào)函數(shù),CCamEngine ::InitComplete()和 CCamEngine::OptimisedFocusComplete(),以便在完成相應動作的時候,開發(fā)者作一些相關(guān)操作。

        通過自動對焦,當用戶將手機攝像頭在一定距離內(nèi)對準DM碼時,可以看到攝像頭的取景器自動變得清晰了,而這對于解碼來說非常重要。

        在本項目中,為了方便用戶,還采用了定時器的功能,即通過設(shè)定時間間隔,每隔一段時間就自動對焦一次,這樣更能保證采集圖像的清晰程度。

        3.4 清除棧和兩階段構(gòu)造

        Symbian平臺是專門為嵌入式移動設(shè)備而設(shè)計的操作系統(tǒng),而手機這一移動嵌入式設(shè)備的內(nèi)存資源非常有限,而且通常要連續(xù)運行很長時間卻很少重啟。這兩個特點就使得內(nèi)存泄漏在Symbian系統(tǒng)上變成了非常重要的問題。對于這個問題,Symbian系統(tǒng)采用清除棧和兩階段構(gòu)造來解決[2]。

        清除棧(在e32base.h中定義CleanupStack)是一個特殊棧,它對于Symbian OS資源管理至關(guān)重要。它在本質(zhì)上是一種用于保護在異常退出發(fā)生時清除所有資源,從而不會產(chǎn)生任何內(nèi)存泄漏的方式。

        其基本思想是,在調(diào)用可能異常退出的函數(shù)前,使用PushL()將可能泄露的內(nèi)存指針推入清除棧。如果真的發(fā)生異常,就自動刪除推入棧上的指針所指向的內(nèi)存空間;如果沒有發(fā)生異常,就使用Pop()方法從棧上移除指針。這樣就可以避免因為發(fā)生異常而導致的內(nèi)存泄露。

        兩階段構(gòu)造就是建立在清除棧基礎(chǔ)上的一種安全的構(gòu)造對象的方法。

        一般PC平臺的程序通過new方法來進行構(gòu)造的對象,會自動調(diào)用相應的構(gòu)造函數(shù),但如果在構(gòu)造函數(shù)中發(fā)生了異常退出,那么這個對象前期所申請的內(nèi)存就會產(chǎn)生泄露。兩階段構(gòu)造就是用于解決這一問題的。

        3.5 版本兼容

        本項目基于Symbian Serial 60 3rd FP1平臺,而目前已經(jīng)有了Symbian Serial 60 3rd FP2和Symbian Serial 60 5th(第5版)。這2個版本和本項目的平臺版本的一個重要區(qū)別,就是對攝像頭的操作。為了與這兩個版本保持兼容,需要將對攝像頭操作的CCamera類換成CCameraEngine類。這個類同樣也是一個SDK擴展功能,使用時要包含頭文件#include"CamEngine.h"和鏈接庫LIBRARY camerawrapper.lib。

        本系統(tǒng)在NOKIA N82和NOKIA N95上進行了測試,可以正確、快速地進行解碼;在NOKIA 5800(Symbian S60第五版)上進行了兼容性測試,也得到了很好的效果。

        4 結(jié) 論

        本文通過介紹DataMatrix二維條碼的基本原理和識別解碼的基本步驟,設(shè)計并實現(xiàn)了一個基于Symbian平臺的DataMatrix的識別系統(tǒng)。詳細介紹了Symbian平臺攝像頭的應用和自動對焦的特點,并對不同的Symbian平臺版本之間的代碼兼容作了說明。

        本系統(tǒng)可以準確、快速地識別二維條碼。還可以加入驗證功能,即通過網(wǎng)絡(luò)連接或發(fā)送短信的方式,將識別所得的二維條碼所包含的真?zhèn)涡畔l(fā)送的服務器,在服務器端進行防偽驗證工作,并將驗證結(jié)果返回給用戶。此功能目前已經(jīng)實現(xiàn),這也是本系統(tǒng)的一項擴展應用。可以預見,通過使用手機識別二維條碼來獲取信息的應用前景將會非常廣泛。

        [1]高木干雄,下田陽久.圖像處理技術(shù)手冊[M].北京:科學出版社,2007.

        [2]Leigh Edwards,Richard Barker.Serial 60應用程序開發(fā)[M].周良忠,譯.北京:人民郵電出版社,2005.

        [3]劉寧鐘,楊靜宇.基于傅里葉變換的二維條碼識別[J].中國圖像圖形學報,2003,8(8):877-882.

        [4]劉寧鐘,楊靜宇.基于波形分析的二維條碼識別[J].計算機研究與發(fā)展,2004,41(3):463-469.

        [5]章毓晉.圖象處理和分析[M].北京:清華大學出版社,1999.

        [6]王新梅,肖國鎮(zhèn).糾錯碼——原理與方法[M].西安:西安電子科技出版社,2001.

        [7]史冊,徐勝榮,荊仁杰,等.實時圖像處理中一種快速的直線檢測算法[J].浙江大學學報.1999(9).

        猜你喜歡
        條碼解碼對焦
        中國條碼技術(shù)與應用協(xié)會
        條碼微站
        《解碼萬噸站》
        解碼eUCP2.0
        中國外匯(2019年19期)2019-11-26 00:57:32
        NAD C368解碼/放大器一體機
        Quad(國都)Vena解碼/放大器一體機
        多重對焦有必要嗎?
        大眾攝影(2017年3期)2017-03-09 17:36:03
        相位對焦vs對比度偵測對焦
        技術(shù)櫥窗
        影像視覺(2016年4期)2016-06-06 09:58:20
        基于固定條碼與電子標簽比對設(shè)備的設(shè)計
        AV教师一区高清| 色婷婷亚洲一区二区三区| 国产无套内射久久久国产| 亚洲色图+国产精品| 99在线无码精品秘 人口| 99久久精品人妻一区| 国产 高潮 抽搐 正在播放| 50岁熟妇的呻吟声对白| 日韩人妻无码精品-专区| 尤物视频一区二区| 黑丝美女喷水在线观看| 风骚人妻一区二区三区| 中文字幕人妻中文| 亚洲狠狠网站色噜噜| 亚洲毛片av一区二区三区| 激情五月开心五月麻豆| 成人毛片无码一区二区三区| 欧美日本亚洲国产一区二区| 青青青伊人色综合久久| av天堂最新在线播放| 午夜福利试看120秒体验区| 国产成人精品精品欧美| 日韩精品一区二区三区含羞含羞草| 国产三a级三级日产三级野外| 人妻丰满熟妇av无码区不卡| 亚洲成av人片天堂网九九| 区三区久久精品水蜜桃av| 色呦呦九九七七国产精品| 色婷婷综合久久久中文字幕| 成熟丰满熟妇高潮xxxxx| 国产一区二区三区免费在线视频 | 精品久久久久一区二区国产| 日韩av最新在线地址| 日本h片中文字幕在线| 国产农村乱子伦精品视频| 99精品久久久中文字幕| 蜜桃成熟时日本一区二区 | 无码国产精品一区二区免费模式| 亚洲精品123区在线观看| 久久一区二区视频在线观看| 午夜免费视频|