• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    彩色三維PDF417條碼的設(shè)計(jì)

    2011-07-05 11:32:32黃乃映詹宜巨
    自動(dòng)化與信息工程 2011年3期
    關(guān)鍵詞:條碼算子灰度

    黃乃映 詹宜巨

    (1.中山大學(xué)信息科學(xué)與技術(shù)學(xué)院 2.中山大學(xué)工學(xué)院)

    1 引言

    最初出現(xiàn)的一維條碼由于承載信息能力有限,人們又設(shè)計(jì)出二維條碼,它使用的是二維坐標(biāo)系,空間上的點(diǎn)可以通過(X,Y)來表示,即條碼在橫向X軸和縱向Y軸都含有信息。但是隨著條碼應(yīng)用范圍的進(jìn)一步擴(kuò)大,其承載信息的能力已經(jīng)不能滿足人們的要求,于是人們又提出三維條碼的理念,用彩色代替原始二維條碼中的黑白色,這樣由顏色衍生出來的Z軸也包含大量的信息,使用的是三維坐標(biāo)系,空間上的點(diǎn)可以通過(X,Y,Z)來表示[1]。

    在所有類型的二維條碼中,PDF417條碼的應(yīng)用范圍最廣并具有很高的認(rèn)可度。它屬于堆疊式二維條碼,由3到90行的截短一維條碼堆疊而成。PDF417條碼的密度會(huì)隨著行數(shù)的增加而增加,對(duì)于低密度PDF417條碼和高密度PDF417條碼的識(shí)別方法是不一樣的,因?yàn)楫?dāng)PDF417條碼的密度較低時(shí),光學(xué)系統(tǒng)點(diǎn)擴(kuò)展函數(shù)的影響可以忽略;反之,當(dāng)PDF417條碼密度較高時(shí)則不能[2,3]。由于現(xiàn)在人們要求PDF417條碼能夠承載更多的信息,因此PDF417條碼的密度越來越高,這給條碼的識(shí)別帶來很大的難度。由于三維條碼使用的是三維空間,即使條碼密度較低,其容納信息的能力也非常強(qiáng)。因此本文結(jié)合三維條碼理論,設(shè)計(jì)彩色三維PDF417條碼,并重點(diǎn)研究三維PDF417條碼的識(shí)別。

    2 彩色三維PDF417條碼的設(shè)計(jì)

    三維PDF417條碼的設(shè)計(jì)主要涉及編碼方式和顏色的選取,下面對(duì)這兩部分做具體的介紹。

    2.1 編碼方式的選取

    條碼的編碼方法分為兩種:模塊組配法和寬度調(diào)節(jié)法,兩種方法的編碼容量都會(huì)隨著模塊寬度的增大而增大。但是實(shí)驗(yàn)表明[4,5]:當(dāng)模塊寬度小于等于7時(shí),寬度調(diào)節(jié)法的編碼容量更大;當(dāng)模塊寬度大于7時(shí),模塊組配法的編碼容量更大。隨著條碼應(yīng)用范圍的不斷擴(kuò)大,人們要求不斷增加條碼的編碼容量,所以模塊寬度常常大于 7,而這時(shí)模塊組配法的編碼容量更大,因此本文選擇模塊組配法編碼方式。

    2.2 顏色的選取

    按照三維條碼理論,顏色的選取主要有兩種方法:第一種方法是根據(jù)同類顏色、不同灰度值進(jìn)行選擇,即將黑色分成不同的等級(jí),如深黑、淺黑、較深黑等等顏色,這種方法不僅對(duì)識(shí)別設(shè)備要求很高,更重要的是條碼的抗干擾性能大大降低,倘若條碼在流通的過程中受到污損、褪色等情況,就不能正確識(shí)別條碼,所以此方法具有很強(qiáng)的局限性;第二種方法是根據(jù)顏色的不同進(jìn)行選擇,這樣可以很好地克服第一種方法的缺點(diǎn)[4,5]。因此本文選取彩色來代替二維條碼中條的顏色,空的顏色仍然采用白色。設(shè)計(jì)的條碼如圖1所示。

    圖1 彩色三維PDF417條碼

    2.3 比較

    下面對(duì)三維PDF417條碼和二維PDF417條碼進(jìn)行比較,以編碼容量作為對(duì)比的標(biāo)準(zhǔn)。

    設(shè)一個(gè)三維PDF417條碼字符的模塊數(shù)為n,條和空的對(duì)數(shù)為k,則所能表示的碼字?jǐn)?shù)為:

    (1)式中p表示條的顏色種數(shù),q表示空的顏色種數(shù)[4,5]。

    設(shè)一個(gè)二維PDF417條碼字符的模塊數(shù)為n,條和空的對(duì)數(shù)為k,則所能表示的碼字?jǐn)?shù)為[4,5]:

    由(1)式除以(2)式得:

    假設(shè)p=6,q=2,可得:

    3 三維PDF417條碼的識(shí)別

    對(duì)于三維PDF417條碼的識(shí)別,本文采取兩種識(shí)別方法:第一種方法是把三維PDF417條碼轉(zhuǎn)化為二維 PDF417條碼進(jìn)行識(shí)別;第二種方法是對(duì)三維PDF417條碼直接進(jìn)行識(shí)別。其識(shí)別過程如圖2 和圖3 所示,兩種方法的主要區(qū)別在于第二種方法沒有圖像預(yù)處理環(huán)節(jié)。

    圖2 第一種識(shí)別方法

    圖3 第二種識(shí)別方法

    3.1 圖像預(yù)處理

    圖像預(yù)處理是第一種識(shí)別方法必不可少的一個(gè)環(huán)節(jié),其主要包括以下三個(gè)環(huán)節(jié):彩色條碼灰度化、圖像二值化、去噪,其具體的流程如圖4所示。

    3.1.1 彩色圖像灰度變換

    圖4 圖像預(yù)處理流程

    彩色圖像灰度變換常用三種方法:加權(quán)法、平均法、最大值法。

    ① 加權(quán)法:有實(shí)驗(yàn)證明:人眼對(duì)不同顏色的敏感程度是不同的,對(duì)綠色最強(qiáng),對(duì)藍(lán)色最弱,在RGB空間中,對(duì)R、G、B以不同的權(quán)值進(jìn)行加權(quán)平均,如式(5)所示:

    (5)式中 f (i,j)為灰度值輸出。

    ② 平均法:在RGB空間中,對(duì)R、G、B三分量的亮度求均值,如式(6)所示:

    (6)式中 f (i ,j)為灰度值輸出。

    ③ 最大值法:在RGB空間中,對(duì)R、G、B三分量的亮度求最大值,其式(7)所示:

    (7)式中 f( i,j)為灰度值輸出。

    以上三種方法處理結(jié)果如圖5、圖6、圖7所示。

    最大值法處理效果如圖 7所示,當(dāng)以 R、G、B三分量亮度最大值作為灰度值輸出,使得輸出的灰度圖像偏亮,這不利于灰度圖像二值化;均值法處理圖像效果如圖6所示,當(dāng)以R、G、B三分量的亮度均值作為灰度值輸出,使得輸出的灰度圖像整體亮度比較均勻,可以滿足圖像二值化的要求,但是如圖5所示的加權(quán)法處理效果更好,圖像與背景之間非常明顯,更加有利于圖像二值化,因此本文選取加權(quán)法進(jìn)行彩色圖像灰度化。

    3.1.2 灰度圖像二值化

    圖5 加權(quán)法

    圖6 均值法

    圖7 最大值法

    灰度圖像二值化常采用閾值化處理,即選擇一個(gè)合適的閾值,將灰度圖像轉(zhuǎn)換成二值圖像,閾值選取的好壞,對(duì)圖像和背景的分離具有重要的影響?,F(xiàn)在普遍采用直方圖技術(shù)來選取閾值,對(duì)于灰度 PDF417條碼圖像來說,在二值化的時(shí)候,可以將條碼中的條作為特征物圖像,空作為背景物圖像;或者將條碼中的空作為特征物圖像,將條作為背景物圖像[6]。

    如圖8所示的二維PDF417條碼直方圖,可以發(fā)現(xiàn)有兩個(gè)峰值較大,則將兩個(gè)較大波峰的中間位置定義為閾值,即谷底的最小值[6]?;叶葓D像二值化后,所得結(jié)果如圖9所示,這里閾值取為0.82。

    3.1.3 去噪

    圖8 條碼直方圖

    圖9 二值圖像

    現(xiàn)在普遍采用濾波器來消除噪聲,濾波器種類比較多,如空域低通濾波器,頻域低通濾波等等,如圖10和圖11所示。

    圖10 3×3模板均值濾波

    圖11 5×5模板均值濾波

    從圖10和圖11可以發(fā)現(xiàn),濾波后條碼圖像顯得比較模糊,這不利于條碼邊緣檢測,如果想保證邊緣檢測的正確性,必須保證圖像與背景之間的清晰。所以本文沒有采用濾波平滑的方法來消除噪聲,而采用受控形態(tài)學(xué)中膨脹和腐蝕算法[7]。

    受控形態(tài)學(xué)的原理比較簡單,主要是通過指定一個(gè)約束量S來控制腐蝕和膨脹運(yùn)算的程度,因?yàn)樵谝话闩蛎浐透g算法中,并沒有具體指出膨脹和腐蝕的程度,這樣很難保證膨脹和腐蝕運(yùn)算的效果,其處理結(jié)果如圖12和圖13所示。由于受控形態(tài)學(xué)中的受控腐蝕和受控膨脹對(duì)于噪聲的敏感度比較低,因此本文采用受控腐蝕和受控膨脹來對(duì)噪聲進(jìn)行平滑處理,其處理結(jié)果如圖14和圖15所示。

    通過比較圖9和圖15,可以發(fā)現(xiàn)條碼圖像邊緣的模糊程度小了很多。通過比較圖10、圖11、圖12、圖13、圖15可以發(fā)現(xiàn),經(jīng)濾波器處理后的圖像,不僅背景灰暗,且邊緣不清楚,這對(duì)于之后邊緣檢測會(huì)產(chǎn)生很大的負(fù)面影響。經(jīng)一般腐蝕和膨脹處理后,圖像產(chǎn)生很大失真,顯然不適合噪聲的消除。但是經(jīng)過先受控腐蝕再受控膨脹處理后,不僅背景清晰,最重要的是圖像失真程度非常小。因此本文采用先受控腐蝕后受控膨脹來消除噪聲。

    圖12 一般膨脹變化

    圖13 一般腐蝕變化

    圖14 先受控腐蝕變化

    圖15 再受控膨脹變化

    3.2 顏色空間的選擇

    彩色圖像邊緣檢測都需要基于一定的顏色空間,如 RGB、HSV顏色空間。一般情況下,數(shù)字圖像是以RGB形式存在。但是實(shí)際情況下,人們?yōu)榱诵枰ǔ0?RGB空間轉(zhuǎn)化為其他形式的空間,但是在轉(zhuǎn)化的時(shí)候,容易受到噪聲的影響[8]。例如將RGB空間轉(zhuǎn)化為HSV空間,再還原為RGB空間,結(jié)果如圖17所示。

    圖16 HSV空間

    圖17 還原RGB空間

    通過比較圖1和圖17,可以發(fā)現(xiàn),如果對(duì)顏色空間進(jìn)行轉(zhuǎn)換,會(huì)造成彩色圖像中某些信息丟失,而且轉(zhuǎn)換后的圖像對(duì)噪聲十分敏感,因此本文仍然選用RGB顏色空間。

    3.3 旋轉(zhuǎn)條碼

    商場購物或者驗(yàn)證發(fā)票時(shí),經(jīng)常出現(xiàn)條碼偏移和傾斜的現(xiàn)象,為了對(duì)條碼精確識(shí)別,則必須在識(shí)別之前,將條碼旋轉(zhuǎn)到水平狀態(tài)。本文采用Hough算法[9]旋轉(zhuǎn)條碼。

    旋轉(zhuǎn)條碼的時(shí)候,由于受到噪聲、污損等外界因素的影響,彩色條碼圖像中條的顏色區(qū)域會(huì)出現(xiàn)少量麻點(diǎn),因此必須對(duì)受到干擾的區(qū)域進(jìn)行插值?,F(xiàn)在出現(xiàn)的插值方法主要有:最鄰近插值、雙線性插值、三次卷積插值、Hermite插值等,本文采用先三次卷積插值再Hermite插值。

    圖18 最鄰近插值

    圖19 雙線性插值

    圖21 再Hermite插值

    旋轉(zhuǎn)后,最鄰近插值法效果最差,旋轉(zhuǎn)得到的條碼圖像邊緣非常粗糙,如圖18所示;雙線性插值旋轉(zhuǎn)效果次之,如圖19所示;三次卷積旋轉(zhuǎn)效果最好,如圖20所示;同時(shí)由于雙線性插值具有低通性質(zhì),因此在高頻的時(shí)候,條碼圖像會(huì)產(chǎn)生失真,會(huì)使圖像邊界更加粗糙;三次卷積法可以有效克服最鄰近插值和雙線性插值的缺點(diǎn)。但是在PDF417條碼層與層交界處,旋轉(zhuǎn)效果仍然不是很好,因此本文利用兩點(diǎn)三次Hermite插值對(duì)每層交界處進(jìn)行平滑,如圖21所示。旋平后的二維條碼和三維條碼如圖2 2和圖2 3所示。

    圖22 二維條碼旋轉(zhuǎn)

    圖23 三維條碼旋轉(zhuǎn)

    3.4 分割單行條碼[6,11]

    由于PDF417條碼是由多行一維條碼疊加而成,因此在識(shí)別的時(shí)候必須分割出每行條碼。利用 Sobel水平邊緣檢測算子 f (x,y)來提取PDF417條碼水平邊緣,再進(jìn)行水平投影,如圖24所示。

    圖24 水平投影后所得圖像[7]

    由圖2 4可知:圖像的峰點(diǎn)對(duì)應(yīng)于條碼的行邊界,這樣行邊界的計(jì)算就轉(zhuǎn)化為峰點(diǎn)數(shù)量的計(jì)算。

    下面利用統(tǒng)計(jì)方法來計(jì)算條碼的行邊界。

    將條碼旋轉(zhuǎn)到水平狀態(tài)后,可以通過條碼的上下邊界方程,來計(jì)算PDF417條碼圖像的高度 H'。則行高如式(10)所示:

    接下來就可以根據(jù)行高來分割單行條碼。條碼圖像分割結(jié)果如圖2 5所示。

    圖25 分割出的單行條碼

    3.5 邊緣檢測

    3.5.1 二維PDF417條碼的邊緣檢測

    條碼邊緣檢測就是采用某種算法,將條碼圖像中的條和空之間的分界線提取出來,常用的邊緣檢測算法有 Roberts、Sobel、Log、Prewitt、Canny 等[11~14]。

    Log算子邊緣檢測效果如圖2 9所示,條碼二值圖像的邊緣大部分都沒有檢測出來,明顯不符合要求;Sobel和Prewitt算子邊緣檢測效果如圖2 6和圖2 8所示,其檢測效果比Log算子稍好,但是仍然有部分邊緣沒有檢測出來;Roberts算子邊緣檢測效果如圖 27所示,從效果圖可以發(fā)現(xiàn),在檢測的時(shí)候,產(chǎn)生了大量的偽邊緣;Canny算子邊緣檢測效果如圖3 0所示,檢測效果不僅邊緣清晰,偽邊緣很少,甚至沒有,故選取Canny算子進(jìn)行邊緣檢測。

    圖26 Sobel算子檢測

    圖27 Roberts算子檢測

    圖28 Prewitt算子檢測

    圖29 Log算子檢測

    圖30 Canny算子檢測

    3.5.2 三維PDF417條碼的邊緣檢測

    除了將彩色條碼圖像轉(zhuǎn)化為灰度二值圖像外,還可以直接從彩色條碼圖像入手。在對(duì)一般的彩色圖像進(jìn)行邊緣檢測的時(shí)候,如果出現(xiàn)部分邊緣丟失,不會(huì)對(duì)結(jié)果產(chǎn)生很大的影響,但是彩色三維PDF417條碼圖像則不同,因?yàn)闂l碼圖像中的顏色攜帶著大量的信息,如果在邊緣檢測的時(shí)候出現(xiàn)漏檢,就會(huì)對(duì)結(jié)果產(chǎn)生很大的影響。下面用傳統(tǒng)Canny算法來直接檢測彩色三維PDF417條碼圖像邊緣,如圖3 1所示。

    圖31 傳統(tǒng)的Canny算法

    從圖3 1可以發(fā)現(xiàn),直接利用傳統(tǒng)Canny算法檢測條碼邊緣,得到的結(jié)果并不是十分的理想,因此本文對(duì)傳統(tǒng)Canny算法進(jìn)行改進(jìn),傳統(tǒng)Canny算法共有四個(gè)步驟[11~14]:① 利用高斯濾波器平滑圖像,去除圖像噪聲;② 利用一階偏導(dǎo)的有限差分來計(jì)算梯度幅值和方向;③ 對(duì)梯度幅值進(jìn)行非極大值抑制;④ 用雙閾值算法檢測并且連接邊緣。

    現(xiàn)在對(duì)第二步、第三步進(jìn)行優(yōu)化。

    (1)梯度幅值和方向的計(jì)算

    首先,彩色圖像仍然以 RGB的形式存在,在點(diǎn)(i,j)的8個(gè)鄰域內(nèi),通過對(duì)x、y、45°、135°方向上求偏導(dǎo),來計(jì)算點(diǎn) (i ,j)的梯度值和方向。其具體過程如下:

    x方 向 偏 導(dǎo) 數(shù) Rx(i,j)、 Bx(i,j)、 Gx(i,j)、Py(i,j ):

    (2)在第一種方法中,是把彩色圖像轉(zhuǎn)化為灰度二值圖像,這樣圖像與背景之間非常清晰。如果直接用傳統(tǒng)的Canny算法對(duì)彩色三維PDF417條碼進(jìn)行邊緣檢測,由于圖像與背景之間不是那么清晰,因此邊緣檢測效果不是很好,效果如圖3 0所示,因此閾值選取的好壞對(duì)邊緣檢測有著至關(guān)重要的作用。由于傳統(tǒng)Canny算法采用雙閾值進(jìn)行判別,這樣容易造成漏檢或者產(chǎn)生偽邊緣,為克服這缺點(diǎn),本文采用局部動(dòng)態(tài)閾值選擇的方法。

    已知原梯度圖像Y,Y經(jīng)過非極大值抑制之后得到的圖像為X,則閾值選擇的過程如下:

    ① 計(jì)算X中各個(gè)候選點(diǎn)的雙閾值。設(shè) x( i ,j)是X中的一點(diǎn),Y中存在一個(gè)中心為 Y (i,j)的正方形,其寬度為a,點(diǎn) x( i ,j)雙閾值的選取與正方形內(nèi)梯度分布存在緊密的聯(lián)系,可以根據(jù)PDF417條碼密度的大小調(diào)整a的大小,a的取值范圍為 [3 0,50],在所選正方形區(qū)域梯度直方圖中,像素點(diǎn)個(gè)數(shù)的計(jì)算是按照梯度遞增順序進(jìn)行累計(jì)[15]。假設(shè)像素點(diǎn)的總個(gè)數(shù)為 Z,高閾值用T2表示,低閾值用 T1表示,當(dāng)累計(jì)和占 Z得百分比則為T2,T2的40%為T1。

    ② 假設(shè)X中候選邊緣點(diǎn)的梯度值為T,該點(diǎn)的高閾值為T2,低閾值為T1,當(dāng) T> T2時(shí),則候選點(diǎn)為時(shí),且與保留邊緣點(diǎn)的8個(gè)鄰域相連,該點(diǎn)為邊緣點(diǎn),保留該點(diǎn)[15]。實(shí)驗(yàn)結(jié)果如圖3 2所示。

    圖32 改進(jìn)的Canny算法

    4 結(jié)論

    本文采取了兩種識(shí)別方法,下面對(duì)它們的識(shí)別效果進(jìn)行比較,主要不同之處歸納如下:

    (1)從識(shí)別效果來看:第一種方法的邊緣檢測效果非常好,如圖3 0所示,幾乎沒有任何的偽邊緣;第二種方法的邊緣檢測效果也不錯(cuò),如圖3 2所示,產(chǎn)生了少量的偽邊緣。所以第一種方法識(shí)別效果更好;

    (2)從識(shí)別效率來看:第一種方法的識(shí)別速度要比第二種方法快,因?yàn)榻?jīng)過改進(jìn)的Canny算法運(yùn)行速度比較慢;

    (3)從計(jì)算量來看:由于第二種方法沒有圖像預(yù)處理,不需進(jìn)行灰度變換、二值化、去噪等計(jì)算,因此相比于第一種方法,計(jì)算量小很多。

    [1]三維碼[DB/OL]. http://baike.baidu.com/view/1586298.htm.

    [2]二維條形碼[DB/OL]. http://baike.baidu.com/View/71834.htm

    [3]PDF417條碼[DB/OL]. http://baike.baidu.com/view/132249.htm

    [4]劉寧鐘,楊靜宇.三維條碼的編碼理論和設(shè)計(jì)[J].計(jì)算機(jī)學(xué)報(bào),2007,30(4):686-692.

    [5]劉寧鐘.高維條碼識(shí)別技術(shù)和編碼理論的研究[D].博士學(xué)位論文.南京理工大學(xué),2003:1-13,21-27,56-72.

    [6]王沁.PDF417條碼識(shí)別技術(shù)研究[D].碩士學(xué)位論文.西安理工大學(xué),2007:17-34.

    [7]文華.基于數(shù)學(xué)形態(tài)學(xué)的圖像處理算法的研究[D].碩士學(xué)位論文.哈爾濱工程大學(xué),2006:7-42.

    [8]胡博.彩色圖像分割算法研究[D].碩士學(xué)位論文.電子科技大學(xué),2009:8-13.

    [9]Hough變換[DB/OL]. http://baike.baidu.com/view/1241775.htm

    [10]成誠. 二維PDF417條碼識(shí)別技術(shù)的研究及其在Linux 平臺(tái)下的實(shí)現(xiàn)[D].碩士學(xué)位論文.南京航空航天大學(xué),2008:18-32.

    [11]楊帆.數(shù)字圖像處理與分析[M].北京:北京航空航天大學(xué)出版社,2007.251-261.

    [12]周曉偉.二維條碼識(shí)別技術(shù)研究[D].碩士學(xué)位論文.上海交通大學(xué),2007:15-27.

    [13]胡小鋒,趙輝等.Visual C++/MATLAB圖像處理與識(shí)別實(shí)用案例精選[M].人民郵電出版社,2004:85-118.

    [14]王家文,曹宇.MATLAB 6.5圖形圖像處理[M].2004:190-193,268-272.

    [15]王佳,李波,徐其志.邊緣檢測中局部區(qū)域的動(dòng)態(tài)閾值選取的方法[J].計(jì)算機(jī)應(yīng)用研究,2010,27(2).

    猜你喜歡
    條碼算子灰度
    中國條碼技術(shù)與應(yīng)用協(xié)會(huì)
    條碼微站
    采用改進(jìn)導(dǎo)重法的拓?fù)浣Y(jié)構(gòu)灰度單元過濾技術(shù)
    擬微分算子在Hp(ω)上的有界性
    基于灰度拉伸的圖像水位識(shí)別方法研究
    各向異性次Laplace算子和擬p-次Laplace算子的Picone恒等式及其應(yīng)用
    一類Markov模算子半群與相應(yīng)的算子值Dirichlet型刻畫
    基于最大加權(quán)投影求解的彩色圖像灰度化對(duì)比度保留算法
    Roper-Suffridge延拓算子與Loewner鏈
    基于灰度線性建模的亞像素圖像抖動(dòng)量計(jì)算
    西青区| 宾阳县| 循化| 秦安县| 广汉市| 靖宇县| 吉水县| 乐山市| 行唐县| 隆安县| 安溪县| 阳信县| 德安县| 青海省| 鄱阳县| 汾西县| 柯坪县| 拜城县| 聂拉木县| 柏乡县| 祁阳县| 宁强县| 正宁县| 麦盖提县| 托克托县| 兴安盟| 金湖县| 甘洛县| 永宁县| 黄梅县| 南皮县| 汝州市| 宽城| 青龙| 凤城市| 广河县| 望奎县| 嵩明县| 扎赉特旗| 桦南县| 元阳县|