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 相关文章推荐
tornado捕获和处理404错误的方法
Feb 26 Python
python根据出生年份简单计算生肖的方法
Mar 27 Python
Python的pycurl包用法简介
Nov 13 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
Python3多线程爬虫实例讲解代码
Jan 05 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
Jun 22 Python
python中ImageTk.PhotoImage()不显示图片却不报错问题解决
Dec 06 Python
python 自动重连wifi windows的方法
Dec 18 Python
在python中获取div的文本内容并和想定结果进行对比详解
Jan 02 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
python3-flask-3将信息写入日志的实操方法
Nov 12 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
php根据用户语言跳转相应网页
2015/11/04 PHP
PHP开发的微信现金红包功能示例
2017/06/29 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
jQuery 版元素拖拽原型代码
2011/04/25 Javascript
jquery重新播放css动画所遇问题解决
2013/08/21 Javascript
js 金额格式化来回转换示例
2014/02/23 Javascript
AngularJS基础 ng-cloak 指令简单示例
2016/08/01 Javascript
微信小程序-详解数据缓存
2016/11/24 Javascript
简单实现jQuery手风琴效果
2017/08/18 jQuery
React实践之Tree组件的使用方法
2017/09/30 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
vue移动端弹框组件的实例
2018/09/25 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
使用Pyinstaller的最新踩坑实战记录
2017/11/08 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
大学毕业登记表自我鉴定
2013/10/09 职场文书
安全宣传标语口号
2014/06/06 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
企业三严三实学习心得体会
2014/10/13 职场文书
工作试用期自我评价
2015/03/10 职场文书
2015年化验室工作总结
2015/04/23 职场文书
学雷锋献爱心活动总结
2015/05/11 职场文书
高中政治教师教学反思
2016/02/23 职场文书
OpenCV全景图像拼接的实现示例
2021/06/05 Python