||
一:梯度,边缘和角点
物体的边缘以局部特征不连续性出现,也就是图像局部亮度变化最显著的部分,如,灰度,颜色,纹理结构的突变。物体边缘是区分不同区域的分界处。图像边缘特性:方向和幅度。沿边缘走向的像素灰度变化平缓,垂直边缘走向的像素灰度变换剧烈。根据灰度变化特点可以将边缘分为:阶跃型,房顶型,凸缘型,这些变化对应图像中的不同景物。传统的边缘检测利用了边缘是图像灰度变化最剧烈的特点,对图像各个像素点求微分或者二阶微分来确定边缘点。一阶微分图像的峰值处对应着图像的边缘点,二阶微分图像的过零点对应着图像的边缘点。为了克服一阶导数的确定,可以计算 图像的梯度。图像梯度的重要性质是:梯度的方向在图像灰度最大变化率的上,它恰好反映出图像边缘上的灰度变化。
一阶导数可以用于检测图像中的一个点是不是边缘点,同样二阶导数的符号可以用来判断一个边缘像素是在边缘亮的一边还是边缘暗的一边(二阶导数为止,在暗的一边,二阶导数为负,在亮的一边)。
常用的边缘提取梯度算子有;:Robert算子 ,Sobel算子 ,Prewitt算子,Krisch算子,
z1 | z2 | z3 |
z4 | z5 | z6 |
z7 | z8 | z9 |
Gx=( z7+z8+z9)-( z1+z2+z3), Gy=( z3+z6+z9)-( z1+z4+z7), 3*3大小的图像区域的第一行和第三行的差近似于X方向
的倒数,第一列和第三列的差近似于Y方向上的倒数。不同模版算子,只是加入的系数不同。
Sobel算子:模版
-1 | 0 | 1 |
-2 | 0 | 2 |
-1 | 0 | 1 |
-1 | -2 | -1 |
0 | 0 | 0 |
1 | 2 | 1 |
模版的系数总和为零,这正如倒数算子所预示的:此时在灰度级不变的区域,模板响应为零。
Gx=(-1Z1+ Z3-2Z4+2Z6-Z7+Z8), Gy=(-1Z1-2 Z2-Z3+Z7+2Z8+Z9),
梯度的分量?f=|Gx|+|Gy|,保持着与灰度同级的变换,Z5=?f,最后循环判断if(?f>nthrethold)设置0,else设置255
即完成图像边缘检测。
3*3Scharr滤波器系数模版为:可以给出比Sobel滤波器更精确的结果,
-3 | 0 | 3 |
-10 | 0 | 10 |
-3 | 0 | 3 |
opencv库函数 : void cvSobel(const Cvarr * src,Cvarr* dst,int xorder,int yorder,int aperture_size=3);
二.拉普拉斯算子(二阶导数)
opencv库函数: void cvLaplace(const Cvarr* src,Cvarr* dst,int aperture_size=3)
三:Canny算子:采用Canny算子寻找输入图像的边缘并在输出图像中标志这些边缘
opencv库函数: void cvCanny(const Cvarr* image, Cvarr* deges,double threshold1,double threshold2,int aperture_size=3)
image输入图像,edges输出图像边缘,threshold1第一个阈值,threshold2,第二个阈值。两个阈值用来控制边缘连接,大阈值用来控制强边缘的初始分割。Canny算法的核心包括以下步骤:1用高斯滤波平滑,2用一价偏导数的有限差分计算梯度的幅值方向,3对梯度值进行非极大抑制,4,用双阈值检测和连接边缘,5采用高斯平滑函数。
-
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-24 08:08
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社