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 相关文章推荐
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
Jun 25 Python
win与linux系统中python requests 安装
Dec 04 Python
Python 基础教程之str和repr的详解
Aug 20 Python
Python 通配符删除文件的实例
Apr 24 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
python自动化实现登录获取图片验证码功能
Nov 20 Python
python中提高pip install速度
Feb 14 Python
使用python实现名片管理系统
Jun 18 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
python3实现语音转文字(语音识别)和文字转语音(语音合成)
Oct 14 Python
Python识别处理照片中的条形码
Nov 16 Python
如何理解python接口自动化之logging日志模块
Jun 15 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
怎么使 Mysql 数据同步
2006/10/09 PHP
用DBSQL类加快开发MySQL数据库程序的速度
2006/10/09 PHP
PHP 面向对象 final类与final方法
2010/05/05 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
关于二级域名下使用一级域名下的COOKIE的问题
2011/11/07 Javascript
Node.js(安装,启动,测试)
2014/06/09 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
2015/08/24 Javascript
浅谈jQuery 选择器和dom操作
2016/06/07 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
原生js实现公告滚动效果
2021/01/10 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
js模拟F11页面全屏显示
2019/09/17 Javascript
jquery实现垂直手风琴导航栏
2020/02/18 jQuery
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
2020/09/11 Javascript
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
Python中的choice()方法使用详解
2015/05/15 Python
python定时器(Timer)用法简单实例
2015/06/04 Python
Python聚类算法之基本K均值实例详解
2015/11/20 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
2018/05/30 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
django 实现后台从富文本提取纯文本
2020/07/02 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
银行领导证婚词
2014/01/11 职场文书
小学新教师培训方案
2014/02/03 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
学校节能减排方案
2014/06/13 职场文书
祖国在我心中演讲稿(小学生)
2014/09/23 职场文书
党员教师群众路线对照检查材料思想汇报
2014/09/29 职场文书
2014年团支书工作总结
2014/11/14 职场文书
时尚女魔头观后感
2015/06/04 职场文书
旗帜观后感
2015/06/08 职场文书
环保守法证明
2015/06/24 职场文书
护理心得体会范文
2016/01/22 职场文书