基于SSM整合框架的快速开发技术研究(完整资料)_第1页
基于SSM整合框架的快速开发技术研究(完整资料)_第2页
基于SSM整合框架的快速开发技术研究(完整资料)_第3页
基于SSM整合框架的快速开发技术研究(完整资料)_第4页
基于SSM整合框架的快速开发技术研究(完整资料)_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

基于SSM整合框架的快速开发技术研究(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)

基于SSM整合框架的快速开发技术研究(完整资料)(可以直接使用,可编辑优秀版资料,欢迎下载)长江大学计算机科学学院硕士研究生作业簿年级计算机科学S151专业计算机科学与技术课程名称计算机新技术专题姓名熊魏交作业时间2016年10月8日基于SSM整合框架的快速开发技术研究熊魏长江大学计算机科学学院S151班学号:2015713901引言框架,即framework。其实就是某种应用的半成品,把不同应用程序中有共性的一些东西抽取出来,做成一个半成品程序,这样的半成品就是所谓的程序框架。软件系统发展到今天已经很复杂了,特别是服务器端软件,涉及到的知识、内容、问题太多,在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作.你只需要集中精力,完成系统的业务逻辑设计,这样每次开发就不用白手起家,而是可以在这个基础上开始搭建.使用框架的最大好处:减少重复开发工作量、缩短开发时间、降低开发成本,同时,还有其它的好处,如:使程序设计更合理,程序运行更稳定等.基于这些原因,基本上现在在开发中,都会选用某些合适的开发框架,来帮助快速高效的开发应用系统.框架的选择,就是看哪个框架最合适,从而减少开发的工作量,提高开发的效率和质量,并有效减少维护的工作量,最终达到节约综合开发成,本获取更多的收益。下面简单了解一下SpringMVC+Spring+Mybatis三大框架.2。技术架构系统采用以spring为核心并整合了Springmvc和mybatis的3个轻量级框架技术的组合,即SSM整合框架。利用SSM整合框架可开发出分层、易扩展、易维护的企业级应用系统.,能够极大地满足系统的需求.SSM框架结构图如图2所示。随着web应用的规模、复杂度不断升级,对软件架构的复用性、可靠性、可扩展性都提出了较高的要求。本课题采用了MVC这一软件架构模式,该模式成功实现了动态的程序设计,简化了后续对程序的修改以及扩展,使部分程序的重复利用成为可能。此外,此模式简化了应用程序的复杂度,使程序结构更直观。基于MVC架构模式,本系统采用SSM框架,即Struct2,spring3.0,mybatis框架组合,采用此框架技术可以提高开发效率、降低程序的复杂度。图1SSM框架结构图图1SSM框架结构图3MVC设计模式MVC设计模式[1]是一种目前广泛流行的软件设计模式,它把一个应用的各流程按照Model(模型)、View(视图)、Controller(控制器)的方式进行分离。本系统所采用的SSM整合框架就是根据MVC设计模式的基础上发展起来,其中Struts2就是采用MVC模式建立起来的框架技术,而Struts2正是需要与spring、Mybatis进行无缝的集成,才能真正发挥MVC模式的作用。图2MVC设计模式的工作原理图2MVC设计模式的工作原理如图1所示MVC设计模式的工作原理View部分即是应用程序的用户界面,用户通过View层发送请求提交到Controller层;Controller层接受请求根据具体需求调用Model层来处理,再根据Model层调用回来的结果进行跳转。可知Controller层在整个流程中起到了桥梁的作用,控制数据的流向;而Model层负责业务逻辑的处理和数据库访问.4SpringMVC技术研究SpringWebMVC是一种基于Java的实现了WebMVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求—响应模型,框架的目的就是帮助我们简化开发,SpringWebMVC也是要简化我们日常Web开发的。SpringWebMVC也是服务到工作者模式的实现,但进行可优化。前端控制器是DispatcherServlet;应用控制器其实拆为处理器映射器(HandlerMapping)进行处理器管理和视图解析器(ViewResolver)进行视图管理;页面控制器/动作/处理器为Controller接口(仅包含ModelAndViewhandleRequest(request,response)

方法)的实现(也可以是任何的POJO类);支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。SpringWebMVC框架也是一个基于请求驱动的Web框架,并且也使用了前端控制器模式来进行设计,再根据请求映射规则分发给相应的页面控制器(动作/处理器)进行处理.首先让我们整体看一下SpringWebMVC处理请求的流程如图3所示:图图3SpringMVC处理流程具体执行步骤如下:1、首先用户发送请求——-—>前端控制器,前端控制器根据请求信息(如URL)来决定选择哪一个页面控制器进行处理并把请求委托给它,即以前的控制器的控制逻辑部分;图3中的1、2步骤;2、页面控制器接收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,这个对象在SpringWebMVC中叫命令对象,并进行验证,然后将命令对象委托给业务对象进行处理;处理完毕后返回一个ModelAndView(模型数据和逻辑视图名);图3中的3、4、5步骤;3、前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染;图3中的步骤6、7;4、前端控制器再次收回控制权,将响应返回给用户,图3中的步骤8;至此整个结束.5Spring技术研究Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架.Spring框架是一个分层架构,由6个定义良好的模块组成。Spring模块构建在核心容器之上,核心容器定义了创建、配置和管理bean的方式。图4Spring框架架构图4Spring框架架构其核心模块为IOC容器和AOP。4.1IOC(InversionofControl控制反转,又名依赖注入)IOC即依赖注入,利用java里的反射机制在运行时动态的去创建、调用对象,Spring框架就是在运行的时候,根据Spring的applicationContext.xml配置文件来动态的创建对象并调用对象的方法的,所以使用Spring框架后不需要用new方法创建而是通过框架自动产生一个对象,只需要在xml文件中对bean进行定义。Spring发展到3。0后,不需要在xml文件中逐个定义bean对象,只需在调用的文件中使用@Autowired来声明所调用的对象即可,使开发更加简洁方便。4。2AOP(Aspect-OrientedProgramming,面向方面编程)AOP即面向切面编程,其原理是利用代理的设计模式,未使用Spring时,开发人员需要编写大量的代码来实现AOP,现在有了Spring对AOP的支持,不仅减轻了开发的工作量提高了开发的效率,也增强了程序的可靠性。本系统中Spring的AOP主要用于对事务的管理。Spring框架主要用于降低系统模块之间的耦合度。其主要技术包括控制反转(IOC)和面向切面编程(AOP)两大方面。Spring降低耦合度的功能主要通过IOC来实现,IOC是Spring框架的核心,其原理可以理解为程序的所有组件都是被动的,初始化和调用都有容器(Spring)的负责。另外Spring提供了AOP技术,利用AOP可以对业务逻辑的各个部分进行隔离,如:日志记录、事务处理等,从而使得业务逻辑各部分的耦合度降低,提高程序的可重用性和开发效率。4.3spring的主要特性.(1)降低组件之间的耦合度,实现软件各层之间的解耦。(2)可以使用容器提供的众多服务,如:事务管理服务、消息服务、JMS服务、持久化服务等等.(3)容器提供单例模式支持,开发人员不再需要自己编写实现代码。(4)容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能.(5)容器提供的众多辅作类,使用这些类能够加快应用的开发,如:JdbcTemplate、HibernateTemplate.(6)对主流的应用框架提供了集成支持。6Hibernate与Mybatis技术研究MyBatis是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQLMaps和DataAccessObjects(DAO)。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(PlainOldJavaObjects,普通的Java对象)映射成数据库中的记录.每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpathresource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源.6。1功能架构Mybatis的功能架构分为三层,如图5所示:图4Mybatis架构图4Mybatis架构(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等.它主要的目的是根据调用的请求完成一次数据库操作。(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。6.2工作流程(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。(2)SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。(3)SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果.(4)结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。6.3动态SQLMyBatis最强大的特性之一就是它的动态语句功能。如果您以前有使用JDBC或者类似框架的经历,您就会明白把SQL语句条件连接在一起是多么的痛苦,要确保不能忘记空格或者不要在columns列后面省略一个逗号等。动态语句能够完全解决掉这些痛苦.尽管与动态SQL一起工作不是在开一个party,但是MyBatis确实能通过在任何映射SQL语句中使用强大的动态SQL来改进这些状况。动态SQL元素对于任何使用过JSTL或者类似于XML之类的文本处理器的人来说,都是非常熟悉的.在上一版本中,需要了解和学习非常多的元素,但在MyBatis3中有了许多的改进,现在只剩下差不多二分之一的元素。MyBatis使用了基于强大的OGNL表达式来消除了大部分元素。MyBatis是一个可以自定义SQL、存储过程和高级映射的持久层框架。只使用简单的XML和注解来配置和映射基本数据类型、MAP接口和POJO(简单的JAVA对象)到数据库记录。相比另一流行的持久层框架Hibernate,MyBatis是一种“半自动化”的ORM(对象关系映射)实现,可以进行更为细致的SQL优化减少查询字段。因为本系统主要是对数据库的数据进行处理,而且数据量会比较大,结构比较稳定,因此对SQL语句应进行更高度的优化,所以本系统选择MyBatis作为数据库持久层框架.相对Hibernate的全自动化,Mybatis是半自动化的ORM框架,虽然不如全自动化更节省开发人员时间,但是对于对性能要求较高的系统,Mybatis可以对SQL语句自由进行优化,而且现在有MybatisGenerateCode等插件工具可以实现自动生成实体类和基本的select,insert,delete及update语句。减少了Mybatis与Hibernate在开发复杂度上面差距。表1是使用zakisoft工具对Hibernate和Mybatis的执行效率进行的测试数据,其中执行时间为平均每条数据的执行时间,insert测试数据为10000条,select、delete、update每次测试均为随机选择、删除、更新一条数据,执行次数100次。根据以上调研及测试,综合考虑,本系统采用Mybatis框架。7。管理员及权限模块实现系统建立初期,只有超级管理员一个角色和用户,超级管理员可以创建其他角色,并为角色分配不同的权限,例如:web菜单维护角色、新闻内容管理角色、web布局管理角色以及文件管理等角色.然后创建web智能管理系统的后台管理员用户,每个用户有其对应的权限角色。例如拥有菜单维护的权限的用户,可以创建前台网站菜单并分配该菜单对应的主页。不同角色的管理员拥有不同的权限,在很大程度上保证了前台web系统的安全性。7框架组合经过对各个框架的研究,系统采用SSM框架组合,分别取Springmvc、spring3.0、Mybatis各框架中优秀模块进行组合,实现MVC架构模式。取Springmvc中的Action层与JSP页面之间的交互响应、拦截器,过滤器等功能作为view层和controller层;Mybatis作为model层,负责实例、JDBC连接以及数据持久层的功能;Spring作为一个轻量级的框架,采用其核心模块IOC、AOP、Test,其中,IOC依赖翻转用来连接各个层之间对象,简化各个对象之间调用;由于基于反射及代理模式的面向切面编程开销比较大,本系统中只用来进行事务管理,负责事务的回滚机制,Spring的Test机制使得测试变得不再复杂,可以采用非容器依赖的编程方式进行大部分测试工作,此外Spring还担当着MVC各个层之间的无缝连接工作,否则即使各个框架都很优秀也无法发挥出其最大的作用。在SSM整合框架中,每一个框架都发挥着自己最擅长的方面:Springmvc注重于降低表现层与逻辑层的耦合度,在视图层和控制层发挥作用;Spring作为整个框架的核心部分,起到了桥梁的作用,对业务层的层次深化,在业务层通过其IOC技术的对象依赖注入和AOP技术的事务分离,更深层次的降低了耦合程度;MyBatis框架主要负责Java对象和关系数据库之间的映射,在数据持久层上提供数据的访问。通过应用SSM整合框架,可以将整个系统开发的结构大致分为如图2所示。图6SSM框架结构图6SSM框架结构3.1框架组合实现通过web.xml,Structs.xml,applicationContext.xml,mybatis-config。xml这4个配置文件搭建web系统的整体框架,使之符合MVC架构模式。web.xml文件中通过context-param配置了Spring的上下文位置,并通过listener配置,通知容器加载Spring及Struct2的配置文件。Structs。xml主要是对页面提交的请求以及Action返回的页面进行对应。applicationContext。xml是Spring的配置文件,其中<context:component-scanbase-package="cn.project"/>,可以实现使用annotation自动注册bean,并检查@Required,@Autowired的属性是否已经被注入.使用AOP定义了事务,除了以get,find,select方法名开头的方法外,其他service层的方法均有回滚机制,保证了事务的原子性、一致性、持久性。此外还配置了mybatis文件位置以及数据库的相关信息,将业务层和数据层分离并联系起来。mybatis-config。xml文件中配置了MAPPER的加载方式,本系统中采用非懒汉式加载,即在系统初始化时加载所有的MAPPER文件,防止出现初始化并发问题。经过编写各配置文件组合3个框架,完成了系统的整体架构的搭建.SSM框架的组合分别是Springmvc、Spring3.0、MyBatis,三者组合实现MVC架构模式。Springmvc的主要功能是使用action层与JSP页面进行交互。Mybatis是半自动化的ORM框架,负责数据持久层的功能,可以对SQL语句进行自动优化,并且可以使用插件实现自动生成实体类及基本的语句。Spring核心模块IOC依赖反转各个层之间的对象,简化对象的调用。SSM框架在Web应用系统开发中具有以下优势:(1)系统开发效率提升。框架可以提供高效的组件和视图处理,而且以配置文件的方式定义程序逻辑。需求改变仅需修改控制逻辑的配置文件,无需关心底层框架的实现,从而提高系统开发效率.(2)模块间相互独立.SSM框架具有“低耦合高内聚”的特点。设计人员可以按功能将系统划分为不同的功能模块,模块之间相互独立,每个模块的修改不影响其他模块.(3)角色分离。框架为开发者提供不同的接口,前端页面设计人员只需关注JSP页面的设计,后台逻辑开发者对业务逻辑开发程序。前端和后台的人员相互独立,互不影响。(4)缩短开发周期,降低项目开发成本。框架可以适用于各种类型开发人员协同工作,降低了对开发人员知识和技能的要求,加快了开发速度。8结束语文章结合高校项目管理的特点,提出采用Strut2、Spring、Mybatis三者整合框架SSM的设计思想,设计并实现了高校项目管理系统。根据项目实际开发过程与结果,SSM框架很少的降低了项目开发的耦合度,实现表示层、业务层与数据层的分离,使得系统开发过程更合理化,提高系统开发后的可扩展性和可维护性.该系统已通过测试,在广西大学投入使用,运行稳定、效果良好。9参考文献[1] 张俊萍;朱小冬;侯娜;张鲁;梁欣;;基于SSM的软件体系结构开发过程研究[J];计算机测量与控制;2011年08期[2]ﻩ谌湘倩;狄文辉;孙冬;;基于SSH框架与AJAX技术的JavaWeb应用开发[J];计算机工程与设计;2009年10期[3] 任晓鹏;赵文兵;张春平;;基于框架的Web系统开发研究[J];计算机工程与设计;2010年04期[4]ﻩ王艳清;陈红;;基于SSM框架的智能web系统研发设计[J];计算机工程与设计;2012年12期[5] 王钱;王蓉;张利;;基于iBatis的通用数据持久层的研究与设计[J];微计算机信息;2007年12期[6]ﻩ刘军;戴金山;;基于SpringMVC与iBATIS的轻量级Web应用研究[J];计算机应用;2006年04期[7] 吴志霞;陈平;;基于S2SH的在线项目管理平台的设计与实现[J];计算机与现代化;2011年08期[8]ﻩ谌湘倩;狄文辉;孙冬;;基于SSH框架与AJAX技术的JavaWeb应用开发[J];计算机工程与设计;2009年10期[9]ﻩ祝世东;基于MVC设计模式的Struts框架在建材检测系统中的研究与应用[D];沈阳理工大学;2010年[10] 周永来;基于复用的JavaEE快速Web开发架构的研究与应用[D];华北电力大学(北京);2008年[11] 邓斯红;基于AJAX和SSH集成框架的国有资产管理系统[D];北京化工大学;2010年[12]ﻩ张春华;基于MVC模式的Struts框架的研究与应用[D];吉林大学;2010年教师评语及成绩评阅成绩__________评阅时间__________教师签名__________分类号密级中国地质大学(北京)本科毕业设计题目基于MATLAB的图像增强技术的研究英文题目ImageEnhancementTechnologyResearchBasedOnMATLAB学生姓名胡韬院(系)信息工程学院专业电子信息工程学号1010093221指导教师傅平职称副教授二零一三年五月中国地质大学(北京)本科毕业设计(论文)任务书学生姓名胡韬班级10100932专业电子信息工程导师姓名傅平职称副教授单位信息工程学院毕业设计(论文)题目基于MATLAB的图像增强技术的研究毕业设计(论文)主要内容和要求:主要内容:1.研究数字图像处理技术,对其理论知识进行详细了解。2。研究传统的图像增强理论,了解传统图像增强的技术方法。3.研究基于小波变换的图像增强理论,并了解其方法。4。通过MATLAB的学习,进行图像增强技术的仿真实验.5。比较各种方法的特点给予一定的评价。要求:1。查阅和收集相关的文献和资料,制定研究计划和方法。2。完成代码的编写和程序的调试。3.完成实验的仿真,并书写报告。毕业设计(论文)主要参考资料:[1]秦襄培.MATLAB图像处理与界面编程[M].北京:电子工业出版社,2009.[2]飞思科技产品研发中心.小波分析理论与MATLAB7实现[M].北京:电子工业出版社,2005.[3]方勇,戚飞虎。基于软阚小波图像增强方法[M].计算机工程与应用,2002。[4]章毓晋.图象工程上册—图象处理(第二版)[M]。北京:清华大学出版社,2006。[5]孙延奎。小波分析及其应用[M].北京:机械工业出版社,2005。[6]黄红波。一种基于二维小波块阚值数字图像去噪方法[N].湖南:湖南理工学院报,2006。[7]丁文佳。小波变换在图像增强中的应用研究.北京:北京理工大学出版社,2003.[8]李朝辉;张弘。数字图像处理及应用。北京:机械工业出版社,2004。[9]郭李.基于分数阶微分和小波分解的图像增强.中国科技论文在线,2011.[10]高仕龙。一种基于小波变换和直方图均衡化的图像增强方法.西华大学学报。自然科学版.第26卷第3期[11]于万波。基于MATLAB的图像处理。北京:清华大学出版社,2008。[12]章毓晋.图像处理与分析.北京:北京清华大学出版社,2004。[13]闫敬文.数字图像处理MATLAB版.北京:国防工业出版社,2007。[14]GerardBlanchet;MauriceCharbit。DigitalSignalandImageProcessingusingMATLAB。Wiltshire:AntonyRoweLtd,2006。毕业设计(论文)应完成的主要工作:1。查阅相关文献及资料,制定研究计划和方法,完成对图像增强理论知识的了解。2.研究传统图像增强技术,主要是空间域和频率域的图像增强。3.研究基于小波分析的图像增强技术,并完成相应的仿真.4.根据所得的仿真结果,对与图像增强技术的方法给予一定的评价,分析各种方法的优缺点。毕业设计(论文)进度安排:序号毕业设计(论文)各阶段内容时间安排备注1完成资料收集、调研与学习2012。1.20.-2013。3。12开题报告2熟悉各种图像增强方法及相关理论2013。3.13-2013。3.293编写代码并调试2013。3.30-2013。4。182013。4。18中期检查4进行仿真,并得出相应的结果2013。4.19-2013.5.105撰写毕业论文2013.5.11-2013.5。256准备答辩2013.5.25—2013.6.52013。6。5毕设答辩课题信息:课题性质:设计√论文课题来源:教学√科研生产其它发出任务书日期:2012年12月7日指导教师签名:年月日教研室意见:教研室主任签名:年月日学生签名:摘要数字图像处理是一门新兴技术,随着计算机硬件的快速发展,使得数字图像的实时处理已经成为可能,同时由于数字图像处理的各种算法的出现,使其处理速度越来越快,能更好的为人们服务。数字图像处理是一种通过计算机采用一定算法对图形图像进行处理的技术.这项技术已经在各个领域上都有了比较广泛的应用。数字图像处理的信息量很大,对处理速度的要求也很高。MATLAB以其强大的运算和图形展示功能,使得图像处理变得更加简单和直观。本文介绍了MATLAB语言的特点,基于MATLAB的数字图像处理环境,并介绍了传统的空间域和频率域的图像增强方法,此外还介绍了一种基于小波变换的图像增强技术,同时针对这些数字图像处理的原理进行概述。最后,利用MATLAB对空间域、频率域和小波阀值去噪进行仿真和分析,通过仿真图对比,得到很好的实验效果,通过对比,表明小波变换进行去噪相对于传统图像处理方法的优越性,具有很强的研究意义。关键词:数字图像处理;MATLAB;小波阀值去噪;小波变换ABSTRACTDigitalimageprocessingisanemergingtechnology,withtherapiddevelopmentofcomputerhardware,real—timeprocessingofdigitalimagehasbecomepossibleduetotheemergenceofdigitalimageprocessingalgorithmsatthesametime,makingitfasterandfasterprocessingspeed,betterforPeopleservices.Digitalimageprocessingisacomputergraphicsimageprocessingtechnologyusingacertainalgorithm.Thistechnologyhasawiderangeofapplicationsinvariousfields。Digitalimageprocessingoflargeamountofinformation,theprocessingspeedisalsohigh.MATLABwithitspowerfulcomputingandgraphicsdisplayfunctions,sothatitmakeimageprocessingbecomeseasierandmoreintuitive.ThisarticledescribesthefeaturesoftheMATLABlanguage,MATLAB-baseddigitalimageprocessingenvironment,anddescribesthespatialandfrequencydomainimageenhancementmethods,besides,basedonwavelettransformimageenhancementtechnologyandbothofthesedigitalimagesprocessingoverviewprinciple。Finally,theuseofMATLABsimulationandanalysisofthespatialdomain,frequencydomainandwaveletthresholdde-noising,Simulationandcomparison,goodtestresults,bycontrast,thatthewavelettransformde-noisingrelativetotheconventionalimageprocessingmethodissuperior,hasastrongsignificance.Keywords:digitalimageprocessing;MATLAB;waveletthresholdde-noising;wavelettransform目录TOC\o”1—3”\h\z\uHYPERLINK\l”_Toc358368822"1绪论1_Toc358368827"2。1何为数字图像3HYPERLINK\l”_Toc358368828”2.1.1采样3HYPERLINK\l”_Toc358368829”2。1.2量化3_Toc358368831”2。1。4采样与量化参数的选择3HYPERLINK\l”_Toc358368832"2。2数字图像处理概述4_Toc358368835"2.2.3基本特点5HYPERLINK\l”_Toc358368836”2。2。4主要应用5HYPERLINK\l”_Toc358368837"3MATLAB基础知识介绍63。1MATLAB简介6HYPERLINK\l”_Toc358368839"3.2MATLAB的发展历程6_Toc358368841”3。3。1MATLAB主包组成74传统方法图像增强9HYPERLINK\l”_Toc358368845"4.1内容简介9HYPERLINK\l”_Toc358368846”4。2基于空间域图像增强94.2.1增强对比度10HYPERLINK\l”_Toc358368848"4。2。2图像求反11HYPERLINK\l”_Toc358368849”4。3空间域滤波增强114。3。1基本原理11_Toc358368852”4。3.3非线性平滑滤波器13HYPERLINK\l”_Toc358368853”4。3.4线性锐化滤波器134.4基于频率域图像增强144.4。1基本原理14HYPERLINK\l”_Toc358368856”4。4.2低通滤波145小波分析法图像增强17HYPERLINK\l”_Toc358368859"5。1小波分析法的介绍17_Toc358368861”5.3小波变换基本理论185。3。2一维离散小波变换(DWT)195.3。3二维连续小波变换19HYPERLINK\l”_Toc358368865”5.3。4二维离散小波变换20HYPERLINK\l”_Toc358368866"5。4小波变换的多尺度分析20HYPERLINK\l”_Toc358368867”5。5基于小波变换的图像增强20_Toc358368869"5.5。2非线性增强22HYPERLINK\l”_Toc358368870”5。5.3图像钝化22HYPERLINK\l”_Toc358368871”5.5.4图像锐化235。5。5基于小波变换的图像阀值去噪23HYPERLINK\l”_Toc358368873"结论25HYPERLINK\l”_Toc358368874”致谢26_Toc358368876”附录281绪论1。1课题研究的目的及意义数字图像处理(DigitalImageProcessing),即是利用计算机或者其他数字硬件对从图像信息转换而得到的电信号再进行某些数学运算,以提高图像的实用性。例如去掉图像的噪声,抽取图像中的一些目标的轮廓,图像的勾边处理,提取图像中的特征以及把黑白图像映射为彩色图像等技术。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。本文主要研究图像增强技术。图像增强的目的是改善图像的视觉效果,并把图像处理成为适于计算机分析或控制的某种形式.为了适应各种用途,图像增强需要采取各种技术手段综合处理,而且针对不同用途,处理手段也大相径庭.为满足图像增强,图像往往要发生畸变。图像增强包括的内容广泛.在图像处理系统中,图像增强技术作为预处理部分的基本技术,是系统中十分重要的一环。迄今为止,图像增强技术己经广泛用于军事、地质、海洋、森林、医学、遥感、微生物以及刑侦等方面。MathWork公司推出的MATLAB软件是我们研究这门课题主要使用工具。应用MATLAB丰富、实用、高效的指令及模块以及友好的界面,可以使人较快地认识、理解图像处理的相关概念,并逐步掌握数字图像信号处理的基本方法,进而够解决相关工程和科研中的问题。通过对传统图像处理的方法和基于小波变换的图像处理方法的研究学习,以及仿真对比,得出小波变换法在图像增强处理中的相比于空间域和频率域处理方法的优势。1。2国内外研究现状早在20世纪60年代起,计算机技术就已经进入指纹识别和鉴定领域,美、日、英、法本等计算机发达的国家先后研制出各具特色的自动识别指纹系统,开辟了指纹鉴定新的途径。如今,计算机指纹识别技术在我们生活中已经开始发挥着越来越重要的作用,同时它已经在司法、数字加密、电子商务、金融安全等各个领域得了广泛而良好的应用。虽然我国直到20世纪80年代才开始进行指纹自动识别系统的研究,但目前已经取得了令人瞩目的进展。清华大学、北京大学、吉林大学、哈尔滨工业大学、公安部第二研究所、北京市公安局刑事科学技术研究所等单位都获得了不少研究的成果,并设计出一些自动化或半自动化的指纹鉴定系统。特别值得提及的是,北京大学研制的指纹自动鉴定系统现在已经走向成熟,并走进了国际市场。总体来说,图像处理技术的发展大致经历了初创期、发展期、普及期和实用化期4个阶段。初创期开始于20世纪60年代,当时的图像采用像素型光栅对其进行扫描显示,大多数采用中、大型机进行处理。然而,在这一时期,由于图像存储成本和处理设备造价高,因而其应用面很窄.70年代进入发展期,这时开始大量采用大型机进行处理,图像处理也逐渐改用光栅扫描显示方式,特别是出现了CT和卫星遥感图像,这对图像处理技术的发展起到了非常好的促进作用。到了80年代,图像处理技术逐渐进入普及期,此时的计算机己经能够承担起图形图像处理的任务。VLSI的出现使得处理速度大大提高,而造价却进一步降低,这极大的促进了图像系统的普及和应用.图像增强是图像处理的其重要组成部分,传统的图像增强方法对于改善图像质量发挥了其重要作用。随着对图像增强技术研究的不断深入和发展,新的图像增强方法不断出现。图像增强的方法可以大致可分为两类,一类是空间域处理方法,一类是频率域的处理法。空间域法基本上是以灰度映射为基础直接对图像的像素进行处理,映射变换取决于图像的特点和增强的目的。空间域法又可分为点运算和模板运算。点运算是根据图像的像素点按照一定的变换原则逐个处理,与周围像素点无关。常见的方法有灰度变换、灰度级校正、规定化和直方图均衡化等.模板运算是以某一个像素点为核心,像素点邻域为相关点,逐个处理模板.常见的方法有中值滤波、领域平均法、拉普拉斯算子等。频率域法是在图像的某种变换域内,对变换后的系数经过一定的规则进行运算,接着再反变换到原来的空间域从而得到增强的图像.这是一种间接的图像处理方法。常见的方法有高通滤波、低通滤波、同态滤波、带阻滤波等.小波变换最早是由法国地球物理学家于二十世纪八十年代初在分析地球物理信号时,作为一种信号分析的数学工具而被提出来的,到了八十年代中后期获得了较快发展,目前已成为一个重要的数学分支。小波分析对传统傅立叶分析做出了里程碑式的进展,是调和这一数学领域半个世纪以来的工作结晶,是目前在许多学科和工程技术中的一个非常广泛的课题。它可以作为表示函数的一种新基底或作为时频分析的一种新技术,是多方面有力的分析工具,已经广泛的应用于信号和图像处理、地质勘探、语音识别与合成、雷达、CT成像、天体识别、机器视觉、机械故障诊断与监控、分形以及数字电视等领域。小波变换分析通过伸缩运算和平移运算,对信号函数逐步进行多尺度细化,最终达到低频处频率细分,高频处时间细分。由于它能自动适应时频信号分析的要求,从而可以聚焦到信号的任何一个细节,享有“数学显微镜"之称.此外,它还成功解决了傅里叶变换不能解决的许多难题,成为了继傅里叶变换以来的一个重大突破.为了使图像质量进一步提高,我们所提到的传统的方法都不能很好的解决这个问题,比如频率域法在变换过程中存在一些不确定的因素,然而空间域法又不能很好地集中能量进行处理。由于目前还没有一种通用的衡量图像质量的指标能够用来评价图像增强方法的优劣,图像增强理论有待进一步完善.因此,图像增强技术的探索具有实验性和多样性。增强的方法往往具有比较强针对性,这使得对于不同类型的图像有不同的适合的图像增强方法.例如对于一张主要是低频信号的图像使用高通滤波之后图像增强的质量反而会变得更差。所以我们往往使用几种不同图像增强方法的组合或使用调节参量的方法来处理具体的图像。目前大部分的方法都是传统的空间域、频率域以及他们的组合方法,而小波分析法正是一种后来兴起的能够很好处理图像增强的方法。1.3本文研究内容本文分别涉及到数字图像处理、空间域图像增强、频率域图像增强、小波分析图像增强、MATLAB图像处理应用等方面的内容.本文对上面几种图像增强方法都给予相应的介绍和实际应用,并最后对各种方法进行深入的研究和对比。2数字图象处理的简介2.1何为数字图像数字图像,又称为数码图像或数位图像,是二维图形用有限的数字数值像素的表示.数字图像是以像素为基本元素的、由模拟图像数字化得到的、可以用数字计算机或数字电路存储和处理的图像.像素(Pixel,或像元)是数字图像的基本元素,像素是在模拟图像数字化时对连续空间进行离散化得到的。每个像素具有整数行(高)和列(宽)位置坐标,同时每个像素都具有整数灰度值或颜色值。通常,像素在计算机中保存为二维整数数组的光栅图像,这些值经常用压缩格式进行传输和存储。数字图像可以由许多不同的出入设备和技术生成,例如数码相机、扫描仪、坐标测量仪等等,也可以从任意的非图像数据合成得到,例如数学函数或者三围几何模型,三围几何模型是计算机图形学的一个重要的分支。数字图像处理领域就是研究他们的变换算法。然而我们进行图像数字化,往往要经历采样、量化和编码三个步骤(即模数转换)。2。1.1采样采样(sampling)是指将空间上或时域上连续的图像(模拟图像)变换成离散采样点(像素)集合的操作。由于图像基本是采取二维平面信息的分布方式来描述的,所以如果要对其进行采样,首先要将二维信号转变为一维信号,再对其进行完成采样操作(即将二维采样转化为两次一维采样来完成).通常做法是,先沿着垂直方向按照一定间隔从上到下的顺序沿水平方向直线扫描,取出各水平线上灰度值(浓淡值)的一维扫描.然后再对一维扫描线信号按一定间隔采样得到离散信号,即先沿垂直方向采样,再沿水平放心采样。采样后得到的二维离散信号的最小单位就是像素。一般来说水平和垂直方向的采样间隔相同。对于运动图像(即时间域上连续的图像),还需要在时间轴上采样。通过采样,若设横向的像素为M,纵向的像素为N,则画面的大小可以表示为“M*N"个像素.2。1。2量化量化就是把采样后所得到的各像素的灰度值从模拟量转换为离散量。这是因为模拟图像虽然经过了采样,在空间上离散化为像素,但是采样所得的像素值(即灰度值)仍然是连续量,顾要进行量化。一般来说,像素量化后用一个字节8bit来表示。即把黑—灰—白的连续变化的灰度值量化为0~255共256级别,分别对应每个灰度值的浓淡程度,叫做灰度等级或灰度标.通常情况下设0为白,1为黑。量化的准则不同将会导致不同的量化效果,从不同的角度可以将它分为4类。按量化级步长均匀性可分为均匀量化和非均匀量化,按量化对称性可分为对称量化和非对称量化,按量化时采样点相互间的相关性可分为无记忆量化和有记忆量化,按量化时处理的采样点数了分为标准量化和矢量量化。2.1。3编码图像编码是指在满足一定质量(信噪比的要求或主观评价得分)的条件下,以较少的比特数表示图像或图像中所包含的信息的技术。通常的编码方案有预测编码和变换域编码.2。1。4采样与量化参数的选择一幅图像在采样时,行、列的采样点和量化时每个像素量化的级数,既影响数字图像的质量,也影响到数字图像数据量的大小。假设图像取M*N个样点,每个像素量化后的灰度二进制位数为Q,一般Q总取2的整数幂,则存储一幅数字图像所需的二进制位数为:b=M*N*Q(b),字节数为:B=M*N*Q/8(Byte)。对于K的取值范围,原则上上K越大重建图像失真越小,然而实际情况人眼应用K取5~8,二对于卫星图片等图像分析K应取8~12。对于一幅图像,当量化级数Q一定时,采样点数M*N对图像质量有着显著的影响。同理,当图像的采样点数一定时,采用不同的量化级数图像质量也不一样。由此可知对于具体的图像我们要根据图像的特征来确定采样和量化参数.2。2数字图像处理概述2。2.1概念数字图像处理(digitalimageprocessing)即是通过计算机对图形进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。它的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农业、牧业、林业、环境、军事、工业和医学等方面的应用需求增长。2。2。2研究内容总的来说,数字图象处理的研究主要包括一下几个方面的内容:算术逻辑操作、几何变换、图像分割、图像增强、模式识别、图像压缩、图像复原及图像形态学处理。(1)算术逻辑操作.它的操作主要是以像素为基础在两幅或多幅图像之间进行。图像的逻辑操作也是基于像素的,在对灰度级图像进行逻辑操作的时候,像素值被当作二进制字符处理,同时“与、或、非”这三种逻辑算子完全函数化。在数字图象处理中,加法运算可降低加性随机噪声;减法运算可以检测物体运动变化;乘法运算可用来标记感兴趣的区域;除法运算多用于多光谱遥感图像的分析处理,从而扩大不同物体的差异。由上可知加减法运算用处最大.(2)几何变换.我们通常利用几何运算来改变图像中像素间位置关系,从而达到处理图像的目的。即建立一种原图像与变换图像之间的映射关系。变换方法主要有平移、放缩、旋转、镜像和转置等.(3)图像分割。作为图像处理的关键技术之一,图像分割就是将图像划分为构成它的子区域或对象。其算法一般基于亮度的特征,第一类方法基于亮度不连续变化的分割图像。第二类方法是依照事先制定的准则将图像分割为相似的区域。图像分割包括边缘检测、门限处理和间断检测。(4)图像增强。作为本文主要研究内容,传统的方法有空间域图像增强和频率域图像增强,除此之外还有基于小波分析的图像增强方法。(5)模式识别。模式识别主要包括数据获取、预处理、特征提取和决策分类.它是指在一定经验和认识的基础之上,从大量信息数据入手,利用数学和计算机的推理方法对信息进行自动识别。(6)图像压缩.由于数字图像具有大量的数据量,且实际上它又具有很大的压缩空间。因此,我们可以通过对图像压缩来减少图像的信息量,基本原则是去除冗余信息,这种变换在图像传输或存储之前进行,需要的时候我们可以对其解压以重构图像。(7)图像复原。由于设备往往会造成错位、扫描线漏失等各种不可避免的原因导致图像质量下降。所以我们需要进行图像的复原,即是根据事先建立的系统退化模型将质量降低的图像重建成接近或完全无退化的原始图像的过程。(8)图像形态学处理。图像形态学是由一组形态学代数算子组成,最基本的算子包括腐蚀、膨胀、闭运算、开运算等.通过对这些算子的组合应用,我们可以实现对图像形状和结构分析处理。形态学处理可以完成边缘检测、图像滤波、特征提取、图像分割、图像增强和图像恢复等工作.2.2。3基本特点(1)数字图像处理的信息大多是二维信息,处理信息量很大.如一幅256×256低分辨率黑白图像,要求约64kbit的数据量;对高分辨率彩色512×512图像,则要求768kbit数据量;如果要处理30帧/秒的电视图像序列,则每秒要求500kbit~22.5Mbit数据量。因此对计算机的计算速度、存储容量等要求较高。(2)数字图像处理占用的频带较宽。与语言信息相比,占用的频带要大几个数量级。如电视图像的带宽约5。6MHz,而语音带宽仅为4kHz左右。所以在成像、传输、存储、处理、显示等各个环节的实现上,技术难度较大,成本亦高,这就对频带压缩技术提出了更高的要求。(3)数字图像中各个像素是不相独立的,其相关性大。在图像画面上,经常有很多像素有相同或接近的灰度。就电视画面而言,同一行中相邻两个像素或相邻两行间的像素,其相关系数可达0.9以上,一般来说相邻两帧之间的相关性要大于帧内的相关性.因此,图像处理中信息压缩的潜力很大。(4)由于图像是三维景物的二维投影,一幅图像本身不具备复现三维景物的全部几何信息的能力,很显然三维景物背后部分信息在二维图像画面上是反映不出来的.因此,要分析和理解三维景物必须作合适的假定或附加新的测量,例如双目图像或多视点图像。在理解三维景物时需要知识导引,这也是人工智能中正在致力解决的知识工程问题。(5)数字图像处理后的图像一般是给人观察和评价的,因此受人的因素影响较大.由于人的视觉系统很复杂,受环境条件、视觉性能、人的情绪爱好以及知识状况影响很大,作为图像质量的评价还有待进一步深入的研究。另一方面,计算机视觉是模仿人的视觉,人的感知机理必然影响着计算机视觉的研究。例如,什么是感知的初始基元,基元是如何组成的,局部与全局感知的关系,优先敏感的结构、属性和时间特征等,这些都是心理学和神经心理学正在着力研究的课题。2。2。4主要应用(1)生物医学.在医学上我们可以利用电磁波谱成像分析系统病情。如显微镜图像分析、DNA成像分析、CT及核磁共振、超声波、X射线成像分析等。三维测量可视化软件系统可对各类医学断层图像进行分析处理,提供诊断依据.(2)遥感.对农业、林业等资源的调查,农作物长势监测,自然灾害检测、预报,地势、地貌测绘以及地质构造解释、探矿,环境污染检测等等.(3)工业生产。无损探伤,石油勘探,生产过程自动化(零件识别,装配质量检查),工业机器人视觉等。(4)军事。可用于航空及卫星侦查照片的测绘、判读,雷达、声纳图像处理,导弹制造,军事仿真等。(5)通信.图像传真,可视电话,卫星通讯,数字电视等。(6)公安系统。指纹识别,印鉴、伪钞识别,安检,手迹、印记鉴别分析等。(7)气象预报。获取气象风云图进行测绘、判读等。(8)高能物理。核子泡室图片分析.(9)考古。回复珍贵的文物图片、名画、壁画。3MATLAB基础知识介绍3.1MATLAB简介MATLAB是MatrixLaboratory(“矩阵实验室”)的缩写。它是由MathWorks公司开发的,目前国际上最流行、应用最广泛的一种集数字运算、程序设计、图像测绘、文件管理、系统仿真等功能与一体的科学与工程计算软件。是国内外高校和研究部门进行科学研究的重要工具之一。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。因此其广泛应用于自动控制、数学运算、信号分析、计算机技术、图像信号分析、财务分析、生物医学工程和语音处理等领域。3.2MATLAB的发展历程20世纪七十年代,时任美国新墨西哥大学计算机科学系主任的CleveMoler出于减轻学生变成负担的动机,为学生设计了一组调用LINPACK和EISPACK矩阵软件工具包程序库的“通俗易用"的接口,取名为MATLAB。上个世纪初,CleveMoler与工程师JoneLittle用C语言重写MATLAB的内核,于1984年成立MathWorks公司,并把MATLAB正式推向市场.保留原有的数值计算能力外,新增了数据图视功能。时至今日,经过MathWorks公司的不断完善,MATLAB已发展成为适合多学科,多种工作平台的功能强大的大型软件。在国外,MATLAB已经受了多年考验。在欧美等高校,MATLAB已成为线性代数、数理统计、数字信号处理、自动控制理论、动态系统仿真、时间序列分析等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。3.3MATLAB的组成MATLAB组成如图3-1所示。MATLAB主包SUMULINK工具箱MATLAB主包SUMULINK工具箱MATLAB语言开发(工作)环境数学函数库图像处理应用程序接口3。3.1MATLAB主包组成(1)MATLAB语言.MATLABA是以复数矩阵为基本编程单元的一种程序设计语言.由两部分组成:基本部分和工具箱。如:例1a=[1+2i2]b=[12]a+b=[2+2i4](2)MATLAB开发环境。集成了MATLAB应用程序和工具的工作空间。这些工具可以方便用户使用MATLAB的函数和文件.(3)图形处理.用MATLAB可以完成2D和3D数据图示标注、图像处理、动画生成、图形显示等功能的高层MATLAB命令,也包括用户对图形图像等对象进行特性控制的低层MATLAB命令,以及开发GUI应用程序的各种工具。(4)MATLAB数学函数库.MATLAB使用的各种数学算法的总称.包括各种初等函数的算法,也包括矩阵运算、矩阵分析等高层次数学算法。(5)MATLAB应用程序接口(API)。MATLAB为用户提供的一个函数库,借助API接口函数,用户能够实现MATLAB与c\c++程序或者FORTRAN程序的相互调用。3。4MATLAB的语言特点一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点,正如同FORTRAN和C等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB最突出的特点就是简洁。MATLAB用更直观的,符合人们思维习惯的代码,代替了C和FORTRAN语言的冗长代码。MATLAB给用户带来的是最直观,最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。(1)数值算法稳定可靠,库函数丰富。MATLAB的一个最大的特点就是强大的数值计算能力,他提供了许多调用方便的数学计算函数。例如:求解特征值:e=eig(A)。(2)完善的二维与三维图形绘制与显示功能,支持数据的可视化操作,方便的显示程序的运行结果。(3)源程序的开放性。出内部函数以外,所有MATLAB的核心文件和工具箱文件都是可读可改的源文件,用户可以通过对源文件的修改以及加入自己的文件构成新的工具箱.(4)拥有强大的工具箱。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分有几百个核心内部函数,工具箱则是有各个领域的高水平专家编写的,所以用户不必编写该领域的基础程序就可以直接进行更高层次的研究。(5)MATLAB是解释执行语言。MATLAB程序不用编译生成可执行文件就可以运行,解释执行时程序的执行速度较慢,效率比C等高级语言要低一些,而且无法脱离MATLAB环境运行MATLAB程序,这是其特点,但是MATLAB的编程效率远远高于一般的高级语言,这使得我们可以把大量的时间花费在对算法的研究上,而不是浪费在大量的代码上.(6)提供了功能强大的系统动态仿真工具箱—SIMULINK.用户可以绘制框图模拟线性、非线性、连续或离散系统,通过SIMULINK仿真并分析该系统.(7)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。3。5MATLAB在图像处理中的应用图像处理工具包是由一系列支持图像处理操作的函数组成的.所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等)、图像分析和统计、二值图像操作等。下面就MATLAB在图像处理中各方面的应用分别进行介绍。(1)图像文件格式的读写和显示。MATLAB提供了图像文件读入函数imread(),用来读取如:bmp、tif、tiffpcx、jpg、gpeg、hdf、xwd等格式图像文,此外还可以用imfinfo()函数来查看图像文件的信息,图像写出函数imwrite(),还有图像显示函数image()、imshow()等等。(2)图像处理的基本运算。MATLAB提供了图像的和、差等线性运算,以及卷积、相关、滤波等非线性算。例如,conv2(I,J)实现了I,J两幅图像的卷积.(3)图像变换。MATLAB提供了一维和二维离散傅立叶变换(DFT)、快速傅立叶变换(FFT)、离散余弦变换(DCT)及其反变换函数,以及连续小波变换(CWT)、离散小波变换(DWT)及其反变换。(4)图像的分析和增强。针对图像的统计计算MATLAB提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。(5)图像的数学形态学处理。针对二值图像,MATLAB提供了数学形态学运算函数;腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开(Open)、闭(Close)算子、厚化(Thicken)、薄化(Thin)算子等丰富的数学形态学运算。以上所提到的MATLAB在图像中的应用都是由相应的MATLAB函数来实现的,使用时,只需按照函数的调用语法正确输入参数即可。具体的用法可参考MATLAB丰富的帮助文档。图像边缘对图像识别和计算机分析十分有用,在MATLAB中,函数edge()用于灰度图像边缘的提取,它支持六种不同的边缘提取方法,即Sobel方法、Prewitt方法、Robert方法,Laplacian2Gaussian方法、过零点方法和Canny方法.4传统方法图像增强4。1内容简介增强图像中的有用信息,它可以是一个失真的过程,其目的是要改善图像的视觉效果,针对给定图像的应用场合,有目的地强调图像的整体或局部特性,将原来不清晰的图像变得清晰或强调某些感兴趣的特征,扩大图像中不同物体特征之间的差别,抑制不感兴趣的特征,使之改善图像质量、丰富信息量,加强图像判读和识别效果,满足某些特殊分析的需要。图像增强大致可分成两大类:空间域法和频率域法.具有代表性的空间域算法有局部求平均值法和中值滤波(取局部邻域中的中间像素值)法等,它们可用于去除或减弱噪声。频率域法则是把把图像看成一种二维信号,对其进行基于二维傅里叶变换的信号增强。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰.图像增强的方法是通过一定手段对原图像附加一些信息或变换数据,有选择地突出图像中感兴趣的特征或者抑制(掩盖)图像中某些不需要的特征,使图像与视觉响应特性相匹配。在图像增强过程中,不分析图像降质的原因,处理后的图像不一定逼近原始图像。图像增强技术根据增强处理过程所在的空间不同,可分为基于空间域的算法和基于频率域的算法两大类。基于空间域的算法处理时直接对图像灰度级做运算,而基于频率域的算法是在图像的某种变换域内对图像的变换系数值进行某种修正,是一种间接增强的算法。在本文中还将再重点介绍一种后来兴起的图像增强方法:基于小波分析的图像增强法。小波分析是当前数学科学中一个迅速发展的新领域,它是在傅里叶分析的基础上发展起来的一种新时频分析方法,和傅里叶分析相比它有着许多本质上的进步。在下文中将做详细的仿真分析和介绍。4。2基于空间域图像增强图像增强处理流程图如图4-1。启动启动读入图片图片转化为灰度图图像增强处理提取处理结果结束图4-1流程图4。2。1增强对比度增强对比度实际是增强原图像的各部分的反差.实际中往往是通过原图中某两个灰度值之间的动态范围来实现的(如图4—2)。L—1变换图像灰度0L-1输入图像灰度图4—2增强对比度在图4—2中可以看出,通过变换可以使原图的较高的和较低的灰度值的动态范围减小了,而原图在二者之间的动态范围增加了,从而其范围的对比度增加了.程序代码如下:X1=imread('D:\1.jpg’);figure,imshow(X1)f0=0;g0=0;f1=70;g1=30;f2=180;g2=230;f3=255;g3=255;r1=(g1-g0)/(f1-f0);b1=g0-r1*f0;r2=(g2—g1)/(f2-f1);b2=g1—r2*f1;r3=(g3—g2)/(f3-f2);b3=g2—r3*f2;[m,n]=size(X1);X2=double(X1);fori=1:mforj=1:nf=X2(i,j);g(i,j)=0;if(f>=0)&(f<=f1)g(i,j)=r1*f+b1;elseif(f〉=f1)&(f〈=f2)g(i,j)=r2*f+b2;elseif(f>=f2)&(f<=f3)g(i,j)=r3*f+b3;endendendfigure,imshow(mat2gray(g))图像处理结果如图4-3和图4-4。图4—3原图图4—4增强对比度后图像4.2。2图像求反对图像求反是将原来的灰度值翻转,简单的说就是使黑变白,使白变黑。普通的黑白底片和照片就是这样的关系。具体的变换就是将图像中每个像素的灰度值根据变换曲线进行映射(程序代码见附录)。图像处理图如图4-5所示。图4—5取反后图像4。3空间域滤波增强一般情况下,像素的邻域比该像素要大,也就是说这个像素的邻域中除了本身以外还包括其他像素。在这种情况下,g(x,y)在x,y位置处的值不仅取决于f(x,y)在以(x,y)为中心的邻域内所有的像素的值。如仍以s和t分别表示f(x,y)在(x,y)位置处的灰度值,并以n(s)代表f(x,y)在(x,y)邻域内像素的灰度值,则t=EA[s,n(s)]为在邻域内实现增强操作,常可利用模板与图像进行卷积。每个模板实际上是一个二维数组,其中各个元素的取值定了模板的功能,这种模板操作也称为空间域滤波。4。3.1基本原理空间域滤波可分为线形滤波和非线形滤波两类.线形滤波器的设计常基于对傅立叶变换的分析.非线形空间域滤波器则一般直接对邻域进行操作.另外各种滤波器根据功能又主要分成平滑滤波和锐化滤波。平滑可用低通来实现,锐化可用高通来实现平滑滤波器:它能减弱或消除傅立叶空间的高频分量,但不影响在低频分量.因为高频分量对应图像中的区域边缘等灰度值具有较大较快变化的部分,滤波器将这些分量滤去可使图像平滑.锐化滤波器:它能减弱或消除傅立叶空间的高频分量空间域滤波器都是利用模板卷积,主要步骤如下:(1)将模板在图中漫游,并将模板中心与图中某个像素位置重合;(2)将模板上的系数与模板下对应的像素相乘;(3)将所有的乘积相加;(4)将和(模板的输出响应)赋给图中对应的模板中心位置像素。下面分别介绍在MATLAB中如何应用平滑和锐化滤波器。4.3。2线性平滑滤波器线性低通滤波器是最常用的线性平滑滤波器。这种滤波器的所有系数都是正的.对3*3的模板来说,最简单的操作是取所有系数都为1。为保证输出图像仍在原来的灰度范围内,在计算R后要将其除以9再进行赋值。这种方法称为邻域平均法。程序代码如下:I=imread('D:\2.jpg');J=rgb2gray(I);K=imnoise(J,'salt&pepper',0.02);imshow(J)figure,imshow(K)K1=filter2(fspecial('average',3),K)/255;figure,imshow(K1)title(’3*3的均值滤波器')原图像,加入椒盐噪声图像和均值滤波的图像分别如图4-6、图4—7和图4-8所示。图4-6原图图4—7加入椒盐噪声图像图4—83*3的均值滤波器处理结果4。3.3非线性平滑滤波器中值滤波器是最常用的非线性平滑滤波器。它是一种临域运算,类似于卷积,但计算的不是加权求和,而是把邻域中的像素按灰度级进行排序,然后选择改组的中间值作为输出的像素值。具体步骤:(1)将模板在图像中漫游,并将模板中心和图像某个像素的位置重合;(2)读取模板下对应像素的灰度值;(3)将这些灰度值从小到大排成一列;(4)找出这些值排在中间的一个;(5)将这个中间值赋给对应模板中心位置的像素.程序代码如下:I=imread('D:\2。jpg');J=rgb2gray(I);K=imnoise(J,’salt&pepper’,0.02);K1=medfilt2(K,[3,3]);figure,imshow(K1)中值滤波的结果如图4-9所示.图4—9中值滤波后图像4。3.4线性锐化滤波器线性高通滤波器是最常用的线性锐化滤波器。这种滤波器的中心系数都是正的,而周围的系数都是负的。对3*3的模板来说,典型的系数取值是:[-1–1–1;-18–1;-1–1-1]事实上这是拉普拉斯算子,所有的系数之和为0。当这样的模板放在图像中灰度值是常数或变化很小的区域时,其输出为0或很小。这个滤波器将原来的图像中的零频域分量去除了,也就是将输出的图像的平均值变为0,这样就会有一部分像素的灰度值小于0.在图像处理中我们一般只考虑正的灰度值,所以还有将输出图像的灰度值范围通过尺度变回到所要求的范围(程序代码见附录).处理结果如图4—10所示。图4—10空间域高通滤波4.4基于频率域图像增强4。4。1基本原理卷积理论是频率域技术的基础。设函数f(x,y)与线性位不变算子h(x,y)的卷积结果是g(x,y),即g那么根据卷积定理在频域有:Gx,y其中G(x,y)、H(x,y)、F(x,y)分别是g(x,y)、h(x,y)、f(x,y)的傅立叶变换.频率域增强的主要步骤是:(1)技术所需增强图的傅立叶变换;(2)将其与一个(根据需要设计的)转移函数相乘;(3)再将结果进行傅立叶反变换以得到增强的图。频率域增强的两个关键步骤:(1)将图像从空间域转换到频率域所需的变换及将图像从频率域空间转换回空间域所需的变换;(2)在频率域空间对图像进行增强加工操作.常用的频率域增强方法有低通滤波和高通滤波。以下分别介绍在MATLAB中如何实现.4。4。2低通滤波图像的能量大部分集中在幅度谱的低频和中频度,而图像的边缘和噪声对应于高频部分。因此能降低高频成分幅度的滤波器就能减弱噪声的影响。Butterworth低通滤波器是一种物理上可以实现的低通滤波器,n阶,截断频率为d0的Butterworth低通滤波器的转移函数为:Hu,v=1程序代码如下:I=imread(’D:\2。jpg');I1=rgb2gray(I);figure,imshow(I1)I2=imnoise(I1,’salt');figure,imshow(I2)f=double(I2);g=fft2(f);g=fftshift(g);[N1,N2]=size(g);n=2;d0=50;n1=fix(N1/2);n2=fix(N2/2);fori=1:N1forj=1:N2d=sqrt((i-n1)^2+(j-n2)^2);h=1/(1+0。414*(d/d0)^(2*n));result(i,j)=h*g(i,j);endendresult=ifftshift(result);X2=ifft2(result);X3=uint8(real(X2));figure,imshow(X3)原图和处理结果如图4-11和图4-12所示。图4-11加噪图4—12去噪4。4.3高通滤波高通滤波也称高频滤波器,它的频值在0频率处单位为1,随着频率的增长

温馨提示

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

评论

0/150

提交评论