canny算子原理

本文介绍了Canny边缘检测算法的四个步骤:首先通过x,y方向模板进行卷积并求幅值;其次进行门限化处理,去除低于阈值的信号;接着采用非最大化抑制细化边缘;最后,利用双门限保留强边缘和真实边缘信息,有效滤除噪声。" 113992856,525163,Apache2配置全攻略:从HTTP到HTTPS,"['服务器', 'Web服务器', 'HTTPS配置', 'SSL证书', 'Apache2模块']
摘要由CSDN通过智能技术生成

给定一张原图:
在这里插入图片描述
第一步:求幅值
分别使用x,y方向模板对原图进行卷积操作,
对卷积后的结果平方求和开方,也就是计算幅值。
在这里插入图片描述
第二步:门限化
低于门限值的都去掉,留下的才是边缘。

注意:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Canny算子是一种常用于边缘检测算法,其主要原理是在图像中寻找强度变化较大的像素点,将其视为边缘点。Canny算子的具体步骤如下: 1. 高斯滤波:使用高斯滤波器对图像进行平滑处理,去除噪声。 2. 计算梯度幅值和方向:使用Sobel算子计算图像的梯度幅值和方向。 3. 非极大值抑制:在梯度方向上,对每个像素点进行比较,将非局部最大值的像素点置为0,保留局部最大值的像素点。 4. 双阈值处理:将图像中的像素点分为三类:强边缘、弱边缘和非边缘。通过设置两个阈值,将梯度幅值大于高阈值的像素点视为强边缘,梯度幅值小于低阈值的像素点视为非边缘,梯度幅值介于两个阈值之间的像素点视为弱边缘。 5. 边缘连接:将弱边缘像素点与其8邻域内的强边缘像素点进行连接,得到最终的边缘图像。 Canny算子的数学公式如下: 1. 高斯滤波公式: $$G(x,y)*I(x,y)={\frac{1}{2\pi\sigma^2}}e^{-{\frac{x^2+y^2}{2\sigma^2}}}*I(x,y)$$ 其中,$G(x,y)$为高斯滤波器,$I(x,y)$为原始图像,$\sigma$为高斯滤波器的标准差。 2. Sobel算子公式: $$G_x=\begin{bmatrix} -1&0&1\\ -2&0&2\\ -1&0&1 \end{bmatrix}*I$$ $$G_y=\begin{bmatrix} -1&-2&-1\\ 0&0&0\\ 1&2&1 \end{bmatrix}*I$$ 其中,$G_x$和$G_y$分别为x方向和y方向上的Sobel算子,$I$为原始图像。 3. 梯度幅值和方向公式: $$M(x,y)=\sqrt{G_x^2(x,y)+G_y^2(x,y)}$$ $$\theta(x,y)=\arctan{\frac{G_y(x,y)}{G_x(x,y)}}$$ 其中,$M(x,y)$为梯度幅值,$\theta(x,y)$为梯度方向。 4. 非极大值抑制公式: $$N(x,y)=\begin{cases}M(x,y)&\text{if }M(x,y)\geq M(x+\Delta x,y+\Delta y)\text{ and }M(x,y)\geq M(x-\Delta x,y-\Delta y)\\0&\text{otherwise}\end{cases}$$ 其中,$N(x,y)$为非极大值抑制后的梯度幅值,$\Delta x$和$\Delta y$为梯度方向上的变化量。 5. 双阈值处理公式: $$E(x,y)=\begin{cases}255&\text{if }N(x,y)\geq T_H\\0&\text{if }N(x,y)<T_L\\\text{undecided}&\text{otherwise}\end{cases}$$ 其中,$E(x,y)$为最终的边缘图像,$T_H$和$T_L$分别为高阈值和低阈值。 6. 边缘连接公式: 对于强边缘像素点,将其与其8邻域内的弱边缘像素点进行连接,得到最终的边缘图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值