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基于PycURL实现POST的方法
Jul 25 Python
Linux 下 Python 实现按任意键退出的实现方法
Sep 25 Python
详解python调度框架APScheduler使用
Mar 28 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
Python操作Sql Server 2008数据库的方法详解
May 17 Python
Python 移动光标位置的方法
Jan 20 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
将python文件打包成EXE应用程序的方法
May 22 Python
使用Python自动生成HTML的方法示例
Aug 06 Python
Python笔记之工厂模式
Nov 20 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
opencv中图像叠加/图像融合/按位操作的实现
Apr 01 Python
Python中OpenCV实现简单车牌字符切割
Python排序算法之插入排序及其优化方案详解
Python下opencv库的安装过程及问题汇总
Jun 11 #Python
Python实现信息轰炸工具(再也不怕说不过别人了)
撤回我也能看到!教你用Python制作微信防撤回脚本
用Python创建简易网站图文教程
python+opencv实现视频抽帧示例代码
You might like
分页显示Oracle数据库记录的类之二
2006/10/09 PHP
PHP安全编程之加密功能
2006/10/09 PHP
PHP+javascript液晶时钟
2006/10/09 PHP
PHP中foreach()用法汇总
2015/07/02 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
jquery bind(click)传参让列表中每行绑定一个事件
2014/08/06 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
详解基于Node.js的HTTP/2 Server实践
2018/05/31 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
用Python编写一个国际象棋AI程序
2014/11/28 Python
浅析Python中的多重继承
2015/04/28 Python
Python常用知识点汇总
2016/05/08 Python
python2.7和NLTK安装详细教程
2018/09/19 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
Python基础之文件读取的讲解
2019/02/16 Python
python实现tail -f 功能
2020/01/17 Python
python字符串替换re.sub()实例解析
2020/02/09 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
大码女装:Ulla Popken
2019/08/06 全球购物
父亲的菜园教学反思
2014/02/13 职场文书
网管求职信
2014/03/03 职场文书
生物制药专业求职信
2014/03/11 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
个人诉讼委托书范本
2014/10/17 职场文书
民主评议党员总结
2014/10/20 职场文书
2016银行招聘自荐信
2016/01/28 职场文书
Golang 并发下的问题定位及解决方案
2022/03/16 Golang
使用Python开发冰球小游戏
2022/04/30 Python
Nginx限流和黑名单配置
2022/05/20 Servers
详解Anyscript开发指南绕过typescript类型检查
2022/09/23 Javascript