基于OpenCV的划痕检测
基于OpenCV的划痕检测
利用python opencv编程实现划痕的检测
原始图像

检测过程直接看代码:
# 基于opencv的划痕检测
import cv2
import os
# 终端中清除以前所有命令
os.system('cls')
# 读取图片
img1 = cv2.imread('image.png')
# 显示原始图片
cv2.namedWindow('figure1', cv2.WINDOW_AUTOSIZE)
cv2.imshow('figure1', img1)
img = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
# 图像处理中一般将要处理的对象用白色表示,将要处理的前景转换为白色
img=~img
# 均值滤波
img_bur = cv2.blur(img, (9, 9))
# 利用局部阈值分割显示白色区域
offset=5
gt= img_bur+offset
img[img>gt]=255
img[img<=gt]=0
contours, _ = cv2.findContours(img, cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)
trace=[]
for contour in contours:
area = cv2.contourArea(contour, False) # 算面积
if 10 < area:
trace.append(contour)
cv2.drawContours(img1, trace, -1, (125, 0, 255), 2)
# 显示图片
cv2.namedWindow('figure2', cv2.WINDOW_AUTOSIZE)
cv2.imshow('figure2', img1)
cv2.waitKey(0)
检测结果如下:


1万+





