Python+OpenCV實(shí)現(xiàn)表面缺陷檢測(cè)
對(duì)于現(xiàn)在很多工業(yè)檢測(cè),特別是對(duì)一些精密的器件進(jìn)行篩選,往往都是像素級(jí)別的,十分的精確。

主要思想
- 將圖像轉(zhuǎn)化為二值圖像
- 在對(duì)圖像進(jìn)行腐蝕/膨脹處理
- 在進(jìn)行輪廓檢測(cè)
- 篩選目標(biāo)大小符合的輪廓(排除誤差小的輪廓)
- 在在進(jìn)行膨脹化處理,將輪廓信息繪制出
import cv2
import os
import numpy as np
import time
t1 = time.time()
img = cv2.imread('./label/28901647.jpg', 0)
img_copy = cv2.imread('./label/28901647.jpg', 0)
mask = np.zeros_like(img)
print(np.shape(img))
# 先利用二值化去除圖片噪聲
ret, img = cv2.threshold(img, 80, 255, cv2.THRESH_BINARY)
es = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (4, 2))
img = cv2.dilate(img, es, iterations=1) # 形態(tài)學(xué)膨脹
kernel = np.ones(shape=[5,5],dtype=np.uint8)
img = cv2.erode(img,kernel=kernel) # 腐蝕操作
cv2.imshow('aa',img)
cv2.waitKey(0)
contours, _ = cv2.findContours(img, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
n = len(contours) # 輪廓的個(gè)數(shù)
cv_contours = []
for contour in contours:
area = cv2.contourArea(contour)
if area <= 500:# 篩選面積大于500的,小于500的全部變?yōu)?55,
cv_contours.append(contour)
# 方式一
# x, y, w, h = cv2.boundingRect(contour) # 這個(gè)函數(shù)可以獲得一個(gè)圖像的最小矩形邊框一些信息,參數(shù)img是一個(gè)二值圖像,它可以返回四個(gè)參數(shù),左上角坐標(biāo),矩形的寬高 (輪廓集合 contour)
# img[y:y + h, x:x + w] = 255
else:
cv2.drawContours(img_copy, [contour], -1, (0, 0, 255), 0) # 多邊形輪廓繪制
print('area:', area)
continue
# 方式二
cv2.fillPoly(img, cv_contours, (255, 255, 255)) # 多個(gè)多邊形填充
t2 = time.time()
print('時(shí)間:',t2-t1)
cv2.imwrite('./output/28901647.jpg', img)
1、尋找到的輪廓信息(缺陷)

2、通過(guò)腐蝕、膨脹后的,篩選出的較大缺陷


3、通過(guò)不同程度的膨脹腐蝕、缺陷面積篩選





以上就是Python+OpenCV實(shí)現(xiàn)表面缺陷檢測(cè)的詳細(xì)內(nèi)容,更多關(guān)于Python OpenCV缺陷檢測(cè)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
分享20個(gè)實(shí)用的Python?Excel自動(dòng)化腳本
這篇文章主要介紹了20個(gè)實(shí)用的Python?Excel自動(dòng)化腳本,用于自動(dòng)化處理和分析Excel文件,提高工作效率,從批量填充單元格、設(shè)置行高與列寬到生成數(shù)據(jù)透視表和圖表,涵蓋了數(shù)據(jù)處理和分析的各個(gè)方面,需要的朋友可以參考下2025-02-02
Python實(shí)現(xiàn)輕松合并doc為txt的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用Python編程語(yǔ)言和wxPython模塊,打開指定文件夾中的DOC文檔,并將它們的內(nèi)容合并成一個(gè)便捷的TXT文檔,需要的可以參考下2024-03-03
python3 自動(dòng)識(shí)別usb連接狀態(tài),即對(duì)usb重連的判斷方法
今天小編就為大家分享一篇python3 自動(dòng)識(shí)別usb連接狀態(tài),即對(duì)usb重連的判斷方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
對(duì)pytorch中x = x.view(x.size(0), -1) 的理解說(shuō)明
這篇文章主要介紹了對(duì)pytorch中x = x.view(x.size(0), -1) 的理解說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03

