Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。
案例来源于傅老师。
Canny边缘检测分为如下几个步骤:
步骤1:去噪。噪声会影响边缘检测的准确性,因此首先要将噪声过滤掉。
步骤2:计算梯度的幅度与方向。
步骤3:非极大值抑制,即适当地让边缘“变瘦”。
步骤4:确定边缘。使用双阈值算法确定最终的边缘信息。
OpenCV提供了函数cv2.Canny()实现Canny边缘检测,具体为:
edges=cv2.Canny(image,threshold1,threshold2[,apertureSize[,L2gradient]])
threshold1:表示处理过程中的第一个阈值。
threshold2:表示处理过程中的第二个阈值。
apertureSize:表示Sobel算子的孔径大小。
L2gradient:为计算图像梯度幅度(gradient magnitude)的标识。其默认值为False。
案例:
import cv2
import numpy as np
def show(name,img):
cv2.imshow(name,img)
cv2.waitKey(0)
cv2.destroyAllWindows()
img = cv2.imread("peppa.png",0)
#_____________#
MeidanImg = cv2.medianBlur(img,5)
CannyImg = cv2