Canny边缘检测
步骤:
- 使用高斯滤波器,以平滑图像,滤波噪声
- 计算图像中每个像素点的梯度强度和方向
- 应用非极大值抑制(Non-Maximum Suppression),以消除边缘检测带来的杂散响应
- 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘
- 通过抑制孤立的弱边缘最终完成边缘检测
双阈值检测图示:
img = cv2.imread('F:/aixin.jpg', cv2.IMREAD_GRAYSCALE)
c1 = cv2.Canny(img, 80, 150) # 第二个参数为双阈值检测中的minVal,第三个参数为maxVal
c2 = cv2.Canny(img, 50, 100)
res = np.hstack((img, c1, c2))
cv2.namedWindow('image', cv2.WINDOW_NORMAL)
cv2.imshow('image', res)
cv2.waitKey(0)
cv2.destroyAllWindows()