美文网首页
缺陷检测理论基础

缺陷检测理论基础

作者: 大龙10 | 来源:发表于2023-10-04 12:27 被阅读0次

书名:计算机视觉40例从入门到深度学习:OpenCV-Python
作者:李立宗
出版社:电子工业出版社
出版时间:2022-07-01
ISBN:9787121436857


一、缺陷检测

  • 工业产品的形状缺陷不仅影响产品的美观,还影响产品的性能。
    例如,应该是圆形的药品,若被加工成不规则圆形不仅看起来不美观,而且会因为剂量的改变而影响药效。
    因此,在工业生产中人们对形状缺陷非常重视。

  • 使用视觉算法进行缺陷检测可以解决人工操作带来的判断误差、效率低等问题。

二、理论基础

1、开运算

  • 开运算进行的操作是先将图像腐蚀,再对腐蚀结果进行膨胀。
    开运算可以用于去噪、计数等。
实现去噪的开运算示例 实现计数的开运算示例
  • 使用函数cv2.morphologyEx()实现开运算。

2、距离变换函数distanceTransform

  • 若图像内的子图没有连接在一起,则可以直接使用形态学的腐蚀操作确定前景对象;
    若图像内的子图连接在一起,则很难确定前景对象。
    此时,借助距离变换函数distanceTransform可以方便地将前景对象提取出来。

  • 距离变换函数distanceTransform可计算二值图像内任意点到最近背景点的距离。
    一般情况下,该函数计算的是图像内像素值非0的像素点到最近的像素值为0的像素点的距离,即计算二值图像中所有像素点距离其最近的像素值为0的像素点的距离。
    如果该像素点本身的像素值为0,则这个距离为0。

  • 距离变换函数distanceTransform的计算结果反映了各个像素点与背景(像素值为0的像素点)的距离关系。通常情况下:

    • 前景对象的质心(中心)距离像素值为0的像素点较远,会得到一个较大的值。
    • 前景对象的边缘距离像素值为0的像素点较近,会得到一个较小的值。
  • 如果对上述计算结果进行阈值处理,就可以得到图像内子图的质心、骨架等信息。
    距离变换函数distanceTransform不仅能计算对象的质心,还能细化轮廓、获取图像前景对象等。

3、确定前景实例

1)分析

  • 如果一些像素点距离背景点足够远,那么就认为这些点是前景点。
    据此,先找出图中各个像素点距离(最近)背景点的距离,然后将这些距离中较大值对应的像素点判定为前景点。

2)方法

  • 具体实现时,使用距离变换函数distanceTransform完成距离的计算,使用阈值分割函数threshold根据距离将所有像素点划分为前景点、背景点。

3)注意事项

  • 需要注意的是,在使用距离变换函数distanceTransform前,需要先对图像进行开运算,以去除图像内的噪声。

4)步骤

  • Step 1:图像预处理(利用开运算去噪)。
  • Step 2:使用函数distanceTransform完成距离的计算。
  • Step 3:使用函数threshold分割图像,获取确定前景。判断依据是,将距离背景大于一定长度(如最远距离的70%)的像素点判定为前景点。
  • Step 4:显示处理结果。

5)程序

import numpy as np
import cv2

img = cv2.imread('d:\\water_coins.jpg')
cv2.imshow("coins",img)

# ====step1 预处理
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 

ret, thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
kernel = np.ones((3,3),np.uint8)
opening = cv2.morphologyEx(thresh,cv2.MORPH_OPEN,kernel, iterations = 2)

# ====step2 完成距离的计算=====
dist_transform = cv2.distanceTransform(opening,cv2.DIST_L2,5)

# ====step3 确定前景 ====
ret, fore = cv2.threshold(dist_transform,0.7*dist_transform.max(),255,0) 

# ====step4 显示处理结果 ====
cv2.imshow("fore",fore)

cv2.waitKey()
cv2.destroyAllWindows()
运行结果

相关文章

  • 论文解读:Segmentation-based deep-lea

    本文应用方向为对缺陷表面进行语义分割,得出置信度,实现缺陷检测任务。将缺陷检测看作二分类任务。1.本文提出的方法为...

  • 工业场景中缺陷检测的算法探讨

    工业场景中缺陷检测的算法探讨 工业现场的产品缺陷检测,一项重要的不可缺少的环节,除了通过仪器仪表做的检测,还有很多...

  • 自适应视觉算法在表面缺陷检测中的应用

    自适应视觉算法在表面缺陷检测中的应用 ---涂布纺织品皮革表面缺陷检测解决方案WebScan-2000 摘要: ...

  • 表面缺陷视觉检测设备的技术特点

    表面缺陷视觉检测设备检测产品表面缺陷属于机器视觉检测技术的一种,利用计算机视觉模拟人类视觉的功能,从具体的实物进行...

  • 纹理表面缺陷检测

    今天看到一个缺陷检测很有启发的halcon例子。启动halcon软件,ctrl+E弹出例程,选择表面检测中的det...

  • 缺陷检测工具

    机器视觉原理与案例详解工控帮教研组编著电子工业出版社2020.7ISBN 978-7-121-39084-5 一、...

  • 表面缺陷检测:机器视觉检测技术

    当今社会,随着计算机技术,人工智能等科学技术的出现和发展,以及研究的深入,出现了基于机器视觉技术的表面缺陷检测技术...

  • 双重检测锁的缺陷

    双重检测锁实现的单例模式看起来非常完美,实则会出现同步问题。 1处会将线程进行同步。 2处会再次检查是否已经被其他...

  • 10钢材缺陷检测分类

    数据预处理 EDA 从箱型图中能够观察到单个特征的取值分布情况。下面绘制全部参数的取值分布箱型图 1.特征之间的取...

  • 磁芯检测设备可以检测哪些缺陷?

    我们在讲磁芯检测设备可以检测哪些缺陷之前,先来了解一下磁芯产品。什么磁芯?磁芯,也称为磁环。磁芯是指由各种氧化...

网友评论

      本文标题:缺陷检测理论基础

      本文链接:https://www.haomeiwen.com/subject/mzdybdtx.html