cvCanny函数说明

源文地址:http://baike.baidu.com/view/5252720.htm

cvCanny

编辑本段说明

  开放计算机视觉( OpenCV)库库函数之一,用于对 图像的边缘检测(采用 canny算法)。

编辑本段定义

  void cvCanny( const CvArr* image,CvArr* edges,double threshold1,double threshold2, int aperture_size=3 );

编辑本段参数说明?

  image 输入图像,这个必须是单通道的,即灰度图
  edges 输出的边缘图像 ,也是单通道的,但是是黑白的
  threshold1 第一个阈值
  threshold2 第二个阈值
  aperture_size Sobel 算子内核大小
  函数 cvCanny 采用 Canny 算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。
### 关于OpenCV中`cv2.Canny()`函数 #### 函数定义与参数说明 在Python接口下,OpenCV提供了`cv2.Canny()`用于执行Canny边缘检测算法。此函数接收多个参数以调整处理效果: - `image`: 输入图像,通常为灰度图。 - `threshold1`: 第一阈值,较低阈值。 - `threshold2`: 第二阈值,较高阈值。 - `apertureSize`(可选): Sobel算子的孔径大小,默认为3。 - `L2gradient`(可选): 如果设置为True,则使用更精确但较慢的L2范数计算梯度幅值;默认False表示采用更快捷近似方式。 具体调用形式如下所示[^1]: ```python import cv2 as cv edges = cv.Canny(image, threshold1, threshold2[, apertureSize[, L2gradient]]) ``` #### 实际应用案例展示 下面给出一段完整的Python代码片段作为实例,演示如何利用上述提到的方法完成基本操作并显示结果: ```python import numpy as np import cv2 as cv from matplotlib import pyplot as plt img = cv.imread('messi5.jpg',0) # 应用高斯模糊减少噪声影响 blurred_img = cv.GaussianBlur(img,(5,5),0) # 执行canny边缘检测 edges = cv.Canny(blurred_img, 100, 200) plt.subplot(121),plt.imshow(img,cmap = 'gray') plt.title('Original Image'), plt.xticks([]), plt.yticks([]) plt.subplot(122),plt.imshow(edges,cmap = 'gray') plt.title('Edge Image'), plt.xticks([]), plt.yticks([]) plt.show() ``` 这段脚本首先读取一张图片文件,并将其转换成单通道灰度模式以便后续处理。接着运用高斯平滑技术降低随机噪点干扰程度,最后实施Canny运算获取边界信息并通过Matplotlib库呈现对比效果图像[^2]。 #### Canny边缘检测原理概述 作为一种广泛使用的边缘提取手段,Canny算法经历了几个重要环节:首先是去除杂音成分,其次是寻找局部极大值位置即可能存在的轮廓线方向变化处,再者设定两个不同水平界限区分有效边沿与其他部分,最终形成清晰锐利的目标物外形描述[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值