基于MATLAB的图像锐化及边界提取_第1页
基于MATLAB的图像锐化及边界提取_第2页
基于MATLAB的图像锐化及边界提取_第3页
基于MATLAB的图像锐化及边界提取_第4页
基于MATLAB的图像锐化及边界提取_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MATLAB的图像锐化及边界提取实现PAGE摘要图像增强是指依据图像所存在的问题,按特定的需要突出一幅图像中的某些信息,同时,削弱或去除某些冗余信息的处理方法。其主要目的是使得处理后的图像对给定的应用比原来的图像更加有效同时可以有效的改善图像质量。图像增强技术主要包含直方图修改处理、图像平滑化处理、图像尖锐化处理和彩色处理技术等。本文先对图像增强的原理进行概述,然后对图像增强的方法分类并给出直方图增强、平滑和锐化等几种常用的增强方法、彩色图像增强的理论基础,通过MATLAB实验得出的实际处理效果来对比各种算法的优缺点,讨论不同的增强算法的技术要点,并对其图像增强方法进行性能评价。关键词

MATLAB

;图像锐化

;边界提取

AbstractImageenhancementisbasedontheproblemsexistingintheimages,accordingtothespecificneedtohighlightsomeoftheinformationinanimage,atthesametime,toweakenorremovesomeredundantinformationprocessingmethod.Itsmainpurposeistomaketheimageafterprocessingforagivenapplicationismoreeffectivethantheoriginalimageatthesametimecaneffectivelyimprovetheimagequality.Imageenhancementtechnologymainlyincludeshistogrammodification,imagesmoothingprocessing,imageintensificationprocessingandcolorprocessingtechnology,etc.Thisarticlefirstoverviewoftheprincipleofimageenhancementandimageenhancementmethodofclassificationandhistogramenhancement,smoothingandsharpeningofseveralcommonenhancementmethod,thetheoreticalbasisofcolorimageenhancement,throughpracticalprocessingeffectofMATLABexperimentcomparedtheadvantagesanddisadvantagesofvariousalgorithms,discussedthemaintechnicalpointsofthedifferentenhancementalgorithm,anditsimageenhancementmethodforperformanceevaluation.KeywordsMATLAB;imagesharpening;

edgeextraction· 目录摘要 1Abstract 2第一章绪论 41.1图像锐化及边界提起发展背景和意义 41.2

图像锐化处理的现状和研究方法 41.3MATLAB简介 51.4

MATLAB对图像处理的特点 5第二章

基于MATLAB的图像锐化 62.1图像锐化概述 62.2

线性锐化滤波器 62.3

非线性锐化滤波器 72.3.1

Roberts算子 72.3.2

Prewitt锐化算子 82.3.3Sobel锐化算子 92.3.4

一阶微分锐化的效果比较 102.3.5二阶微分锐化其算法为: 10第三章基于MATLAB的边界提取 123.1图像边界提取的概念 123.2微分算子法 123.2.1

Sobel算子 133.2.3

prewitt算子 133.2.4

Laplacian算子 143.2.5

Canny边缘检测法 143.2.6各种方法边界提取的图像 163.2.7结论 18参考文献 19致谢 20第一章绪论

1.1图像锐化及边界提起发展背景和意义

数字图像处理(Digital

Image

Processing)又称为计算机图像处理,它最早出现于20世纪50年代

,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。图像处理的基本目的是改善图像的质量。它以人为对象,改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常见的图像处理方法有图像增强、复原、编码、压缩等。图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天。生物医学工程、工业检测、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注意、前景远大的新型科学。随着图像处理技术的深入发展,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理更高、更深层次发展。

1.2

图像锐化处理的现状和研究方法

数字图像经过转换和传输后,难免会产生模糊。图像锐化的主要目的在于补偿图像边缘轮廓、突出图像的边缘信息以使图像显得更为清晰,从而符合人类的观察习惯。图像锐化的实质是增强原图像的高频分量[2]。边缘和轮廓一般位于灰度突变的地方,因此和自然地利用灰度差分提取出来。由于边缘和轮廓在一幅图中常常具有任意方向,而差分运算是有方向性的,因此和差分方向一致的边缘和轮廓便检测不出来[3]。因而希望找到一些各向同性的检测算子,它们对任意方向的边缘和轮廓都有检测能力,具有这钟性质的锐化算子有Roberts算子、Prewitt算子、Sobel算子、Laplacian算子等微分算子。本次设计就是利用Matlab实现图像边缘检测,具体的是利用Matlab针对Roberts算子、Prewitt算子、Sobel算子、Laplacian算子实现边缘检测的功能。

1.3MATLAB简介

MATLAB全称Matrix

Laboratory(矩阵实验室),最早初由美国Cleve

Moler博士在20世纪70年代末讲授矩阵理论和数据分析等课程时编写的软件包Linpack和Eispack组成。它用于数学、信息工程、摇感、机械工程、计算机等专业。它的推广得到各个领域专家的关注,其强大的扩展功能为各个领域应用提供了基础,各个领域的专家相继推出MATLAB工具箱,而且工具箱还在不断发展,借助于这些工具箱,各个层次的研究人员可直接、直观、方便地进行工作,从而节省大量的时间[5]。目前,MATLAB语言已经成为科学计算、系统仿真、信号与图像处理的主流软件。本文主要从MATLAB图像处理方面做应用。

1.4

MATLAB对图像处理的特点

MATLAB全称Matrix

Laboratory(矩阵实验室),是一种主要用于矩阵数据值计算的软件,因其在矩阵运算上的特点,使得MATLAB在处理图像上具有独特优势,理论上讲,图像是一种二维的连续函数,而计算机在处理图像数字时,首先必须对其在空间和亮度上进行数字化,这就是图像的采样个量化的过程。二维图像均匀采样,课得到一副离散化成N×N样本的数字图像,该数字图像是一个整数列阵,因而用矩阵来描述该数字图像是最直观最简便的。第二章

基于MATLAB的图像锐化2.1图像锐化概述

数字图像处理中图像锐化的目的有两个:一是增强图像的边缘,使模糊的变得清晰起来;这种模糊不是由于错误操作,就是特殊图像获取方法的固有影响。二是提取目标物体的边界,对图像进行分割,便于目标区域的识别等。通过图像的锐化,使得图像的质量有所改变,产生更适合人观察和识别的图像[7]。

数字图像的锐化可分为线性锐化滤波和非线性锐化滤波。如果输出像素是输入像素领域像素的线性组合则称为线性滤波,否则称为非线性滤波。

2.2

线性锐化滤波器

线性高通滤波器是最常用的线性锐化滤波器。这种滤波器必须满足滤波器的中心系数为正数,其他系数为负数。

图2.2.1用线性高通滤波实现图像锐化的结果:图2.2.1线性锐化图像线性高通滤波图象锐化的程序:

i=imread('text.png');

%读入图像

g=[-1

-1

-1;

-1

8-1;

-1-1-1];%线性高通滤波3×3模板

h=double(i);%转化为double类型

j=conv2(h,g,'same');%

线性高通滤波进行图像滤波

subplot(1,2,1);

imshow(h);title('原始图像');

subplot(1,2,2);

imshow(j);title('滤波后图像');2.3

非线性锐化滤波器

非线性锐化滤波就是使用微分对图像进行处理,以此来锐化由于邻域平均导致的模糊图像。无方向一阶微分锐化算子有:

2.3.1

Roberts算子

2.3.1.1图像处理中最常用的微分是利用图y像沿某个方向上的灰度变化率,即原图像函数的梯度。

(Roberts算子)梯度定义如下:

△xf=f(x,y)-f(x+1,y)

梯度模的表达式如下:

(2-1)▏▽f▏=▏▽xf▏+▏▽yf▏(2-1)

2.3.1.2

Roberts算法又称交叉微分算法,其计算公式如下

g(i,j)=▏f(i+1,j+1)-f(i,j)▏+▏f(i+1,j)-f(i,j+1)▏(2-2)其特点就是算法简单2.3.2

Prewitt锐化算子

Prewitt锐化算子计算公式:

(2-3)(2-3)用Prewitt梯度算子实现图像锐化的结果及程序:图2.3.1原图像图2.3.2Prewitt算子图像I=imread('coins.png');%读入图像subplot(2,2,1),imshow(I);title('原图像');%显示原图像H=fspecial('prewitt');%应用prewitt算子锐化图像I3=filter2(H,I);%prewitt算子滤波锐化subplot(2,2,3);imshow(I3);

%显示prewitt算子锐化图像title('prewitt算子锐化图像');

特点:与Sobel相比,有一定的抗干扰性。图像效果比较干净。

2.3.3Sobel锐化算子

Sobel锐化算子计算公式:

(2-4(2-4)特点:锐化的边缘信息较强

2.3.3用Sobel

梯度算子实现图像锐化的结果及程序:图2.3.3Sobel算子锐化图像I=imread('coins.png');%读入图像

subplot(2,2,1),imshow(I);title('原图像');%显示原图像

H=fspecial('sobel');

%应用sobel算子锐化图像I2=filter2(H,I);

%sobel算子滤波锐化subplot(2,2,2);imshow(I2);

%显示sobel算子锐化图像title('sobel算子锐化图像');2.3.4

一阶微分锐化的效果比较Sobel算法与Priwitt算法的思路相同,属于同一类型,因此处理效果基本相同。Roberts算法的模板为2*2,提取出的信息较弱。

单方向锐化经过后处理之后,也可以对边界进行增强。

2.3.5二阶微分锐化其算法为:2.3.5.1Laplacian锐化算子计算公式:(2-5)(2-5)

将其写成模板系数形式形式即为Laplacian算子:

为了改善锐化效果,可以脱离微分的计算原理,在原有的算子基础上,对模板系数进行改变,获得Laplacian变形算子如下所示:

H1,H2的效果基本相同,H3的效果最不好,H4最接近原图。

用Laplacian梯度算子实现图像锐化的结果及程序图2.3.3原图像图2.3.4Laplacian算子锐化图像title('prewitt算子锐化图像');

subplot(2,2,1),imshow(I);title('原图像');%显示原图像H=fspecial('log');

%应用log算子锐化图像I4=filter2(H,I);

%log算子滤波锐化subplot(2,2,4);imshow(I4);%显示Laplacian算子锐化图像title('Laplacian算子锐化图像');总结

在实际应用过程中,图像锐化效果不理想是因为图像信噪比较小要用较高的kt才能

看清晰图像该系数要取值合理,kt过小,锐化效果就不明显。

本次论文介绍了4个传统的图像锐化算子的基本理论,运用其不同的算子得到不同

图像进行比较,灵活掌握在不同情况下合理选择锐化算子进行图像处理,得到使用者理想的图片。第三章基于MATLAB的边界提取3.1图像边界提取的概念边缘是图像的最重要的特征。边缘是指周围像素灰度有阶跃变化或屋顶变化的那些像素的集合。边缘检测主要是灰度变化的度量、检测和定位。有很多种不同的边缘检测方法,同一种方法使用的滤波器也不尽相同。图像边缘检测就是研究更好的边缘检测方法和检测算子。边缘检测的基本思想首先是利用边缘增强算子,突出图像中的局部边缘,然后定义象素的“边缘强度”,通过设置阈值的方法提取边缘点集。由于噪声和模糊的存在,监测到的边界可能会变宽或在某点处发生间断。因此,边界检测包括两个基本内容:

(1

用边缘算子提取出反映灰度变化的边缘点集

2

在边缘点集合中剔除某些边界点或填补边界间断点,并将这些边缘连接成完整的线

常用的检测算子有微分算子、拉普拉斯高斯算子和canny算子。

在Matlab图像处理工具箱中,提供了edge函数利用以上算子来检测灰度图像的边缘。

3.2微分算子法

经典的边缘提取方法是考察图像的每个像素的某个邻域内灰度的变化,利用边缘邻近一阶或二阶方向导数变化规律,用简单的方法检测边缘,称为微分算子法。

导数算子具有突出灰度变化的作用,对图像运用导数算子,灰度变化较大的点处算得的值较高,因此我们将图像的导数算子运算值作为相应的边界强度,所以可以通过对这些导数值设置阈值,提取边界的点集。

一阶导数是最简单的导数算子。已知在点f(x,y)处,梯度grad(F(x,y))的幅度为它们分别求出了灰度在x和y方向上的变化率,但是要对每一个像素进行以上的运算,运算量较大,所以在实际应用中常用小区域模板卷积运算来进行近似计算。模板运算的想法是将赋予某一个像素的值作为它本身灰度值和相邻象素灰度值的函数。运用中,对x,y方向各用一个模板。3.2.1

Sobel算子

Sobel算子是滤波算子的形式来提取边缘。X,Y方向各用一个模板,两个模板组合起来构成1个梯度算子。X方向模板对垂直边缘影响最大,Y方向模板对水平边缘影响最大。图3.2.1Sobel算子模板

robert算子

Robert算子是一种梯度算子,它用交叉的差分表示梯度,是一种利用局部差分算子寻找边缘的算子,对具有陡峭的低噪声的图像效果最好:(3-1)(3-1)模板如图:图3.2.2Robert算子模板3.2.3

prewitt算子

prewitt算子是加权平均算子,对噪声有抑制作用,但是像素平均相当于对图像进行地同滤波,所以prewitt算子对边缘的定位不如robert算子。模板如图;图3.2.3p3.2.4

Laplacian算子拉普拉斯高斯算子是一种二阶导数算子,将在边缘处产生一个陡峭的零交叉。前面介绍的几种梯度法具有方向性,不能对各种走向的边缘都具有相同的增强效果。但是Laplacian算子是各向同性的,能对任何走向的界线和线条进行锐化,无方向性。这是拉普拉斯算子区别于其他算法的最大优点。对一个连续函数f(i,j),它的位置(i,j)的拉普拉斯算子定义如下:(3-2)(3-2)在图像边缘检测中,为了运算方便,函数的拉普拉斯高斯算子也是借助模板来实现的。其模板有一个基本要求:模板中心的系数为正,其余相邻系数为负,所有系数的和应该为零。图3.24Laplacian算子模板3.2.5

Canny边缘检测法Canny边缘检测是一种比较新的边缘检测算子,具有很好的边缘监测性能,在图像处理中得到了越来越广泛的应用。它依据图像边缘检测最优准则设计canny边缘检测算法:首先用2D高斯滤波模板进行卷积以消除噪声利用导数算子找到图像灰度地沿着两个方向的偏导数(Gx,Gy),并求出梯度的大小:(3-3)(3-3)利用(2)的结果计算出梯度的方向(3-4)

(3-4)

(4)

一旦知道了边缘的方向,就可以把边缘的梯度方向大致分为四种:水平、竖直、45度方向、135度方向。通过梯度的方向,就可以找到这个像素梯度方向的邻接像素。

(5)

遍历图像,若某个像素的灰度值与其梯度方向上前后两个像素的灰度值相比不是最大的,那么这个像素值置为0,即不是边缘。

(6)

使用累计直方图计算两个阈值,大于高阈值的一定是边缘,小于低阈值的一定不是边缘,介于之间的,看这个像素的邻接像素中有没有超过高阈值的边缘像素,如果有的话那么它就是边缘了,否则它就不是边缘。

调用Laplacian算子、canny算子检测法检测图像边缘的程序如下:elog=edge(isuo,'log');ecanny=edge(isuo,'canny');subplot(1,2,1);

imshow(elog);title('log算子提取');

subplot(1,2,2);imshow(ecanny);title('canny算子提取');3.2.6各种方法边界提取的图像程序分别调用’sobel’,’prewitt’,’roberts’,’log’,’zerocross’和’canny’六种方法检测图像rice.tif的边界。程序如下:I=imread('rice.tif');

BW1=edge(I,'sobel');

BW2=edge(I,'prewitt');

BW3=edge(I,'roberts');

BW4=edge(I,'log');

BW5=edge(I,'zerocross');

BW6=edge(I,'canny');

imshow(I);title('图1:

rice.tif原图','fontsize',14,'position',[128,280,0]);

figure;imshow(BW1);title('图2:

sobel算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW2);title('图3:

prewitt算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW3);title('图4:

roberts算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW4);title('图5:

log算子提取的边界','fontsize',14,'position',[128,280,0])

figure;imshow(BW5);title('图6:

zerocross算子提取的边界','fontsize',14,'position',[128,280,0])

3.2.6.2图像图1,.原图图2.sobel算子图3.prewilt算子

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论