图像细节进行增强;
图像的边缘检测处理可以简单理解为提取图像中区域的轮廓。图像中区域的划分以像素灰度为依据,每个区域中的像素灰度大致相同,而区域之间的边界就称为边缘,寻找这些边缘就是图像检测的目的。
简单来讲:Sobel边缘检测就是对原来图像进行描边操作。
梯度法、Roberts梯度法、Sobel算法和Laplacian算法。
1.边缘
直观上,边缘是一组相连像素的集合,它们位于两个区域的之间。而从根本上讲,边缘是基于某种算法得到的具有特定特征的点的集合。
边缘的定义以像素灰度的跃变为基础。
邻域像素编码
灰度差分
由于边缘检测中的灰度微分通常利用邻域差分得到。
综合灰度差分
在彩色图像处理中,同时对RGB分量进行综合灰度运算。
常规边缘检测
1.常规边缘检测原理
边缘检测的算法通常对邻域内像素灰度求一阶导数、二阶导数以及梯度来实现,这些计算经过化简的结果称为算子。
边缘检测的过程可以分解为对图像中每个像素分别计算判断的过程。
边缘检测的结果通常用灰度图来表示,原图像中边缘部分用灰度较高的像素显示,而没有边缘的部分在灰度图中显示为黑色。
灰度图像中像素灰度可以直接通过算子计算原图像中对应像素的灰度差分得到。
可以使用比例系数scale对差分结果进行缩放,从而得到清晰的边缘图像。
梯度算子和Roberts算子
都是2*2邻域处理。
梯度算子通过对邻域内像素灰度求水平和垂直方向差分得到,Roberts算子则是求对角线像素灰度的差分,因此Roberts算子也叫做交叉差分算子。
Sobel算子
针对图像3*3邻域的处理,原理是先后在水平和垂直方向上对邻域灰度求差分,然后取两个差分的平均值或其中较大值,通常我们使用两个差分的较大者。
较大值:
S(C)=max{|(N0+N1*2+N2)-(N4+N5*2+N6)|, |(N0+N7*2+N6)-(N2+N3*2+N4)|}
平均值:
S(C)=[ |(N0+N1*2+N2)-(N4+N5*2+N6)|, |(N0+N7*2+N6)-(N2+N3*2+N4) |]/2;
带方向的边缘检测
带方向 的边缘检测同样需要对邻域内像素灰度求差分,与常规边缘检测不同的是,带方向的边缘检测不仅要考虑邻域像素的灰度跃变,还要考虑跃变的方向。常见带方向的边缘检测模板有3种:分别是Prewitt、Robinson、Kirsch。
边缘模板中邻域内各处权值相加的结果是0,也就是说,当邻域内各像素的灰度相同时,算子的运算结果是0,而邻域内各像素灰度差别越大,算子的运算结果差别也就越大。
在转化时,考虑到效率和内存,尽量不要为像素开辟新存储空间。