一、实验目的:

通过本次实验,学会使用OpenCV进行机器视觉的基础操作,并实现零件瑕疵的检测。

二、实验原理:

本次实验的主要原理是使用OpenCV图像处理库中的图像分割、边缘检测、二值化等基础操作,实现零件瑕疵的检测。具体步骤如下:

1.读入原始图像。

2.进行图像灰度化处理。

3.进行图像平滑处理。

4.进行边缘检测。

5.进行二值化处理。

6.进行形态学操作(腐蚀、膨胀)。

7.检测零件瑕疵。

三、实验步骤:

1.读入原始图像:

使用OpenCV的imread函数读取原始图像,代码如下:

import cv2

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

2.进行图像灰度化处理:

使用OpenCV的cvtColor函数将图像转为灰度图像,代码如下:

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

3.进行图像平滑处理:

使用OpenCV的GaussianBlur函数对图像进行平滑处理,代码如下:

blur = cv2.GaussianBlur(gray, (5, 5), 0)

4.进行边缘检测:

使用OpenCV的Canny函数进行边缘检测,代码如下:

edges = cv2.Canny(blur, 50, 150)

5.进行二值化处理:

使用OpenCV的threshold函数进行二值化处理,代码如下:

ret, thresh = cv2.threshold(edges, 127, 255, cv2.THRESH_BINARY)

6.进行形态学操作(腐蚀、膨胀):

使用OpenCV的morphologyEx函数进行形态学操作,代码如下:

kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel)

7.检测零件瑕疵:

使用OpenCV的findContours函数和drawContours函数对图像进行轮廓检测和绘制,代码如下:

contours, hierarchy = cv2.findContours(closed, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 0, 255), 2)

四、实验结果:

经过以上步骤的处理,得到的结果如下图所示:

part_result

从图中可以看出,检测出了零件上的瑕疵,并用红色的线框出了瑕疵的轮廓。

五、实验总结:

通过本次实验,我学会了使用OpenCV进行机器视觉的基础操作,并实现了零件瑕疵的检测。这些基础操作在实际应用中非常重要,是进行图像处理和计算机视觉研究的基础。在今后的学习和实践中,我将继续深入学习OpenCV的高级应用和算法,不断提高自己的技能水平。

基于OpenCV的机器视觉入门实验:零件瑕疵检测

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

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