一、Canny边缘检测
1,步骤
•1) 使用高斯滤波器,以平滑图像,滤除噪声。
•2) 计算图像中每个像素点的梯度强度和方向。
•3) 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。小的梯度值去掉。
•4) 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。
minVal设置的小,边界值保留的多
maxVal设置的大,边界值同样保留多
•5) 通过抑制孤立的弱边缘最终完成边缘检测。
2,高斯滤波器
3,计算梯度与方向
4,非极大值抑制
若A点大于B,C,作为边缘点
5,双阈值
img=cv2.imread("lena.jpg",cv2.IMREAD_GRAYSCALE)
v1=cv2.Canny(img,80,150) #minVal,maxVal
v2=cv2.Canny(img,50,100)
res = np.hstack((v1,v2))
cv_show(res,'res')
img=cv2.imread("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')
二、图像金字塔
高斯金字塔:
向下采样(缩小),特征越来越少,方向由底座到塔顶,卷积后长度宽度变成一半,,先用高斯核卷积,偶数行列去掉是为了做缩小
向上采样(放大),方向由塔顶到底座,将图像每个方向扩大两倍,新增行用0填充,再卷积