pic = 'D:/captcha/captcha dataset/yahoo/test/2e4McG.jpg'
def canny(src):
img = cv2.imread(src)
canny = cv2.Canny(img, 50, 150)
cv2.imshow('canny', canny)
cv2.waitKey(0)
cv2.destroyAllWindows()
canny(pic)
l Canny算子边缘检测
先用高斯滤波器进行平滑处理
一幅图像中的边缘可能在方向上各有所异,所以Canny算法用四个滤波器分别检测图像中的水平、垂直和对角线边缘
Canny算子先利用高斯平滑滤波器来平滑图像以除去噪声,Canny分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子还将经过一个非极大值抑制的过程,最后Canny算子还采用两个阈值来连接边缘。
Canny边缘检测算法
step1: 用高斯滤波器平滑图象;
step2: 用一阶偏导的有限差分来计算梯度的幅值和方向;
step3: 对梯度幅值进行非极大值抑制
step4: 用双阈值算法检测和连接边缘
Opencv中以下代码实现:cvCanny(dst,src, 50, 120, 3 );