Opencv中已将Canny边缘检测封装为函数了。
只需在使用之前对图片进行高斯模糊(高斯平滑)处理防止噪音干扰。
import cv2
# 读图
src = cv2.imread("azr.jpg")
# 高斯滤波降噪,使用5*5内核
src = cv2.GaussianBlur(src, (5, 5), 0)
# Canny边缘检测,低阈值low暂设为0,高阈值high暂设为150
canny = cv2.Canny(src, 0, 150)
cv2.imshow("azr",src)
cv2.imshow("canny", canny)
cv2.waitKey()
cv2.destroyAllWindows()
参考:
高斯滤波法:Python_10分钟学会图像平滑操作_专栏No.7
Canny边缘检测细则:Canny边缘检测