• 计算机视觉40例之案例06缺陷检测


    导读】本文是专栏《计算机视觉40例简介》的第6个案例《缺陷检测》。该专栏简要介绍李立宗主编《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书的40个案例。

    目前,该书已经在电子工业出版社出版,大家可以在京东、淘宝、当当等平台购买。

    大家可以在公众号“计算机视觉之光”回复关键字【案例06】获取本文案例的源代码及使用的测试图片等资料。

    针对本书40个案例的每一个案例,分别录制了介绍视频。如果嫌看文字版麻烦,可以关注公众号“计算机视觉之光”直接观看视频介绍版。

    缺陷检测指将图像中的残次品筛选出来。如图1所示,左侧的图像中包含正品(完整的药片)、残次品(不完整的药片),右侧图像中显示了检测的结果。

    图1 残次品检测

    轮廓与原始对象高度拟合,包含了非常丰富的信息。通过对一个对象的最小包围圆形与其轮廓面积的比值,能够将不规则的圆形筛选出来,从而实现缺陷检测,如图2所示。

    2  面积对比示意图

    当然,具体还涉及到最小包围圆形、前景背景的划分等知识点。

    1、最小包围圆形

    OpenCV提供了函数cv2.minEnclosingCircle()通过迭代算法构造一个对象的面积最小包围圆形。使用该函数能够获取一个对象的最小包围圆形,如图3所示。

    图3 最小包围圆形

    2、前景背景划分

    借助OpenCV的距离变换函数cv2.distanceTransform(),可以方便地将前景对象提取出来。如图4所示是利用该函数划分的前景背景图。

    图4 前景背景划分

    缺陷识别的流程图如图5所示。可以看到,在具体实现包含:

    1. 预处理
    2. 前景背景划分:通过距离变换函数cv2.distanceTransform()实现
    3. 缺陷检测:通过判断外接圆和轮廓实现

     图5 流程图

    在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从算法原理、实现流程等角度系统深入地介绍了该案例的理论基础和实现过程,并对具体的代码实现进行了细致的介绍与解释。欢迎大家阅读第7章《缺陷检测》获取详细内容。

    《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。

  • 相关阅读:
    CSS 展开收起 样式
    【Linux】 rm命令使用
    实验:温湿度数据oled显示
    AutoComplete(自动完成)
    Docker consul的容器服务更新与发现
    如何使用Net2FTP搭建免费web文件管理器打造个人网盘
    记录ajax的jsonp类型请求
    自动化测试selenium基础篇——webdriverAPI
    无重复字符的最长子串
    安全运营中心自动化究竟是好还是坏
  • 原文地址:https://blog.csdn.net/superdont/article/details/126215877