立即学习:https://edu.csdn.net/course/play/10552/234947?utm_source=blogtoedu
canny边缘检测的一般步骤
① 去噪
边缘检测容易受到噪声的影响。因此,在进行边缘检测前,通常需要进行去噪。
通常采用高斯滤波器。
② 梯度
对平滑后的图像计算梯度的大小和方向
梯度的方向一般总是与边界垂直
梯队方向背归为四类:垂直,水平,两个对角线方向。
③非极大值抑制
在获得了梯度和方向后,遍历图像,去除所有不是边界的点(判断当前像素点是否是周围像素点中具有相同方向梯度的最大值)
④滞后阈值
edges = cv2.Canny(src,threshold1,threshold2)
threshold 1 边界1 minVal
threshold 2 边界2 maxVal
值越大,边缘越少 值越小 ,边缘越细腻
import cv2
img = cv2.imread('111.jpg', cv2.IMREAD_UNCHANGED)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
edges = cv2.Canny(gray, 50 , 150)
cv2.namedWindow('edges',cv2.WINDOW_AUTOSIZE)
cv2.imshow('edges', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()