基于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. 总结
以上是对该图像处理方法的完整介绍。如果对其中某些算法的具体原理不熟悉,可以通过关键字搜索进一步了解。此外,通过适当调节参数,可以扩大该方法的通用性,欢迎各位技术伙伴补充交流。
热门推荐
黄姓男孩取名大全一览表
夫妻之间,老公不愿意为你做以下事,说明你在他心里不重要
聊聊三国鼎立的历史转折点——赤壁之战
成吉思汗第一次西征:征服中亚与东欧的历史壮举
孩子“斗鸡眼”就是斜视吗?
探秘茵陈:春天的最佳草本药材与健康益处
南湾猴岛:海南陵水的绿色王国
科学家研究出新招,节食不运动也能减肥?
过程能力指数Cp、Cpk和过程性能指数Pp、Ppk
针灸一天两次好还是一次好
信息安全数学基础:置换群的概念、性质与应用
电气安全知识培训课件
股票持仓的意义与风险:如何实现长期稳定收益?
皮肤瘙痒起红疙瘩怎么办?原因分析与处理方法全攻略
PC材质水杯安全吗?一文读懂水杯材质选购指南
北京买房还是天津买房?城市选择与生活质量
装修设计年限-装修工程设计年限
哪些书籍适合学习数字化私域运营?
迪士尼乐园新增打卡点!达菲好友欢庆堂下周迎客,美食购物两不误,还能邂逅心中偶像
期货杠杆倍数详解:以沪银期货为例
中国国青队冲击两连胜!亚足联挑选出2位新星,提前晋级有望
尝过才知道,爆炒鸭肠的无敌美味
如何解读户型图以选择理想的居住空间?户型图的要点有哪些值得关注的地方?
财务管理制度及报销制度和流程如何支持企业的财务透明度?
北京周边游2-3天短途旅游游玩攻略
不干掉香烟就干掉自己!惠州3位老烟枪的戒烟故事
双氯芬酸钠缓释片的药理机制
想从事医美行业的医生和护士需要满足哪些条件?考什么证书?
股价大涨46% 创年内新高!A股最热门板块 机构扎堆调研
初学法语需要注意的地方?