欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python-OpenCV实现图像缺陷检测的实例

程序员文章站 2022-03-19 15:01:52
在jupyter notebook上使用python+opencv实现如下图像缺陷检测。关于opencv库的安装可以参考:python下opencv库的安装过程与一些问题汇总。1.实现代码import...

在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 图像缺陷检测内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!