2022年 11月 7日

python 边缘检测

Canny边缘检测算法是John F. Canny于 1986 年开发出来的一个多级边缘检测算法。

Canny边缘检测算法可以分为以下5个步骤:

  1. 应用高斯滤波来平滑图像,目的是去除噪声
  2. 找寻图像的强度梯度(intensity gradients)
  3. 应用非最大抑制(non-maximum suppression)技术来消除边误检
  4. 应用双阈值的方法来决定可能的(潜在的)边界
  5. 利用滞后技术来跟踪边界

Canny使用梯度区间来定义边缘,如设定梯度区间为100-200,某个像素的梯度大于200,那么定义为边缘,若梯度小于100,则其为非边缘,若梯度为100-200之间,若其与某个已知像素边缘相连,那么判断其为边缘,否则不是。

  1. import cv2
  2. # 读取图片
  3. gray = cv2.imread("xg11gauss.jpg", cv2.IMREAD_GRAYSCALE)
  4. # canny边缘检测
  5. canny = cv2.Canny(gray, 100, 200)
  6. # 显示
  7. cv2.imshow("gray", gray)
  8. cv2.imshow("canny", canny)
  9. cv2.waitKey()