Python-OpenCV实现图像缺陷检测的实例

 更新时间:2021年06月11日 15:51:22   作者:圈er  
本文将结合实例代码,在Jupyter Notebook上使用Python+opencv实现如下图像缺陷检测。需要的朋友们下面随着小编来一起学习学习吧

在Jupyter Notebook上使用Python+opencv实现如下图像缺陷检测。关于opencv库的安装可以参考:Python下opencv库的安装过程与一些问题汇总

1.实现代码

import cv2
import numpy
from PIL import Image, ImageDraw, ImageFont

#用于给图片添加中文字符
def ImgText_CN(img, text, left, top, textColor=(0, 255, 0), textSize=20):
    if (isinstance(img, numpy.ndarray)):  #判断是否为OpenCV图片类型
        img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))
    draw = ImageDraw.Draw(img)
    fontText = ImageFont.truetype("font/simhei.ttf", textSize, encoding="utf-8")
    draw.text((left, top), text, textColor, font=fontText)
return cv2.cvtColor(numpy.asarray(img), cv2.COLOR_RGB2BGR)

#读取原图片
image0=cv2.imread("0.bmp")
cv2.imshow("image0", image0)
#灰度转换
gray0 = cv2.cvtColor(image0, cv2.COLOR_RGB2GRAY)
cv2.imshow("gray0", gray0)for i in range(1,6):
    img0=cv2.imread(str(i)+".bmp")#原图片
    img=cv2.cvtColor(cv2.imread(str(i)+".bmp"),cv2.COLOR_RGB2GRAY)#灰度图
    #使用calcHist()函数计算直方图,反映灰度值的分布情况
    hist = cv2.calcHist([gray0], [0], None, [256], [0.0,255.0])
    h1 = cv2.calcHist([img], [0], None, [256], [0.0,255.0]) 
    #计算图片相似度
    result = cv2.compareHist(hist,h1,method=cv2.HISTCMP_BHATTACHARYYA)#巴氏距离比较,值越小相关度越高,最大值为1,最小值为0
    #print(result)
    #设定阈值为0.1,若相似度小于0.1则为合格,否则不合格
    if result <0.1:
        detect=ImgText_CN(img0, '合格', 10, 10, textColor=(255, 0, 0), textSize=30)
    else:
        detect=ImgText_CN(img0, '不合格', 10, 10, textColor=(255, 0, 0), textSize=30)
    cv2.imshow("Detect_" +str(i),detect)
cv2.waitKey(0)

2.运行结果

到此这篇关于Python-OpenCV实现图像缺陷检测的实例的文章就介绍到这了,更多相关OpenCV 图像缺陷检测内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文详解如何创建自己的Python装饰器

    一文详解如何创建自己的Python装饰器

    python装饰器在平常的python编程中用到的还是很多的,本篇文章中我们将来介绍一下python中最常使用的@staticmethod装饰器的使用,感兴趣的可以了解一下
    2022-09-09
  • Python的logging.config模块操作步骤

    Python的logging.config模块操作步骤

    这篇文章主要介绍了Python的logging.config模块操作步骤,本文通过示例代码给大家介绍的非常详细对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 聊聊Python中关于a=[[]]*3的反思

    聊聊Python中关于a=[[]]*3的反思

    这篇文章主要介绍了Python中关于a=[[]]*3的反思,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • 利用python批量修改word文件名的方法示例

    利用python批量修改word文件名的方法示例

    最近因为一些失误,导致恢复的文件名不对,所以就写个python程序,下面这篇文章主要给大家介绍了关于利用python批量修改word文件名的相关资料,文中给出了详细的示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-10-10
  • Python入门教程(三十八)Python的NumPy库简介

    Python入门教程(三十八)Python的NumPy库简介

    这篇文章主要介绍了Python入门教程(三十八)Python的NumPy库简介,NumPy 是用于处理数组的 python 库,它还拥有在线性代数、傅立叶变换和矩阵领域中工作的函数,需要的朋友可以参考下
    2023-05-05
  • Python的Dict对象源码分析

    Python的Dict对象源码分析

    这篇文章主要介绍了Python的Dict对象源码分析,PyDictObject即字典对象,类似于C++ STL中的map,但STL中以红黑树实现,Python中dict以hash表(散列表)实现,需要的朋友可以参考下
    2023-08-08
  • Python OpenCV机器学习之图像识别详解

    Python OpenCV机器学习之图像识别详解

    OpenCV中也提供了一些机器学习的方法,例如DNN等。本文将为大家详细介绍一下OpenCV中利用机器学习实现的一些图片识别功能:人脸识别、车牌识别等,感兴趣的可以了解一下
    2022-01-01
  • Python中str.join()简单用法示例

    Python中str.join()简单用法示例

    这篇文章主要介绍了Python中str.join()简单用法,结合实例形式分析了Python中str.join()用于连接生成新字符串的相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • python爬取2021猫眼票房字体加密实例

    python爬取2021猫眼票房字体加密实例

    在本篇文章里小编给大家整理的是一篇关于python爬取2021猫眼票房字体加密实例内容,有兴趣的朋友们可以学习下。
    2021-02-02
  • python字符串连接方式汇总

    python字符串连接方式汇总

    这篇文章主要介绍了python字符串连接方式汇总,很实用的基础技巧汇总,需要的朋友可以参考下
    2014-08-08

最新评论