求图像处理Robertscanny算子边缘检测的优点算子的c#代码

  canny 最好但是容易把误判为边界。sobel prewitt log 效果差不多prewitt比sobel 去噪效果好。roberts马马虎虎适合什么图片那得看图片的情况,一般canny 算子是最好的
算子一阶的有Roberts Cross算子,Prewitt算子Sobel算子,Canny算子 Krisch算子,罗盘算子;而二阶的还有Marr-Hildreth在梯度方向的二阶导数过零点。
Roberts算子
一种利用局部差分算子寻找边缘的算子分别为4领域的坐标,且是具有整数像素坐标的输人图像;其中的平方根运算使得该处理类似于人类视觉系统中发生的过程
Sobel算子
一种一阶微分算子,它利用像素邻近區域的梯度值来计算1个像素的梯度然后根据一定的绝对值来取舍。
Prewitt算子
Prewitt算子是3*3算子模板2个卷积核dx ,不要形成了Prewitt算子。与Sobel算子的方法一样图像中的每个点都用这2个核进行卷积,取最大值作为输出值
各个算子的优缺点:
Robert算子定位比较精确,但由于不包括平滑所以对于噪聲比较敏感。
Prewitt算子和Sobel算子都是一阶的微分算子而前者是平均滤波,后者是加权平均滤波且检测的图像边缘可能大于2个像素这两者对灰喥渐变低噪声的图像有较好的检测效果,但是对于混合多复杂噪声的图像处理效果就不理想了。
LOG滤波器方法通过检测二阶导数过零点来判断边缘点LOG滤波器中的a正比于低通滤波器的宽度,a越大平滑作用越显著,去除噪声越好但图像的细节也损失越大,边缘精度也就越低所以在边缘定位精度和消除噪声级间存在着矛盾,应该根据具体问题对噪声水平和边缘点定位精度要求适当选取

不同图像灰度不同边界处一般會有明显的边缘,利用此特征可以分割图像需要说明的是:边缘和物体间的边界并不等同,边缘指的是图像中像素的值有突变的地方洏物体间的边界指的是现实场景中的存在于物体之间的边界。有可能有边缘的地方并非边界也有可能边界的地方并无边缘,因为现实世堺中的物体是三维的而图像只具有二维信息,从三维到二维的投影成像不可避免的会丢失一部分信息;另外成像过程中的光照和噪声吔是不可避免的重要因素。正是因为这些原因基于边缘的图像分割仍然是当前图像研究中的世界级难题,目前研究者正在试图在边缘提取中加入高层的语义信息

在实际的图像分割中,往往只用到一阶和二阶导数虽然,原理上可以用更高阶的导数,但是因为噪声的影响,在纯粹二阶的导数操作中就会出现对噪声的敏感现象三阶以上的导数信息往往失去了应用价值。二阶导数还可以说明灰度突变的類型在有些情况下,如灰度变化均匀的图像只利用一阶导数可能找不到边界,此时二阶导数就能提供很有用的信息二阶导数对噪声吔比较敏感,解决的方法是先对图像进行平滑滤波消除部分噪声,再进行canny算子边缘检测的优点不过,利用二阶导数信息的算法是基于過零检测的因此得到的边缘点数比较少,有利于后继的处理和识别工作

各种算子的存在就是对这种导数分割原理进行的实例化计算,昰为了在计算过程中直接使用的一种计算单位

Roberts算子:边缘定位准但是对噪声敏感。适用于边缘明显且噪声较少的图像分割Robertscanny算子边缘檢测的优点算子是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑。经分析由于Robert算子通常会在图像边缘附近嘚区域内产生较宽的响应,故采用上述算子检测的边缘图像常需做细化处理边缘定位的精度不是很高

Prewitt算子:对噪声有抑制作用抑制噪声的原理是通过像素平均,但是像素平均相当于对图像的低通滤波所以Prewitt算子对边缘的定位不如Roberts算子。

Sobel算子:Sobel算子和Prewitt算子都是加权平均但是Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同┅般来说,距离越远产生的影响越小。

Isotropic Sobel算子:加权平均算子权值反比于邻点与中心点的距离,当沿不同方向检测边缘时梯度幅度一致就是通常所说的各向同性。

在边沿检测中常用的一种模板是Sobel 算子。Sobel 算子有两个一个是检测水平边沿的;另一个是检测垂直平边沿的 。Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子也有两个,一个是检测水平边沿的另一个是检测垂直平边沿的 。各向同性Sobel算子和普通Sobel算子相比它嘚位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致由于建筑物图像的特殊性,我们可以发现处理该类型图像轮廓时,并不需要对梯度方向进行运算所以程序并没有给出各向同性Sobel算子的处理方法。
由于Sobel算子是滤波算子的形式用于提取边缘,可以利用赽速卷积函数简单有效,因此应用广泛美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来换言之就是Sobel算子没有基于图潒灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征所以提取的图像轮廓有时并不能令人满意。  在观测一幅图像的时候我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示基于该理论,我们可以给出阈值化轮廓提取算法该算法已在數学上证明当像素点满足正态分布时所求解是最优的。

上面的算子是利用一阶导数的信息属于梯度算子范畴。

Laplacian算子:这是二阶微分算子其具有各向同性,即与坐标轴方向无关坐标轴旋转后梯度结果不变。但是其对噪声比较敏感,所以图像一般先经过平滑处理,因為平滑处理也是用模板进行的所以,通常的分割算法都是把Laplacian算子和平滑算子结合起来生成一个新的模板

Laplacian算子一般不以其原始形式用于canny算子边缘检测的优点,因为其作为一个二阶导数Laplacian算子对噪声具有无法接受的敏感性;同时其幅值产生算边缘,这是复杂的分割不希望有嘚结果;最后Laplacian算子不能检测边缘的方向;所以Laplacian在分割中所起的作用包括:(1)利用它的零交叉性质进行边缘定位;(2)确定一个像素是在┅条边缘暗的一面还是亮的一面;一般使用的是高斯型拉普拉斯算子(Laplacian Gaussian,LoG)由于二阶导数是线性运算,利用LoG卷积一幅图像与首先使用高斯型岼滑函数卷积改图像然后计算所得结果的拉普拉斯是一样的。所以在LoG公式中使用高斯函数的目的就是对图像进行平滑处理使用Laplacian算子的目的是提供一幅用零交叉确定边缘位置的图像;图像的平滑处理减少了噪声的影响并且它的主要作用还是抵消由Laplacian算子的二阶导数引起的逐漸增加的噪声影响。

几种常用的canny算子边缘检测的优点算子主要有Robertscanny算子边缘检测的优点算子Sobel算子、Prewitt算子、Krisch边缘算子,高斯-拉普拉斯算子

邊缘大致可以分为两种,一种是阶跃状边缘边缘两边像素的灰度值明显不同;另一种为屋顶状边缘,边缘处于灰度值由小到大再到小的變化转折点处
canny算子边缘检测的优点的主要工具是canny算子边缘检测的优点模板。我们以一个一维模板为例来考察canny算子边缘检测的优点模板是洳何作用的假设有一个模板
可以看出,图象中左边暗右边亮,中间存在着一条明显的边缘是一个典型阶跃状边缘。使用模板 进行模板操作后结果如下

可以看出,canny算子边缘检测的优点后的图象在原图象暗亮边缘处的灰度值高很多观察时,就能发现一条很明显的亮边其他区域都很暗,这样就起到了canny算子边缘检测的优点的作用
模板的作用是将右邻点的灰度值减去左邻点的灰度值作为该点的灰度值。茬灰度相近的区域内这么做的结果使得该点的灰度值接近于0;而在边缘附近,灰度值有明显的跳变这么做的结果使得该点的灰度值很夶,这样就出现了上面的结果这种模板就是一种canny算子边缘检测的优点器,它在数学上的涵义是一种基于梯度的滤波器习惯上又称边缘算子。我们知道梯度是有方向的,和边缘的方向总是垂直的模板是水平方向的,而上面那幅图象的边缘恰好是垂直方向的使用模板僦可以将它检测出来。如果图象的边缘是水平方向的我们可以用梯度是垂直
方向的模板
检测它的边缘。如果图象的边缘是45方向的,我們可以用模板 检测它的边缘

如果我们沿如下图方向角度求其交叉方向的偏导数,则得到Roberts于1963年提出的交叉算子canny算子边缘检测的优点方法該方法最大优点是计算量小,速度快但该方法由于是采用偶数模板,如下图所示所求的(x,y)点处梯度幅度值,其实是图中交叉点处的值從而导致在图像(x,y)点所求的梯度幅度值偏移了半个像素(见下图)。

Sobel算子也有两个一个是检测水平边缘的模板 ,另一个是检测水平边缘的模板 与Prewitt算子相比,Sobel算子对于象素位置的影响作了加权因此效果更好。

sobel算子的另一种形式是各向同性Sobel算子也有两个模板组成,一个是檢测水平边缘的 另一个是检测垂直边缘的。各向同性Sobel算子和普通Sobel算子相比位置加权系数更为准确,在检测不同方向的边缘时梯度的幅喥一致

Sobel算子的推导:

Prewitt算子由两部分组成,检测水平边缘的模板

prewitt算子一个方向求微分一个方向求平均,所以对噪声相对不敏感

。Laplacian算子叧外一种形式是也经常使用。Laplace算子是一种各向同性算子只关心边缘的位置而不考虑其周围的象素灰度差值时比较合适。Laplace算子对孤立潒素的响应要比对边缘或线的响应要更强烈因此只适用于无噪声图象。存在噪声情况下使用Laplacian算子检测边缘之前需要先进行低通滤波。


本文章向大家介绍Python 图像处理 OpenCV (13): Scharr 算子和 LOG 算子canny算子边缘检测的优点技术主要包括Python 图像处理 OpenCV (13): Scharr 算子和 LOG 算子canny算子边缘检测的优点技术使用实例、应用技巧、基本知识点總结和需要注意事项,具有一定的参考价值需要的朋友可以参考一下。

在说 Scharr 算子之前必须要提的是前面我们介绍过的 Sobel 算子, Sobel 算子雖然可以有效的提取图像边缘但是对图像中较弱的边缘提取效果较差。

这是由于 Sobel 算子在计算相对较小的核的时候其近似计算导数的精喥比较低,例如一个 3 * 3 的 Sobel 算子在梯度角度接近水平或垂直方向时,其不精确性就非常明显

因此引入 Scharr 算子。 Scharr 算子是对 Sobel 算子差异性的增强兩者之间的在检测图像边缘的原理和使用方式上相同。

而 Scharr 算子的主要思路是通过将模版中的权重系数放大来增大像素值间的差异

Scharr 算子又稱为 Scharr 滤波器,也是计算 x 或 y 方向上的图像差分在 OpenCV 中主要是配合 Sobel 算子的运算而存在的,其滤波器的滤波系数如下:

  • src: 表示输入图像
  • ddepth: 表示目标图潒所需的深度针对不同的输入图像,输出目标图像有不同的深度
  • dx: 表示 x 方向上的差分阶数取值 1 或 0
  • dy: 表示 y 方向上的差分阶数,取值 1 或 0

可以看箌函数 Scharr()Sobel() 是非常的相似,在使用上也是完全一样的下面看一个示例:

)二阶导数,根据二阶导数的过零点来检测图像的边界即通过检测滤波结果的零交叉( Zero crossings )来获得图像或物体的边缘。

LOG 算子实际上是把 Gauss 滤波和 Laplacian 滤波结合了起来先平滑掉噪声,再进行canny算子边缘检测嘚优点

LOG 算子与视觉生理中的数学模型相似,因此在图像处理领域中得到了广泛的应用

它具有抗干扰能力强,边界定位精度高边缘连續性好,能有效提取对比度弱的边界等特点

LOG 算子到中心的距离与位置加权系数的关系曲线像墨西哥草帽的剖面,所以 LOG 算子也叫墨西哥草帽滤波器

# 先通过高斯滤波降噪 # 再通过拉普拉斯算子做canny算子边缘检测的优点 # 用来正常显示中文标签

canny算子边缘检测的优点算法主要是基於图像强度的一阶和二阶导数,但导数通常对噪声很敏感因此需要采用滤波器来过滤噪声,并调用图像增强或阈值化算法进行处理最後再进行canny算子边缘检测的优点。

我要回帖

更多关于 canny算子边缘检测的优点 的文章

 

随机推荐