Python-OpenCV实现图像缺陷检测的实例
更新时间:2021年06月11日 15:51:22 作者:圈er
本文将结合实例代码,在Jupyter Notebook上使用Python+opencv实现如下图像缺陷检测。需要的朋友们下面随着小编来一起学习学习吧
在Jupyter Notebook上使用Python+opencv实现如下图像缺陷检测。关于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实现图像缺陷检测的实例的文章就介绍到这了,更多相关OpenCV 图像缺陷检测内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
python计算阶乘和的方法(1!+2!+3!+...+n!)
今天小编就为大家分享一篇python计算阶乘和的方法(1!+2!+3!+...+n!),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-02-02Python中raise用法简单实例(超级详细,看了无师自通)
python中raise语句用于手动触发异常,通过raise语句可以在代码中显式地引发异常,从而使程序进入异常处理流程,下面这篇文章主要给大家介绍了关于Python中raise用法的相关资料,需要的朋友可以参考下2024-03-03Python 正则表达式 re.match/re.search/re.sub的使用解析
今天小编就为大家分享一篇Python 正则表达式 re.match/re.search/re.sub的使用解析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-07-07
最新评论