如何用Python和OpenCV结合直方图进行图片缺陷检测详细讲解?

2026-05-27 00:210阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1296个文字,预计阅读时间需要6分钟。

如何用Python和OpenCV结合直方图进行图片缺陷检测详细讲解?

一、利用直方图方式进行批量图片缺陷检测(方法简单)

二、步骤(完整代码见最后)

2.1 灰度转换(将原图和要检测的图像分别进行灰度化) 2.2 灰度化作用:因为后续的图像比较需要对比的是灰度值,而不是颜色 2.3 灰度转换后的图像进行分割,得到灰度级 2.4 对分割后的灰度级进行灰度化处理 2.5 检测图像中的缺陷

三、灰度化的作用:因为后续的图像比较需要对比的是灰度值,而不是颜色

一、利用直方图的方式进行批量的图片缺陷检测(方法简单)

二、步骤(完整代码见最后)

2.1灰度转换(将原图和要检测对比的图分开灰度化)

灰度化的作用是因为后面的直方图比较需要以像素256为基准进行相关性比较

img = cv2.imread("0.bmp") #原图灰度转换 gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) #循环要检测的图,均灰度化 for i in range(1, 6): t1=cv2.cvtColor(cv2.imread(str(i)+".bmp"),cv2.COLOR_RGB2GRAY)

2.2 直方图计算(结果其实是二维的图表--用画图的方式展示)

calcHist参数讲解

  • 第一个参数: 必须为列表[],哪怕只有一个图片 ,image输入图像
  • channels::传入图像的通道, 如果是灰度图像,那就不用说了,只有一个通道,值为0 ,如果是彩色图像(有3个通道),那么值为0,1,2,中选择一个,对应着BGR各个通道。这个值也得用[]传入。
  • mask:掩膜图像。 如果统计整幅图,那么为none 。
阅读全文

本文共计1296个文字,预计阅读时间需要6分钟。

如何用Python和OpenCV结合直方图进行图片缺陷检测详细讲解?

一、利用直方图方式进行批量图片缺陷检测(方法简单)

二、步骤(完整代码见最后)

2.1 灰度转换(将原图和要检测的图像分别进行灰度化) 2.2 灰度化作用:因为后续的图像比较需要对比的是灰度值,而不是颜色 2.3 灰度转换后的图像进行分割,得到灰度级 2.4 对分割后的灰度级进行灰度化处理 2.5 检测图像中的缺陷

三、灰度化的作用:因为后续的图像比较需要对比的是灰度值,而不是颜色

一、利用直方图的方式进行批量的图片缺陷检测(方法简单)

二、步骤(完整代码见最后)

2.1灰度转换(将原图和要检测对比的图分开灰度化)

灰度化的作用是因为后面的直方图比较需要以像素256为基准进行相关性比较

img = cv2.imread("0.bmp") #原图灰度转换 gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY) #循环要检测的图,均灰度化 for i in range(1, 6): t1=cv2.cvtColor(cv2.imread(str(i)+".bmp"),cv2.COLOR_RGB2GRAY)

2.2 直方图计算(结果其实是二维的图表--用画图的方式展示)

calcHist参数讲解

  • 第一个参数: 必须为列表[],哪怕只有一个图片 ,image输入图像
  • channels::传入图像的通道, 如果是灰度图像,那就不用说了,只有一个通道,值为0 ,如果是彩色图像(有3个通道),那么值为0,1,2,中选择一个,对应着BGR各个通道。这个值也得用[]传入。
  • mask:掩膜图像。 如果统计整幅图,那么为none 。
阅读全文