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中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
Python中字典(dict)和列表(list)的排序方法实例
Jun 16 Python
Python Queue模块详解
Nov 30 Python
Python的Flask框架中@app.route的用法教程
Mar 31 Python
Python自动登录126邮箱的方法
Jul 10 Python
ubuntu17.4下为python和python3装上pip的方法
Jun 12 Python
python去除文件中重复的行实例
Jun 29 Python
Python设计模式之适配器模式原理与用法详解
Jan 15 Python
Python 列表的清空方式
Jan 13 Python
Python通过socketserver处理多个链接
Mar 18 Python
如何基于python实现不邻接植花
May 01 Python
python空元组在all中返回结果详解
Dec 15 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
改造一台复古桌面收音机
2021/03/02 无线电
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
PHP array_multisort() 函数的深入解析
2013/06/20 PHP
浅析php插件 Simple HTML DOM 用DOM方式处理HTML
2013/07/01 PHP
解析php5配置使用pdo
2013/07/03 PHP
PHP中Session可能会引起并发问题
2015/06/26 PHP
thinkphp5框架实现数据库读取的数据转换成json格式示例
2019/10/10 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
CutePsWheel javascript libary 控制输入文本框为可使用滚轮控制的js库
2010/02/07 Javascript
浅析jQuery的链式调用之each函数
2010/12/03 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
jquery中的事件处理详细介绍
2013/06/24 Javascript
使用AngularJS中的SCE来防止XSS攻击的方法
2015/06/18 Javascript
非常漂亮的相册集 使用jquery制作相册集
2016/04/28 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
React 项目迁移 Webpack Babel7的实现
2018/09/12 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
详解ES6实现类的私有变量的几种写法
2021/02/10 Javascript
[48:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第二场 1月29日
2021/03/11 DOTA
Python文件处理
2016/02/29 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
新手学习Python2和Python3中print不同的用法
2020/06/09 Python
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
白俄罗斯女装和针织品网上商店:Presli.by
2019/10/13 全球购物
法国包包和行李箱销售网站:Bagage24.fr
2020/03/24 全球购物
销售类个人求职信范文
2013/09/25 职场文书
项目总经理岗位职责
2014/02/14 职场文书
大专生求职信
2014/06/29 职场文书
三方股东合作协议书
2014/10/28 职场文书
思品教学工作总结
2015/08/10 职场文书
文艺委员竞选稿
2015/11/19 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
导游词之白茶谷九龙峡
2019/10/23 职场文书