基于OpenCVSharp的工业零件涂胶缺陷检测方案
创作时间:
作者:
@小白创作中心
基于OpenCVSharp的工业零件涂胶缺陷检测方案
引用
CSDN
1.
https://blog.csdn.net/qq_37835727/article/details/125789686
本文将介绍如何使用OpenCVSharp库进行工业零件涂胶缺陷检测。通过图像预处理、二值化、轮廓提取等步骤,实现对涂胶是否断开的自动检测。
1. 需求背景
某工厂自动化流水线上需要检测零件涂胶工艺是否正常。具体需求是对零件上的白色涂胶部分进行检测,判断涂胶是否有断开现象。如果涂胶断开,则判定为不合格(NG)。
2. 原始图像
3. 检测目标
需要检测图中白色涂胶部分,判断是否有断开现象。如下图箭头指示部分即是涂胶区域:
4. 处理流程
处理过程中涉及几个关键步骤的中间图像:
- 模糊处理-降噪
- 图像二值化
- 轮廓提取
从处理结果可以看出,涂胶没有断开,为合格件。
5. 代码实现
下面是完整的图像处理代码:
public bool ImgProcess(Mat src)
{
bool result = false;
// 图像灰度转换
Mat matGray = new Mat();
Cv2.CvtColor(src, matGray, ColorConversionCodes.BGR2GRAY);
Cv2.ImShow("matGray", matGray);
Mat BlurMat = new Mat();
Cv2.MedianBlur(matGray, BlurMat, 5);
Mat bilateralFilter = new Mat();
Cv2.BilateralFilter(BlurMat, bilateralFilter, 9, 25, 25);
Mat BlurMat1 = new Mat();
Cv2.FastNlMeansDenoising(bilateralFilter, BlurMat1, 9);
Cv2.ImShow("BlurMat1", BlurMat1);
// 二值化处理
Mat binaryImg = new Mat();
Cv2.Threshold(BlurMat1, binaryImg, 210, 255, ThresholdTypes.Binary);
Cv2.ImShow("binary", binaryImg);
Mat morhpImage = new Mat();
Mat kernel = Cv2.GetStructuringElement(MorphShapes.Ellipse, new Size(3,3), new Point(-1, -1));
Cv2.MorphologyEx(binaryImg, morhpImage, MorphTypes.Erode, kernel, new Point(-1, -1),1);
Cv2.ImShow("Open", morhpImage);
Mat laplanceMat = new Mat();
Cv2.Laplacian(morhpImage, laplanceMat, MatType.CV_8UC1, 3, 3, 5);
Cv2.ImShow("Laplacian", laplanceMat);
// 连通区域计算
Point[][] contours;
HierarchyIndex[] hierarchies;
Cv2.FindContours(laplanceMat, out contours, out hierarchies, RetrievalModes.Tree, ContourApproximationModes.ApproxSimple);
// 绘制结果图像
Mat markRet = Mat.Zeros(src.Size(), MatType.CV_8UC3);
RNG rng = new RNG(12345);
double maxArea = 0;
int index = -1;
for (int i = 0; i < contours.Length; i++)
{
double area = Cv2.ContourArea(contours[i]);
double length = Cv2.ArcLength(contours[i], false);
if (area > maxArea)
{
maxArea = area;
index = i;
}
if (length > 500 && length < 1000)
{
Cv2.DrawContours(markRet, contours, i, new Scalar(rng.Uniform(0, 255), rng.Uniform(0, 255), rng.Uniform(0, 255)), 6, LineTypes.Link4);
}
}
Cv2.ImShow("dist-Binary", markRet);
return result;
}
6. 总结
以上是对该图像处理方法的完整介绍。如果对其中某些算法的具体原理不熟悉,可以通过关键字搜索进一步了解。此外,通过适当调节参数,可以扩大该方法的通用性,欢迎各位技术伙伴补充交流。
热门推荐
三明医改再升级:医保基金打包支付如何惠及患者?
三明医改:C-DRG打包支付如何实现控费与质量双赢?
口罩如何清洗保养?一次性口罩可以洗了继续用吗?
从初代到泽塔:奥特曼系列的进化之路
乌斯曼草到底能不能生发?
美国本科医学专业有哪些选择和要求
《亚刻奥特曼》即将来袭,你准备好了吗?
全球商业航天:技术突破塑造未来格局
垂死病中惊坐起,暗风吹雨入寒窗。
九首白居易诗,全是写给元稹的“情书”
垂死病中惊坐起,暗风吹雨入寒窗。
个体户网上年检攻略:再也不怕漏报啦!
交管12123:指尖上的车管所,让业务办理更便捷
世界杯球员脚伤康复秘籍:从治疗到重返赛场的完整指南
九亭镇康复科推荐:脚踝扭伤康复训练
罗齐尔:从脚伤阴霾到重返巅峰,一位NBA球员的坚韧之路
漳州老年人公交卡办理攻略出炉!
动火作业安全培训,北京市工地必修课
海淀区违规动火作业再敲警钟
泽塔奥特曼阿尔法装甲:收藏家的新宠?
泽塔奥特曼阿尔法装甲:速度与力量的完美融合
赛罗奥特曼15周年,泽塔阿尔法利刃手办引爆收藏热潮
睡前做这些运动,帮助放松身心
固态硬盘与主板兼容性指南:6个关键检查点
“丑红鼻祖”的命运史:芙蓉终究活成了凤姐高攀不起的样子
时隔14年再看凤姐,原来她的思维超越我们十几年
三明医改:提升医疗公平性的创新实践
三明医改:让就医体验更美好
春节祝福语,让你在公司脱颖而出
创意公司春节祝福语大集合