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爬取微博数据生成词云图片实例代码
Aug 31 Python
python opencv检测目标颜色的实例讲解
Apr 02 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
python SVM 线性分类模型的实现
Jul 19 Python
使用OpenCV实现仿射变换—缩放功能
Aug 29 Python
使用python模拟高斯分布例子
Dec 09 Python
tensorflow 重置/清除计算图的实现
Jan 19 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
Python实现疫情通定时自动填写功能(附代码)
May 27 Python
Selenium结合BeautifulSoup4编写简单的python爬虫
Nov 06 Python
python 命令行传参方法总结
May 25 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
用PHP调用数据库的存贮过程
2006/10/09 PHP
一个PHP的String类代码
2010/04/20 PHP
php页面函数设置超时限制的方法
2014/12/01 PHP
php经典算法集锦
2015/11/14 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
2015/12/09 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
使用js显示当前时间示例
2014/03/02 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
jQuery中click事件的定义和用法
2014/12/20 Javascript
js实现touch移动触屏滑动事件
2015/04/17 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
react以create-react-app为基础创建项目
2018/03/14 Javascript
[01:14]DOTA2亚洲邀请赛 ShowOpen
2015/02/07 DOTA
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
pandas去除重复列的实现方法
2019/01/29 Python
python实现五子棋人机对战游戏
2020/03/25 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
python用WxPython库实现无边框窗体和透明窗体实现方法详解
2020/02/21 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
Python批量修改xml的坐标值全部转为整数的实例代码
2020/11/26 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
python自动化办公操作PPT的实现
2021/02/05 Python
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
Delphi软件工程师试题
2013/01/29 面试题
经典导游欢迎词大全
2014/01/16 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
诚信承诺书
2015/01/19 职场文书
违纪开除通知书
2015/04/25 职场文书
签证工作证明模板
2015/06/15 职场文书
一起来学习Python的元组和列表
2022/03/13 Python
Vue.Draggable实现交换位置
2022/04/07 Vue.js