OpenCV视频学习笔记(6)-边缘检测算法

六、边缘检测算法(综合了前面几节课的内容)

Canny边缘检测
1)使用高斯滤波器,以平滑图像,滤除噪声
2)计算图像中每个像素点的梯度强度和方向
3)应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应
4)应用双阈值(Double-Threshold)检测来确定真实和潜在的边缘
5)通过抑制孤立的弱边缘最终完成边缘检测
(1)高斯滤波

(2)梯度和方向

(3)非极大值抑制(两种方法):比较当前这个点和周围两个点的大小,如果是最大的就保存,如果不是就抑制掉

(4)双阈值检测

实现步骤:
首先还是读取图像,然后进行边缘检测,用Canny方法,在参数中指定minVal和maxVal
img=cv2.imread(‘D:/graduate/lena.jpg’,cv2.IMREAD_GRAYSCALE)

v1=cv2.Canny(img,80,150)#过滤掉的多一些
v2=cv2.Canny(img,50,100)#过滤掉的少一些

res=np.hstack((v1,v2))
cv_show(res,‘res’)
显示:

换个图像:
img=cv2.imread(‘D:/graduate/car.png’,cv2.IMREAD_GRAYSCALE)

v1=cv2.Canny(img,120,250)
v2=cv2.Canny(img,50,100)

res=np.hstack((v1,v2))
cv_show(res,‘res’)

你可能感兴趣的:(OpenCV视频学习笔记(6)-边缘检测算法)