图像的边缘检测是以灰度突变为基础分割一幅图像,它基于灰度值基本特性之一—— 不连续性[4]。图像的边缘检测是空间域图像分割的一种方法,它包含于图像分割。在图像 分析和人的视觉系统中,图像的边缘信息十分重要,图像识别、提取图像特征都需要以图 像边缘检测为基础。边缘检测技术在数字图像检测和识别中占据着极其重要的位置,它的 中心思想是利用边缘增强算子,将图像中的局部边缘突出,然后定义像素的边缘强度,通 过设置阈值的方法提取边缘点集,但是由于噪声和模糊的影响,检测到的边界可能会在某 点处发生断裂或者边界变宽。
2。2 边缘检测步骤
边缘检测就是通过使用某种算法来提取出图像中对象与背景间交界的轮廓线。边缘的 定义为其周围像素灰度急剧变化的那些像素的集合,也就是图像中灰度急剧变化的区域边 界。图像灰度分布的梯度来能够反映图像灰度的变化情况,所以可以用局部图像微分技术 来获得边缘检测算子。
边缘检测算法有如下四个步骤:滤波、增强、检测、定位。
(1)滤波:边缘检测算法主要是根据图像强度的一阶和二阶导数,图像的噪声对导 数的计算影响较大,因此为了获得较为精确的边缘,必须在检测前使用滤波器来平滑图像。 不过使用滤波器可能会导致部分图像边缘丢失或者不连续,因此,在降低噪声和增强边缘 之间需要寻找一个平衡点。
(2)增强:图像的边缘增强一般是通过计算梯度幅值来完成的,将邻域中灰度有显 著变化的点突出显示。
(3)检测:在图像中,有些点的梯度幅值虽然比较大,但是这些点并不是边缘,因 此应该用一种方法来确定哪些点是边缘点。梯度幅值阈值判据是最简单的边缘检测判据。
(4)定位:精准的确定边缘的位置。如果某一应用场合要求确定边缘位置,那么边 缘的位置可在子像素分辨率上来估计,边缘的方位也可以被估计出来。
在以上所说的四个步骤中,前三个步骤用得比较普遍。这是因为很多场合下,有时候 不需要指出边缘的精确位置或方向,而仅仅需要的是能够指出边缘出现在图像某一个像素 点的附近。有的情况下,图像检测时有时会把假边缘判别成边缘而保留,真边缘却被判别 成假边缘被去除了,这个便是边缘检测误差。
2。3 Matlab 简介
Matlab是目前国际上最流行、应用最广泛的科学与工程计算机软件,深受广大研究工 作者的欢迎,它有两种基本的数据运算量:数组和矩阵。如果只从形式上看,它们之间是 不好区分的,每个量既可以被当做数组,也可以被当做矩阵,这主要依据所采用的运算法 则或运算函数来定。Matlab主要有以下特色[5]:文献综述
1、语言简洁、编程效率高
2、交互性好、使用方便
3、强大的绘图能力、数据可视化
4、学科众多、领域广泛的工具箱
5、开放性好、易于扩充
6、与C语言和Fortran语言有良好的接口
Matlab中的图像是由一个或多个矩阵表示的,因此Matlab的许多矩阵运算功能均可以 用于图像的运算和操作。Matlab的图像处理工具箱支持4种基本图像类型:索引图像、灰 度图像、二进制图像和真色彩图像。Matlab有两种工作方式,一是交互式命令行操作方式, 输入一条命令立即就可以看到该命令的执行结果,缺点是不能删除或修改;二是M文件编 程工作方式。
2。3。1 图像的读入
图像本身是一种二维函数,图像的亮度是其位置的函数。Matlab中的图像都是由一个 或者多个矩阵表示的。从图像文件中读入图像数据用函数imread,它可以将多种格式的图 像读到内存,再返回一个和原图像素相同的矩阵,然后可以通过imshow函数将返回的图像 显示出来。常用格式如下: