美文网首页
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