资讯详情

基于图像处理的工业产品缺陷检测,基本操作,实现

随着机器学习的发展,深度网络模型检测缺陷的准确性远高于传统的图像处理算法。现在一般的做法是将传统的图像技术作为预处理,或将传统的提取特征与网络深度特征相结合,以进一步提高准确性。

今天,我整理了以前的信息,突然看到了几年前我第一次看到图像处理时做的小事。现在我看起来很弱。利用图像处理的基本操作,实现工业产品缺陷检测。记录你的初衷,作为你的第一个博客。(当时很水,不要取笑它(

_

))

1.屏幕坏点

屏幕坏点的检测类型不同,最简单的是黑底白点检测和白底黑点检测。对于白色坏点,首先采用形态学基本操作膨胀,并通过调整核心尺寸来改变白点膨胀的程度。然后调用轮廓函数,统计坏点的数量。对于黑色坏点,首先采用腐蚀操作,使黑色坏点的面积变大,并调用轮廓函数统计坏点的数量。计算轮廓的内部矩形,找到中心点。

2.瓷砖裂纹

一般来说,瓷砖有两种缺陷,一种是划痕,类似于白色,另一种是裂纹,颜色较深。对于白色划痕,可以先膨胀,使白色划痕更加明显,然后进行二值化,通过滑条控制阈值和二值化,然后进行中值滤波去除噪声,然后腐蚀图片,使用Canny通过搜索和绘制轮廓,可以用黑线圈出白色的划痕。

对于黑色裂纹,如果有标准的瓷砖图案,同时腐蚀标准图和缺陷图,使黑色裂纹更加明显,然后在中间过滤后进行二值化和膨胀Canny边缘检测,接着对标准图进行寻找轮廓,并将各个轮廓的面积和长度存到二维点集中。然后找到缺陷图的轮廓,通过循环比较标准图轮廓的特征,用黑线绘制裂纹的轮廓。

28e5a72e1edb450cfb4369020de8378e.png

3.PCB检测

由于PCB电路板的复杂性可以分类处理。对于部件的焊接位置,如焊接的小芯片阵,可以通过模板匹配的方式循环检测与模板匹配度最高的正确芯片焊接位置,设置相似度阈值,用红框标记不正确的位置。

对于大芯片、电容测,如大芯片和电容器,可以先进行图像预处理,然后边缘检测找到组件面积、长度等特征,并设置参数,统计组件的数量。

对于焊接不当,多锡,缺锡的情况,基于其亮度对比,引脚特征等因素,用图像预处理,二值化,形态学基本运算等,并结合边缘检测后的轮廓特征,设定参数,将缺陷之处标识出来。

总结

因为都是基本操作,所以不会贴每个完整的代码。因为简单,结果图挺好的。贴几个常用的函数,当时还是用的。Opencv C :

getStructuringElement(MORPH_RECT,Size(200,200)#返回指定形状和尺寸的结构元素

dilate(src,src,element);#膨胀

erode(dst,dst,element);#腐蚀

findContours(mid,contours,hierarchy,CV_RETR_CCOMP,CV_CHAIN_APPROX_SIMPLE);#寻找轮廓

threshold(gray,tmp,thresholdvalue,255,thresholdtype);#二值化

medianBlur(tmp,dst,7);#中值滤波

Canny(dst1,canny_output1、150、300、3)

m=contourArea(contours[i]);#计算轮廓面积

k=arcLength(contours[i],true);#计算轮廓长度

drawContours(src, contours, j, color, 2, 8, hierarchy, 0, Point();#画出轮廓

标签: 电容顶头裂开

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台