python 对灰度图进行缺陷检测,用plt展示出来
时间: 2024-05-12 13:20:52 浏览: 170
以下是一个示例代码,用于对灰度图进行缺陷检测,并使用plt展示结果:
```python
import cv2
import numpy as np
import matplotlib.pyplot as plt
# 读取灰度图
img = cv2.imread('gray_image.jpg', cv2.IMREAD_GRAYSCALE)
# 对图像进行高斯模糊,以去除噪音
blur = cv2.GaussianBlur(img, (5, 5), 0)
# 使用自适应阈值二值化,将图像转换为二值图
thresh = cv2.adaptiveThreshold(blur, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY_INV, 11, 6)
# 使用形态学操作,去除小的噪点和孤立点
kernel = np.ones((3, 3), np.uint8)
opening = cv2.morphologyEx(thresh, cv2.MORPH_OPEN, kernel, iterations=1)
# 找到轮廓并绘制
contours, hierarchy = cv2.findContours(opening, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
cv2.drawContours(img, contours, -1, (0, 255, 0), 2)
# 展示结果
plt.imshow(img, cmap='gray')
plt.show()
```
在上面的代码中,我们首先读取灰度图像,并对其进行高斯模糊以去除噪声。然后,我们使用自适应阈值二值化将图像转换为二值图,然后使用形态学操作去除小的噪点和孤立点。最后,我们找到图像中的所有轮廓,并将其绘制在原始图像上。
最终结果将以灰度图像形式展示在plt中。
阅读全文