边缘检测常用算子
来源:互联网 发布:最优化 推荐 编辑:程序博客网 时间:2024/04/28 21:07
边缘检测常用算子:
基于一阶微分的边缘检测方法:
Roberts 算子考虑图像的2*2邻域,是最简单的边缘检测算子,算法过程简述:
【1】,遍历图像(除去上边缘和左边缘),对每个像素做Roberts模板运算。
【2】,将结果保存到目标图像,结束。
Sobel算子考察的是3*3邻域,由两个卷积核组成,见上图,算法过程简述:
【1】,遍历图像(除去边缘,防止越界),对每个像素做Sobel模板卷积运算。
【2】,比较两个计算结果的大小,取较大者复制到目标图像,结束。
Prewitt算子和Sobel算子类似,所不同的是选用不同的模板而已,算法过程相同。
Krisch算子同样考究3*3邻域,所不同的是选用了八个卷积核,见上图,算法过程简述:
【1】,遍历图像(除去边缘,防止越界),对每个像素做Krisch模板卷积运算。
【2】,比较八个计算结果的大小,取较大者复制到目标图像,结束。
基于二阶微分的边缘检测方法:
Laplacian 算子是二阶导数边缘算子,考察的是3*3邻域,上图是两种比较常用的模板,算法简述如下:
【1】,遍历图像(除去边缘,防止越界),对每个像素做Laplancian模板卷积运算,注意是只做其中的一种模板运算,并不是两个。
【2】,复制到目标图像,结束。
Gauss-Laplacian考察的是5*5的邻域,检测的同时,引入了滤波,是噪声得以平滑,上图是一种常用的算子,算法简述。
【1】,遍历图像(除去边缘,防止越界),对每个像素做Gauss -Laplancian模板卷积运算。
【2】,复制到目标图像,结束。
Canny边缘检测是非常重要的一种边缘检测算法,主要过程如下:
【1】,用高斯滤波器平滑图像。
已经学习过,根据高斯函数,构造高斯模板,进行滤波,不在赘述。
【2】,用一阶偏导的有限差分来计算梯度的幅值和方向;
计算梯度作用模板,遍历像素,进行模板运算即可。
幅值和方向:
其中,Phi 表示是幅值,Theta 是方向,用图像副本进行保存。
【3】,对梯度幅值进行非极大值抑制;
为确定边缘,必须保留局部梯度最大的点,而抑制非极大值(NMS)。
解决办法是,利用梯度的方向:
已经求出Theta 的值,梯度的方向用于非极大值的抑制,将梯度角离散化到0,1,2,3中的一个(通过线性映射),采用近似的算法。知道了梯度角,也就知道了梯度线方向。
邻域的中心像素M与沿着梯度线的两个像素相比。如果M的梯度值不比沿梯度线的两个相邻像素梯度值大,则令M=0。
【4】,用双阈值算法检测和连接边缘。
减少假边缘段数量的典型方法是对N[i,j]使用一个阈值。将低于阈值的所有值赋零值。但问题是如何选取阈值?
解决方法:
双阈值算法。双阈值算法对非极大值抑制图象作用两个阈值τ1和τ2,且2τ1≈τ2,从而可以得到两个阈值边缘图象N1[i,j]和N2[i,j]。由于N2[i,j]使用高阈值得到,因而含有很少的假边缘,但有间断(不闭合)。双阈值法要在N2[i,j]中把边缘连接成轮廓,当到达轮廓的端点时,该算法就在N1[i,j]的8邻点位置寻找可以连接到轮廓上的边缘,这样,算法不断地在N1[i,j]中收集边缘,直到将N2[i,j]连接起来为止。
- 边缘检测常用算子
- 边缘检测常用算子
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子总结
- 常用边缘检测算子及其特性
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子总结
- 图像处理常用边缘检测算子总结
- Robert 边缘检测算子
- 边缘检测算子比较
- canny边缘检测算子
- 边缘检测算子
- Ifconfig 配置
- 从一个笑话看软件开发管理
- ext中关于替换布局中的panel
- 编程十境界
- 如何打击竞争对手~
- 边缘检测常用算子
- PHP实现首页自动选择语言转跳
- Include,require,include_once,require_once的区别
- CloudSim源码分析之虚拟机分配
- Zend_Session及Zend_Session_Namespace
- .NET上传缩略图加文字和水印图片,下载远程图片
- STC11/10xx系列单片机独立波特率发生器设置
- PHP页面跳转几种实现技巧
- n*log n复杂度的差分方程推导