Canny边缘检测
在Opencv里面提供了canny函数,可用于边缘检测,因此用代码实现边缘检测极其简单,canny算法的实现步骤如下:
1.使用高斯滤波对图像进行去噪
2.计算梯度的幅值与角度
3.在边缘上使用非最大值抑制(NMS)
4.在检测到的边缘上使用双阈值去除假阳性
5.最后分析所有边缘及其之间的连接
以上实现canny算法的理论介绍,详见
算法实现
在opencv中可直接调用该函数实现,输入图像如下:
import cv2
import numpy as np
img = cv2.imread('/home/pandamax/techfort-pycv/chapter3/test.jpg', 0)
cv2.imwrite("canny.jpg", cv2.Canny(img, 200, 300))##canny函数实现边缘检测
cv2.imshow("canny", cv2.imread("canny.jpg"))
cv2.waitKey()
cv2.destroyAllWindows()
实验结果: