《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时的边缘检测结果。
网友评论