美文网首页
Canny边缘检测

Canny边缘检测

作者: 大龙10 | 来源:发表于2021-11-01 09:55 被阅读0次

《OpenCV轻松入门:面向Python》读书笔记
作者:李立宗
出版社:电子工业出版社
出版时间:2019-05

第10章 Canny边缘检测

  Canny边缘检测是一种使用多级边缘检测算法检测边缘的方法。1986年,John F.Canny发表了著名的论文A Computational Approach to Edge Detection,在该论文中详述了如何进行边缘检测。

1、函数

  OpenCV提供了函数cv2.Canny()来实现Canny边缘检测,其语法形式如下:

edges = cv.Canny( image, threshold1, threshold2[, apertureSize[, L2gradient]])

式中:

  • edges为计算得到的边缘图像。
  • image为8位输入图像。
  • threshold1表示处理过程中的第一个阈值。
  • threshold2表示处理过程中的第二个阈值。
  • apertureSize表示Sobel算子的孔径大小。
  • L2gradient为计算图像梯度幅度(gradient magnitude)的标识。其默认值为False。如果为True,则使用更精确的L2范数进行计算(即两个方向的导数的平方和再开方),否则使用L1范数(直接将两个方向导数的绝对值相加)。


2、示例

【例9.14】使用函数cv2.Laplacian()计算图像的边缘信息。

import cv2
o=cv2.imread("lena.bmp",cv2.IMREAD_GRAYSCALE)
r1=cv2.Canny(o,128,200)
r2=cv2.Canny(o,32,128)
cv2.imshow("original",o)
cv2.imshow("result1",r1)
cv2.imshow("result2",r2)
cv2.waitKey()
cv2.destroyAllWindows()

3、结果

图10-9 不同参数设置的边缘检测结果

运行程序,结果如图10-9所示。其中:

  • (a)图是原始图像。
  • (b)图是参数threshold1为128、threshold2为200时的边缘检测结果。
  • (c)图是参数threshold1为32、threshold2为128时的边缘检测结果。

相关文章

网友评论

      本文标题:Canny边缘检测

      本文链接:https://www.haomeiwen.com/subject/yjryaltx.html