opencv中Candy边缘检测详解

Candy边缘检测的一般步骤

  1. 使用高斯滤波器,以平滑图像,滤除噪声。

  2. 计算图像中每个像素点的梯度强度和方向。

  3. 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。

  4. 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。

  5. 通过抑制孤立的弱边缘最终完成边缘检测。

1、高斯滤波器
在这里插入图片描述

2、梯度和方向在这里插入图片描述
3、非极大值抑制
在这里插入图片描述
在这里插入图片描述
4、双阈值检测
在这里插入图片描述
下面介绍一下cv2.Candy()这个函数的常见参数的含义

cv2.Canny(src, thresh1, thresh2,edges,apertureSize,L2gradient) 

src:输入原图(必须为单通道图)
thresh1:minVal
thresh2:maxVal
apertureSize:Sobel算子的大小
L2gradient:bool类型;
true: 使用更精确的L2范数进行计算(即两个方向的倒数的平方和再开放)
false:使用L1范数(直接将两个方向导数的绝对值相加)
gray=cv2.imread("lena.jpg",cv2.IMREAD_GRAYSCALE)
img=cv2.GaussianBlur(gray,(3,3),0)
v1=cv2.Canny(img,80,150)
v2=cv2.Canny(img,50,100)

res = np.hstack((v1,v2))
cv_show(res,'res')

在这里插入图片描述

gray=cv2.imread("car.png",cv2.IMREAD_GRAYSCALE)
img=cv2.GaussianBlur(gray,(3,3),0)
v1=cv2.Canny(img,120,250)
v2=cv2.Canny(img,50,100)

res = np.hstack((v1,v2))
cv_show(res,'res')

在这里插入图片描述

发布了27 篇原创文章 · 获赞 20 · 访问量 1550

猜你喜欢

转载自blog.csdn.net/qq_39507748/article/details/104542565