数字图像处理-第七章2014
- 格式:ppt
- 大小:7.13 MB
- 文档页数:96
第7章边沿检测与提取,轮廓跟踪我们在第三章介绍平滑与锐化时引入了模板操作,今天还要用到它。
7.1 边沿检测我们给出一个模板和一幅图象。
不难发现原图中左边暗,右边亮,中间存在着一条明显的边界。
进行模板操作后的结果如下:。
可以看出,第3、4列比其他列的灰度值高很多,人眼观察时,就能发现一条很明显的亮边,其它区域都很暗,这样就起到了边沿检测的作用。
为什么会这样呢?仔细看看那个模板就明白了,它的意思是将右邻点的灰度值减左邻点的灰度值作为该点的灰度值。
在灰度相近的区域内,这么做的结果使得该点的灰度值接近于0;而在边界附近,灰度值有明显的跳变,这么做的结果使得该点的灰度值很大,这样就出现了上面的结果。
这种模板就是一种边沿检测器,它在数学上的涵义是一种基于梯度的滤波器,又称边沿算子,你没有必要知道梯度的确切涵义,只要有这个概念就可以了。
梯度是有方向的,和边沿的方向总是正交(垂直)的,例如,对于上面那幅图象的转置图象,边是水平方向的,我们可以用梯度是垂直方向的模板检测它的边沿。
例如,一个梯度为45度方向模板,可以检测出135度方向的边沿。
1.Sobel算子在边沿检测中,常用的一种模板是Sobel 算子。
Sobel 算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。
与和相比,Sobel算子对于象素的位置的影响做了加权,因此效果更好。
Sobel算子另一种形式是各向同性Sobel(Isotropic Sobel)算子,也有两个,一个是检测水平边沿的,另一个是检测垂直平边沿的。
各向同性Sobel算子和普通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。
下面的几幅图中,图7.1为原图;图7.2为普通Sobel算子处理后的结果图;图7.3为各向同性Sobel算子处理后的结果图。
可以看出Sobel算子确实把图象中的边沿提取了出来。
图7.1 原图图7.2 普通Sobel算子处理后的结果图图7.3 各向同性Sobel算子处理后的结果图在程序中仍然要用到第3章介绍的通用3×3模板操作函数TemplateOperation,所做的操作只是增加几个常量标识及其对应的模板数组,这里就不再给出了。