freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

復(fù)雜背景下二維條碼圖像的研究識(shí)別論文-資料下載頁

2025-06-26 11:19本頁面
  

【正文】 線,所以對(duì)于邊緣直線,累加器很少被累加。也就是說,原圖像中的直線作為累加矩陣中的極值被檢測(cè)出來,而檢測(cè)到的直線,就對(duì)應(yīng)于參數(shù)空間的累加矩陣的坐標(biāo)值確定。 Matlab 中的 Hough 變換根據(jù) hough 變換檢測(cè)直線的原理,Matlab 圖像處理工具箱提供了 hough 變換函數(shù):[H, THETA, RHO] = hough(BW,PARAM1,VAL1, PARAM2,VAL2),為了能夠準(zhǔn)確檢測(cè)出圖像中的直線,這里 BW 是經(jīng)過邊緣檢測(cè)后的二值圖像, PARAM1 為“ThetaResolution”,PARAM2 為“RhoResolution” ,VAL1 和 VAL2 的取值為 。然后使用 peaks = houghpeaks(H,numpeaks)函數(shù)提取參數(shù)平面上的峰值點(diǎn),這里在參數(shù) numpeaks 選擇上我們要盡量不能太小,因?yàn)榻?jīng)過邊緣檢測(cè)后 DM 條碼里的線段還是比較多的。接著使用 lines = houghlines(BW, THETA, RHO, PEAKS)函數(shù)提取所有檢測(cè)到的線段。最后比較所有檢測(cè)到的線段的長(zhǎng)度,選出最長(zhǎng)的兩條,并且記錄這兩條線段端點(diǎn)的坐標(biāo)。使用 hough 變換,檢測(cè)到原 DM 條碼中的最長(zhǎng)兩條最長(zhǎng)線段也就是“L”型如圖 38 所示:圖 38 兩條最長(zhǎng)線段檢測(cè) 圖像校正本節(jié)主要討論 DM 碼的校正。首先根據(jù)前面確定出的“L”型,計(jì)算出條碼的傾斜角度,然后對(duì) DM 碼進(jìn)行旋轉(zhuǎn),因?yàn)樾D(zhuǎn)之后會(huì)出現(xiàn)黑色的背景區(qū)域,因此將黑色的背景區(qū)域變白,并且對(duì)經(jīng)過旋轉(zhuǎn)校正后的 DM 條碼進(jìn)一步的精確裁剪。 傾角計(jì)算實(shí)際采集到的條碼圖案都會(huì)有一定的傾斜角度,而使用一般的旋轉(zhuǎn)公式,只能保證 DM 碼保持水平,卻不能保證其處于標(biāo)準(zhǔn)位置,也就是“L”型位于水平的左復(fù)雜背景中二維條碼圖像的識(shí)別研究 21下角。因此在這一節(jié)將根據(jù)前面得到的兩條最長(zhǎng)線段的端點(diǎn),來確定旋轉(zhuǎn)角度。具體的角度計(jì)算如下:第一步:在得到的兩條線段上,記錄四個(gè)端點(diǎn)的坐標(biāo),并且計(jì)算出兩條線段所在直線的斜率。第二步:根據(jù)公式(41)計(jì)算比較不在同一條線段上的兩點(diǎn)的距離,確定 L 型的兩個(gè)端點(diǎn),也就是 DM 碼的一條對(duì)角線,并記錄兩端點(diǎn)坐標(biāo) (34)221010()()dxy???第三步:比較兩個(gè)端點(diǎn) x 坐標(biāo)的大小,較小的 x 所在的線段我們以其為基準(zhǔn)進(jìn)行計(jì)算,設(shè)它所在直線與 X 軸夾角為 ang,并且近似認(rèn)為另一個(gè)端點(diǎn)為兩線段的交點(diǎn)。具體的旋轉(zhuǎn)過程的如圖 39 所示(a) (b)(c) (d)圖 39 DM 碼旋轉(zhuǎn)過程復(fù)雜背景中二維條碼圖像的識(shí)別研究 22以 DM 條碼逆時(shí)針旋轉(zhuǎn)為參考,設(shè)旋轉(zhuǎn)角度為 ,則有以下幾種情況:第一種情況:如圖 39(a)所示 x=x1,y=y1,此時(shí)的旋轉(zhuǎn)角度為: (35)第二種情況:如圖 39(b)所示 x=x1,y=y1,此時(shí)的旋轉(zhuǎn)角度為: (36)ang????第三種情況:如圖 39(c)所示 xx1,yy1,此時(shí)的旋轉(zhuǎn)角度為: (37)3/2第四種情況:如圖 39(d)所示 xx1,yy1,此時(shí)的旋轉(zhuǎn)角度為: (38)ang??DM 條碼出現(xiàn)傾斜的位置也只有以上四種情況,所以對(duì)判斷出的位置,計(jì)算出傾斜角度,從而對(duì)條碼進(jìn)行逆時(shí)針旋轉(zhuǎn),使其達(dá)到標(biāo)準(zhǔn)位置。 圖像旋轉(zhuǎn)圖像的旋轉(zhuǎn)是以其中心為圓心旋轉(zhuǎn)。假設(shè)旋轉(zhuǎn)前圖像的中心坐標(biāo)為(x0,y0) ,旋轉(zhuǎn)后的中心坐標(biāo)為(x1,y1) ;則旋轉(zhuǎn)公式為: (39)01cosinxxyy???????????????上式中其中 為旋轉(zhuǎn)的角度,以逆時(shí)針正值為基準(zhǔn)。?在 matlab 中提供了 imrotate 圖像旋轉(zhuǎn)函數(shù) Imrotate(A, angle, method, boxx),其中 A 需要旋轉(zhuǎn)的圖像;angle 表示旋轉(zhuǎn)的角度,正值為逆時(shí)針; method:插值方法;boxx:取值 loose(缺省) 、crop 。圖像在旋轉(zhuǎn)的過程中會(huì)存在一些幾何失真,因此采用插值方法對(duì)其進(jìn)行校正。常用的差值方法有最鄰近線性插值,雙線性插值,雙三次插值。雙三次插值的計(jì)算量很大,而最鄰近線性插值在 DM 碼旋轉(zhuǎn)校正方面又不夠好,因此我們這里采用雙線性插值,雙線性插值又稱為雙線性內(nèi)插,它的主要思想是在兩個(gè)方向分別進(jìn)行一次線性插值,在 matlab 中為該插值方法為 bilinear。 精確裁剪 DM 條碼如圖 310,很明顯在實(shí)際的旋轉(zhuǎn)過程之中,會(huì)出現(xiàn)黑色的背景,因此可以先得使黑色背景區(qū)域變白才能進(jìn)行精確的裁剪。從上到下,從下到上,從左到右,從右到左,依此掃描圖像,碰到白色像素點(diǎn)之前,將所掃描到的黑色點(diǎn)的值全部置為/2復(fù)雜背景中二維條碼圖像的識(shí)別研究 231,使其變?yōu)榘咨D 311 對(duì)旋轉(zhuǎn)后的圖像進(jìn)行了修正,雖然修正后的沒有了黑色背景,可是還有很多的白色區(qū)域,因此在下面的操作中對(duì)圖像進(jìn)行精確的裁剪。圖 311精確裁剪是這樣做的,找到圖像中所有的黑點(diǎn),并且記錄它的坐標(biāo),然后在所有的黑點(diǎn)坐標(biāo)中,找到最大的橫縱坐標(biāo),最小的橫縱坐標(biāo),最后使用 imcrop 函數(shù)對(duì)其進(jìn)行裁剪,實(shí)際裁剪的效果如圖 312 所示:圖 312 本章小結(jié)本章中主要研究了圖像的精確定位,先對(duì)分割出的圖像進(jìn)行了邊緣檢測(cè),并對(duì)各種邊緣檢測(cè)的算子進(jìn)行了比較,只有 sobel 算子,能夠很好的處理邊緣,并且用hough 變換對(duì)邊緣圖像進(jìn)行了直線檢測(cè),驗(yàn)證了只有才用 sobel 算子,才能準(zhǔn)確的確定出“L ”型。如果采用其他邊緣算子,檢測(cè)出的最長(zhǎng)線段,不在 L 型上,所以邊緣算子對(duì)于線段的檢測(cè)很重要。其次,是對(duì)圖像的旋轉(zhuǎn)校正,其中使用了雙線性插值法,以防止圖像旋轉(zhuǎn)過程之中出現(xiàn)的幾何失真;對(duì)于 DM 條碼可能出現(xiàn)的傾斜位置,計(jì)算出具體的旋轉(zhuǎn)角度。而在圖像旋轉(zhuǎn)后會(huì)出現(xiàn)一個(gè)黑色的背景,所以緊接著對(duì)黑色背景進(jìn)行修正,最后精確的裁剪出了條碼區(qū)域,至此條碼的識(shí)別定位工作已經(jīng)完成。復(fù)雜背景中二維條碼圖像的識(shí)別研究 244 Matlab 實(shí)驗(yàn)結(jié)果分析 DM 碼識(shí)別根據(jù)前面章節(jié)的算法,選用了最優(yōu)的算法對(duì)圖像進(jìn)行了操作。這里使用了兩個(gè)復(fù)雜背景的 DM 條碼進(jìn)行驗(yàn)證: (a) 原圖 (b)灰度化圖像 (c)二值化圖像(d) 腐蝕 (e)膨脹 (f)初步定位(g) 邊緣檢測(cè) (h)檢測(cè)“L”型 (i)圖像旋轉(zhuǎn) (j)圖像修正 (k)精確裁剪圖 41 DM 碼識(shí)別過程復(fù)雜背景中二維條碼圖像的識(shí)別研究 25 (a) 原圖 (b)灰度化圖像 (c)二值化圖像(d) 腐蝕 (e)膨脹 (f)初步定位(g) 邊緣檢測(cè) (h)檢測(cè)“L”型 (i)圖像旋轉(zhuǎn)(j)圖像修正 (k)精確裁剪圖 42 DM 碼識(shí)別過程復(fù)雜背景中二維條碼圖像的識(shí)別研究 26根據(jù)圖 41,42 可以看出,本算法可以很好的識(shí)別并分割出復(fù)雜背景之中的DM 條碼圖像。Matlab 源代碼如下:clear all。clc。A=imread(39。F:\element39。,39。jpg39。)。I1=rgb2gray(A)。figure。imshow(I1)。subplot(2,2,2)。imhist(I1)。%%%%%%%%%%%%%%%%%%%%%%%%%%濾波I1=filter2(fspecial(39。gaussian39。,[3,3],1),I1)/255。a=medfilt2(I1,[3,3])。%level=graythresh(a)。%BW=im2bw(a,level)。figure。imshow(a)。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%otSu算法確定全局自適應(yīng)閾值g=imhist(a)。size1=0。rimax=0。for j=1:256 size1=size1+g(j)。endfor level=1:256 count=0。sumpels=0。%求背景的概率和均值 for loop=1:level count=count+g(loop)。 sumpels=sumpels+loop*g(loop)。endw0=count/size1。u0=sumpels/count。%求目標(biāo)的概率和均值w1=1w0。if size1count~=0 totalpels=0。 for i=1:256 totalpels=totalpels+i*g(i)。 end u1=(totalpelssumpels)/(size1count)。else u1=0。end%求出兩類間的最大方差值,此時(shí)閾值即為所求ritemp=w0*w1*(u0u1)*(u0u1)。復(fù)雜背景中二維條碼圖像的識(shí)別研究 27if ritemprimax rimax=ritemp。 result=level。endendresultBW = im2bw(a,1result/255)。%顯示二值化以后的圖像figure。imshow(BW)。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%IM%%%%%%%%%%%%%%%%%%%%%%形態(tài)學(xué)操作bw=1BW。SE1=ones(8,8)。IM1=imerode(bw,SE1)。figure。imshow(IM1)。SE2=ones(30,30)。IM2=imdilate(IM1,SE2)。figure。imshow(IM2)。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%確定最大連通區(qū)域[L,num] = bwlabel(IM2,8)。 % 標(biāo)注連通分量max = 0。 % 當(dāng)前最大連通分量的大小indMax = 0。 % 當(dāng)前最大連通分量的索引numfor k = 1:num [y x] = find(L == k)。 % 找出編號(hào)為k的連通區(qū)的行索引集合 y和列索引集合x nSize = length(y) % 計(jì)算該連通區(qū)中的像素?cái)?shù)目 if(nSize max) max = nSize。 indMax = k。 endend%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%提取二維條碼區(qū)域[r1,c1]=find(L==indMax)。rmax=min(1*r1)。cmax=min(1*c1)。rmin=min(r1)。cmin=min(c1)。A=imcrop(BW,[cmin,rmin,cmaxcmin,rmaxrmin])。%使用imcrop() 函數(shù),figure。imshow(A)。%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%bw=1A。bw1=edge(bw,39。sobel39。)。復(fù)雜背景中二維條碼圖像的識(shí)別研究 28figure。imshow(bw1)。[H,T,R] = hough(bw1,39。ThetaResolution39。,39。RhoResolution39。,)。%哈弗變換P= houghpeaks(H,40)。% 提取Hough變換后參數(shù)平面上的峰值點(diǎn) lines = houghlines(bw1,T,R,P)。% 提取線段num=length(lines)max_len1=0。for k = 1:length(lines) len = norm(lines(k).point1 lines(k).point2)。 if len max_len1 max_len1 = len。 xy_long1 = [lines(k).point1 。 l
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1