Canny

  1. 高斯滤波器 这一步需要我们手动完成

  2. 梯度与方向

  3. 非极大值抑制 比较当前点和相邻两个点的梯度大小,只有比相邻两点都大才能保留 只有 c 点的值大于 dTmp1dTmp2 才能保留

简化方法: 距离哪个方向近就取哪个方向

  1. 双阈值检测

代码:

img = cv2.imread("lena.jpg", cv2.IMREAD_GRAYSCALE)
v1 = cv2.Canny(img, 80, 150) # min-value, max-value
v2 = cv2.Canny(img, 50, 100)

Min-value 设置小的时候,条件放松,希望检测出更多边界,即使没有那么地边界;若设置大,那么条件更严,只有极有可能是边界的时候才会被认定。
Max-value 同理。 v1 ,右 v2 阈值低的话,边界更多更细,但是可能考虑进去一些噪音点、非边缘点

左大右小