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 Django(图文)
Nov 04 Python
python 动态获取当前运行的类名和函数名的方法
Apr 15 Python
python中获得当前目录和上级目录的实现方法
Oct 12 Python
利用numpy实现一、二维数组的拼接简单代码示例
Dec 15 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
利用python计算windows全盘文件md5值的脚本
Jul 27 Python
python模块导入的方法
Oct 24 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
Django3中的自定义用户模型实例详解
Aug 23 Python
python缺失值的解决方法总结
Jun 09 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
域名和cookie问题(域名后缀)
2012/10/10 PHP
关于PHP递归算法和应用方法介绍
2013/04/15 PHP
php运行时动态创建函数的方法
2015/03/16 PHP
Laravel 5框架学习之Laravel入门和新建项目
2015/04/07 PHP
ecshop添加菜单及权限分配问题
2017/11/21 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
javascript 折半查找字符在数组中的位置(有序列表)
2010/12/09 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
vue兄弟组件传递数据的实例
2018/09/06 Javascript
详解jQuery如何实现模糊搜索
2019/05/10 jQuery
解决layui的使用以及针对select、radio等表单组件不显示的问题
2019/09/05 Javascript
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
2019/06/21 Python
python爬虫之自制英汉字典
2019/06/24 Python
Python自定义一个异常类的方法
2019/06/27 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
使用OpenCV实现人脸图像卡通化的示例代码
2021/01/15 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
最新自我评价范文
2013/11/16 职场文书
专科生就业求职信
2014/06/22 职场文书
2014年店长工作总结
2014/11/17 职场文书
2016五四青年节活动总结范文
2016/04/06 职场文书
入党转正申请书范文
2019/05/20 职场文书
利用javaScript处理常用事件详解
2021/04/14 Javascript
详细谈谈MYSQL中的COLLATE是什么
2021/06/11 MySQL
css3应用示例:新增的选择器
2022/03/16 HTML / CSS
《月歌。》宣布制作10周年纪念剧场版《RABBITS KINGDOM THE MOVIE》
2022/04/02 日漫
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技
Spring Cloud Netflix 套件中的负载均衡组件 Ribbon
2022/04/13 Java/Android
SpringBoot深入分析讲解监听器模式下
2022/07/15 Java/Android