版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、改進(jìn)的canny算法importpic_processaspreimg=plt.imread(many.jpg)image=img.copy()sigmal=sigma2=1sum=0gaussian=np.zeros(5,5)foriinrange(5):forjinrange(5):gaussiani,j=math.exp(-1/2*(np.square(i-3)/np.square(sigma1)#生成二維高斯分布矩陣+(np.square(j-3)/np.square(sigma2)/(2*math.pi*sigmal*sigma2)sum=sum+gaussiani,jgaussia
2、n=gaussian/sumprint(gaussian)defrgb2gray(rgb):returnnp.dot(rgb,:3,0.299,0.587,0.114)stepl.高斯濾波#gray=rgb2gray(img)gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#gray=cv2.equalizeHist(gray)W,H=gray.shapenew_gray=np.zeros(W-5,H-5)foriinrange(W-5):forjinrange(H-5):grayi,j=np.sum(grayi:i+5,j:j+5*gaussian)#與高斯
3、矩陣卷積實(shí)現(xiàn)濾波W,H=gray.shapenew_gray=np.zeros(W-5,H-5)foriinrange(W-5):forjinrange(H-5):new_grayi,j=np.sum(grayi:i+5,j:j+5*gaussian)#與高斯矩陣卷積實(shí)現(xiàn)濾波plt.imshow(new_gray,cmap=gray)step2.增強(qiáng)通過求梯度幅值W1,H1=new_gray.shapedx=np.zeros(W1-1,H1-1)dy=np.zeros(W1-1,H1-1)dx2=np.zeros(W1-1,H1-1)dy2=np.zeros(W1-1,H1-1)d=np.ze
4、ros(W1-1,H1-1)foriinrange(W1-1):forjinrange(H1-1):dxi,j=(2*new_grayi,j+1-2*new_grayi,j-1+grayi-1,j+1-grayi-1,j-1+new_grayi+1,j+1-new_grayi+1,j-1)dyi,j=(2*new_grayi+1,j-2*new_grayi-1,j+grayi+1,j+1-grayi-1,j+1+new_grayi+1,j-1-new_grayi-1,j-1)dxi,j=new_grayi,j+1-new_grayi,jdyi,j=new_grayi+1,j-new_grayi
5、,jdxi,j=new_grayi,j+1-new_grayi,j+new_grayi+1,j+1-new_grayi+1,jdyi,j=new_grayi+1,j-new_grayi,j+new_grayi+1,j+1-new_grayi,j+1#dx2i,j=new_grayi+1,j+1-new_grayi,jdy2i,j=new_grayi-1,j+1-new_grayi,jdy2i,j=new_grayi-1,j+1-new_grayi,jdxi,j=new_grayi,j+1-2*new_grayi,j+new_grayi,j-1dyi,j=new_grayi+1,j-2*new_
6、grayi,j+new_grayi-1,jdi,j=np.sqrt(np.square(dxi,j)+np.square(dyi,j)#圖像梯度幅值作為圖像強(qiáng)度值#di,j=np.sqrt(np.square(dxi,j)+np.square(dyi,j)+np.square(dx2i,j)+np.square(dy2i,j)#圖像梯度幅值作為圖像強(qiáng)度值plt.imshow(d,cmap=gray)setp3.非極大值抑制NMSW2,H2=d.shapeNMS=np.copy(d)NMS0,:=NMSW2-1,:=NMS:,0=NMS:,H2-1=0p=0.5foriinrange(1,W2-
7、1):forjinrange(1,H2-1):ifdi,j=0:NMSi,j=0else:gradX=dxi,jgradY=dyi,jgradTemp=di,j#如果Y方向幅度值較大ifnp.abs(gradY)np.abs(gradX):weight=np.abs(gradX)/np.abs(gradY)grad2=di,j+p*(di-1,j-di,j)grad4=di,j+p*(di+1,j-di,j)#如果x,y方向梯度符號(hào)相同ifgradX*gradY0:grad1=di,j-1+p*(di-1,j-1-di,j-1)grad3=di,j+1+p*(di+1,j+1-di,j+1)#
8、如果x,y方向梯度符號(hào)相反else:grad1=di,j+1+p*(di-1,j+1-di,j+1)grad3=di,j-1+p*(di+1,j-1-di,j-1)#如果X方向幅度值較大else:weight=np.abs(gradY)/np.abs(gradX)grad2=di,j+p*(di,j-1-di,j)grad4=di,j+p*(di,j+1-di,j)#如果x,y方向梯度符號(hào)相同ifgradX*gradY0:grad1=di+1,j+p*(di-1,j+1-di+1,j)grad3=di-1,j+p*(di-1,j+1-di-1,j)#如果x,y方向梯度符號(hào)相反else:grad
9、1=di-1,j+p*(di-1,j-1-di-1,j)grad3=di+1,j+p*(di+1,j+1-di+1,j)gradTemp1=weight*p*grad1+(1-weight*p)*grad2gradTemp2=weight*p*grad3+(1-weight*p)*grad4ifgradTemp=gradTemp1andgradTemp=gradTemp2:NMSi,j=gradTempelse:NMSi,j=0#plt.imshow(NMS,cmap=gray)#hist=cv2.calcHist(NMS,0,None,256,0,256)#hist=cv2.calcHist
10、(NMS,0,None,256,0,256)#util.image_read(NMS)arr=NMS.flatten()arrs=foriinarr:ifi!=0andi!=255:arrs.append(i)#arrs=arrprint(hk,NMS.shape)n,bins,patches=plt.hist(arrs,bins=256,normed=1,facecolor=green,alpha=0.75)a,b=pre.OTSU(arrs)print(a,b)plt.show()#print(arr)#step4.雙閾值算法檢測(cè)、連接邊緣W3,H3=NMS.shapeDT=np.zero
11、s(W3,H3)#定義高低閾值TL=0.15*np.max(NMS)TH=0.3*np.max(NMS)print(叮HTH,TH)TL=(2/3)*bTH=bforiinrange(1,W3-1):forjinrange(1,H3-1):if(NMSi,jTH):DTi,j=255elif(NMSi-1,j-1:j+1TH).any()or(NMSi+1,j-1:j+1).any()or(NMSi,j-1,j+1best_M:best_M=M;best_k=k;returnbest_M,best_kfromskimageimportdata,exposure,img_as_floatdefg
12、et_image(path):#獲取圖片img=cv.imread(path)gray=cv.cvtColor(img,cv.C0L0R_BGR2GRAY)returnimg,graydefsmothing(gray):#均衡化gray=exposure.adjust_gamma(gray,0.8)img1=cv.equalizeHist(gray)img1=cv.equalizeHist(img1)aussian=cv.GaussianBlur(img1,(5,5),1)dst=cv.medianBlur(aussian,5)#dst=cv.medianBlur(dst,7)#dst=min
13、.max_min_valueilter(dst,ksize=2,mode=2)#dst=min.fillHole(dst)”銳化”#kernel=np.array(0,-1,0,-1,5,-1,0,-1,0,np.float32)#銳化#dst=cv.filter2D(dst,-1,kernel=kernel)#blurred=cv2.GaussianBlur(gray,(3,3),0)returndstdefThresh_and_blur(gray,gradient):defThresh_and_blur(gray,gradient):#blurred=cv2.GaussianBlur(gr
14、adient,(5,5),0)#(_,thresh)=cv2.threshold(blurred,0,255,cv2.THRESH_BINARY)#otsuM,k=OTSU(gradient)print(M,k)ret,thresh=cv.threshold(gray,k,255,cv.THRESH_BINARY)returnthreshdefimage_morphology(thresh):#建立一個(gè)橢圓核函數(shù)kernel=cv.getStructuringElement(cv.MORPH_ELLIPSE,(3,3)thresh=cv.dilate(thresh,kernel,iterations=1)closed=cv.erode(thresh,kernel,iterations=2)#腐蝕#closed=cv.morphologyEx(closed,cv.MORPH_ELLIPSE,kernel)opening=cv.mor
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版電子元件采購合同數(shù)量取消及供應(yīng)鏈調(diào)整補(bǔ)充協(xié)議3篇
- 2024建造師勞動(dòng)合同
- 2025年度民族特色餐廳租賃及文化傳承合作協(xié)議3篇
- 二零二五年房地產(chǎn)糾紛調(diào)解估價(jià)委托合同模板3篇
- 2024年項(xiàng)目聯(lián)合開發(fā)協(xié)議3篇
- 二零二五年度高品質(zhì)建筑材料租賃與運(yùn)輸管理合同3篇
- 二零二五版商用空調(diào)租賃與能源消耗優(yōu)化合同3篇
- 威海職業(yè)學(xué)院《突發(fā)公衛(wèi)事件應(yīng)急處理》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津城市職業(yè)學(xué)院《災(zāi)害防御與避險(xiǎn)應(yīng)急》2023-2024學(xué)年第一學(xué)期期末試卷
- 太原城市職業(yè)技術(shù)學(xué)院《普通生物學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- (隱蔽)工程現(xiàn)場(chǎng)收方計(jì)量記錄表
- DB22T 5005-2018 注塑夾芯復(fù)合保溫砌塊自保溫墻體工程技術(shù)標(biāo)準(zhǔn)
- 醫(yī)院手術(shù)室醫(yī)院感染管理質(zhì)量督查評(píng)分表
- 心內(nèi)電生理導(dǎo)管及器械
- 稱量與天平培訓(xùn)試題及答案
- 超全的超濾與納濾概述、基本理論和應(yīng)用
- 2020年醫(yī)師定期考核試題與答案(公衛(wèi)專業(yè))
- 2022年中國育齡女性生殖健康研究報(bào)告
- 各種靜脈置管固定方法
- 消防報(bào)審驗(yàn)收程序及表格
- 教育金規(guī)劃ppt課件
評(píng)論
0/150
提交評(píng)論