思维导图canny滤波 原理步骤细致剖析
Posted 霏儿fay
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了思维导图canny滤波 原理步骤细致剖析相关的知识,希望对你有一定的参考价值。
canny滤波 原理步骤细致剖析
制作人
霏儿,百度飞桨PPDE开发者技术专家,计算机视觉、虚拟现实、元宇宙,欢迎技术交流
目的
最优边缘检测
含义
最优检测
- 算法能够尽可能多地标识出图像中的实际边缘
最优定位准则
- 标识出的边缘要尽可能与实际图像中的实际边缘尽可能接近
检测点与边缘点一一对应
- 图像中的边缘只能标识一次
步骤
转为灰度图
- 减少计算开销
滤波
-
高斯滤波
-
卷积核满足正态分布
-
核越大,图像越模糊
-
高斯核大小将影响canny滤波器的性能
- 尺寸越大,滤波器对噪声的敏感度会越低
- 尺寸越大也会让边缘检测的定位误差也将略有增加
-
对同像素加权相加,使得最相近的像素有更高重要度
-
-
目的
- 降低噪声
计算梯度大小&方向
-
计算Gx,Gy
- 即水平Gx和垂直Gy方向的一阶导数值
-
计算梯度值
-
计算梯度方向
非极大值抑制(NMS)
-
角度法
-
划分为0,45,90,135度四个角度
-
优点
- 计算简单
-
劣势
- 无插值,8邻域中计算的部分不是计算出来的梯度方向
-
-
插值法
-
优点
- 更精确
-
劣势
- 计算开销大
-
-
目的
- 梯度计算得到的边缘很粗,一条边缘中央一般很亮,两边亮度逐渐降低,可以根据这个特点去掉非局部灰度最高的“假边”
- 寻找像素点局部最大值,将非极大值点所对应的灰度值置为0,这样可以剔除掉一大部分非边缘的点
-
算法思路
- 将当前像素的梯度强度与沿正负梯度方向上的两个像素进行比较。
- 如果当前像素的梯度强度与另外两个像素相比最大,则该像素点保留为边缘点,否则该像素点将被抑制
-
原理
- 确定像素点C的灰度值在其8值邻域内是否为最大
- 图1中蓝色的线条方向为C点的梯度方向,这样就可以确定其局部的最大值肯定分布在这条线上,也即出了C点外,梯度方向的交点dTmp1和dTmp2这两个点的值也可能会是局部最大值。
- 因此,判断C点灰度与这两个点灰度大小即可判断C点是否为其邻域内的局部最大灰度点
- 如果经过判断,C点灰度值小于这两个点中的任一个,那就说明C点不是局部极大值,那么则可以排除C点为边缘
双阈值
-
方法
- 设置两个阀值(threshold),分别为maxVal和minVal
- 当某个像素点值高于threshold_low 时,则可以认为它是边缘,把它的灰度置为1
- 当某个像素点值高于threshold_low 时,则认为它不是边缘,把它的灰度置为0
- 处于threshold_low 和threshold_high 之间的像素点,如果它的八邻域有真边上的点,则认为它也是边缘,并把灰度置为1
-
目的
- 非极大值抑制之后,检测到的边缘线条比较多,我们可以滤掉一些很暗的边缘,并让主要的边缘凸显出来
- 过滤掉由于噪声和颜色变化引起的一些边缘像素
- 用弱梯度值过滤边缘像素,并保留具有高梯度值的边缘像素
以上是关于思维导图canny滤波 原理步骤细致剖析的主要内容,如果未能解决你的问题,请参考以下文章