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


Posted in Python onJune 11, 2021

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

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

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

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

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

Python-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实现图像缺陷检测的实例

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

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

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

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

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

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

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

Python 相关文章推荐
python逐行读取文件内容的三种方法
Jan 20 Python
详解Python核心对象类型字符串
Feb 11 Python
python实现录音小程序
Oct 26 Python
学生信息管理系统Python面向对象版
Jan 30 Python
python按照多个条件排序的方法
Feb 08 Python
Python比较配置文件的方法实例详解
Jun 06 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
Apr 14 Python
pandas处理csv文件的方法步骤
Oct 16 Python
python实现excel公式格式化的示例代码
Dec 23 Python
matplotlib阶梯图的实现(step())
Mar 02 Python
python基础之爬虫入门
May 10 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
原生js实现旋转木马轮播图效果
2017/02/27 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
angular实现input输入监听的示例
2018/08/31 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
vuejs+element UI table表格中实现禁用部分复选框的方法
2019/09/20 Javascript
在HTML中使用JavaScript的两种方法
2020/12/24 Javascript
Python中实现对list做减法操作介绍
2015/01/09 Python
python获得两个数组交集、并集、差集的方法
2015/03/27 Python
Python可变参数函数用法实例
2015/07/07 Python
回调函数的意义以及python实现实例
2017/06/20 Python
python绘制直线的方法
2018/06/30 Python
对python_discover方法遍历所有执行的用例详解
2019/02/13 Python
python获取引用对象的个数方式
2019/12/20 Python
在Sublime Editor中配置Python环境的详细教程
2020/05/03 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
巴西网上药房:onofre
2016/11/21 全球购物
巴黎一票通:The Paris Pass
2018/02/10 全球购物
中学生个人自我评价
2014/02/06 职场文书
党的群众路线教育实践活动个人承诺书
2014/05/22 职场文书
爱心助学感谢信
2015/01/21 职场文书
保送生自荐信
2015/03/06 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
JavaScript 原型与原型链详情
2021/11/02 Javascript
Python获取字典中某个key的value
2022/04/13 Python
MySQL 原理与优化之Limit 查询优化
2022/08/14 MySQL