python+opencv Canny边缘检测

OpenCV提供了一给非常方便的Canny函数(算法发明者:Jhon F.Canny)。
Canny边缘检测算法非常复杂,其实现有5个步骤:

  • 使用高斯滤波器对图像进行降噪
  • 计算梯度
  • 在边缘上使用非最大抑制(NMS)
  • 在检测到的边缘上使用双阈值去除假阳性
  • 分析所有边缘及其之间的连接,保留真正的边缘,消除不明显的边缘
import cv2
#转为灰度图片
img = cv2.imread(r"F:\Python\picture\lena.jpg",cv2.IMREAD_GRAYSCALE)
#降噪
img = cv2.GaussianBlur(img,(5,5),0)
#边缘检测,50为低阈值,100为高阈值,通过调整阈值可以获得不同效果
img = cv2.Canny(img,50,100)
cv2.imshow("canny",img)
cv2.waitKey()
cv2.destroyAllWindows()

原图:
在这里插入图片描述
上述代码的效果图:
在这里插入图片描述
调整阈值为100,200后的效果:

img = cv2.Canny(img,100,200)

在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章