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

正文內容

復雜背景下二維條碼圖像的研究識別論文-資料下載頁

2025-06-26 11:19本頁面
  

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