MATLAB中图像增强技术的实现本科毕业论文.doc

上传人:小小飞 文档编号:3902398 上传时间:2019-10-10 格式:DOC 页数:53 大小:1.40MB
返回 下载 相关 举报
MATLAB中图像增强技术的实现本科毕业论文.doc_第1页
第1页 / 共53页
MATLAB中图像增强技术的实现本科毕业论文.doc_第2页
第2页 / 共53页
MATLAB中图像增强技术的实现本科毕业论文.doc_第3页
第3页 / 共53页
MATLAB中图像增强技术的实现本科毕业论文.doc_第4页
第4页 / 共53页
MATLAB中图像增强技术的实现本科毕业论文.doc_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《MATLAB中图像增强技术的实现本科毕业论文.doc》由会员分享,可在线阅读,更多相关《MATLAB中图像增强技术的实现本科毕业论文.doc(53页珍藏版)》请在三一文库上搜索。

1、摘要 I 摘 要 图像增强是指依据图像所存在的问题,按特定的需要突出一幅图 像中的某些信息,同时,削弱或去除某些冗余信息的处理方法。其主 要目的是使得处理后的图像对给定的应用比原来的图像更加有效同时 可以有效的改善图像质量。图像增强技术主要包含直方图修改处理、 图像平滑化处理、图像尖锐化处理和彩色处理技术等。 图像增强单纯从技术上可分成两大类:一类是频域处理法;一类 是空域处理法。频域处理法的采用的是卷积定理,它利用修改图像傅 立叶变换的方法实现对图像的增强处理;空域处理法则是对图像中的 像素进行直接的处理,大多数是以灰度映射变换为基础的,所用的映 射变换取决于增强的目的。 在本论文中,利用

2、Matlab 提供的若干函数,用于图像类型的转 换。Matlab 支持五种图像类型,即二值图像、索引图像、灰度图像、 RGB 图像和多帧图像阵列。在 Matlab 中要查询一个图像文件的信息, 只要用 imfinfo 指令加上文件及其完整路径名即可。Matlab 提供了两 个重要的用于图像文件的读写的指令,分别是从图像文件中读取数据 的 imread,以及将数据写入到图像文件中的 imwrite。至于多个图像 的显示,则可分为两个方面:在不同的图形窗口显示不同的图像,可 以用 figure 指令来实现;在同一个图形窗口显示多图,可以用 Abstract II subplot 来实现。 关键字:

3、matlab 图像增强 灰度 滤波器 电子科技大学毕业论文 III Abstract The image intensification is refers specificly according to needs to highlight in an image certain informations, simultaneously, weakens the information processing method which or removes certain does not need.After its main purpose is the processing image

4、is more effective than to certain specific applications the original image.The image intensification technology mainly contains histogram revision processing, image smooth processing, image intensification processing and the colored processing technology and so on. The image intensification technolo

5、gy basically separable becomes two big kinds: One kind is the frequency range processing law, one kind is the air zone processing law.The frequency range processing method foundation convolutes the theorem.It uses the revision image Fourier transformation the method realization to image enhancement

6、processing. Image of point operations, point operations will enter the image map for the output image, output image each pixel gray value only by the corresponding input pixel value decision. Nonlinear point operations correspond to non-linear mapping function, mapping, including the square of the t

7、ypical functions, logarithmic functions, the interception function Abstract IV (window function), field-valued functions, such as multi-value quantization function. Threshold processing is the most common point of a nonlinear operator, its function is to select a threshold value, the image binarizat

8、ion, and then use the resulting binary image for image segmentation and edge tracking processing. Keyword: the image intensification of matlab 、gray、filter 、 武汉科技大学中南分校大学毕业论文 V 目 录 摘摘 要要.I ABSTRACT II 目目 录录III 第一章第一章 绪论绪论4 第二章第二章 MATLAB 的简介的简介.6 2.1MATLAB 主要功能 6 2.2MATLAB 优势 7 2.2.1工作平台和编程环境 .7 2.2.

9、2实用的程序语言 .7 2.2.3计算机数据处理能力 .7 2.2.4图形处理功能.8 2.2.5应用的模块集合工具箱 .8 2.3MATLAB 函数与数据类型 .8 2.3.1整型.9 2.3.2浮点数.9 2.3.3字符.9 2.3.4常用的字符操作函数 .9 2.4MATLAB 常用工具箱10 2.5小结.10 第三章第三章 MATLAB 图像增强图像增强 .12 3.1图像增强技术概述.12 3.1.1空域滤波增强.12 3.1.2平滑滤波器.12 3.1.3中值滤波器.13 3.1.4锐化滤波器.14 3.1.5低通滤波器.14 3.1.6高通滤波器.15 3.1.7同态滤波器.15

10、 VI 3.2MATLAB 图像增强函数 15 3.3 MATLAB 应用于数字图像增强和滤波.16 3.3.1目的.16 3.3.2内容.17 3.4实验.22 总结总结 39 致谢致谢 40 参考参考文文献献.41 第二章 Matlab 的简介 7 第一章 绪论 图像增强技术的发展大致经历了初创期、发展期、普及期和 应用期 4 个阶段。初创期开始于 20 世纪 60 年代,当时的图像采 用像素型光栅进行扫描显示,大多采用中、大型机对其进行处理。 20 世纪 70 年代进入了发展期,开始大量采用中、大型机进行处理, 图像处理也逐渐改用光栅扫描显示方式,特别是出现了CT 和卫 星遥感图像,对图

11、像增强处理提出了一个更高的要求。到了20 世纪 80 年代,图像增强技术进入普及期,此时的计算机已经能够 承担起图形图像处理的任务。 20 世纪 90 年代进入了应用期,人 们运用数字图像增强技术处理和分析遥感图像,以有效地进行资 源和矿藏的勘探、调查、农业和城市的土地规划、作物估产、气 象预报、灾害及军事目标的监视等。在生物医学工程方面,运用 图像增强技术对 X 射线图像、超声图像和生物切片显微图像等进 行处理,提高图像的清晰度和分辨率。在工业和工程方面,主要 应用于无损探伤、质量检测和过程自动控制等方面。在公共安全 方面,人像、指纹及其他痕迹的处理和识别,以及交通监控、事 故分析等都在不同

12、程度上使用了图像增强技术。图像增强是图像 处理的重要组成部分,传统的图像增强方法对于改善图像质量发 挥了极其重要的作用。随着对图像技术研究的不断深入和发展, 新的图像增强方法不断出现。例如一些学者将模糊映射理论引入 到图像增强算法中,提出了包括模糊松弛、模糊熵、模糊类等增 强算法来解决增强算法中映射函数选择问题,并且随着交互式图 8 像增强技术的应用,可以主观控制图像增强效果。同时利用直方 图均衡技术的图像增强也有许多新的进展:例如提出了多层直方 图结合亮度保持的均衡算法、动态分层直方图均衡算法。这些算 法通过分割图像,然后在子层图像内做均衡处理,较好地解决了 直方图均衡过程中的对比度过拉伸问

13、题,并且可以控制子层灰度 映射范围,增强效果较好。 Matlab 名字由 MATrix 和 LABoratory 两词的前三个字母组合而 成。那是 20 世纪七十年代后期的事:时任美国新墨西哥大学计算机 科学系主任的 Cleve Moler 教授出于减轻学生编程负担的目的,为学 生设计了一组调用 LINPACK 和 EISPACK 库程序的“通俗易用”的 接口,此为用 FORTRAN 编写的初期状态的 MATLAB。 经校园广泛使用,由 Little、Moler、Steve Bangert 合作,于 1984 年成立了 MathWorks 公司,并把 MATLAB 正式推向市场。 从这时起,M

14、ATLAB 的内核采用 C 语言编写,而且除了原有的数 值计算能力外,还添加了数据图视功能。 到九十年代初期,在国际上 30 几个数字类科技应用软件中, Matlab 在数值计算方面独占鳌头,而 Mathematica 和 Maple 则分居 符号计算软件的前两名。Mathcad 因其提供计算、图形、文字处理 的统一环境而深受学生欢迎。 4.x 版在继承和发展其原有的数值计算和图形可视能力的同时, 出现了以下几个重要变化: (1)推出了 SIMULINK,一个交互式操作的动态系统建模、仿 第二章 Matlab 的简介 9 真、分析集成环境。 (2)推出了符号计算工具包。一个以 Maple 为“

15、引擎”的 Symbolic Math Toolbox 1.0。此举结束了国际上数值计算、符号计算 孰优孰劣的长期争论,促成了两种计算的互补发展新时代。 (3)构作了 Notebook 。MathWorks 公司瞄准应用范围最广的 Word ,运用 DDE 和 OLE,实现了 MATLAB 与 Word 的无缝连接, 从而为专业科技工作者创造了融科学计算、图形可视、文字处理于 一体的高水准环境。从 1997 年春的 5.0 版起,后历经 5.1、5.2、5.3、6.0、6.1 等多个版本的不断改进,MATLAB“面向 对象”的特点愈加突出,数据类型愈加丰富,操作界面愈加友善。 2002 年初夏所

16、推 6.5 版的最大特点是:该版本采用了 JIT 加速器, 从而使 MATLAB 朝运算速度与 C 程序相比肩的方向前进了一大步。 第二章 Matlab 的简介 MATLAB 是建立在向量、数组和矩阵基础上的一种分析和仿真 工具软件包,包含各种能够进行常规运算的“工具箱”,如常用的矩 阵代数运算、数组运算、方程求根、优化计算及函数求导积分符号 10 运算等;同时还提供了编程计算的编程特性,通过编程可以解决一 些复杂的工程问题;也可绘制二维、三维图形,输出结果可视化。 目前,已成为工程领域中较常用的软件工具包之一。 2.1 Matlab 主要功能 它是一种用于算法开发、数据可视化、数据分析以及数

17、值计算 的高级技术计算语言和交互式环境。使用它,可以较使用传统的编 程语言,如 C、C+等,更快的解决技术计算问题。 高级语言可用于技术计算;开发环境可对代码、文件和数据进 行管理;数学函数可用于线性代数、统计、傅立叶分析、筛选、优 化以及数值积分等;二维和三维图形函数可用于可视化数据;各种 工具可用于构建自定义的图形用户界面;各种函数可将基于 matlab 的算法与外部应用程序和语言;其应用范围非常广,包括信号和图 像处理、通迅、控制系统设计、测试和测量等众多应用领域。 2.2 Matlab 优势 2.2.1 工作平台和编程环境 MATLAB 由一系列工具组成。这些工具方便用户使用 MATL

18、AB 的函数和文件,其中许多工具采用的是图形用户界面。包 括 MATLAB 桌面和命令窗口、历史命令窗口、编辑器和调试器、 路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着 MATLAB 的商业化以及软件本身的不断升级,MATLAB 的用户界 第二章 Matlab 的简介 11 面也越来越精致,更加接近 Windows 的标准界面,人机交互性更强, 操作更简单。而且新版本的 MATLAB 提供了完整的联机查询、帮 助系统,极大的方便了用户的使用。简单的编程环境提供了比较完 备的调试系统,程序不必经过编译就可以直接运行,而且能够及时 地报告出现的错误及进行出错原因分析。 2.2.2 程序

19、语言 Matlab 一个高级的矩阵语言,它包含控制语句、函数、数据结 构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输 入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程 序(M 文件)后再一起运行。新版本的 MATLAB 语言是基于最为 流行的 C语言基础上的,因此语法特征与 C语言极为相似, 而且更加简单。使之更利于非计算机专业的科技人员使用。而且这 种语言可移植性好、可拓展性极强,这也是 MATLAB 能够深入到 科学研究及工程计算各个领域的重要原因。 2.2.3 科学计算机数据处理能力 MATLAB 是一个包含大量算法的集合。其可以快捷的实现用户 所需的各种计算功能。

20、函数中所使用的算法都是科研和工程计算中 的最新研究成果,而前经过了各种优化和差错处理。在通常情况下, 可以用它来代替底层编程语言,如 C 和 C+ 。在计算要求相同的 情况下,使用 MATLAB 的编程工作量会大大减少。MATLAB 的这 12 些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速 傅立叶变换的复杂函数。函数所能解决的问题其大致包括矩阵运算 和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运 算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵 运算、复数的各种运算、三角函数和其他初等数学运算、多维数组 操作以及建模动态仿真等。 2.2.4 图形处理功能 图

21、形处理功能 MATLAB 自产生之日起就具有方便的数据可视 化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标 注和打印。高层次的作图包括二维和三维的可视化、图象处理、动 画和表达式作图。可用于科学计算和工程绘图。新版本的 MATLAB 对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据 可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理 等)方面更加完善,而且对于一些其他软件所没有的功能(例如图 形的光照处理、色度处理以及四维数据的表现等) ,MATLAB 同样 表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形 对话等,MATLAB 也有相应的功能函数,保证

22、了用户不同层次的要 求。另外新版本的 MATLAB 还着重在图形用户界面(GUI)的制作 上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。 第二章 Matlab 的简介 13 2.2.5 模块集合工具箱 MATLAB 对许多专门的领域都开发了功能强大的模块集和工具 箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接 使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。 目前,MATLAB 已经把工具箱延伸到了科学研究和工程应用的诸多 领域,诸如数据采集、数据库接口、概率统计、样条拟合、优化算 法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、 系统辨识、控制系

23、统设计、LMI 控制、鲁棒控制、模型预测、模糊 逻辑、金融分析、地图工具、非线性控制设计、实时快速原型及半 物理仿真、嵌入式系统开发、定点仿真、DSP 与通讯、电力系统仿 真等,都在工具箱(Toolbox)家族中有了自己的一席之地。 2.3 Matlab 函数与数据类型 它提供了以下类型的函数,用于执行数学运算和数据分析: 矩阵操作和线性代数 多项式和内插 傅立叶分析和筛选 数据分析和统计 优化和数值积分 Matlab 可对包括双精度浮点数、单精度浮点数和整型在内的多 种数据类型进行运算。附加的工具箱提供了专门的数学计算函数, 用于包括信号处理、优化、统计、符号数学、偏微分方程求解以及 14

24、曲线拟合在内的各个领域。 Matlab 中有 15 种基本数据类型,主要是整型、浮点、逻辑、字 符、日期和时间、结构数组、单元格数组以及函数句柄等。 2.3.1 整型 通过 intmax(class)和 intmin(class) 函数返回该类整型的最大值和 最小值,例如 intmax(int8)=127 2.3.2 浮点数 REALMAX(double)和 REALMAX(single)分别返回双精度浮点 和单精度浮点的最大值,REALMIN(double)和 REALMIN (single) 分别返回双精度浮点和单精度浮点的最小值。 2.3.3 字符 Matlab 中的输入字符需使用单引号

25、。字符串存储为字符数组, 每个元素占用一个 ASCII 字符。如日期字符:DateString=9/16 /2011 实际上是一个 1 行 9 列向量。构成矩阵或向量的行字符串 长度必须相同。可以使用 char 函数构建字符数组,使用 strcat 函数 连接字符。 2.3.4 常用的字符操作函数 findstr(s1,s2) 搜索字符串 ischar(s) 判断是否字符串 第二章 Matlab 的简介 15 strcmp(s1,s2) 比较字符串是否相同 strncmp(s1,s2,n) 比较字符串中的前 n 个字符是否相同 strrep(s1,s2,s3) 将 s1 中的字符 s2 替换为

26、 s3 2.4 Matlab 常用工具箱 MATLAB 包括拥有数百个内部函数的主包和三十几种工具包。 功能工具包用来扩充 MATLAB 的符号计算,可视化建模仿真,文 字处理及实时控制等功能。学科工具包是专业性比较强的工具包, 控制工具包,信号处理工具包,通信工具包等都属于此类。除内部 函数外,所有 MATLAB 主包文件和各种工具包都是可读可修改的 文件。 Matlab Main Toolboxmatlab 主工具箱 System Identification Toolbox系统辨识工具箱 Image Processing Toolbox图象处理工具箱 LMI Control Toolbo

27、x线性矩阵不等式工具箱 Optimization Toolbox优化工具箱 Simulink Toolbox动态仿真工具箱 Wavele Toolbox小波工具箱 它附加的工具箱,即单独提供的专用 matlab 函数集,扩展了 matlab 环境,以解决这些应用领域内特定类型的问题。 16 2.5 小结 对于 MATLAB,由于本科阶段我们大量的运用它来进行编程学习, 对于以上所叙,均比较了解,但是对于其图像处理功能还是不十分 熟悉,因此以下将着重从这方面介绍: 图像处理工具包是由一系列支持图像处理操作的函数组成的。 所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像 变换、图像恢复

28、与增强、线性滤波和滤波器设计、变换(DCT 变换等) 、图像分析和统计、二值图像操作等。下面就 MATLAB 在图像处理 中各方面的应用分别进行介绍。 1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入 函数 imread ( ) ,用来读取如: bmp 、tif 、jpg、pcx、tiff 、gpeg、hdf 、xwd 、png 等各种格式的图像文件;图像写出函数 imwrite () ,还有图像显示函数 image ( ) 、imshow( ) 等等。 2) 图像处理的基本运算。MATLAB 提供了图像的和、差等线性 运算,以及卷积、相关、滤波等非线性运算。例如,conv2(

29、 I ,J ) 实现了 I ,J 两幅图像的卷积。 3) 图像变换。MATLAB 提供了一维和二维离散傅立叶变换(DFT) 、快速傅立叶变换(FFT) 、离散余弦变换(DCT) 及其反变换函数,以 及连续小波变换(CWT) 、离散小波变换(DWT) 及其反变换。 4) 图像的分析和增强。针对图像的统计计算,MATLAB 提供了校 正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进 行的处理。 第二章 Matlab 的简介 17 以上所提到的 MATLAB 在图像中的应用都是由相应的 MATLAB 函 数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。 具体的用法可参考 MAT

30、LAB 丰富的帮助文档。 18 第三章 Matlab 图像增强 图像增强是按特定的需要突出一幅图像中的某些信息,同时, 消弱或去除某些信息使得图像更加实用。图像增强技术主要包含直 方图修改处理、图像平滑处理、图像尖锐化处理和彩色技术等。 3.1 图像增强技术概述 图像增强技术主要包括:直方图修改处理,图像平滑处理,图 像尖锐化处理,彩色图像处理。从纯技术上讲主要有两类:频域处 理法和空域处理法。 频域处理法主要是卷积定理,采用修改图像傅立叶变换的方法 实现对图像的增强处理技术;空域处理法:是直接对图像中的像素 进行处理,基本上是以灰度映射变换为基础的。 3.1.1 空域滤波增强 使用空域模板进

31、行的图像处理被称为空域滤波,模板本身被称为 空域滤波器。空域滤波器包括:线性滤波器和非线性滤波器。空域 滤波处理效果来分类,可以分为平滑滤波器,和锐化滤波器,平滑 的目的在于消除混杂在图像中的干扰因素,改善图像质量,强化图 像表现特征。锐化的目的在于增强图像边缘,以及对图像进行识别 和处理。 第三章 Matlab 图像增强 19 3.1.2 平滑滤波器 用于模糊处理和减小噪声。平滑线性空间滤波器的输出(响应) 是包含在滤波掩模邻域内像素的简单平均值。因此这些滤波器也被 称为均值滤波器。平滑滤波器的概念很简单:它是用滤波掩模确定 的领域内像素的平均值去代替图像每个像素点的值。这种处理减少 了图像

32、灰度的尖锐化。每个掩模前边的乘数等于它的系数值的和, 以计算平均值。 我们经常用这些极端类型的模糊处理来去除图像中的一些小物 体。例如:在 matlab 中利用线性平滑滤波器处理一副图像 I=imread(eight.tif); J=imnoise(I,salt %添加椒盐噪声 subplot(221) imshow(I) title(原图像) subplot(222) imshow(J) title(添加椒盐噪声图像) K1=filter2(fspecial(average,3),J)/255; %应用 3*3 邻域窗口法 subplot(223),imshow(K1) K2=filter2

33、(fspecial(average,7),J)/255; 20 %应用 7*7 邻域窗口法 subplot(224),imshow(K2) 3.1.3 中值滤波器 其原理是把数字图像或数字序列中某一点的值用该点的一个邻 域中各点值的中值交换。中值滤波器的窗口可以取方形,圆形,十 字形等。 例如:滤波函数图像处理 1 smoothingMedianFilterMain.m clc;clear; fid = fopen(lenai.raw); temp= fread(fid, 256,256); LenaRaw=uint8(temp); subplot(1,3,1) Imshow(LenaRaw)

34、; title(原始图像) subplot(1,3,2) Imshow(smoothingMedianFilter(LenaRaw,3); title(自制函数,使用用 3*3 模板,中值滤波图像) subplot(1,3,3) Imshow(medfilt2(LenaRaw,3,3); title(调用库函数 medfilt2,使用 3*3 模板,中值滤波图像) 第三章 Matlab 图像增强 21 3.1.4 锐化滤波器 锐化处理主要目的是突出图像中的细节或者增强被模糊了的细 节,这种模糊不是由于错误操作,就是特殊图像获取方法的固有影 响。常用的方法有两种即为微分法和模板匹配法。 其中微分

35、法中梯度是图像处理常用的一次微分方法,在灰度骤 变区域,梯度值大,在灰度相似区域,梯度值小。在灰度级为常数 的区域,梯度为零;Laplacian 算子是线性二次微分算子,与梯度算 子一样,具有旋转不变性,从而满足不同走向的图像边界的锐化要 求。 而对于模板匹配法则是出去能够增强图像边缘外,还具有平滑 噪声的优点。 3.1.5 低通滤波器 一幅图像的边缘,跳跃部分以及颗粒噪声代表图像信号的高频 分量,而大面积的背景区域代表了图像信号的低频分量。低通滤波 器的作用就是滤除这些高频分量,保留低频分量,使图像信号平滑。 它包括:理想低通滤波器,巴特沃斯低通滤波器,指数低通滤波器 等。 例如:频域增强

36、I=imread(apple.png); J=imnoise(I,salt subplot(121),imshow(J) 22 title(含噪声的图像) J=double(J); f=fft2(J); g=fftshift(f); M,N=size(f); n=3;d0=20; n1=floor(M/2);n2=floor(N/2); for i=1:M for j=1:N d=sqrt(i-n1)2+(i-n2)2); h=1/(1+0.414*(d/d0)(2*n); g(i,j)=h*g(i,j); end end g=ifftshift(g); g=uint8(real(ifft2(

37、g); subplot(122),imshow(g) title(三阶 Butterworth 滤波图像) 3.1.6 高通滤波器 与低通滤波器相反,它将高频信号通过,而抑制了低频信号。 第三章 Matlab 图像增强 23 3.1.7 同态滤波器 把频率过滤和灰度变换结合起来的图像处理方法叫同态滤波。 3.2 Matlab 图像增强函数 Matlab 中图像增强函数的具体使用方法: (1)直方图 imhist 函数用于数字图像的直方图显示,如: i=imread(e:w11.tif); imhist(a); (2)直方图均化 histeq 函数用于数字图像的直方图均化,如: i=imread

38、(e:w11.tif); j=histeq(a); (3)对比度调整 imadjust 函数用于数字图像的对比度调整,如: i=imread(e:w11.tif); j=imadjust(a,0.3,0.7,); (4) 对数变换 log 函数用于数字图像的对数变换,如: i=imread(e:w11.tif); j=double(a); k=log(v); (5)基于卷积的图像滤波函数 24 filter2 函数用于图像滤波,如: i=imread(e:w11.tif); h=1,2,1;0,0,0;-1,-2,-1; j=filter2(h,i); (6) 线性滤波 利用二维卷积 conv

39、2 滤波, 如: i=imread(e:w11.tif); h=1,1,1;1,1,1;1,1,1; h=h/9; j=conv2(i,h); (7)中值滤波 medfilt2 函数用于图像的中值滤波,如: i=imread(e:w11.tif); j=medfilt2(i); (8)锐化 利用 Sobel 算子锐化图像, 如: i=imread(e:w11.tif); h=1,2,1;0,0,0;-1,-2,-1;%Sobel 算子 j=filter2(h,i); 第三章 Matlab 图像增强 25 3.3 Matlab 应用于数字图像增强和滤波 3.3.1 目的 1)熟悉灰度图像读入函数

40、 imread 和图像显示函数 imshow。 2)掌握数据类型强制转换函数 y=double(x)。(注意进行运算前 类型为 uint8 的数据必须转换为 double 类型)。 3)掌握使用函数映射增强图像的方法。 4)熟悉使用 imhist 函数显示图像直方图。 5)熟悉使用 histeq 函数进行直方图均衡化,通过实验结果理解直 方图均衡化的作用。 6)掌握加噪函数 imnoise 函数。 7)熟悉常用空域平滑滤波和锐化滤波模板。 3.3.2 内容 根据简单的函数映射规则编写程序 experiment.m,完成图像求反、 增强对比度、降低对比度。 1)在 MATLAB 中读入名为 le

41、na.bmp 的图像给矩阵 D,将 D 强 制类型转换为 double。 2)对原始图像求反,即转换为黑色或白色,形成底片效果,结果赋 值给矩阵 D1。 要求原图像灰度范围 0255,求反后灰度变化范围 2550。 3)对原始图像 D 降低对比度,结果赋值给矩阵 D2。要求原图像 灰度范围 0255,降低对比度后灰度变化范围 0127。 26 4)对降低对比度后的图像 D2 增强对比度, 结果赋值给矩阵 D3,要 求与原始图像外观类似。 5)在 figure(1)中显示求反图像、增强对比度图像和降低对比 度图像的图像与直方图,并添加标注说明。 6)对降低对比度后图像矩阵 D2 使用 histe

42、q 函数进行直方图均 衡化,结果赋值给矩阵 D4。在 figure No.2 显示降低对比度后图像与 直方图均衡化后图像,并添加标注说明。 Dimread(lena.bmp); Ddouble(D/255; D=1-D D=(floor(D255/2)/255); D=(exp(D*255/10)/255; figure,subplot(4,2,1),imshow(D title(原图像); subplot(4,2,2),imhist(D); title(原图像直方图); subplot(4,2,3),imshow(D1); title(求反图像); subplot(4,2,4),imhist

43、(D2); title(求反图像直方图); subplot(4,2,5),imshow(D3); title(增强对比度图像); 第三章 Matlab 图像增强 27 subplot(4,2,6),imhist(D4); title(增强对比度图像直方图); subplot(4,2,7),imshow(D4); title(降低对比度图像); subplot(4,2,8),imhist(D3) title(降低对比度图像直方图); figure,subplot(1,2,1),imshow(D2); title(降低对比度图像); subplot(1,2,2),imshow(D4); title

44、(直方图均衡化图像); 以下将所有代码写成名为 imfil.m 的脚本文件,存盘。在 command window 中运行。 1)在 MATLAB 中读入名为 eight.tif 的图像给矩阵 X,将 X 强 制类型转换为 double,最大值归一化并显示 X。 2)使用 imnoise 函数对图像矩阵 X 加噪,加噪后图像矩阵名为 J。要求噪声为零均值,方差 0.005 的高斯噪声。 3)使用以上给出的平滑滤波模板和 conv2 函数对加噪图像进行 平滑滤波即降噪,输出图像 Y1 并显示。 4)使用以上给出的锐化滤波模板和 conv2 函数对图像 X 进行 锐化滤波即边缘增强,输出图像 Y2

45、 并显示。 5)在一个图形窗口中建立 22 子窗口,分别显示原始图像 X, 加噪图像 J,降噪后图像 Y1 和边缘增强图像 Y2。 28 X=imread(eight.tif); Y=double(X); x=(255-Y)./255; J=imnoise(x,gaussian,0,0.005); d1=0.1.*1,1,1;1,2,1;1,1,1; Y1=conv2(J,d1,same); d2=0,-1,0;-1,5,-1;0,-1,0; Y2=conv2(Y,d2,same); subplot(2,2,1),imshow(X);title(原图象); subplot(2,2,2),ims

46、how(J);title(加噪图象); subplot(2,2,3),imshow(Y1);title(降噪后图象); subplot(2,2,4),imshow(Y2/max(max(Y2)+Y/255);title(边缘增强图 象); 编写程序 specfil.m,完成理想滤波器对一幅图像的低通、高通 滤波,比较并分析结果。 1)在 MATLAB 中读入名为 lena.bmp 的图像给矩阵 X,将 X 强 制类型转换为 double。 2)用 cheby1 分别设计低通和高通滤波器并对原始图像 X 进行 滤波,低通滤波后图像为 X1,高通滤波后图像为 X2。 3)在 Figure NO 1

47、 中开设 1*3 个子窗口显示原始图像 X、低通 滤波后图像 X1 和高通滤波后图像 X2。 编写函数f2,f3=photo(ut),图像文件名为 lena256.bmp,第 ut 行 第三章 Matlab 图像增强 29 为破损行,即令该行值全为 255,文件存为 lena2.bmp,编写程序进行 预测修补,文件保存为 lena3.bmp。 其中图像文件读入函数为 imread,写出函数为 imwrite,无符号 8 位整型数转换为双精度类型函数为 double,其逆运算函数为 uint8。 3.4 实验 实验一:图像输入 对于一副黑白数字图像,其每一副数字图像都是由一个矩阵组 成的,矩阵中

48、的每一个值都是对应原来的模拟图像的相应值的量化 值,因此,一副黑白图像就是一个关于像素值的矩阵。 使用 MATLAB 进行图像输入,可以利用以下简单一步: f=imread(文件名.格式名); Figure; Imshow(f); 根据数字图像的特性,f 即为关于输入图象各像素值的矩阵。 实验二:彩色图像处理 关于数字彩色图像的编码,采用 RGB 三个矩阵进行存储,因此 对于输入的彩色图像的关于 RGB 的三个矩阵,我们只取其中的灰度 矩阵进行处理,这样就是对彩色图像的简单灰化。 f=imread(文件名.格式名); Figure; 30 Imshow(f);title(原图像) f1=f(:

49、;:;3)%取彩色图像的灰度分量。 Figure; Imshow(f1); Title(原图像); 例如输入的彩色图像为: 图 3-1 彩色图像输入(a) 图 3-2 灰化之后的 图像(b) 实验三:图像增强 实验题目:图像增强 实验目的: (1)了解图像增强的内容和意义; (2)掌握基于空域的图像增强方法; (3)掌握基于频域的图像增强方法。 实验内容: (1)综合运用直方图均衡、灰度变换、锐化空域滤波等方法编程实 现对图像的空域增强处理; 第三章 Matlab 图像增强 31 (2)编程实现图像的频域增强处理。 预备知识: (1)熟悉 MATLAB 图像输入输出操作; (2)熟悉图像的模板操作; (3)熟悉图像的频域变换处理; 实验原理: 图像增强是对图像进行加工,以得到视觉效果更好或更有用的 新图像。 图像均衡化 f=imread(Couple.bmp); J=histeq(f); subplot(2,2,1);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1