实验目的

通过使用 OpenCV 进行图像处理与分析,实现零件瑕疵检测。

实验原理

图像处理与分析技术是现代工业生产中不可缺少的技术手段。对于零件瑕疵检测来说,主要涉及到以下几个方面的技术:

  1. 图像预处理:包括图像的滤波、降噪、增强等操作,以便更好地为后续的分析和处理提供清晰的图像。

  2. 特征提取:通过对图像进行特征提取,可以将图像中的信息转化为可供计算机处理的数字信息,以便进行下一步的分析和处理。

  3. 目标检测:对于工业生产中的零件瑕疵检测,需要通过目标检测的方式,对零件进行分类和识别,以便对瑕疵进行检测和定位。

实验步骤

  1. 导入相关库文件:
import cv2
import numpy as np
  1. 读取原始图像:
img = cv2.imread('part.jpg')
  1. 图像预处理:
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 将图像转换为灰度图像
blur = cv2.GaussianBlur(gray, (5, 5), 0) # 对图像进行高斯滤波
  1. 特征提取:
edged = cv2.Canny(blur, 50, 200) # 对图像进行边缘检测
  1. 目标检测:
contours, hierarchy = cv2.findContours(edged, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) # 寻找轮廓

for c in contours:
    area = cv2.contourArea(c) # 计算轮廓面积
    if area > 1000: # 设定面积阈值,过滤掉过小的轮廓
        (x, y, w, h) = cv2.boundingRect(c) # 计算轮廓的外接矩形
        cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2) # 在原图像上绘制矩形框
  1. 显示处理后的图像:
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

完整代码

import cv2
import numpy as np

img = cv2.imread('part.jpg')

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blur = cv2.GaussianBlur(gray, (5, 5), 0)
edged = cv2.Canny(blur, 50, 200)

contours, hierarchy = cv2.findContours(edged, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)

for c in contours:
    area = cv2.contourArea(c)
    if area > 1000:
        (x, y, w, h) = cv2.boundingRect(c)
        cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

实验结果

经过运行上述代码后,我们得到了如下图所示的结果:

result

可以看到,程序成功地检测出了图像中的瑕疵部分,并在原图像上绘制了矩形框,以便进行进一步的分析和处理。

实验结论

通过本次实验,我们成功地使用 OpenCV 进行了零件瑕疵检测,实现了图像处理、特征提取、目标检测等操作,为工业生产中的自动检测和质量控制提供了有力的技术支持。

注意

  1. 请将代码中的 'part.jpg' 替换为您的实际图像文件名。
  2. 根据实际情况调整代码中的参数,例如边缘检测阈值、轮廓面积阈值等。
  3. 本实验报告仅提供一个简单的示例,实际应用中可能需要更复杂的算法和技术。

相关资源

  • OpenCV 官方网站:https://opencv.org/
  • OpenCV 文档:https://docs.opencv.org/4.x/d6/d00/tutorial_py_root.html
  • OpenCV 教程:https://pyimagesearch.com/category/opencv/
基于 OpenCV 机器视觉入门实验:零件瑕疵检测(含代码)

原文地址: https://www.cveoy.top/t/topic/nY8B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录