极品馒头泬19p,国产精品亚洲一区二区三区,狠狠色噜噜狠狠狠7777奇米,国产精品视频一区二区三区无码,国产欧美日韩久久久久

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

2022-07-11 19:34:20      索煒達(dá)電子      1173     

文件編號(hào):A5

文件大小:8M

開發(fā)環(huán)境:Python3.8、OpenCV4.6、Pycharm2020

猿創(chuàng)承諾:該項(xiàng)目親測(cè)正常運(yùn)行,需遠(yuǎn)程調(diào)試部署需另外收費(fèi),確保正常使用,不能正常使用全額退款。

簡(jiǎn)要概述:基于Python+OpenCV瓶口缺陷檢測(cè)

主要任務(wù):判斷瓶口是否完好,尋找瓶口缺陷部分,并將其框出(以下圖為例進(jìn)行演示)(包含程序部分代碼)

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

解決步驟:

-通過Hough圓檢測(cè),獲取瓶口外側(cè)圓,確定圓的位置和尺寸,對(duì)瓶口部分進(jìn)行極坐標(biāo)變化和極坐標(biāo)反變換,消除瓶口外側(cè)區(qū)域的干擾。

-對(duì)之后的圖像進(jìn)行處理,提取缺陷部分進(jìn)行輪廓繪制和缺陷判別。

1、導(dǎo)入功能包,讀取圖像

2、Hough圓檢測(cè)獲取瓶口位置和大小

為了防止誤判,對(duì)圓半徑進(jìn)行限制,保證獲得瓶口最外側(cè)的輪廓./bottle_create.py 對(duì)框中瓶子進(jìn)行檢查

****************************************************************************************************

'''hough圓變換'''

cimg = cv2.cvtColor(bottle,cv2.COLOR_GRAY2BGR)  # 轉(zhuǎn)換成彩色圖

circles = cv2.HoughCircles(median,cv2.HOUGH_GRADIENT,1,100,

                         param1=100,param2=60,minRadius=150,maxRadius=160)  # Hough圓檢測(cè)

circles = np.uint16(np.around(circles))

#print(circles)

for i in circles[0,:]:    # 遍歷circles,i為列表,i中包含多個(gè)列表,列表為[x,y,r]圓心坐標(biāo)和半徑

    # draw the outer circle

    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),2)

    # draw the center of the circle

    cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3)

#cv_show( 'cimg',cimg)

****************************************************************************************************

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

3、極坐標(biāo)變化與反變換

為了消除瓶口外側(cè)部分帶來的干擾。進(jìn)行極坐標(biāo)變換,將極坐標(biāo)中心設(shè)為圓心,極半徑為圓半徑;進(jìn)行反變化,將瓶口放在原圖大小的原位置

****************************************************************************************************

'''極坐標(biāo)變換'''

polarImg = cv2.warpPolar(bottle,(300,900),center,radius,

                         cv2.INTER_LINEAR + cv2.WARP_POLAR_LINEAR)

#cv_show('polarImg',polarImg)

'''反變換'''

b_bottle=cv2.warpPolar(polarImg,psp, center,radius,

                       cv2.INTER_LINEAR + cv2.WARP_POLAR_LINEAR + cv2.WARP_INVERSE_MAP)

#cv_show('b_bottle',b_bottle)

****************************************************************************************************

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

4、圖像處理

通過均值濾波消除干擾,閾值變換檢測(cè)瓶口的亮點(diǎn),由于出現(xiàn)小白點(diǎn)的干擾,進(jìn)行開運(yùn)算處理,再進(jìn)行膨脹,將缺陷區(qū)域聯(lián)通

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

5、輪廓檢測(cè)和缺陷判斷

尋找上圖的外接輪廓,遍歷這些輪廓,判斷是否在瓶口處,并將其在原圖上畫出;將缺陷記錄,判斷存在缺陷,在圖片上顯示NOT OK

****************************************************************************************************

'''找缺陷'''

contours,hierarchy = cv2.findContours(dilate, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)  #尋找輪廓

s_bottle=cv2.cvtColor(bottle, cv2.COLOR_GRAY2BGR)

counts=[]

for cnt in contours:

  (x, y, w, h) = cv2.boundingRect(cnt)  #獲取輪廓位置大小

# print(x, y, w, h)

  if x>circles_x1 and x<circles_x2 and y>circles_y1 and y<circles_y2 and (w>5 or h>5):  # 判斷輪廓是否在瓶口處

    cv2.drawContours(s_bottle,cnt,-1,(0,0,255),2)  # 繪制輪廓

    counts.append(cnt)  # 記錄缺陷

****************************************************************************************************

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

以上就是瓶口缺陷檢測(cè)的全部過程,其中還有不足,還達(dá)不到100%的成功

放上原圖和最后做完的效果

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

按需寫作:

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

演示視頻:

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

點(diǎn)擊查看:系統(tǒng)演示視頻

運(yùn)行效果:

源代碼

./bottle_create.py 對(duì)框中瓶子進(jìn)行檢查

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

./bottle_mouth.py 對(duì)瓶口缺陷進(jìn)行檢測(cè)

【A5】基于Python+OpenCV瓶口缺陷檢測(cè)

源文件

./bottles 檢測(cè)的原圖像

./bottle 檢測(cè)完的圖像

遠(yuǎn)程協(xié)助:

溫馨提示:索煒達(dá).猿創(chuàng)官方提供收費(fèi)遠(yuǎn)程協(xié)助,確保您項(xiàng)目運(yùn)行成功。

點(diǎn)擊查看:遠(yuǎn)程協(xié)助相關(guān)事項(xiàng)

我們提供完整項(xiàng)目文件清單如下:

文件目錄

 ├ 1.項(xiàng)目源碼

 ├ 2.運(yùn)行截圖

 └ 3.演示視頻

TAG瓶口
  • 6 次
  • 450 分