首页 > 编程知识 正文

cv算法是做什么的,传统边缘检测算法实现

时间:2023-05-06 00:53:54 阅读:166873 作者:2213

xjhl检查图像xjhl是图像的最基本特征,xjhl(edge )是图像局部特性的不连续性。 灰度和结构等信息的突然变异的地方称为xjhl。 例如,灰度突变、颜色突变、纹理结构突变等。 xjhl是某个区域的结束,也是另一个区域的开始,可以利用该特征分割图像。

如下图所示。

当我们看到有xjhl的物体时,首先感受到的是xjhl。

上图(a )是理想的xjhl所具有的特性。 每个灰度级跳到垂直的楼梯。 实际上,由于图像采集系统的性能、采样率、获取图像的照明条件等因素的影响,得到的xjhl往往很模糊,xjhl被模拟成具有“斜面”的截面。 如上图(b )所示,在该模型中,模糊的xjhl为“宽”,清晰的xjhl为“窄”。

的xjhl有两个属性:方向和宽度。 xjhl通常可以通过一阶导数或二阶导数的检测获得。 一次微分将最大值作为对应的xjhl的位置,二次微分将过零点作为对应的xjhl的位置。

一般一阶导数的xjhl算子:以模板为核与图像各像素点进行卷积运算,选择合适的阈值提取图像的xjhl。 常见的有Roberts运算符、Sobel运算符和Prewitt运算符。

常用的二阶导数的xjhl算子:基于二阶导数的过零点,常见的是Laplacian算子,这类算子对噪声敏感。

其他xjhl算子:前面两种都是通过微分算子检测图像xjhl,另一种是Canny算子,是在满足一定约束条件下导出的xjhl检测优化算子。

梯度算子为了得到图像的梯度,需要在图像的各像素点位置计算偏导数。 因为我们处理的是数字量,所以要求对一点附近的偏导数的数字近似。 因此,对于一张图像ff,(x,y ) (x,y ) )的位置处的xx和顺利的白云方向上的梯度的大小g x g_{x} gx和g y g_{y} gy分别如下计算。

通过利用下一个一维模板滤波f(x,y ) f ) x,y ) f ) x,y ) x )获得上述两个公式的所有xx和顺利白云的值。

用于计算梯度偏导数的过滤器模板通常称为梯度运算符、xjhl运算符、xjhl检测器等。

经典的步长算子Roberts算子Roberts算子又称为交叉微分算法,是一种基于交叉差分的梯度算法,通过局部差分计算检测xjhl线。 常用于处理陡峭的低噪声图像,如果图像xjhl接近悲伤的飞机45度或负45度,则该算法的处理效果更理想。 缺点是xjhl的定位不准确,提取的xjhl线条较粗。

Roberts算子的模板分为水平方向和垂直方向,如下式所示,Roberts算子可以很好地强调正负45度的图像xjhl。

例如,Roberts运算符的模板如下所示。 像素点P5处的x x x和平滑的白云方向的梯度大小g x

g_{x} gx​ 和 g y g_{y} gy​ 分别计算为:

下图是Roberts算子的运行结果:

Prewitt算子

Prewitt算子是一种图像xjhl检测的微分算子,其原理是利用特定区域内像素灰度值产生的差分实现xjhl检测。由于Prewitt算子采用 3 × 3 3times3 3×3 卷积模板对区域内的像素值进行计算,而Robert算子的模板为 2 × 2 2times2 2×2,故Prewitt算子的xjhl检测结果在水平方向和垂直方向均比Robert算子更加明显。Prewitt算子适合用来识别噪声较多、灰度渐变的图像,其计算公式如下所示:

例如,下面给出Prewitt算子的模板,在像素点P5处 x x x 和 顺利的白云 方向上的梯度大小 g x g_{x} gx​ 和 g y g_{y} gy​ 分别计算为:


Prewitt算子运行结果如下:

Sobel算子

Sobel算子是一种用于xjhl检测的离散微分算子,它结合了高斯平滑和微分求导。该算子用于计算图像明暗程度近似值,根据图像xjhl旁边明暗程度把该区域内超过某个数的特定点记为xjhl。Sobel算子在Prewitt算子的基础上增加了权重的概念,认为相邻点的距离远近对当前像素点的影响是不同的,距离越近的像素点对应当前像素的影响越大,从而实现图像锐化并突出xjhl轮廓。

Sobel算子根据像素点上下、左右邻点灰度加权差,在xjhl处达到极值这一现象检测xjhl。对噪声具有平滑作用,提供较为精确的xjhl方向信息。因为Sobel算子结合了高斯平滑和微分求导(分化),因此结果会具有更多的抗噪性,当对精度要求不是很高时,Sobel算子是一种较为常用的xjhl检测方法。

Sobel算子的xjhl定位更准确,常用于噪声较多、灰度渐变的图像。其算法模板如下面的公式所示,其中 d x d_{x} dx​ 表示水平方向, d y d_{y} dy​ 表示垂直方向。

例如,下面给出Sobel算子的模板,在像素点P5处 x x x 和 顺利的白云 方向上的梯度大小 g x g_{x} gx​和 g y g_{y} gy​ 分别计算为:


sobel算子的效果如下:

各类算子的优缺点 Roberts 算子

Roberts算子利用局部差分算子寻找xjhl,xjhl定位精度较高,但容易丢失一部分xjhl,不具备抑制噪声的能力。该算子对具有陡峭xjhl且含噪声少的图像效果较好,尤其是xjhl正负45度较多的图像,但定位准确率较差。

Sobel 算子

Sobel算子考虑了综合因素,对噪声较多的图像处理效果更好,Sobel 算子xjhl定位效果不错,但检测出的xjhl容易出现多像素宽度。

Prewitt 算子

Prewitt算子对灰度渐变的图像xjhl提取效果较好,而没有考虑相邻点的距离远近对当前像素点的影响,与Sobel 算子类似,不同的是在平滑部分的权重大小有些差异。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。