数字图像处理实验__数学形态学和其应用 下载本文

内容发布更新时间 : 2024/10/20 7:44:11星期一 下面是文章的全部内容请认真阅读。

如有你有帮助,请购买下载,谢谢!

实验五: 图像分割与边缘检测

一.实验目的

1. 理解图像分割的基本概念; 2. 理解图像边缘提取的基本概念; 3. 掌握进行边缘提取的基本方法;

4. 掌握用阈值法进行图像分割的基本方法。 二.实验基本原理 ●图象边缘检测

图像理解是图像处理的一个重要分支,研究为完成某一任务需要从图像中提取哪些有用的信息,以及如何利用这些信息解释图像。边缘检测技术对于处理数字图像非常重要,因为边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。在图像中,边界表明一个特征区域的终结和另一个特征区域的开始,边界所分开区域的内部特征或属性是一致的,而不同的区域内部的特征或属性是不同的,边缘检测正是利用物体和背景在某种图像特性上的差异来实现的,这些差异包括灰度,颜色或者纹理特征。边缘检测实际上就是

检测图像特征发生变化的位置。图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。

由于噪声和模糊的存在,检测到的边界可能会变宽或在某些点处发生间断,因此,边界检测包括两个基本内容:首先抽取出反映灰度变化的边缘点,然后剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线。边缘检测的方法大多数是基于方向导数掩模求卷积的方法。

导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值比较高,因此可将这些导数值作为相应点的边界强度,通过设置门限的方法,提取边界点集。一阶导数与是最简单的导数算子,它们分别求出了灰度在x和y方向上的变化率,而方向α上的灰度变化率可以用相应公式进行计算;对于数字图像,应该采用差分运算代替求导。一幅数字图像的一阶导数是基于各种二维梯度的近似值。图像f(x,y)在位置(x,y)的梯度定义为下列向量:G[f(x,y)]=[]

1页

如有你有帮助,请购买下载,谢谢!

221/2?f?[Gx?Gy] ?f在边缘测中,一般用这个向量的大小,用表示

函数f在某点的方向导数取得最大值的方向是,方向导数的最大值是称为梯度模。利用梯度模算子来检测边缘是一种很好的方法,它不仅具有位移不变性,还具有各向同性。为了运算简便,实际中采用梯度模的近似形式。

?f=

或者 ?f=max(|Gx |,|Gy |)

传统的边缘检测算法通过梯度算子来实现的,在求边缘的梯度时,需要对每个象素位置计算。在实际中常用小区域模板卷积来近似快速计算,简单有效,即梯度算子一般采用滤波算子的形式来完成,因此应用很广泛。模板是N*N的权值方阵,经典的梯度算子模板有:

Sobel模板、Prewitt模板、Roberts模板、Laplacian模板等。具体模板请见书。

拉普拉斯高斯(LoG)算法是一种二阶边缘检测方法。它通过寻找图像灰度值中二阶微分中的过零点(Zero Crossing)来检测边缘点。其原理为,灰度级变形成的边缘经过微风算子形成一个单峰函数,峰值位置对应边缘点;对单峰函数进行微分,则峰值处的微分值为0,峰值两侧符号相反,而原先的极值点对应二阶微分中的过零点,通过检测过零点即可将图像的边缘提取出来。

(a)原图 (b)边缘检测后的图 (c) 阈值处理后的图

●图象分割

图像分割是将图像划分成若干个互不相交的小区域的过程, 小区域是某种意义下具有共同属性的像素的连通集合。如不同目标物体所占的图像区域、前景所占的图像区域等。连通是指集合中任意两个点之间都存在着完全属于该集合的连通路径。

1.双峰法

先给出原图的直方图,再定出阈值(门限)T,一般取两个峰值间的谷值。 2.P参数法

这种方法用于目标所占图像面积已知的情况。设目标在最简单图像f(i , j) 中所占的面积s0与图像面积s之比为P = s0/ s,则背景所占面积比为1-P = (s - s0) / s。一般来说,低灰

2页

如有你有帮助,请购买下载,谢谢!

度值为背景,高灰度值为目标。如果统计图像f(i , j)灰度值不大于某一灰度t的像元数和图像总像元数之比为1-p时,则以t为阈值。

3.自适应全局阈值(单阈值) 算法步骤如下:

初始化阈值T (一般为原图像所有像素平均值)。

用T分割图像成两个集合:G1 和G2,其中G1包含所有灰度值小于T的像素,G2包含所有灰度值大于T的像素。

计算G1中像素的平均值m1及G2中像素的平均值m2。 计算新的阈值:T = (m1+m2)/2 。

如果新阈值跟原阈值之间的差值小于一个预先设定的范围,停止循环,否则继续2-4步。

全局单阈值分割只适用于很少的图像。对一般图像采用局部阈值法或多阈值法会得到更好的效果。 三.实验内容与要求

1) 读出文档中eight.tif 这幅图像,分别用Roberts, Sobel 和拉普拉 斯高斯算子对图像进行边缘检测。

I=imread('eight.tif'); subplot(221),imshow(I); title('原图像'); BW1=edge(I,'roberts') subplot(222),imshow(BW1); title('roberts算法边缘检测图像'); BW2=edge(I,'sobel') subplot(223),imshow(BW2);

3页