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中尾递归用法实例详解
Apr 28 Python
python创建进程fork用法
Jun 04 Python
说一说Python logging
Apr 15 Python
使用urllib库的urlretrieve()方法下载网络文件到本地的方法
Dec 19 Python
Django网络框架之HelloDjango项目创建教程
Jun 06 Python
对django views中 request, response的常用操作详解
Jul 17 Python
树莓派3 搭建 django 服务器的实例
Aug 29 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
Python3运算符常见用法分析
Feb 14 Python
Django User 模块之 AbstractUser 扩展详解
Mar 11 Python
python 爬取小说并下载的示例
Dec 07 Python
OpenCV-Python实现轮廓的特征值
Jun 09 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
PHP数据库连接mysql与mysqli对比分析
2016/01/04 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
2009/08/04 Javascript
jquery 插件开发方法小结
2009/10/23 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
基于javascript实现单选及多选的向右和向左移动实例
2015/07/25 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
jQuery如何封装输入框插件
2016/08/19 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
2016/11/01 Javascript
JS条形码(一维码)插件JsBarcode用法详解【编码类型、参数、属性】
2017/04/19 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
Vue.js样式动态绑定实现小结
2019/01/24 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
微信小程序实现单个或多个倒计时功能
2020/11/01 Javascript
python 调用c语言函数的方法
2017/09/29 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
Python标准库json模块和pickle模块使用详解
2020/03/10 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
玩具公司的创业计划书
2013/12/31 职场文书
汽车维修工岗位职责
2014/02/12 职场文书
安全标语口号
2014/06/09 职场文书
大学计划书范文800字
2014/08/14 职场文书
2014年环境卫生工作总结
2014/11/24 职场文书
网络营销计划
2015/01/17 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
工作计划范文之财务管理
2019/08/09 职场文书
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python
Python面试不修改数组找出重复的数字
2022/05/20 Python