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实现Linux命令xxd -i功能
Mar 06 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
详解Python装饰器由浅入深
Dec 09 Python
python3 flask实现文件上传功能
Mar 20 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
PyCharm的设置方法和第一个Python程序的建立
Jan 16 Python
Python3实现的回文数判断及罗马数字转整数算法示例
Mar 27 Python
基于python if 判断选择结构的实例详解
May 06 Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 Python
Python日志logging模块功能与用法详解
Apr 09 Python
详解Python高阶函数
Aug 15 Python
python 对图片进行简单的处理
Jun 23 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
帝国cms常用标签汇总
2015/07/06 PHP
jQuery+PHP实现图片上传并提交功能
2020/07/27 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
xml 与javascript结合的问题解决方法
2007/03/24 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
express的中间件cookieParser详解
2014/12/04 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
JavaScript获得url查询参数的方法
2015/07/02 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
javascript 中关于array的常用方法详解
2017/05/05 Javascript
JS表单提交验证、input(type=number) 去三角 刷新验证码
2017/06/21 Javascript
Angular4项目中添加i18n国际化插件ngx-translate的步骤详解
2017/07/02 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
浅谈angularJS2中的界面跳转方法
2018/08/31 Javascript
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Python何时应该使用Lambda函数
2019/07/02 Python
python实现点击按钮修改数据的方法
2019/07/17 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
Pytorch 实现权重初始化
2019/12/31 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
2020/07/21 Python
python中@contextmanager实例用法
2021/02/07 Python
使用CSS3编写类似iOS中的复选框及带开关的按钮
2016/04/11 HTML / CSS
Booking.com亚太地区:Booking.com APAC
2020/02/07 全球购物
Java多态性的定义以及类型
2014/09/16 面试题
学校元旦晚会方案
2014/02/19 职场文书
安全生产管理合理化建议书
2014/03/12 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
团队合作精神学习心得体会
2016/01/19 职场文书
优质护理服务心得体会
2016/01/22 职场文书
mybatis中注解与xml配置的对应关系和对比分析
2021/08/04 Java/Android
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL
Python如何将list中的string转换为int
2022/07/15 Ruby