opencv边缘检测之sobel算子,canny算子

本文介绍了边缘检测的基本概念,重点讲解了Sobel和Canny算子的工作原理和实现方法。Sobel算子通过在X、Y方向上应用卷积来获取图像的边缘信息,而Canny算子则包括高斯模糊、梯度计算、非极大值抑制和双阈值检测等步骤,以精确检测和连接边缘。
摘要由CSDN通过智能技术生成

边缘检测

1.边缘与导数

  • 边缘:图像像素值跳变的地方【图像像素突变的地方】

  • 导数:描述变化率的大小[图像跳变的幅度大小]
  • 求完导数的图可以直接作为边缘提取的图, 跳变大小为0->黑色 跳变大小为>0 -->接近白色

2.边缘检测的两种常用方法

2.1 sobel 算子

  • 原理:利用sobel算子分别在X方向,Y方向进行卷积得到Y方向上的边缘与X方向的边缘

2.1.1 sobel算子计算导数

  • 1. 获取X,Y方向的sobel算子,与原图的邻域像素进行卷积得到Gx[x方向的梯度],Gy[y方向的梯度]

以3*3的sobel算子为例

$$G_X = \begin{bmatrix} -1&0&+1\\ -2&0&+2\\ -1&0&+1\end{bmatrix}$$

$$G_Y = \begin{bmatrix} -1&-2&-1\\ 0&0&0\\ +1&+2&+1\end{bmatrix}$$

 

 

 

                        **[X方向的sobel算子]**

从原图我们能轻易知道边缘为50px->100px的地方,动图向我们展示了使用x方向的sobel算子计算边缘上某个位置的导数【计算的元素为图中紫色框】

sobel算子的得出公式:平滑算子与差分算子的每个算子相乘

[例子:3*3sobel算子]

【左:平滑算子 右:差分算子】

$$Sobel_X =\begin{bmatrix}1\\ 2\\ 1\end{bmatrix}*\begin{bmatrix}1&0&-1\end{bmatrix}=\begin{bmatrix}1&0&-1\\ 2&0&-2\\ 1&0&-1\end{bmatrix}$$

$$Sobel_Y =\begin{bmatrix}1&2&1\end{bmatrix}*\begin{bmatrix}1\\0\\-1\end{bmatrix}=\begin{bmatrix}1&2&1\\ 0&0&0\\ -1&-2&-1\end{bmatrix}$$

设窗口大小为w*w

平滑算子 计算公式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值