数字图像处理课程设计-图像锐化
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字图象处理
课程设计报告
设计题目:MATLAB实现数字图象锐化处理系(院):
专业:
班级:
学生姓名:
学号:
指导教师:
目录
1.报告摘要 (2)
2.设计原理 (2)
2.1MATLAB软件简介 (2)
2.2MATLAB软件对图象的处理 (2)
2.3图象锐化概述 (3)
2.4图象锐化的原理 (3)
3.设计过程 (4)
3.1线性锐化 (4)
3.1.1用线性高通滤波实现图像锐化的结果: (4)
3.1.2线性高通滤波图象锐化的程序: (5)
3.2非线性锐化 (5)
3.2.1用Sobel 梯度算子实现图像锐化的结果及程序: (5)
3.2.2用Prewitt梯度算子实现图像锐化的结果及程序: (6)
3.2.3用log梯度算子实现图像锐化的结果及程序: (7)
3.3设计总结 (8)
4.心得体会 (9)
1.报告摘要
本次课程设计讨论了数字图像增强技术中空域图像锐化的四种算法及其用MATLAB的实现;同时给出了利用四种算法进行图像锐化后的对照图像。
[关键词] MATLAB 线性锐化非线性锐化sobel算子prewitt算子log 算子2.设计原理
2.1MATLAB软件简介
MATLAB全称是MatrixLaboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。
实际运用中MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的,这一特点决定了MATLAB在处理数字图像上的独特优势。
2.2MATLAB软件对图象的处理
理论上讲,图像是一种二维的连续函数,然而计算机对图像进行数字处理时,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。
二维图像均匀采样,可得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的。
而MATLAB 的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。
MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP,GIF,HDF,JPEG,PCX,PNG,XWD,CUR,ICO等图像文件格式的读、写和显示。
MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。
图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作口。
2.3图象锐化概述
数字图像处理中图像锐化的目的有两个:一是增强图像的边缘,使模糊的图像变得清晰起来;这种模糊不是由于错误操作,就是特殊图像获取方法的固有影响。
二是提取目标物体的边界,对图像进行分割,便于目标区域的识别等。
通过图像的锐化,使得图像的质量有所改变,产生更适合人观察和识别的图像。
2.4图象锐化的原理
数字图像的锐化可分为线性锐化滤波和非线性锐化滤波。
如果输出像素是输入像素领域像素的线性组合则称为线性滤波,否则称为非线性滤波。
一、线性锐化滤波器
线性高通滤波器是最常用的线性锐化滤波器。
这种滤波器必须满足滤波器的中心系数为正数,其他系数为负数。
线性高通滤波器3×3模板的典型系数
二、非线性锐化滤波器
非线性锐化滤波就是使用微分对图像进行处理,以此来锐化由于邻域平均导致的模糊图像。
图像处理中最常用的微分是利用图y像沿某个方向上的灰度变化率,即原图像函数的梯度。
梯度定义如下:
△xf=f(x,y)-f(x+1,y)
△xf=f(x,y)-f(x,y+1)
梯度模的表达式如下:
∣▽f∣=∣▽xf∣+∣▽yf∣
在数字图像处理中,数据是离散的,幅值是有限的,其发生的最短距离是在两相邻像素之间。
因此在数字图像处理中通常采用一阶差分来定义微分算子。
其差分形式为:
△xf=f(x+1,y)-f(x,y)
△yf=f(x,y+1)-f(x,y)
比较有名的微分滤波器算子包括Sobel 梯度算子、Prewitt 梯度算子和log 算子,等等。
3.设计过程
3.1线性锐化
3.1.1用线性高通滤波实现图像锐化的结果:
3.1.2线性高通滤波图象锐化的程序:
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('滤波后图像');
3.2非线性锐化
3.2.1用Sobel 梯度算子实现图像锐化的结果及程序:
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算子锐化图像');
3.2.2用Prewitt梯度算子实现图像锐化的结果及程序:
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算子锐化图像');
3.2.3用log梯度算子实现图像锐化的结果及程序:
I=imread('coins.png');%读入图像
subplot(2,2,1),imshow(I);title('原图像');%显示原图像
H=fspecial('log'); %应用log算子锐化图像
I4=filter2(H,I); %log算子滤波锐化
subplot(2,2,4);imshow(I4);%显示log算子锐化图像
title('log算子锐化图像');
3.3设计总结
锐化(sharpening)和平滑恰恰相反,它是通过增强高频分量来减少图象中的模糊,因此又称为高通滤波(high pass filter)。
锐化处理在增强图象边缘的同时增加了图象的噪声。
在图象边界轮廓的部分要采用高通滤波。
因为边界轮廓灰度值相差很大,呈现出高频特性。
而图像内部则是灰度变化平缓,对应的应该是低频部分。
由实验结果可以分析看出,如果一片暗区出现了一个亮点,那么锐化处理的结果是这个亮点变得更亮,增加了图象的噪声。
4.心得体会
除了本次设计采用MATLAB实现图象的锐化,常用的还有基于C、C++的拉普拉斯(Laplacian)锐化方式,它的基本思路是先将自身与周围的8个象素相减,表示自身与周围象素的差别;再将这个差别加上自身作为新象素的灰度。
这里不再赘述。
可见,因为图象中的边缘就是那些灰度发生跳变的区域,所以锐化模板在边缘检测中很有用。
通过本次课程设计,我在书本中、上课时学习的知识得到了灵活运用,尤其通过对于锐化前后的图像对比,使我更清楚地看到各种处理方法对于图像的作用。
也让我对MATLAB软件有了更进一步的了解和认识,为数字图像处理的后续学习打下了良好的基础。
本份报告就MATLAB在数字图像锐化处理方面进行了阐述。
可以看出应用MATLAB进行数字图像处理具有理想的效果和很高的工程价值。
当然,MATLAB 图像处理工具箱中所提供的图像处理功能远不止这些。
可以说,MATLAB为数字图像处理提供了一种简单、快捷而又有效的方法,大大提高了数字图像处理的效率及效果并且应用到图像处理的各个方向。
最后,在这里诚挚感谢老师与设计中给予的悉心指导和帮助。