win10+Python3.7.3+OpenCV3.4.1入门学习(十 Canny边缘检测)————10.2 Canny函数及使用

Python版本是Python3.7.3,OpenCV版本OpenCV3.4.1,开发环境为PyCharm

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范数(直接将两个方向导数的绝对值相加)。

在这里插入图片描述eg1:使用函数cv2.Canny()获取图像的边缘,并尝试使用不同大小的threshold1和threshold2,观察获取到的边缘有何不同。
程序如下:

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()

运行程序,结果如下图所示。其中:
● ( a )图是原始图像。
● ( b )图是参数threshold1为128、threshold2为200时的边缘检测结果。
● ( c )图是参数threshold1为32、threshold2为128时的边缘检测结果。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

从程序运行结果可知,当函数cv2.Canny()的参数threshold1和threshold2的值较小时,能够捕获更多的边缘信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值