图像边缘检测初步 | 您所在的位置:网站首页 › 对一幅图像做边缘检测代码 › 图像边缘检测初步 |
基本边缘检测算子
边缘检测算子与前面提到的平滑算子有一个区别是平滑算子的所有系数求和结果为1,这是因为要保证一个常值信号进来进行滤波后其结果仍是常值信号,而边缘检测算子的所有系数求和结果一定为0,因为如果是一个常值信号则他是没有边缘的。且边缘检测算子分为x方向和y方向。 边缘检测的本质是进行微分,在实际中常用差分。 - Sobel算子卷积核 上面提到的几种简单算子存在以下问题: 会放大图像中的噪声,因为原图中噪声与正常值的符号通常是相反的,而在进行微分或差分的过程中并不能消掉这种符号相反的值反而会加大(如1-(-1) =2而非0)。故在以上方法中会放大图像的噪声。边缘的断裂,实际应用中由于光线的影响会导致边缘的断裂。边缘的虚检,即原图中非边缘的部分检测(渐变灰度的部分)为边缘。而Canny算子可以有效的改善以上几种情况,并可以自动连通一定程度内的断裂的边缘。其算法步骤如下: 平滑图像同时计算微分计算梯度(幅值和方向)梯度幅值进行非极大值抑制自动边缘连接具体说明如下: 1.同时平滑与微分: 2.得到梯度幅值和方向 由上面的结果可以进一步求出梯度幅值和方向,如下所示: 3.梯度幅值的非极大值抑制 这一步首先要做的是细化梯度幅值图像中的屋脊带,只保留幅值局部变化最大的点。这句话的意思其实就是只保留局部的极大值点。第二步是使用一个3x3领域作用于幅值阵列的所有点。在每一点上,邻域的中心像素与沿梯度方向的两个幅度幅值的插值结果进行比较,仅保留极大值点。 4.边缘连接 对上一步得到的图像使用低、高阈值τ 1,τ 2进行阈值化,得到三幅图像: |
CopyRight 2018-2019 实验室设备网 版权所有 |