图像处理毕业论文

上传人:无*** 文档编号:41576624 上传时间:2021-11-21 格式:DOC 页数:25 大小:5.35MB
收藏 版权申诉 举报 下载
图像处理毕业论文_第1页
第1页 / 共25页
图像处理毕业论文_第2页
第2页 / 共25页
图像处理毕业论文_第3页
第3页 / 共25页
资源描述:

《图像处理毕业论文》由会员分享,可在线阅读,更多相关《图像处理毕业论文(25页珍藏版)》请在装配图网上搜索。

1、图像处理毕业论文摘 要:随着信息技术的蓬勃发展,尤其是计算机技术的日新月异,为数字图像处理的发展提供了广阔的空间。该数字图像处理系统是基于Windows平台的图像处理系统,实现了对灰度级图像的编辑,可以进行图像导入和导出,视图设置,可以调整图片尺寸,旋转和翻转图片,图片增强优化,图像边缘检测与分割,图像编码以及打印输出图片。本文主要介绍了数字图像处理系统的设计和实现过程,系统设计运用MFC的设计思想,通过VC+实现系统框架,简化了软件的开发,提高了软件系统的灵活性、可扩展性和重用性。同时系统所有的操作设计得十分简单方便,无需具备有专业的知识,也能对图片完成编辑操作。关 键 词 :VC+,MFC

2、,灰度级图像,图像编辑Abstract:With the rapid development of information technology, especially in the progress of computer technology, it provides wide space to the application of Digital Image Processing. Digital image processing system is an image processing system based on the Windows platform. To realize

3、the image editor of gray level, import and export images, view settings, you can adjust picture size, rotate and flip images Enhance the optimization and print output picture.The analysis and the implementation procedure of Digital Image Processing System were introduced in this paper. The design id

4、ea of MFC was used and the system structure was implemented by VC+. So the development of software can be predigested and flexibility, expansibility and reusability of software system can be improved. Keywords: VC+,MFC,Grayscale image,Image edit目 录1前言.21.1课题设计的背景和意义.22图像处理的方法概要与应用领域.22.1数字图像处理的方法概要.

5、 22.2数字图像处理的应用领域.22.3数字图像系统简介.43数字图像处理系统开发技术基础.43.1 C+语言优点.43.2 VC+平台简介.43.3 MFC技术简介.63.4 MDI应用程序的构成.64需求分析.74.1系统功能需求分析.74.2系统处理流程分析.85系统总体设计.85.1系统功能模块划分.85.2类的设计.95.3系统框架类.106系统的详细设计.106.1文件模块的设计.106.2图像编辑模块.126.3图像处理模块.136.4图像的增强和复原.187 系统调试 .20结 论. .21致 谢.22参考文献 .23261 前言随着科学技术的发展和人民生活水平的提高,数字摄

6、像机的出现和数字图像处理技术的发展,在日新月异的数字化时代中,越来越引起人们的广泛关注,数字图像处理已经成为必备的基础知识。近几十年来由于计算机技术的蓬勃发展,图像处理技术也得到了空前的发展和应用。目前,图像处理技术已经广泛应用于工业、军事、医学、交通、农业、天气预报、银行、超市、重要部门的监控报警系统、可视电话、网络传输等等领域,成为各个学科学习和研究对象。随着图像处理技术的广泛应用,学习和掌握这门科学显得格外重要,图像处理已经成为信息技术相关领域的核心课程。数字图像处理取得的另一个巨大成就是在医学上获得的成果。1972年英国EMI公司工程师Housfield发明了用于头颅诊断的X射线计算机

7、断层摄影装置,也就是我们通常所说的CT(Computer Topography)。CT的基本方法是根据人的头部截面的投影,经计算机处理来重建截面图像,称为图像重建。1975年EMI公司又成功研制出全身用的CT装置,获得了人体各个部位鲜明清晰的断层图像。1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类做出了划时代的贡献。 与此同时,图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。 随着图像处理技术的深入发展,从70年代中期开始,随

8、着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。1.1课题设计的背景和意义所谓图像处理,就是对图像信息进行加工以满足人的视觉心理或应用需求的行为。视觉是人类从大自然中获取信息的最主要的手段。据统计,在人类获取的信息中,视觉信息约占60,听觉信息约占20,其他的如味觉信息、触觉信息等加起来约占20。由此可见视觉信息对人类的重要性,而图像正是人类获取视觉信息的主要造径。所谓“图”,就是物体透射或者反射光的分布;“像”是人的视觉系统接收图的信息而在大脑中形成的印象或认识。前者是客观存在的,而后者是人的感觉,图像就是两者的结合。2 数字图像处理的方法概要与应用领域2.

9、1数字图像处理的方法概要图像处理的方法多种多样,般可分为图像变换、图像增强和复原、图像分割、图像压缩编码、图像描述和图像识别等几类:1)图像变换由于图像阵列很大,直接在空间域中进行处理,涉及的计算量很大。利用正交变换(如傅里叶变换、余弦变换等)的性质和特点,将图像变换到频率域中进行处理,不仅可减少计算量,而且可获得更有效的处理,如博里叶变换可在领域中进行数字滤波处理。目前新兴研究的小波交换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。该部分主要研究各种变换模型和处理方法。2)图像增强和复原图像增强和复原的目的都是为了提高图像的质量。图像增强。利用各种数学方法和变换

10、手段提高图像中目标与非目标(如背景)的对比度与清晰度,达到突出目标,有效地表示和提示图像,以利于人或机器进行分析处理的目的。该部分主要研究各种增强模型和处理方法。图像复原。在景物成像过程中,由于成像设备与物体的相对运动、介质散射、系统畸变(如成像系统的变焦、成像器材的固有缺陷)、噪声干扰等因素会造成图像质量降低,称之为“退化”,典型现象是图像模糊。使退化的图像恢复本来面目,真实反映原景物图像的处理,称为图像复原。该部分主要研究各种校正模型和处理方法。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;强化低频分量,可减少图像中噪声影响。

11、图像复原要求对图像降质的原因有一定的了解,一般而言,应根据降质过程建立“降质模型”再采用某种滤波方法,恢复或重建原来的图像。3)图像压缩编码把数字化的图像数据按一定规则进行排列或运算的过程称为图像编码。内于图像的数据量很大,存储要占很大的空间,传输也要花费不少时间,为此利用图像本身的内在特性(如像素灰度值之间的相关性),按某种特殊方式编码,以压缩总的信息量,称之为图像压缩编码。该部分主要研究各种高效压缩编码方法。压缩可以在不失真的前提下获得,也可以在允许的失真条件进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。4)图像分割图像分割是数字图像处理中的关键技术之。

12、图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。5)图像描述图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法

13、。2.2数字图像处理的应用领域图像信息是人类主要的信息来源之一,图像处理的应用领域也涉及到人们工作生活中的方方面面。主要应用可归纳为以下几个方面:(1)医用图像处理。医学上不论是基础研究还是临床应用,都是图像处理种类极多的领域。例如生物医学的显微图像的处理分析,如红白细胞和细菌,染色体分析;临床诊断中X光图像的鉴别、超声波图像(B超)的分析、眼底照片的分析等都是医疗辅助诊断的重要手段,尤其是计算机层析成像技术(CT),可以获得人体剖面图,使肌体病变特别是肿瘤的诊断起到了革命性的变化,近年来出现的核磁共振CT,使人体免受各种硬射线的伤害,而且图像更为清晰。(2)遥感图像的处理。飞机或人造卫星传送

14、来的遥感图像,由于各种原因图像质量不是很好,必须在成像、存储、传输、判读过程中进行各种数字处理与分析(如辐射校正、几何畸变校正、多光谱统计信息分类等),并将其变为可视的资源信息或气象信息,如大气预报中的卫星云图。目前遥感技术已在资源调查、灾害监测、农业规划、城市规划、环境保护等方面得到了广泛的应用。(3)文字的识别与图纸的判读。文字与图纸是科技信息的主要传输手段。文字与图纸在图像处理中都是以最简单的二值图像形式出现的。文字识别的应用包括手写体文字的识别、图文混合中文字的识别等,如邮政编码的自动识别,计算机光笔输入,经扫描仪扫描的文字材料是以图像文件的形式保存,如何将其转变成文本文件等等。目前此

15、类应用技术已比较成熟,如OCR软件等。图纸的判读则涉及到各种逻辑图和机械设计图的自动读取问题,其中也包括图纸上的文字识别问题(即图文混合下的文字识别)。(4)工业领域的应用。产品外观检测与筛选,表面缺陷的自动检测,组装与流水线上的自动化,工业材料的质量检验。(5)农业上的应用。包括农产品色度的检测(如鉴别水果成熟度),农牧产品,作物的表血形状和特征参数的测定。(6)其他。指纹识别、影视中的特效等。2.3数字图像系统简介数字图像处理系统是一款简单而又实用的灰度级图像处理软件,是基于Windows平台的应用程序,利用Visual C+6.0的编译环境提高了系统的开发速度,实现数字图像的查看与编辑操

16、作。主要内容有:图像文件的打开和保存,实现了对灰度级图像的操作。图像的几何变换,实现对图像文件的旋转、缩放、以及镜像处理。图像增强和复原,实现对降质的图像进行改善处理和提高图像质量的逼真度。图像的边缘检测和分割,产生更适合人观察和识别的图像。图像编码,对图像采用不同的表达方法以减小表示图像所需的数据量。3 数字图像处理系统开发技术基础3.1 C+语言优点C语言是一个面向对象的语言,使用C编写的代码更加简捷、高效,更具可维护性和可重用性。C+语言的优点主要有以下几点: 1、使用new和delete进行动态内存分配和释放 运算符new和delete是C新增的运算符,提供了存储的动态分配和释放功能。

17、它的作用相当于C语言的函数malloc()和free(),但是性能更为优越。使用new比使用malloc()有以下的几个优点: (1)、new自动计算要分配类型的大小,不使用sizeof运算符,比较省事,可以避免错误。 (2)、它自动地返回正确的指针类型,不用进行强制指针类型转换。 (3)、可以用new对分配的对象进行初始化。 2、使用inline内连函数替代宏调用 对于频繁使用的函数,C语言建议使用宏调用代替函数调用以加快代码执行,减少调用开销。但是宏调用有许多的弊端,可能引起不期望的副作用。例如宏: define abs(a) (a)0?(a):(a), 当使用abs(I)时,这个宏就会出

18、错。 所以在C中应该使用inline内连函数替代宏调用,这样即可达到宏调用的功能,又避免了宏调用的弊端。使用内连函数只需把inline关键字放在函数返回类型的前面。例如: inline int Add(int a,int b);声明Add()为内连函数 这样编译器在遇到Add()函数时,不再进行函数调用,而是直接嵌入函数代码以加快程序的执行。 3、使用函数重载 在C语言中,两个函数的名称不能相同,否则会导致编译错误。而在C中,函数名相同而参数不同的两个函数被解释为重载。例如: void PutHz(char *str); /在当前位置输出汉字 void PutHz(int x,int y,ch

19、ar *str); 在x,y处输出汉字 使用函数重载可以帮助程序员应付更多的复杂;同时在大型程序中,使函数名易于管理和使用,而不必绞尽脑汁地去处理函数名。 4、使用引用(reference)代替指针进行参数传递 在C语言中,如果一个函数需要修改用作参数的变量值的时候 ,参数应该声明为指针类型。例如: void Add(int *a) (*a)+; 但是对于复杂的程序,使用指针容易出错,程序也难以读懂。在C中,对于上述情况 可以使用引用来代替指针,使程序更加清晰易懂。引用就是对变量取的一个别名,对引用进行操作,就相当于对原有变量进行操作。例如使用引用的函数定义为:void Add(int &a)

20、 (a+;); /a为一个整数的引用 5、使用“类”对数据进行封装 C语言是模块化的程序语言,通过函数的使用和文件的单独编译实现了一定的数据封装功能。但C通过使用“类”的强大功能,在数据封装、继承等很多的方面比C做得更好。通过使用“类”把数据和对数据的所有操作集合封装在一起,建立了一个定义良好的接口,使程序员在使用一个类的时候可以只关心它的使用,而不必关心它的实现。 6、类模版 类模版使得程序员在设计一个类时,可以将数据类型作为类的参数,从而定义一个类属类。作为参数的类型既可以是c+语言提供的基本类型与复合数据类型,也可以是程序员自定义的类类型。类属类的主要用途是定义包容数据结构。利用类模版,

21、以此就可以定义出具有共性(除类型参数除外、其余全相同)的一组类。即通过使用类模版,可使得所定义类中的某些数据成员、某些成员函数的参数、某些成员参数的返回值都可以使任意类型的(包括系统预定义类型以及用户自定义类型),从而使得一段程序可用于处理多种不同类型的对象。3.2 VC+平台简介VC+是在Windows平台下构建32位应用程序的强大而又复杂的开发工具,是目前世界上使用非常广泛的工具之一。VC+的应用非常广泛,从桌面应用程序到服务器端软件,从系统软件到应用软件,从单机程序到分布式应用程序,从图形图像处理到游戏开发,VC+无所不在 6。VC+是Windows平台上的C+编程环境,学习VC要了解很

22、多Windows平台的特性并且还要掌握MFC、ATL、COM等的知识,难度比较大。VC+ Developer Studio 包含有编写程序源代码的编辑器,设计用户界面(菜单、对话框、图标等)的资源编辑器,建立项目配置的项目管理器,检查程序错误的集成调式等工具,同时,它还提供了功能强大的应用程序向导AppWizard和类向导ClassWizard工具。AppWizard用于生成各种不同类型的具有Windows界面风格的应用程序的基本框架,在生成应用程序框架后,使用ClassWizard便可轻松完成创建新类,映射消息、定义消息处理函数、重载虚函数等操作1。3.3 MFC技术简介MFC (Micro

23、soft Foundation Class Library,微软基础类库)是微软为了简化程序员的开发工作所开发的一套C+类的集合,是一套面向对象的函数库,以类的方式提供给客户使用。利用这些类可以有效的帮助程序员完成Windows应用程序的开发。MFC中的各种类结合起来构成了一个应用程序框架,它的目的就是让程序员在此基础上来建立Windows下的应用程序,这是一种相对SDK来说更为简单的方法。因为总体上,MFC框架定义了应用程序的轮廓,并提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C+提供了相应的工具来完

24、成这个工作:AppWizard可以用来生成初步的框架文件(代码和资源等);资源编辑器用于帮助直观地设计用户接口;ClassWizard用来协助添加代码到框架文件;最后,编译,则通过类库实现了应用程序特定的逻辑。3.4 MDI应用程序的构成用AppWizard产生一个MDI工程Jia(无OLE等支持),AppWizard创建了一系列文件,构成了一个应用程序框架。这些文件分四类:头文件(.h),实现文件(.cpp),资源文件(.rc),模块定义文件(.def),等。从CWinApp、CDocument、CView、CMDIFrameWnd、CMDIChildWnd类对应地派生出CJiaApp、CJ

25、iaDoc、CJiaView、CMainFrame、CChildFrame五个类,这五个类的实例分别是应用程序对象、文档对象、视对象、主框架窗口对象和文档边框窗口对象。主框架窗口包含了视窗口、工具条和状态栏。对这些类或者对象解释如下。(1)应用程序应用程序类派生于CWinApp。基于框架的应用程序必须有且只有一个应用程序对象,它负责应用程序的初始化、运行和结束。(2)边框窗口如果是SDI应用程序,从CFrameWnd类派生边框窗口类,边框窗口的客户子窗口(MDIClient)直接包含视窗口;如果是MDI应用程序,从CMDIFrameWnd类派生边框窗口类,边框窗口的客户子窗口(MDIClien

26、t)直接包含文档边框窗口。如果要支持工具条、状态栏,则派生的边框窗口类还要添加CToolBar和CStatusBar类型的成员变量,以及在一个OnCreate消息处理函数中初始化这两个控制窗口。边框窗口用来管理文档边框窗口、视窗口、工具条、菜单、加速键等,协调模式状态(如上下文的帮助(SHIFT+F1模式)和打印预览)。(3)文档边框窗口文档边框窗口类从CMDIChildWnd类派生,MDI应用程序使用文档边框窗口来包含视窗口。(4)文档文档类从CDocument类派生,用来管理数据,数据的变化、存取都是通过文档实现的。视窗口通过文档对象来访问和更新数据。(5)视视类从CView或它的派生类派

27、生。视和文档联系在一起,在文档和用户之间起中介作用,即视在屏幕上显示文档的内容,并把用户输入转换成对文档的操作。(6)文档模板文档模板类一般不需要派生。MDI应用程序使用多文档模板类CMultiDocTemplate;SDI应用程序使用单文档模板类CSingleDocTemplate。应用程序通过文档模板类对象来管理上述对象(应用程序对象、文档对象、主边框窗口对象、文档边框窗口对象、视对象)的创建。4 需求分析4.1系统功能需求分析需求分析简单地说就是分析用户的需求。需求分析是设计系统的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理

28、和实用。需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。调查的重点是“数据”和“处理”,通过调查、收集与分析,获得用户对数据的要求如下:(1)图像的打开、关闭及保存:打开并显示图像,并在处理过图像后关闭或保存图像的修改。(2)处理要求。指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是其他处理方式,能够完成图像一般的编辑处理。(3)处理效果与效率。图像处理中一个很重要的问题就是如何表示有关的知识并以恰当的方式引入图像处理。由于图像处理任务的复杂性,

29、目前要找出一个通用的方法适应各种情况是几乎不可能的。另一方面,在建立普适的图像处理方法时,往往会忽略某类图像具有的特定属性。相反,针对某类特定问题,则可能找到有效的方法。为此,有研究者提出基于对象图像处理的概念:限定图像处理的对象为几类特殊的图像(JPG,GIF,BMP),考察对象的共有属性(称为先验),并将其结合到图像处理的任务中以提供更多的信息,从而提升图像处理的性能、提高处理效果。由于图像的处理是通过对一个个像素点进行处理,要想提高处理速度就需要寻找一个快速的处理方法。 本系统是Windows应用程序,可以进行图像的导入和导出,视图设置,附带和ACD SEE类似功能的图片编辑器编辑完成以

30、后可以对修改进行保存,可以调整图片尺寸,旋转和翻转图片,图片增强优化,图像的特效处理以及打印输出图片。4.2系统处理流程分析在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。业务流程图(transaction flow diagram,简称TFD),就是用一些规定的符号及连接来表示某个具体的业务处理过程,它是用尽可能少、尽可能简单的方法来描述业务处理过程的方法,由于它的符号简单

31、明了,所以非常易于阅读和理解业务流程。通过对系统的需求分析,系统的基本功能已经确定。整个系统各个模块的业务流程,如图4-1所示: 图4-1 业务流程图5 系统总体设计5.1系统功能模块划分数字图像处理系统的总体功能模块如图4-1所示:图 5-1 数字图像处理功能模块划分模块设计是对处理流程图的注释性书面文件,以帮助程序设计人员进一步了解模块的功能和设计要求,本系统采用C+语言开发,由于计算机的硬件和软件发展日新月异,所以对这种语言利用的过程,也是不断学习的过程。数字图像处理系统主要分为三个子模块,即文件操作模块、图像编辑模块、图像处理模块模块。系统的具体的模块设计如下:1.文件操作:该模块主要

32、实现图像的文件操作,包括打开图像文件、保存图像文件、图像文件的打印等操作。2.图像编辑:该模块主要实现图像的编辑操作,包括图像的复制、图像的粘贴、在图像中添加文字信息等操作。3.图像操作:该模块主要实现图像的特殊处理与缩放处理,包括图像的点运算、图像的几何变换、图像的增强和复原处理、图像的边缘检测和分割、图像编码图像的特效处理等操作。5.2类的设计对话框类类名类的作用CAboutDlg关于对话框类版权信息显示CAddTextDlg添加文字对话框类打开对话框添加文字CDlgArith算术编码对话类设置算术编码参数设置CDlgBitPlane位平面编码对话框类输入位平面编码参数CDlgHistog

33、灰度直方图对话框类描述图像灰度级内容CDlgHuffman霍夫曼编码对话框类显示霍夫曼码表CDlgShannon香农-费诺编码对话框类显示香农-费诺编码表CGeoRotaDlg图像旋转对话框类对图像旋转度数设置CGlgImageThre阀值变换对话框类输入阀值参数CImagePro灰度拉伸对话框类控制灰度拉伸参数CMidFilterDlg中值滤波对话框类选择中值滤波模版CSharpThreDlg阀值设定对话框类输入阀值分割参数CGeoZoom图像缩放对话框类实现缩放大小参数设置CSmoothDlg图像平滑对话框类选择图像平滑模版图5-2 对话框类表MFC类库中实现了对GDI位图操作的CBitm

34、ap类,但是没有封装处理DIB(Device-Independent Bitmap 设备无关位图)位图操作的相关Windows API类,CMyDIB类就是采用面向对象的思想实现了对该类函数以及数字图像处理算法的封装。实现的功能主要有以下几个方面:(1)读取BMP图像文件;(2)获取图像的相关信息;(3)显示图像;(4)保存图像;(5)图像处理的各种算法实现。CBmpShow、CRectTrackerEx类主要是实现了图像文本的插入处理。5.3系统框架类CJiaApp、CJiaDoc、CJiaView、CMainFrame、CChildFrame五个类主要实现了应用程序的框架及框架内部的各种逻

35、辑、消息响应机制。6 系统的详细设计根据前面对系统所需实现功能的分析和系统结构设计,现将对系统进行详细设计,逐步实现系统的各个功能模块。6.1文件模块的设计(1)文件操作模块文件操作模块是整个系统中最基本的组成成分。文件操作模块主要实现图像文件的打开、打印、修改后的保存以及图像文件的另存为操作。通过对用户的需求分析得出文件操作模块的功能结构图,文件操作模块的功能结构图如图6-1所示:文件操作模块图像打开图像保存图像打印图6-1 文件操作模块功能结构图应用程序的的启动界面如图6-2所示:图6-2 图像启动界面程序的启动界面由CSplashWnd类实现,在CSplashWnd类中的OnCreate

36、函数中的定时器SetTimer(1, 2750, NULL)设置的定时间隔就是启动画面的显示的时间,该系统设置的显示时间是2750ms,然后发送WM_TIMER消息,隐藏启动画面;如果系统收到键盘或者鼠标单击消息时也会自动隐藏启动画面。(2)文件打开功能的实现,其文件打开界面如图6-3所示:图6-3文件打开界面通过文档视图结构简化了数据操作和数据显示,文档只负责数据管理,不涉及用户界面;视只负责数据输出和用户界面的交互,可以不考虑应用程序的数据是如何组织的。通过文档JDoc类中的OnOpenDocument(LPCTSTR lpszPathName)函数实现对文件的打开,而在视图JiaView

37、类中实现图像的显示。(3)图像的保存 图像的保存也是在文档类实现,首先声明了CMyDIB类的指针变量m_pDibImage,经过保存对话框后,程序接下来调用成员函数m_pDibImage-SaveDIB(m_hDIB, file)将图像存为指定文件。另外,一旦将文件更名保存,就需要将该图像所属的子窗口标题栏中的标题更名为新的文件名,此项任务由成员函数pChildFrame-SetWindowText()负责。(4)图像的打印图像的打印实现,通过IsPrinting()函数判断CDC对象是否是指向设备上向下文环境的对象,如果是,则执行如下代码实现打印:/ 获取打印页面的水平宽度(象素)int c

38、xPage = pDC-GetDeviceCaps(HORZRES);/ 获取打印页面的垂直高度(象素)int cyPage = pDC-GetDeviceCaps(VERTRES);/ 获取打印机每英寸象素数int cxInch = pDC-GetDeviceCaps(LOGPIXELSX);int cyInch = pDC-GetDeviceCaps(LOGPIXELSY);/ 计算打印图像大小(缩放,根据页面宽度调整图像大小)rcDest.top = rcDest.left = 0;rcDest.bottom = (int)(double)cyDIB * cxPage * cyInch)

39、/ (double)cxDIB * cxInch);rcDest.right = cxPage;/ 计算打印图像位置(垂直居中)int temp = cyPage - (rcDest.bottom - rcDest.top);rcDest.bottom += temp/2;rcDest.top += temp/2;6.2图像编辑模块图像编辑模块是图像处理系统中重要模块,主要实现图像文件的编辑操作。包括图像的复制、粘贴以及在图像中插入文本操作。图像编辑模块的功能结构如图6-4所示:图像编辑模块图像复制图像粘贴文本插入图6-4功能结构图图像编辑主要实现对图像的编辑,用户在打开图像之后可以选择复制图

40、像或者剪切图像,如果想要把复制的图像保存下来就需要先将图片保存到剪贴板后进行图像粘贴,保存操作,这样就可以把原来图像中的一部分保存下来。如果需要添加一些说明性文字可以进行文本的插入,单击编辑/添加字体调出文本插入对话框,进行文本插入说明,这样可以把图像的描述信息添加到图像中。插入文本实现了在图像中任意位置插入文字,没有实现字体和颜色的设置。插入文本的代码如下所示:void CBmpShow:PaintBmpAndText()/绘制图像和文字SetDIBits(m_pMemDC-GetSafeHdc(), (HBITMAP)m_pMemBmp-m_hObject, 0,m_lpBMPHdr-bi

41、Height,(LPVOID)m_lpDIBits,(BITMAPINFO*)m_lpBMPHdr, DIB_RGB_COLORS);if (m_strBmpText.GetLength() 0)CRect rcText = m_textTracker.m_rect - m_rcDraw.TopLeft();m_pMemDC-SetBkMode(TRANSPARENT);/设置字体m_pMemDC-SetTextColor(RGB(250, 0,0);rcText.OffsetRect(1, 1);/根据矩形的宽度,插入换行符CString strText = NewLineString(m_

42、strBmpText, rcText);/ Call this member function to format text in the given rectanglem_pMemDC-DrawText(strText, rcText, DT_LEFT|DT_WORDBREAK);图像文本插入界面如图6-5所示:图6-5文本插入界面6.3图像处理模块图像处理模块主要是实现灰度图像的处理,因为灰度图像的每个像素的位数正好是8位,即一个字节,这样,在进行图像处理时可以不用考虑拼凑字节的问题。而且由于灰度图调色板的特殊性,进行灰度图像处理时不必考虑调色板的问题。这部分的主要功能是图像的点运算、图像

43、的几何运算、图像的正交变换、图像的增强、图像边缘检测和分割、图像编码。经过分析图像处理的功能,得出图像处理的功能模块图如图6-6所示:图像处理模块图像点运算几何运算图像编码检测分割增强复原正交变换图6-6功能模块图点运算(Point Operation)是一种及简单有重要的技术,它能让用户改变图像数据占据的灰度范围。点运算可以按照预定的方式改变一副图像的灰度直方图。灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的的灰度级内容。任何一幅图像的直方图都包括了可观的信息,某些类型的图像还可由其直方图完全描述。图像直方图运行效果图如6-7所示:图6-7图像直方图灰度的线性变换是点

44、运算中最简单的运算之一,就是将图像中所有的点的灰度按照线性灰度变换函数进行变换。反转是灰度线性变化中最常见的一种情形。图像效果图反色前与反色后的对比如图6-8所示:图6-8图像反色效果对比图灰度的阀值变换比较简单,容易实现,可以将一副灰度图像转换成黑白二值图像。如果图像中某像素的灰度值小于该阀值,则将该像素的灰度值设为0,否则灰度值设为255。设置阀值为100的阀值变换前后的图像如图5-9所示:图6-9阀值变换前后图 灰度拉伸灰度拉伸是分段进行线性变换,可以更加灵活的控制输出灰度直方图的分布,它可以有选择的拉伸某段灰度区间以改善输出图像。如果一幅图像灰度集中在较暗的区域而导致图像偏暗,可以用灰

45、度拉伸功能来拉伸(斜率1)物体灰度区间一改善图像;同样如果灰度集中在较亮的区域而导致图像偏亮,也可用灰度拉伸功能来压缩(斜率1)物体灰度区间来改善图像质量。实现灰度拉伸的算法如下:BOOL CMyDIB:GrayStretch(LPSTR lpDIBBits, LONG lWidth, LONG lHeight, BYTE bX1, BYTE bY1, BYTE bX2, BYTE bY2)unsigned char*lpSrc;/ 指向源图像的指针LONGi;LONGj;/ 循环变量BYTEbMap256;/ 灰度映射表LONGlLineBytes;/ 图像每行的字节数lLineBytes

46、= WIDTHBYTES(lWidth * 8);/ 计算图像每行的字节数/ 计算灰度映射表for (i = 0; i 0) / 判断bX1是否大于0(防止分母为0)bMapi = (BYTE) bY1 * i / bX1;else bMapi = 0;for (; i = bX2; i+)if (bX2 != bX1) / 判断bX1是否等于bX2(防止分母为0)bMapi = bY1 + (BYTE) (bY2 - bY1) * (i - bX1) / (bX2 - bX1);else bMapi = bY1;for (; i 256; i+)if (bX2 != 255) / 判断bX2

47、是否等于255(防止分母为0)bMapi = bY2 + (BYTE) (255 - bY2) * (i - bX2) / (255 - bX2);else bMapi = 255; for(i = 0; i lHeight; i+)/ 每行for(j = 0; j lWidth; j+)/ 每列/ 指向DIB第i行,第j个象素的指针 lpSrc = (unsigned char*)lpDIBBits + lLineBytes * (lHeight - 1 - i) + j;/ 计算新的灰度值*lpSrc = bMap*lpSrc;return TRUE;灰度拉伸前后如图6-10所示:图6-1

48、0灰度拉伸图系统图像的几何变换是指原始图像按照需要产生大小、形状和位置的变化。使图像处理和分析的基础内容之一,它不仅提供了产生某些特殊效果图像的可能,而且可使图像处理和分析的程序的简单化,特别是当图像具有一定得规律时,一个图像可以由另一个图像通过几何变换来实现。图像镜像变换不改变图像的形状。镜像变换分为两种:一种是水平镜像,另一种是垂直镜像。图像的水平镜像操作是将图像左半部分和右半部分以图像垂直中轴线为中心镜像进行对换,图像的垂直镜像操作是将图像上半部分和下半部分以图像水平中轴线为中心镜像进行对换。镜像变换效果如图6-11所示:图6-11镜像变换效果图图像旋转是以图像中心为中心旋转60度DIB

49、图像效果如图6-12所示:图6-12旋转效果图图像的形状变换(缩放)假设图像X轴方向缩放比率fx,y轴方向缩放比率是fy,那么原图中点(x0,y0)对应于新图中的点(x1,y1)的转换矩阵为:图6-12 图像形状变换矩阵图例如,当fx = fy = 0.5时,图像被缩到一半大小,此时缩小后图像中的(0,0)像素,(0,1)像素对应于原图中的(0,2)像素,(1,0)像素对应于原图中的(2,0)像素,以此类推。在原图基础上,每行隔一个像素取一点,每隔一行进行操作。同理fx=fy=2时,图像放大2 倍,放大后图像中的(0,0)像素对应于原图的(0,0)像素;(0,1)像素对应于原图中的(0,0.5

50、),该像素不存在,可以近似为(0,0)也可近似为(0,1),(0,2)像素对应于原图中的(0,1)像素,以此类推。其实是将原图每行中的像素重复取值一遍,然后每行重复一次。图像参数设置及效果图如图6-13所示:图6-13图像缩放目前,图像的正交变换被广泛地运用于图像特征提取、图像增强、图像复原、图像压缩的领域。而这一部分主要是图像的频域处理方法,把图像信号从空间域变换到频域,可以从另一个角度来分析图像信号的特性。图像的频域处理最突出的特点是其运算速度高,并可采用已有的二位数字滤波技术进行所需的各种图像处理,因此得到了广泛的应用。数字图像的频域处理最关键的是变换处理,即首先将图像从空间域变换到频域

51、,然后进行各种处理,再将所得的结果进行逆变换,从频域在变换到空间域,从而达到图像处理的目的。数字图像的频域处理主要用三种应用:1.利用某些频域变换可以从图像中提取图像的特征;2. 利用图像频域处理可实现图像的高效压缩编码;3.减小计算维数,使计算运算次数大大减少,从而提高图像的处理速度。傅里叶变换、离散余弦变换的处理效果对比如图5-14所示:图5-14正交变换效果图6.4图像的增强和复原1)图像增强的目的是改善图像的视觉效果,或者使图像更适合于人或机器进行分析处理。通过图像增强,可以减少图像中的噪声,提高目标于背景的对比度,也可以强调或抑制图像中的某些细节。模版操作是数字图像处理中经常用到的一

52、种运算方式,图像的平滑、锐化及下部分的图像边缘检测都要用到模版操作。图像平滑是一种实用的数字图像处理技术,主要的目的是为了减少图像的噪声。一般情况下,在空间域内可以用领域平均来减少噪声;在频率域,由于噪声频谱通常所在高频段,因此可以采用各种形式的低通滤波的办法来减少噪声。平滑模版的思想是通过一点和周围几点的运算来除去突然变化的点,从而滤掉一定的噪声,但图像有一定的模糊。中值波滤是一种非线性的信号处理方法,中值滤波器在1971年由J.w.Jukey首先提出并应用在一维信号处理技术中,后来二维图像信号处理技术所引用。中值滤波在一定的条件下可以克服线性滤波器如最小均方滤波和均值滤波等带来的图像细节模

53、糊,而且对滤除脉冲干扰及图像扫描噪声最为有效。中值波滤一般采用一个含有奇数个点的滑动窗口,将窗口中个点灰度值的中值来代替指定点的灰度值。对于奇数个元素,中值是按大小排序后,中间的数值;对于偶数个元素,中值是指排序后中间两个元素灰度值的平均值。效果图如图6-15所示:图6-15中值滤波效果图图像锐化处理的目的是使模糊的图像变得更加清晰起来,增强图像的边缘等细节。图像锐化一般有两种方法:一种是微分法,另一种是高通滤波法。而本数字图像处理系统只是实现了两种常用的微分锐化方法:梯度锐化和拉普拉斯锐化。梯度锐化阀值的为50,两种方法的处理效果图如图6-16所示:图6-16图象锐化效果图2)图像复原和图像

54、增强有类似的地方,都是为了改善图像。但是它们又有明显的不同,图像复原是试图利用退化过程的先验知识使已退花的图像恢复本来面目,即根据退化的原因,分析引起退化的环境因素,建立相应的数学模型,并沿着使图像降质的逆过程恢复图像。由于引起图象退化的因素众多而且性质不同,为了描述图像退化过程所建立的数学模型往往多种多样,而恢复的质量标准也往往存在差异性,因而图像恢复是一个复杂的数学过程,图像的复原的方法、技术也各不相同。7 系统调试由于本系统只是实现了灰度图的处理,所以如果处理真彩色位图时会有以下提示:目前系统只支持256位图的处理如图7-1所示:图7-1出错图面由于开始对Visual C+的编译环境并不

55、是很了解,经常会出现内存访问错误的提示。如图7-2所示:图7-2出错提示界面例如在对图像平滑对话框设置时,在resource.h出现了漏定义现象:#define IDC_EDIT_V19 1038#define IDC_EDIT_V20 1040没有定义1039而是直接定义了1040,编译时并没有出现错误,但在执行命令时出现了错误提示:Jia.exe 中的 0x5f439216 (MFC42D.DLL) 处未处理的异常: 0xC0000005: 读取位置 0x00000020 时发生访问冲突VC+的编译环境提供了很好的调试工具,例如找到出错的模块,可以利用断点或者单步执行和环境提示信息,可以很

56、快的找到错误。由于数字图像处理系统是对每个像素点直接处理,再加上指针的使用经常会出现内存访问出错,增加了系统的调试难度。结 论通过这次系统开发,我不但丰富了知识层次,而且我对系统开发的过程也有了很深的理解。围绕对一个具体的系统的开发,把计算机的理论与实践相结合,丰富了自己的编程经验。在这两个多月里,我学到了许多以前没有学到的知识和技能,锻炼了自己的独立思考能力和实际操作能力,系统整理了大学期间所学的知识。并自学了MFC框架开发技术,VC+技术,图像处理等众多的知识,特别是学会了对软件开发中整个流程的分析。从系统需求分析开始,系统的分析和设计、系统的实施、编写代码、调试和书写文档以及最后运行程序

57、,这些练习都为我将来的学习和工作提供了良好的理论基础和实践能力。图像处理方法一般有数字法和光学法两种,其中数字法的优势很明显,已经被应用到了很多领域中,相信随着科学技术的发展,其应用空间将会更加广泛。数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理是从20世纪60年代以来随着计算机技术和VLSL的发展而产生、发展和不断成熟起来的一个新兴技术领域。数字图像处理技术其实就是利用各种数字硬件与计算机,对图像信息通过转换而得到的电信号进行相应的数学运算,例如图像去噪、图像分割、提取特征、图像增强、图像复原等,以便提高图像的实用性。其特点是处理精度比较高,并且能够对处理软件进行改进来优化处理效果,操作比较方便,但是由于数字图像需要处理的数据量一般很大,因此处理速度有待提高。目前,随着计算机技术的不断发展,计算机的运算速度得到了很大程度的提高。在短短的历史中,它却广泛应用于几乎所有与成像有关的领域,在理论上和实际应用上都取得了巨大的成就。但是,由于毕业

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!