cv2.Canny()函数
cv2.Canny(image, threshold1, threshold2[, edges[, apertureSize[, L2gradient]]])
image:输入图像
threshold1: minVal
threshold:maxval
aperturesize :Sobel算子大小,默认为3
L2gradient:为一个布尔值。若为真则使用L2范数进行计算(即对两个方向导数的平方和进行开方),否则使用L1范数(直接将两个方向导数的绝对值相加)
梯度强度大于maxval的任何边缘肯定为边缘,而minVal以下的边缘肯定为非边缘,非边缘被舍弃。位于这两个阈值之间的是基于其连通性的分类边缘或非边缘。如果它们连接到“可靠边缘”像素,则它们被视为边缘的一部分。否则,他们也被丢弃。见下图:
例子
1 | import numpy as np |
处理前图片如下图所示
处理后图片如下图所示