数字图像处理系统的设计与实现_第1页
数字图像处理系统的设计与实现_第2页
数字图像处理系统的设计与实现_第3页
数字图像处理系统的设计与实现_第4页
数字图像处理系统的设计与实现_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

毕业论文:正文PAGE --毕业论文(设计)正文题目:数字图像处理系统的设计与实现

数字图像处理系统的设计与实现摘要:随着科学技术的飞速发展,图像处理技术日新月异、应用也更加广泛,已经深入到工业、医学、军事等各个领域。不同领域对图像处理的要求和侧重点不尽相同,这需要增强图像处理系统的兼容性和开放性,同时也要求图像处理系统的开发周期尽量短一些。针对上述现状,本文在深入研究图像处理系统设计原理和方法的基础上,设计了一个数字图像处理系统,实现了数字图像处理中一些基本功能。系统利用VisualC++6.0设计用户界面,通过Matlab编写核心算法,以此来完成系统各项功能。关键词:数字图像处理;VisualC++6.0;MatlabDesignandimplementationofdigitalimageprocessingsystemAbstract:Withtherapiddevelopmentofscienceandtechnology,imageprocessingtechnologychangeswitheachpassingday,theapplicationismoreextensive,hasbeendeeplyintotheindustry,medicine,militaryandotherfields.Differentfieldshavedifferentrequirementsandemphasesonimageprocessing,whichneedtoenhancethecompatibilityandopennessoftheimageprocessingsystem,butalsorequirethedevelopmentcycleoftheimageprocessingsystemasshortaspossible.Aimingattheabovesituation,thispaperdesignsadigitalimageprocessingsystembasedonthedesignprincipleandmethodoftheimageprocessingsystem,andrealizessomebasicfunctionsinthedigitalimageprocessing.ThesystemusesVisualC++6.0todesigntheuserinterface,throughMATLABtowritethecorealgorithm,inordertocompletethesystemfunctions.Keywords:Digitalimageprocessing;VisualC++6.0;Matlab正文目录TOC\o"1-3"\h\z\t"abstract,1"3793第1章前言 531988第2章相关理论与技术基础 6273382.1数字图像处理的相关技术 6101052.2数字图像处理技术的应用 646132.3系统开发工具简介 75899第3章数字图像处理系统的设计 917033.1系统设计原则分析 955623.2系统总体架构设计 92523.3系统各功能模块设计 1079883.4系统后台管理设计 11266923.5系统界面设计 1158513.6图像处理库的编译 12202103.6.1CxImage的编译 12306003.6.2图像处理库的整理 1230180第四章图像处理系统的实现 1447084.1开发环境的搭建 14139164.2图像存取及转换 14239294.2.1打开/加载图像 14288674.2.2图像的显示 1561284.2.3图像的转换 15200914.3图像颜色处理 16309954.3.1彩色图像灰度化 17223494.3.2彩色图像对比度处理 1821904.3.3RGB颜色分离 1979864.4图像的几何变换 19290584.4.1图像的缩放 20142224.4.2图像的旋转 21285184.4.3图像的镜像 22100054.5图像增强功能的实现 23109634.5.1图像平滑 2315144.5.2图像锐化 24198724.5.3伪彩色编码 2419864.6图像形态学运算的实现 254351第5章系统的测试 26194705.1测试计划 26239375.2测试环境 26195725.3测试结果 265157总结 2717446参考文献 28第1章前言近几十年来,随着计算机和网络技术的飞速发展,图像处理技术日新月异,其应用范围也空前广泛,如军事、医疗、交通、工业、农业等领域。目前,图像处理技术已经深刻影响到社会生活和工业生产的方方面面,几乎没有与数字图像处理无关的领域。然而,不同行业和不同领域的图像处理重点是不一样的,这对图像处理提出了更严格的要求。虽然目前所开发的图像处理软件有许多不同的特点,但考虑到不同的应用环境和专业要求,对于图像处理软件来说,或多或少都存在一些问题:图像处理系统功能不完善,图像处理算法不够优化,图像处理系统界面不友好,系统兼容性和可扩展性不够等。目前,图像处理软件要么是价格昂贵的商业数字图像处理软件;或者是一些难以满足专门化要求的非专门化软件。因此,为了某些或某一特定领域的研究和学习,一套专门的图像处理系统是一种可行的方案。一个好的图像处理系统不仅要具有丰富的图像处理功能和大量的图像处理算法,还需要具有良好的开放性、可扩展性和友好的界面。如今,越来越多的计算机视觉库使得图像的开发变得容易,不需要考虑花费大量的时间在算法的实现上,只需要搭建一个良好的集成开发环境和调用基本函数就可以实现图像处理的功能。然而,作为一名研发人员必须深入研究设计图像处理系统的结构和图像处理的具体算法的原理和实现,以不断提高图像处理的速度和效率,开发出更优秀的图像处理系统。针对现有系统存在的问题,本文设计了一个基于Visualc++6.0和MATLAB的数字图像处理系统。该系统实现了数字图像处理中的基本文件操作和经典算法,具有良好的可移植性和可操作性。此外,系统还增加了“添加新算法”这一功能,用户可以在系统中添加一些新的算法,或者与系统中的其他经典算法相比较,有效地提高了系统的可扩展性。同时,本系统采用Visualc++6.0设计了一个友好的用户界面,对于一些算法,系统设置了相关参数设置窗口,操作人性化,具有良好的交互性。第2章相关理论与技术基础2.1数字图像处理的相关技术数字图像处理主要是利用计算机对图像进行各种操作,以改善视觉效果、压缩图像、提取特征等,大致包括以下内容:(1)图像采集与输出。数字图像的获取和输出是目前数字图像处理技术的前提,它仍然具有很强的研究价值和意义。图像采集是指将模拟图像信号转换成计算机可以识别和处理的数字信号。(2)图像编码与压缩。图像编码压缩技术的目的是减少描述图像的数据量。对图像进行编码和压缩,不仅可以减少计算机的存储容量和图像传输的带宽,而且可以在一定程度上加快图像的处理速度。图像压缩大多属于有损压缩,如何在不失真的情况下获得较高的压缩比是该领域的核心。(3)图像增强与复原。图像增强的主要目的是提高图像的质量。常用的图像增强方法包括图像平滑和锐化。图像复原的前提是清楚地知道图像退化或退化的原因,并选择合理的图像复原技术对图像进行复原。与图像恢复不同,图像增强不需要知道图像退化的原因。它是一种主观地提高图像质量或增强图像某些成分的图像处理操作。(4)图像变换。图像变换的目的是将空域中的处理转换到变换域中。研究了图像在变换域中的特性。变换域的图像处理不仅可以减少计算量,而且在许多情况下可以取得更显著的处理结果。目前,许多图像变换方法已经非常成熟和广泛应用,其中常用的有傅里叶变换、离散余弦变换、Walsh变换、Hadama变换等。(5)图像分割。图像分割的目的是从图像中提取出有意义的特征部分。有意义的特征包括图像的边缘、细节或敏感区域。准确提取图像特征是进一步识别、分析和理解图像的基础。(6)图像识别与检测。图像识别与检测主要是指对图像进行一些预处理后进行分割和特征提取,以便于计算机对图像进行识别和理解,进而解决图像中是否存在目标以及目标的位置问题。2.2数字图像处理技术的应用图像出现在人类生产生活的各个领域,其应用涉及到人类生产生活的各个方面。主要有以下几个方面:(1)生物医学领域:数字图像处理在该领域得到了广泛的应用,并显示出良好的使用价值和前景。例如,CT技术最初被应用于某些细胞的检测和计数、癌细胞的检测和鉴定、染色体的分析等,这些都帮助医生更好地检查患者的病灶。此外,数字图像处理还广泛应用于专家系统、DNA分析、X射线图像、超声图像增强等方面。(2)航空航天领域:成功利用数字图像处理技术绘制月球地图,开拓了该领域的发展。目前,数字图像处理技术除星图处理外,还广泛应用于飞机遥感和卫星遥感技术中。基于对飞机和卫星图像的处理和分析,提取大量有用信息,最终用于资源调查、资源勘探、灾害探测、地形地貌、测绘地图、天气预报等。(3)军事公安领域:在军事领域,数字图像处理技术可用于雷达目标探测、巡航导弹地形识别、遥控飞行器制导、模拟训练系统等,在公安领域,数字图像处理技术可用于物证提取、罪犯人脸合成、指纹识别、车牌识别、交通监控、事故分析等,为公安人员提供可靠证据。帮助警方快速破案。(4)通信领域:现在,数字图像处理在图像远程通信中显示出了重要的作用。图像通信作为当前通信的主要内容之一,由于其数据量巨大,通信难度极大。为了实时传输如此大量的数据,需要使用压缩技术对信息进行压缩。在数字图像处理中采用了熵编码、网络编码和小波编码,实现了图像信息的高效传输。(5)文化艺术领域:在文化领域,数字图像处理可用于古代受损壁画的保护与修复,珍贵文物中的照片的复制与修复。在艺术领域,计算机艺术已经成为一门新的艺术,将数字图像处理应用于服装、头发、房屋等各种设计中。此外,数字图像处理还被用于动画制作、运动员运动分析、评分等。2.3系统开发工具简介本系统使用的主要开发工具是VisualC++6.0和MATLAB。MATLAB是一个可用于数字图像处理、工程和科学制图、通信系统和仿真的软件。它主要以矩阵为基本数据单元,具有高效的数值计算能力,具有丰富的应用工具箱,提供大量的数字图像处理功能,具有完善的图形处理功能。而且在新版本中,增加了对C++、Java等语言的支持,用户可以直接调用。但是,Matlab也有其不足之处。Matlab在运行程序时需要安装Matlab系统。缺乏系统组织,用户界面不友好,可移植性和实用性不理想,运行速度慢,特别是循环语句的执行。微软可视化C++是微软的C++开发工具,是面向对象的可视化集成编程系统,具有可视化集成开发环境,提供C,C++,CLI等编程语言的编辑。从传统的WindowsAPI编程到MFC编程再到基于组件的编程,VisualC++为其提供了方便的设计工具,几乎可以完成Windows应用的各个方面。用VisualC++开发的应用程序代码执行率高,程序运行速度非常快,可移植性好,受到了许多编程爱好者的青睐。该软件自1992年推出以来一直在逐步更新和完善,现在最新的版本是微软VisualC++2013。其中,集成MFC6.0的微软VisualC++6。0自1998年发布以来,在大大小小的项目开发中得到了广泛的应用,成为微软VisualC++版本中的经典。第3章数字图像处理系统的设计3.1系统设计原则分析本系统的使用对象主要是初学者和研究人员。因此,系统设计应遵循的原则是:(1)广泛的覆盖面为了使用户更全面地了解数字图像处理本身涉及广泛的技术,该系统应尽可能涵盖数字图像处理技术的大多数经典算法,实现大多数基本功能,并使用户易于有重点地学习。(2)扩展性强除了覆盖现有的数字图像处理经典算法外,为了提高系统的实用性,还应具有强大的扩展功能,使用户可以将自己的代码加载到系统中运行,观察运行结果,并与系统中的算法进行对比分析。(3)界面友好为了方便初学者使用系统,系统界面应尽量简单,使用方便,直观观察数字图像处理过程,进而掌握数字图像处理的基本理论知识。另外,系统应具有良好的交互性,方便用户设置不同参数,分析不同参数下的不同结果,便于进一步学习数字图像处理。3.2系统总体架构设计该图像处理系统的核心是建立自己的图像处理库。创建图像处理库后,基于MFC可视化界面设计交互界面,将系统分为功能执行模块和显示模块,功能执行模块负责接收操作命令,实现具体的图像处理功能,包括图像访问,几何变换,图像增强,颜色处理。主控模块是系统的核心部分,通过使用事件驱动调用图形处理库中的函数来实现各个模块的功能,显示模块也是显示界面部分,实现了用户与系统的交互,显示处理后的图像。图3-1系统结构图3.3系统各功能模块设计本文根据数字图像处理内容的不同,将系统分为八个模块进行设计,每个模块都有各自的子模块。具体而言,本文系统包括以下功能模块(1)文件处理该模块具有打开图像,保存图像,以名称保存等基本文件处理功能。其中,通过“打开”操作,将所需要的图像读取到系统中,并显示给下一步处理。该模块主要实现BMP和JPG图像的读取。(2)图像转换本模块包括两个分功能模块,分别是图像格式转换和颜色空间转换,主要实现了BMP图像到GIF,JPG,PNG,ICO,PCX图像的转换和RGB颜色空间到LAB,HSV,XYZ,YUV,HSZ颜色空间的转换,以及结果的显示,存储和组件数据的下载。(3)图像点的计算该功能模块包括图像颜色反转,线性变化,阈值变换,窗口变换,灰度扩展,灰度均衡等点操作,设计了相应的操作窗口,便于用户设置相关参数,实时监控变换结果,最后设计了保存结果的功能。(4)图像几何变换本模块允许图像的大小或形状调整,包括图像的水平和垂直几何变换,图像变换,图像旋转和缩放。并针对部分子功能,系统设计了相应的参数设置窗口,方便用户与计算机的交互,最终保存结果。(5)图像正交变换:本模块实现了傅里叶变换、离散余弦变换、Walsh变换,实现了光谱图的显示和保存。(6)图像增强:该模块包括图像平滑、锐化和伪彩色编码。其中,图像平滑包括图像中值滤波和均值滤波,图像锐化包括图像梯度锐化、拉普拉斯锐化和基于高通滤波器的锐化。最后还实现了结果的显示和保存。(7)图像形态变换:本模块包括图像腐蚀、扩展、打开、关闭、细化等形态学操作,以及处理结果的显示和保存。(8)图像分割:本模块包括阈值分割、基于区域的分割、基于边缘的分割、基于聚类算法的分割,以及五个子功能模块,增加新的算法功能。用户不仅可以实现已有的分割算法,还可以将其他分割算法导入系统并执行。3.4系统后台管理设计系统后台主要负责一些中间数据的存储和管理,这些中间数据主要包括为了便于在VisualC++6.0中显示,打开图像时自动将其他格式的图像转换为BMP格式的图像;采用MATLAB算法处理后的图像;缩略图,便于显示,以适应窗口中显示区域的大小;预览在某些变换中实时观察到的图像等。总之,后台数据管理主要是为了更好地维护系统运行过程中需要缓存的一些中间数据,以保证系统的正常运行。3.5系统界面设计用户界面对系统非常重要。是用户与计算机交互的平台。它允许用户忽略大量的命令,但只能通过窗口、菜单、按钮等简单的控件来方便地操作。使用系统的目标是初学者和研究人员。因此界面要尽量简单,易于操作,并且要有良好的交互,便于用户设置相关参数。通过分析每组结果的参数,他们可以有效地学习,研究相应的算法,或者进一步的处理。本系统采用VisualC++6.0MFC进行界面设计。系统的主界面设计由主菜单、工具栏和显示区三部分组成。通过菜单栏和工具栏选项调用新子窗口来实现相应的功能。主菜单主要包括文件、编辑、色彩空间转换、图像格式转换、点算法、几何变换、正交变换、图像增强、形态学操作、图像分割、添加、视图、帮助、退出系统等菜单项,以及每个下有多少选项,对应一个大功能下的多个子功能。工具栏包括打开、保存、色彩空间转换、图像格式转换、正交变换、图像增强、伪彩色编码、形态变换和图像分割。点击各子菜单项的菜单栏,即可显示相应的参数设置或处理结果。单击工具栏中的每个按钮,然后在新子窗口下显示所有子功能。哪一个可以在同一个窗口实现相同的功能来处理不同算法的结果,让用户直观的观察和学习。3.6图像处理库的编译3.6.1CxImage的编译图像处理库CXIMAGE是一个开源的图像处理库,可以从其官方网站下载。下载的CX图像压缩包打开后不能立即应用。它必须由编译器编译,以生成在新项目中调用的动态库或静态库。虚拟编译环境为VisualC++6。0,在VS2010中编译时需要更改项目属性。由于本文的实验环境是VS2010,因此重点介绍了VS2010下CXIMAGE图像处理库的编译过程。打开提取的源文件,使用VS2010打开CX映像FULL_VC10。SLN,14个目录将出现在解决方案资源管理器中,JASPER,JBIG,JPEG,LIBDCR,LIBPSD,MNG,PNG,TIFF,ZLIBCXIMAGE,CXIMAGECRTDL,CXIMAGEMFCDLL,DEMO,demodll。这些项目的编制顺序取决于这些项目之间的相互依存关系。前10个项目是独立的静态库项目,CXIMAGECRTDL和CXIMAGEMFCDLL的动态库依赖于以上10个项目。因此,编译顺序是先编译前十个项目,然后再编译两个动态库项目。编译时发现其中两个动态生成失败,需要修改其属性,将输出目录中的文件设置为空。已编译的文件。编译会创建相应的静态和动态库,这对于以后创建新的图像处理库很重要。3.4.2图像处理库的整理在编译CXIMAGE图像处理库后,对编译的相关文件进行整理,并对生成的动态库和静态库进行相应的组织,生成JPEG。利布,贾斯珀。Lib,libpsd。利布,MNG。巴布亚新几内亚利卜省。Lib,cximage。利布,蒂夫。Lib八个静态库文件,cximagecrtdll。Dll和cximagemfcdll。DLL.创建一个名为MyImages的新文件夹作为库文件名。下面有两个子文件,包括库中需要使用的头文件,以及一个包含所有静态和动态库文件的lib文件。完成这些工作后,VS2010中新创建的项目就可以按照动态库调用或静态库调用的选择方式设置正确的属性和参数,并在新创建的项目源文件中调用图像处理库中的相应函数,实现各个图像处理的具体功能。第四章图像处理系统的实现4.1开发环境的搭建创建一个名为我的图像的单一MFC文档,注意定义CScroll视图的基类,按照向导逐步创建一个单一的我的图像文档MFC应用程序。为了能够在我的图像的单个MFC文档中使用第3章编译和组织的库函数,必须对它们进行配置。(1)在项目属性栏的C/C++目录中,将第3章描述的我的图像文件夹下的包含文件所在的路径添加到包含目录中;将第3章描述的我的图像文件夹下的lib文件添加到参考目录中。2向项目属性栏链接下的附加依赖项添加10个以前创建的静态库cximage。lib,jpeg。lib,png。lib,tiff。lib,jasper。lib,jbig。lib,zlib。lib,mng。lib,libdcr。lib,libpsd。lib。3项目属性栏中C/C++属性下的设置不使用预编译头文件,运行时为多线程DLL(/MD),将拓扑成员对齐为16字节(/ZP16)。4上述属性设置完成后,建立菜单栏,添加菜单按钮,最后通过消息响应函数调用图像处理库中的函数,实现图像处理和处理。(5)更改消息响应函数的名称。添加消息响应函数时,会为其分配一个固定的ID号。由于图像处理系统具有许多功能,单凭ID难以区分不同功能的功能。为了便于区分不同函数的功能和后续二次开发的需要,应为每个响应消息的函数指定一个固定的函数名。4.2图像存取及转换图像访问功能的主要功能是显示和保存系统处理前后的图像,另外还要实现不同格式图像的相互转换,以提高系统的兼容性。实现这一功能的关键是设计一种适合于存储不同格式数字图像的数据结构[34]。通过图像处理库中的CXIMAGE基类选择一个对象,利用该对象调用各种图像处理函数,实现图像调用和图像处理操作的执行。4.2.1打开/加载图像我们首先使用CXImage类定义一个名为Image的对象,我们使用CXImage类调用图像处理库中的函数。程序中的图像加载是通过Load()函数实现的。这个函数的第一个参数是图像文件的保存路径,第二个参数是图像类型包含主流图像类型。加载Lena映像的代码如下所示:4.2.2图像的显示图像处理系统可以显示各种类型的图像,在图像处理界面中调用Draw()函数来显示不同类型的图像,并显示它们的类型。显示Lena图像的代码如下:4.2.3图像的转换该图像处理系统不仅可以加载各种格式的图像,在视图界面中显示不同格式的图像,还可以实现不同格式的图像之间的转换。系统实现BMP图像到JPG图像的转换代码如下:具体的处理过程是加载Timg.bmp图像并保存在project文件夹中,调用SetJpegQuality()设置图像的质量参数并将其转换为JPG格式,最后,只使用save()函数将其保存为一个1。JPG文件实现图像格式的转换并显示为BMP文件。4.3图像颜色处理RGB(Red红色、Green绿色、Blue蓝)是最常见的颜色空间之一,由于其在硬件实现上的便利性,被称为硬件相关的颜色空间。笛卡尔坐标系中的RGB与立方体颜色空间对应,坐标系中的三轴分别代表R、G、B的三种不同颜色。如图4.1所示。当坐标系中的一个点位于坐标原点,即R、G、B的均值为0时,该点表示的颜色为黑色;相反,当坐标系中的点位于立方体中R、G、B得到的最大值的对应点时,表示白色。立方体中的任何一点都代表一种颜色,这意味着三种颜色可以混合成数千种不同的颜色,基本满足人类的视觉要求。图4-1RGB颜色空间模型模型HSL(色度色,色度色,光色)是另一个常见的颜色空间。而RGB颜色空间对硬件实现非常有用,但其最大的缺点是不能很好地匹配人们对颜色的感知,而HSL模型可以弥补RGB颜色空间的不足。而HSL模型可以利用图像的两种颜色信息--颜色色调和饱和度来去除密度分量的影响,因此HSL模型更适合开发者进行图像处理算法研究。其空间模型如图4-2所示:图4-2HSL空间模型颜色空间可以相互转换,RGB模型转换为HSL模型的方法是将RGB值,即R,G,B归一化C[0,1],然后将转换后的H值范围设置为00-3600,即S,Le[0,1]。那么从RGB到HSL的转换可以用公式(4.1)表示:4.3.1彩色图像灰度化彩色图像的灰度化是指通过一定的方法使R、G、B的值相等。本系统采用加权平均的方法实现图像灰度函数。人眼对三原色的敏感度由低到高依次为蓝、红、绿。该方法根据灵敏度从小到大给出权重到蓝、红、绿,最后进行加权平均。加权平均的颜色分量变换关系s为:利用上述原理,本系统实现彩色图像直方图的部分代码如下:对彩色图像进行灰度化处理的效果如图4-3所示:图4-3图像灰度变换效果4.3.2彩色图像对比度处理图像的亮度取决于图像法中每个像素的亮度值,即R、G、B值的大小。当R、G、B的值均为0时,该像素为黑色;相反,当R、G、B均为255(设量化等级为8)时,像素点最亮,为白色。对比度是指图像中不同像素之间的差异,它反映了图像中像素灰度的分布情况。差异越大,反差越大。从直方图的角度来看,对比度越好,直方图曲线就越明显,分布也就越均匀。改变图像中红、绿、蓝颜色分量的值可以改变图像的亮度和对比度。ColorMatrix结构表示色彩变换的映射关系,为5×5矩阵,其中亮度处理过程的映射关系S为:其中,f=Δb/255,Δb表示亮度的变化量,该值的范围为-255~255。负值表示亮度降低,正值表示亮度增加。图像的清晰度取决于图像对比度的大小,一般来说,图像的对比度越大,图像的颜色越清晰,整个图像就越醒目;对比度越小,图像的颜色越暗,整个图像的灰度就越高。对比度变换的映射关系S是:处理的效果如图4-4所示:图4-4图像对比度处理效果4.3.3RGB颜色分离RGB颜色模型是实际中最常用的颜色空间模型。为了进一步分析色彩空间的色彩成分,往往需要根据色彩空间的三个基本成分R(红色)、G(绿色)和B(蓝色)对彩色图像进行分割。系统设计并实现了图像的RGB分色功能。图。4.5是图像RGB颜色分离的结果。图4-5彩色图像RGB分量提取4.4图像的几何变换图像几何变换又称图像空间变换,在不改变原像素的像素值的前提下,将一幅图像中的像素位置映射到另一幅图像中的新位置。因此,图像几何变换的实质是对平面图上的像素进行重新排列。图像几何变换一般分为两步:一是进行空间变换、图像缩放、镜像、图像旋转等操作,用于表示几何变换前后图像像素之间的映射关系;二是进行灰度插值,将映射像素的位置调整到不正确的坐标。4.4.1图像的缩放放大图像是为了调整数字图像的大小。图像缩放过程需要在处理速度和处理结果的平滑和清晰之间进行权衡。当图像放大时,图像的组成像素的可见性会提高,即图像会变得模糊;相反,缩小图像会增强图像的平滑度和清晰度。缩小图像(或子采样或子采样)的主要目的要么是使图像适合显示区域的大小,要么是生成相应图像的缩略图。放大图像(或上采样或图像插值)通常是为了使图像显示在更高分辨率的设备上。然而,从信息内容的角度来看,图像缩放操作并不能提供比原始图像更多的信息,因此图像缩放操作必然会给图像质量带来负面影响。为了不降低甚至提高图像质量,需要采用最近邻插值、双线性插值等插值方法。系统使用库中的Resample()实现图像缩放。系统实现的功能代码如下:对图像进行缩放处理效果如图4-6所示:图4-6图像缩放处理效果4.4.2图像的旋转图像旋转一般是指图像以一定角度围绕图像中心顺时针或逆时针方向旋转。图像的旋转其实就是将图像中的所有像素围绕一个固定点旋转。图像的旋转通常会改变图像的大小,因为在显示区域之外旋转的像素被截断,除非图像的范围被扩大以显示与原始图像相同大小的图像。图像旋转变换非常适合于表示矩阵变换。本文的图像处理系统可以实现图像围绕中心点旋转,顺时针旋转任意度,逆时针旋转任意度。系统通过调用库中的rotate()函数实现了图像旋转的功能。实现该功能的部分代码如下:对图像进行旋转处理的效果如图4-7所示图4-7图像旋转处理效果4.4.3图像的镜像反射镜改装可分为水平反射镜和垂直反射镜。水平镜像是以图像的水平线和垂直线为中心,切换图像的左右部分;垂直镜像围绕垂直中心轴切换图像。利用上式遍历图像中的像素,可以得到对应图像的同余图像。系统通过调用mirror()函数实现镜像,部分实现代码如下:对图像镜像镜像处理的效果如图4.8所示。图4-8图像的镜像处理4.5图像增强功能的实现4.5.1图像平滑图像平滑是一种能够降低图像噪声以满足人类视觉需要的处理方法,通常用作图像预处理。常用的图像平滑方法有中值滤波和中值滤波。中值滤波主要是将每个像素的某一邻域内所有像素的平均值作为新值,而且这一过程可以通过模扭工艺来实现,常用的有3*3和5*5两种中间模,本系统在实现这一功能时采用了3*3模。该函数既能去除小噪声点,又能弱化有用的高频信息,模糊图像。中值过滤也使用模板,通过将模板内像素的中间值映射到模板中心的相应像素,可以去除噪声点而不破坏有用的高频信号,特别是在处理有椒盐噪声的图像时,而在有点,线或塔等细节较多的时候则不行。图4-9是上述两种平滑方法的处理结果。用户可以选择相应的按钮使用不同的算法实现图像平滑,在同一窗口观察两种方法下的结果,便于直观比较分析,然后选择保存按钮保存结果。图4-9图像的平滑4.5..2图像锐化图像的锐化主要影响低频分量,使图像的边缘信息突出,使原本模糊的图像相对清晰。要处理的图像的信噪比必须比较高。因此,在对图像进行锐化之前,必须先降低噪声。本系统在实现该功能时,设计了相应的参数设置窗口,允许用户输入一个参数作为阈值。当梯度大于此值时,将梯度值设置到相应的像素上,否则保持原值不变,得到锐化后的图像。在具体操作中,用户可以在图像增强窗口中选择相应的菜单项或相应的按钮,然后在弹出的参数设置窗口中设置阈值,阈值的初始值为10,然后在相应的区域观察处理结果,最后选择相应的保存按钮保存结果。4.5.3伪彩色编码伪彩色编码可以将灰度图像转换为彩色图像,使细节无明显变化的原始灰度图像易于观察,多用于医学图像中。图像的伪彩色处理通常定义一个与图像中像素值相对应的索引值,利用索引值找到所需的伪彩色编码表,然后将找到的值赋给像素,使图像呈现彩色。本系统主要实现红色饱和度、绿色饱和度、蓝色饱和度、黄色饱和度、青色饱和度、紫色饱和度、虹彩色彩和铁水金属编码,实现新彩色图像的显示和存储,如图4-10所示。用户选择伪彩色编码按钮工具栏主界面,然后根据需要在弹出的窗口中选择相应的按钮实施相应的伪彩色编码。在相应区域观察结果,然后点击保存按钮保存结果。图4-10图像伪彩色编码4.6图像形态学运算的实现形态学是数字图像处理中常用的一种方法。它由一个或多个形态代数算子组成,可以用来分析几何和结构。在图像形态学处理中,这些算子可以根据需要进行组合,以达到预期的效果,一般用于灰度图像或二值图像处理。通过形态学运算,可以对图像进行腐蚀和扩展。蚀刻操作首先需要定义合适的结构元素,并使它们在图像上逐点移动进行比较,然后去除与结构元素不同的部分。实质上是删除图像中物体边界上的一些像素。结果通常取决于所用结构元件的形状和尺寸。腐蚀后的图像可以消除图像中的边界点和小而无意义的区域,并且可以通过微小的连接将两个物体分开。膨胀操作可视为腐蚀操作的反面。它对构件的修改小于对结构构件的修改,从而使其具有与结构构件相同的外观。其实质是在图像中物体的边界上增加一些像素。同样,图像扩展的结果取决于所用结构元素的大小和形状。腐蚀可以连接非常近的物体,它们之间的距离取决于结构元件的大小。另外,腐蚀也是图像分割后填充孔洞的好方法。本系统采用3*3模板进行图像腐蚀和扩展。用户可以在主界面中选择相应的菜单项或点击形态学操作窗口中相应的按钮来实现该功能,在显示区观察结果,然后通过保存功能保存结果。处理效果见图4-11。图4-11图像的腐蚀与膨胀第5章系统的测试5.1测试计划(1)接口测试。打开图像处理软件,观察界面设计布局是否合理,界面样式是否简单清晰,每个菜单键和子系统菜单键是否按预期级别分布。正在测试(2)功能。根据软件的界面布局,依次测试系统的功能,逐个实现每个菜单键的功能,并根据菜单的含义分析软件是否完全实现了图像、图像访问、图像几何变换、图像增强等功能的不同处理操作。(3)性能测试。在执行性能测试时,测试软件的性能,观察软件的图像处理菜单是否及时、快速,以及图像处理功能的执行时间是否合理。(4)软件可扩展性测试。测试软件是否具有良好的可扩展性,在现有基础上测试是否可以新增功能,能否通过系统实现新功能。5.2测试环境Windows7操作系统,VisualStudio2010,图像处理系统软件。5.3测试结果(1)程序开放后,程序界面简单,使用方便,菜单层清晰有序,满足界面设计的基本要求。(2)软件系统运行稳定,所有功能都能实现,图像加载,旋转,直方图均衡等都能正常实现。(3)系统性能良好,使用过程中没有任何意外终止,通过点击菜单按钮,系统响应迅速,能快速实现图像处理的所有功能,处理速度基本达到预期要求。总结本文主要完成数字图像处理系统的开发,用VisualC++6完成用户界面的开发。0,并编制了其中使用的基本算法MATLAB。它功能多样,用户界面友好,操作方便,适合初学者和研究人员使用。本系统涵盖了数字图像处理中的大部分基本算法,可以帮助初学者很好地学习数字图像处理技术,也可以帮助研究人员进行简单的研究。但是,该制度也存在一些不足之处,需要进一步完善。1个员额仍未列入。系统只实现了数字图像处理中的一些经典的、基本的算法,不涉及一些稍微复杂的运算。系统只能处理常用格式的图像,需要扩大可处理图像的范围。(2)可扩展性不够强。系统只是在图像分割模块下增加了一个新的算法。为了使系统具有更强的可扩展性,完善系统功能,用户还必须能够添加新的功能模块,实现系统平台下的功能。(3)系统用户界面仍有待完善。虽然系统实现了更直观的界面,但界面的抛接还需要进一步提高。一方面使界面更加美观,另一方面进一步研究界面的设计,使用户使用和学习更加方便。参考文献[1]马前进.基于

温馨提示

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

评论

0/150

提交评论