基于MFC的数字图像处理系统

更新时间:2024-05-12 00:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西南科技大学本科生毕业论文

I

基于MFC的数字图像处理系统开发

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

关键词:MFC; VC++; 灰度图像; OpenCv;

西南科技大学本科生毕业论文

II

The development of digital image processing system based

on MFC

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 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 idea of MFC was used and the system structure was implemented by VC++ and OpenCv, and to use their implements image smoothing, gradient sharpening, region growing, image extraction function.So the development of software can be predigested and flexibility, expansibility and reusability of software system can be improved.

Key words: MFC; VC++; Grayscale image; OpenCv;

西南科技大学本科生毕业论文

III

目 录

第1章 绪论 .............................................................................................................................. 1

1.1 概述 .............................................................................................................................. 1 1.2 国内外研究现状及发展趋势 ...................................................................................... 2 1.3 生产需求状况 .............................................................................................................. 2 1.4 课题设计背景和意义 .................................................................................................. 3 1.5 本文结构 ...................................................................................................................... 3 第2章 数字图像概论 .............................................................................................................. 5

2.1数字图像及图像处理 ................................................................................................... 5 2.2 数字图像处理的目的和主要内容 .............................................................................. 5 2.3 数字图像处理的应用领域和发展动向 ...................................................................... 7

2.3.1 数字图像处理的应用领域 ................................................................................ 7 2.3.2 数字图像处理的发展动向 ................................................................................ 8 2.4数字图像处理系统开发技术基础 ............................................................................... 9

2.4.1 C++语言及VC++平台简介 ............................................................................... 9 2.4.2 MFC技术简介 ................................................................................................... 9 2.4.3 OpenCV简介 ...................................................................................................... 9 2.5 本章小结 ...................................................................................................................... 9 第3章 需求分析 .................................................................................................................... 10

3.1 系统功能需求分析 .................................................................................................... 10 3.2 系统处理流程分析 .................................................................................................... 11 3.3 本章小结 .................................................................................................................... 11 第4章 系统功能总体设计与实现 ........................................................................................ 12

4.1 系统功能的模块划分 ................................................................................................ 12 4.2 文件操作模块设计 .................................................................................................... 13 4.3 图像平滑 .................................................................................................................... 16

4.3.1 平均模板及其实现 .......................................................................................... 16 4.3.2 高斯平滑及其实现 .......................................................................................... 18

西南科技大学本科生毕业论文

IV 4.3.2 中值平滑及其实现 .......................................................................................... 20 4.4 图像锐化 .................................................................................................................... 21 4.5 区域生长 .................................................................................................................... 25 4.6 提取区域 .................................................................................................................... 29 4.7 本章小结 .................................................................................................................... 31 结论 .......................................................................................................................................... 32 致谢 .......................................................................................................................................... 33 参考文献 .................................................................................................................................. 34 附录1 ....................................................................................................................................... 35

西南科技大学本科生毕业论文

第1章 绪论

1.1 概述

随着科学技术的发展和人民生活水平的提高,数字摄像机的出现和数字图像处理技术的发展,在日新月异的数字化时代中,越来越引起人们的广泛关注,数字图像处理已经成为必备的基础知识。数字图像处理又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。20世纪60年代,图像处理的技术开始得到较为科学的应用,人们用这种技术进行输出图像的理想化处理。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。数字图像处理在医学上获得了巨大的成果。1972年英国EMI公司工程师Housfield发明了用于头颅诊断的X射线计算机断层摄影装置,也就是我们通常所说的CT(Computer Tomograph)。CT的基本方法是根据人的头部截面的投影,经计算机处理来重建截面图像,称为图像重建。1975年EMI公司又成功研制出全身用的CT装置,获得了人体各个部位鲜明清晰的断层图像。1979年,这项无损伤诊断技术获得了诺贝尔奖,说明它对人类作出了划时代的贡献。 与此同时,图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,属于这些领域的有航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等,使图像处理成为一门引人注目、前景远大的新型学科。 随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。

1

西南科技大学本科生毕业论文

1.2 国内外研究现状及发展趋势

近几十年来由于计算机技术的蓬勃发展,图像处理技术也得到了空前的发展和应用。目前,图像处理技术已经广泛应用于工业、军事、医学、交通、农业、天气预报、银行、超市、重要部门的监控报警系统、可视电话、网络传输等等领域,成为各个学科学习和研究对象。随着图像处理技术的广泛应用,学习和掌握这门科学显得格外重要,图像处理已经成为信息技术相关领域的核心课程。

经过多年的发展,现在的电子图像处理技术已具有了更好的再现性、占用的频带更宽、适用面宽、具有较高的灵活性等特点。

不论在哪种通讯手段中,人们都更愿意选择直观的图像表达。因此,未来社会对图像传递信息的要求越来越高,及时性、直观性、客观性等发展条件都对现有的数字图像处理技术提出了挑战。

计算机数字图像处理技术在未来信息技术方面将会发挥的重要作用早已被人们看到,对于计算机图像技术的发展道路,大致可以归结出3个原则性内容:①未来数据图像技术强调高清晰度、高速传输、实时图像处理、三维成像多维成像、智能化、自动化等方向发展。②未来数字图像处理技术强调操作、运用的方便性。图像处理集中化趋势是必然存在的。③更新的理论研究与更快的算法研究。理论走在实践的前面,已经是现代科学的特点。未来数字图像处理技术的实际运用要取得更多的发展,必然离不开理论和研究方法的更新,新理论中包括小波分析、分形几何、形态学、遗传算法等都将得到更深层次的发展。图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索的新领域。

数字图像处理技术的有效应用在人们日常生活中就能切身地感受到,不管是看电视、看电影、上网还是移动通信,每个人都与这种技术发生着最紧密的联系。数字图像处理技术的发展关系到每个人对优越的社会生活、现代物质享受的程度的深浅。所以,对之进行及时的研究和关注在电子通信行业中是非常重要的。

1.3 生产需求状况

图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉及到人

2

西南科技大学本科生毕业论文

类生活和工作的方方面面。随着人类活动范围的不断扩大,图像处理的应用领域也将随之不断扩大。在航天和航空技术、生物医学工程、通信工程、工业和工程、军事公安、文化艺术、机器人视觉、视频和多媒体系统、科学可视化、电子商务等各个方面和领域都有着广泛的需求与应用。

1.4 课题设计背景和意义

随着光电设备和计算机硬件的高速发展,数字图像处理技术在PC平台上的应用已经十分广泛。通常情况下,这一类的分析处理过程往往需要使用专用软件来完成,最为常见的有Matlab等。虽然这一类专用软件功能丰富、强大,但仍存在一定的局限性。以Matlab为例,该软件几乎具备了各种数据类型,甚至数据模型的分析处理能力;但也正是由于其功能过于丰富,并不能很好地满足各个方面的需求。另外,待处理的图像类型可能有很多种,如14位的红外传感器灰度图像,Matlab不可能保证兼容所有的类型。因此,单独开发专用的图像处理程序非常必要。MFC的出现使得程序快速开发成为可能,又由于其代码使用C++语言编写,运行效率高、执行速度快,非常适合图像处理方面的应用。

所谓图像处理,就是对图像信息进行加工以满足人的视觉心理或应用需求的行为。视觉是人类从大自然中获取信息的最主要的手段。据统计,在人类获取的信息中,视觉信息约占60%,听觉信息约占20%,其他的如味觉信息、触觉信息等加起来约占20%。由此可见视觉信息对人类的重要性,而图像正是人类获取视觉信息的主要造径。所谓“图”,就是物体透射或者反射光的分布;“像”是人的视觉系统接收图的信息而在大脑中形成的印象或认识。前者是客观存在的,而后者是人的感觉,图像就是两者的结合。

1.5 本文结构

本文以MFC技术为基础,概述了如何运用VC++和OpenCV编译一个简单的数字图像处理系统以实现图像读入。图像平滑、梯度锐化、区域生长和图像提取的功能。

第一章为绪论,主要介绍课题的研究背景、目的和意义;第二章为数字图像处理概论的介绍,主要介绍了数字图像处理作为一个当今社会需求相当大的技术的研究目的和主要内容以及它在当今人类生活中所扮演的重要作用,本章还介绍了本次设计所需具备的知识和多要运用的平台;第三章为系统的需求分析,对程序所需实现的功能和总体要

3

西南科技大学本科生毕业论文

求进行了分析,从而获得本次设计对功能数据的要求;第四章则为系统的设计实现,也是本文的核心内容。本章讲解了系统所需功能的实现过程以及实现后所得图像的效果对比和分析,完成了课题要求的提取腹腔中肝脏部分的内容。

4

西南科技大学本科生毕业论文

第2章 数字图像概论

2.1数字图像及图像处理

数字图像处理(Digital Image Processing)是一门关于如何使用计算机对图像进行处理的学科,而数字图像是由被称做像素的小块区域组成的二维矩阵。对于单色即灰度图像而言,每个像素的亮度用一个数值来表示,通常数值范围在0~255之间,即可用一个字节来表示,0表示黑、255表示白,而其他表示灰度。

彩色图像可用红、绿、蓝三元组组成的二维矩阵来表示。通常,三元组的每个数值也是在0~255之间,0表示相应的基色在该像素中没有,而255则代表相应的基色在该像素中去得的最大值,这种情况下每个像素可用三个字节来表示。

所谓图像处理,就是对图像信息进行加工以满足人的视觉心理或者应用需求的行为。图像处理的手段有光学方法、电子学(数字)方法。电子学(数字)方法是指用计算机加工处理图像,通过各种处理算法来实现对图像内容的处理。它通常由一个微型、小型、至大型计算机与图像处理机或由一个专用计算机来执行。

2.2 数字图像处理的目的和主要内容

一般而言,对图像进行加工和分析主要有如下3方面的目的: ①提高图像的视感质量,以达到赏心悦目的目的。

②提取图像中所包含的的某些特征或特殊信息,以便于计算机进行分析。 ③对图像数据进行变换、编码和压缩,以便于图像的储存和传输。

不管图像处理是出于何种目的,都需要用计算机图像处理系统对图像数据进行输入、加工和输出,因此数字图像处理研究的内容主要有一下7个过程。

1、图像获取、表示和表现

该过程主要是把模拟图像信号转化为计算机所能接受的数字形式,以及把数字图像显示和表现出来(如打印)。这一过程主要包括摄取图像、光电转换机数字化等几个步骤。

5

西南科技大学本科生毕业论文

2、图像增强

图像增强是对图像质量在一般意义上的改善。利用各种数学方法和变换手段提高图像中目标与非目标(如背景)的对比度与清晰度,达到突出目标,有效地表示和提示图像,以利于人或机器进行分析处理的目的。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;强化低频分量,可减少图像中噪声影响。该部分主要研究各种增强模型和处理方法。

3、图像复原

在景物成像过程中,由于成像设备与物体的相对运动、介质散射、系统畸变(如成像系统的变焦、成像器材的固有缺陷)、噪声干扰等因素会造成图像质量降低,称之为“退化”,典型现象是图像模糊。使退化的图像恢复本来面目,真实反映原景物图像的处理,称为图像复原。图像复原要求对图像降质的原因有一定的了解,一般而言,应根据降质过程建立“降质模型”再采用某种滤波方法,恢复或重建原来的图像。该部分主要研究各种校正模型和处理方法。

4、图像分割

图像分割是数字图像处理中的关键技术之—,也是图像处理中最困难的问题之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究的热点之一。

5、图像分析

图像分析主要是对图像中感兴趣的目标进行检测和测量,以获得它们的客观信息,从而建立对图像的描述。而图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。

6、图像重建

图像重建与上述的图像增强、图像复原等不同。图像增强、图像复原的输入是图像,处理后输出的结果也是图像,而图像重建是指从数据到图像的处理,即输入的是某种数

6

西南科技大学本科生毕业论文

据,而经过处理后得到的结果是图像,CT就是图像重建处理的典型应用实例。

7、图像压缩编码

数字图像的特点之一是数据量庞大。把数字化的图像数据按一定规则进行排列或运算的过程称为图像编码。由于于图像的数据量很大,存储要占很大的空间,传输也要花费不少时间,为此利用图像本身的内在特性(如像素灰度值之间的相关性),按某种特殊方式编码,以压缩总的信息量,称之为图像压缩编码。

一般来说,图像编码的目的有三个:减少数据储存量;降低数据率以减少传输带宽;压缩信息量,便于特征提取,为后续识别做准备。该部分主要研究各种高效压缩编码方法。压缩可以在不失真的前提下获得,也可以在允许的失真条件进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。

2.3 数字图像处理的应用领域和发展动向

2.3.1 数字图像处理的应用领域

图像信息是人类主要的信息来源之一,图像处理的应用领域也涉及到人们工作生活中的方方面面。主要应用可归纳为以下几个方面:

(1)医用图像处理。医学上不论是基础研究还是临床应用,都是图像处理种类极多的领域。例如生物医学的显微图像的处理分析,如红白细胞和细菌,染色体分析;临床诊断中X光图像的鉴别、超声波图像(B超)的分析、眼底照片的分析等都是医疗辅助诊断的重要手段,尤其是计算机层析成像技术(CT),可以获得人体剖面图,使肌体病变特别是肿瘤的诊断起到了革命性的变化,近年来出现的核磁共振CT,使人体免受各种硬射线的伤害,而且图像更为清晰。

(2)遥感图像的处理。飞机或人造卫星传送来的遥感图像,由于各种原因图像质量不是很好,必须在成像、存储、传输、判读过程中进行各种数字处理与分析(如辐射校正、几何畸变校正、多光谱统计信息分类等),并将其变为可视的资源信息或气象信息,如大气预报中的卫星云图。目前遥感技术已在资源调查、灾害监测、农业规划、城市规划、环境保护等方面得到了广泛的应用。

(3)文字的识别与图纸的判读。文字与图纸是科技信息的主要传输手段。文字与图纸在图像处理中都是以最简单的二值图像形式出现的。文字识别的应用包括手写体文字的识别、图文混合中文字的识别等,如邮政编码的自动识别,计算机光笔输入,经扫描仪

7

西南科技大学本科生毕业论文

扫描的文字材料是以图像文件的形式保存,如何将其转变成文本文件等等。目前此类应用技术已比较成熟,如OCR软件等。图纸的判读则涉及到各种逻辑图和机械设计图的自动读取问题,其中也包括图纸上的文字识别问题(即图文混合下的文字识别)。 (4)工业领域的应用。产品外观检测与筛选,表面缺陷的自动检测,组装与流水线上的自动化,工业材料的质量检验。

(5)农业上的应用。包括农产品色度的检测(如鉴别水果成熟度),农牧产品,作物的表血形状和特征参数的测定。

(6)机器人视觉:机器视觉作为智能机器人的重要感觉器官,主要进行三维景物理解和识别,是目前处于研究之中的开放课题。

(7)电子商务:当前,呼声甚高的电子商务中,图像处理技术也大有可为,如身份认证、产品防伪、水印技术等。

(8)其他。指纹识别、影视中的特效等。

总之,图像处理技术应用领域相当广泛,已在国家安全、经济发展、日常生活中充当越来越重要的角色,对国计民生的作用不可低估。 2.3.2 数字图像处理的发展动向

图像处理技术未来发展大致可归纳为:

① 如想处理的发展将围绕HDTV(高清晰度电视)的研制,开展实时图像处理的理论及技术研究,向着告诉、高分辨率、立体化、多媒体化、智能化的标准方向发展。

② 图像、图形相结合,朝着三维成像或多维成像的方向发展。 ③ 硬件芯片研究。把图像处理的众多功能固化在芯片上,更便于应用。

④新理论与新算法研究。如小波分析(Wavelet)、分形几何(Fractal)、形态学(Morphology)、遗传算法(Genetic Algorithms,GA)、人工神经网络(Artificial Neural Networks)等。

数字图像处理经过初创期、发展期、普及期及广泛应用几个阶段,如今已是各个学科竞相研究并在各个领域广泛应用的一门科学。随着科学技术的进步以及人类需求的不断增长,图像处理科学无论是在理论上还是实践上,均会去得更大的发展。

8

西南科技大学本科生毕业论文

2.4数字图像处理系统开发技术基础

2.4.1 C++语言及VC++平台简介

C++语言是一个面向对象的语言,使用C++编写的代码更加简捷、高效,更具可维护性和可重用性。

VC++是在windows平台下构建32位应用程序的强大而又复杂的开发工具,是目前世界上使用非常广泛的工具之一。

VC++Developer Studio包含有编写程序源代码的编辑器,设计用户界面(菜单、对话框、图标等)的资源编辑器,建立项目配置的项目管理器,检查程序错误的集成调式等工具,同时,它还提供了功能强大的应用程序向导Appwizard和类向导ClassWizard工具。

2.4.2 MFC技术简介

MFC是微软为了简化程序员的开发工作所开发的一套c++类的集合,是一套面向对象的函数库,以类的方式提供给客户使用。MFC中的各种类结合起来构成了一个应用程序框架,它的日的就是让程序员在此基础上来建立windows下的应用程序,这是一种相对SDK来说更为简单的方法。 2.4.3 OpenCV简介

开放源代码的计算机视觉类库OpenCV(Intel Open Source Computer Vision Library)由英特尔公司位于俄罗斯的研究实验室开发,它是一套可以免费获得的由一些C函数和C++类所组成的库,用来实现常用的图像处理以及计算机视觉算法。与英特尔公司所开发的另外一个图像处理库IPL(Intel誖ImageProcessingLibrary)相比,OpenCV主要针对图像的一些高级处理,例如目标分割、运动分析与跟踪、特征检测以及三维重建等。

2.5 本章小结

本章主要对什么叫做数字图像处理以及数字图像处理的目的、主要内容、应用领域和发展动向进行了阐述和说明。并用现实的实例证明了数字图像处理技术在我们日常工作生活中不可或缺的地位。本章还简要介绍了C++语言,MFC技术和OpenCV。

9

西南科技大学本科生毕业论文

第3章 需求分析

3.1 系统功能需求分析

需求分析简单地说就是分析用户的需求。需求分析是设计系统的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。

需求分析的任务是通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。

调查的重点是“数据”和“处理”,通过调查、收集与分析,获得本次设计对数据的要求如下:

(1)图像的打开、关闭及还原:打开并显示图像,并在处理过图像后关闭或还原图像的修改。

(2)处理要求。指用户要完成什么处理功能,对处理的响应时间有什么要求,处理方式是批处理还是其他处理方式,能够完成图像一般的编辑处理。

(3)处理效果与效率。图像处理中一个很重要的问题就是如何表示有关的知识并以恰当的方式引入图像处理。由于图像处理任务的复杂性,目前要找出一个通用的方法适应各种情况是几乎不可能的。另一方面,在建立普适的图像处理方法时,往往会忽略某类图像具有的特定属性。相反,针对某类特定问题,则可能找到有效的方法。为此,有研究者提出基于对象图像处理的概念:限定图像处理的对象为几类特殊的图像(JPG,GIF,BMP),考察对象的共有属性(称为先验),并将其结合到图像处理的任务中以提供更多的信息,从而提升图像处理的性能、提高处理效果。由于图像的处理是通过对一个个像素点进行处理,要想提高处理速度就需要寻找一个快速的处理方法。

本系统是Windows应用程序,可以进行图像的读入,图像平滑,梯度锐化、区域生长和区域提取功能的图片编辑器编辑。完成以后可以对修改的图像进行图像还原。

10

西南科技大学本科生毕业论文

3.2 系统处理流程分析

在对系统的组织结构和功能进行分析时,需从一个实际业务流程的角度将系统调查中有关该业务流程的资料都串起来作进一步的分析。业务流程分析可以帮助我们了解该业务的具体处理过程,发现和处理系统的调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。

业务流程图(transaction flow diagram,简称TFD),就是用一些规定的符号及连接来表示某个具体的业务处理过程,它是用尽可能少、尽可能简单的方法来描述业务处理过程的方法,由于它的符号简单明了,所以非常易于阅读和理解业务流程。

通过对系统的需求分析,系统的基本功能已经确定。整个系统各个模块的业务流程,如图3-1所示:

读入图像并显示判定操作图像处理还原图像图像平滑梯度锐化区域生长提取区域

图3-1 业务流程图

3.3 本章小结

本章主要对所要构建系统需要实现的功能进行了需求分析,从而获得本次设计对功能数据的要求。同时,本章还进行了一次简要的流程分析,并绘制出了业务流程图。从而使在程序设计过程中方向更加明确清晰。

11

西南科技大学本科生毕业论文

第4章 系统功能总体设计与实现

4.1 系统功能的模块划分

数字图像处理系统的总体功能模块如图4-1所示:

读取操作文件操作数字图像处理系统图像操作区域生长还原图像图像平滑梯度锐化提取区域 图4-1 数字图像处理功能模块划分

模块设计是对处理流程图的注释性书面文件,以帮助程序设计人员进一步了解模块的功能和设计要求,本系统采用C++语言开发,由于计算机的硬件和软件发展日新月异,所以对这种语言利用的过程,也是不断学习的过程。

数字图像处理系统主要分为两个子模块,即文件操作模块、图像处理模块。 系统的具体的模块设计如下:

1.文件操作:该模块主要实现图像的文件操作,包括读取图像文件、还原图像操作。 2.图像操作:该模块主要实现图像的特殊处理,包括图像的平滑、梯度锐化、区域

12

西南科技大学本科生毕业论文

生长、提取区域操作。

在开始编程之前进行程序编辑流程图的绘制,程序编辑流程图如图4-2所示:

程序开始用户选择图片No是否读入图片Yes用户选择功能调用相应功能函数进行图像处理返回处理后图像并显示程序结束

图4-2 程序编辑流程图

4.2 文件操作模块设计

文件操作模块是整个系统中最基本的组成成分。文件操作模块主要实现图像文件的读取和还原图像功能。

应用程序的启动界面如图4-3所示:

13

西南科技大学本科生毕业论文

图4-3 图像启动界面

在启动程序以后,如果未先进行读入图片的操作而进行其他功能操作,则程序会自动报错。报错界面如图4-4所示:

图4-4 未读入图片进行操作后的报错显示

此时程序会自动弹出一个对话框警告”NO Image”,使用者须点击确定按钮重新读入

14

西南科技大学本科生毕业论文

图片。由于此次设计对读入图片有尺寸限制,所以如若读入图片尺寸过大,程序也会自动报错。报错界面如图4-5所示:

图4-5 读入图片尺寸错误后的报错显示

图片读取后界面如图4-6所示:

图4-6 图像读取后界面

15

西南科技大学本科生毕业论文

图像的还原是通过在读图图像时,程序会分配一个内存空间来对读入的图像进行备份。当点击“还原图像”按钮时,程序会自动调取所分配的内存空间里的备份图像进行显示,从而实现图像的还原。

4.3 图像平滑

图像平滑是一种可以减少和抑制图像噪声的使用数字图像处理技术。在空间域中一般可以采用领域平均来达到平滑的目的。

在程序编辑前首先绘制出图像平滑流程图,以确定编程流程。图像平滑流程图如图4-7所示:

子程序开始图像预处理Type=0?进行高斯平滑Type=1?进行平均平滑进行中值平滑求得平滑图片返回

图4-7 图像平滑程序流程图

4.3.1 平均模板及其实现

1.工作原理

16

西南科技大学本科生毕业论文

一般来说,图像具有局部连续性质,即相邻像素的数值相近,而噪声的存在使得在噪声点出产生灰度跳跃,但一般我们可以合理地假设偶尔出现的噪声影响并没有改变图像局部连续的性质,例如下面的局部图像f_sub,灰色底纹标示的噪声点,在图像中表现为亮区中的2个暗点:

f_sub=

200 215 212 208 196 198 5 202 199 221 199 207 202 201 211 203 218 210 210 198 203 218 210 0 198 200 215 212 208 205

对?用3×3的平均模板进行平滑滤波后,得到的平滑后图像g_sub: g_sub=

181 184 186 206 205 180 182 183 206 207 181 183 184 206 208 206 208 186 182 181 207 210 189 183 180 206 209 189 184 181

显然,通过平滑滤波原局部图像f_sub中噪声点的灰度值得到了有效修正,像这样将每一个点用周围点的平均替代从而达到减少噪声影响的过程就成为平滑。

2.平均平滑功能实现

图像平均平滑前后效果图对比如图4-8所示:

(a) 原始图像 (b) 3*3平均平滑

17

西南科技大学本科生毕业论文

(c) 5*5平均平滑 (d) 7*7平均平滑

图4-8 图像平均平滑前后对比图

平滑也称为模糊处理。经上述图像对比后,平均平滑后图像明显变模糊了。平均平滑的实现原理则是对每一个像素点???(其中?=3、5、7)领域求和,并做缩放1/?????。经上述图像可清楚的知道,随着?值的增大,所得到的平滑后图像则越模糊。 4.3.2 高斯平滑及其实现

1.理论基础

平均平滑对领域内的像素一视同仁,为了减少平滑处理的模糊,得到更自然的平滑效果,则会很自然地想到适当加大模板中心点的权重,随着远离中心点,权重迅速减小,从而可以确保中心点看起来更接近与它距离更近的点,基于这种考虑得到的模板即为高斯模板。常用的3×3的高斯模板如下所示:

?121???w?1/16??242??121? ??高斯模板名字的由来是二维高斯函数,即我们熟悉的二维正态分布密度函数,回忆一下,一个均值为0,方差为?2的二维高斯函数为:

(x2?y2)?(x,y)?exp?()22 2??2?1当?=1时,二维高斯函数的3维示意图如图4-9所示:

18

西南科技大学本科生毕业论文

(x2?y2)?(x,y)?exp(?)图4-9 二维高斯函数取?=1时的3维示意图 2??22?21高斯模板正是将连续的二维高斯函数的离散化表示,因此任意大小的高斯模板都可以通过建立一个(2k?1)?(2k?1)的矩阵M得到,其(i,j)位置的元素值可如下确定:

((i?k?1)2?(j?k?1)2)

M(i,j)?exp(?)2??22?21 2.高斯平滑功能实现

图像高斯平滑前后效果图对比如图4-10:

(a) 原始图像 (b) 3*3高斯平滑

19

西南科技大学本科生毕业论文

(c) 5*5高斯平滑 (d) 7*7高斯平滑

图4-10 图像高斯平滑前后对比图

进行高斯平滑的通常原因是真实图像在空间内的像素是缓慢变化的,因此临近点的像素变化不会很明显。但是随即的两点就可能形成很大的像素差(也就是说空间上噪声点不是相互联系的)。正是基于这一点,高斯滤波在保留信号的条件下减少噪声。但高斯平滑的不足时这种方法在接近边缘处就无效了,在哪儿不希望像素与相邻像素相关。因此,高斯平滑会磨平边缘。高斯平滑也就是对图像进行核大小为???(其中?=3、5、7)的高斯卷积,与平均平滑一样,随着?的增大,平滑后得到的图像也越模糊。 4.3.2 中值平滑及其实现

1.理论基础

中值平滑即中值滤波对数字图像进行处理可以直观地认为在图像画面中开一个一维的小窗口,它应该包含奇数个像素的灰度值从小到大排列起来,然后用中间灰度值来代替原排列的中间位置像素的灰度值。窗口然后从左到右移动,直到边界。窗口下移一行,再从左到右依次进行。

这样也就对图像灰度的跳跃有了平滑效果。 2.中值平滑功能实现

图像中值平滑前后效果图对比如图4-11所示:

(a) 原始图像 (b) 3*3中值平滑

20

西南科技大学本科生毕业论文

(c) 5*5中值平滑 (d) 7*7中值平滑

图4-11 图像中值平滑前后对比图

中值平滑是将中心像素的正方形领域内的每个像素值用中间像素值(不是平均像素值,区别于平均平滑)替换,他可以用来处理单个通道、三个通道或者四个通道8位的图像,但不可以in place操作。平均平滑对噪声图像特别是有大的孤立点(又是被称为“镜头噪声”)的图像非常敏感,即使有极少数量点存在较大差异也会导致平均值的明显波动,因此中值平滑可以通过选择中间值避免这些影响。中值平滑也就是对图像进行核大小为???(其中?=3、5、7)的中值滤波,与平均平滑、高斯平滑一样,随着?的增大,平滑后得到的图像也越模糊。但区别于平均平滑和高斯平滑的是中值平滑得到的图像更加圆润、光滑。

4.4 图像锐化

图像锐化的目的是使模糊的图像便得更加清晰。其应用广泛,包括从医学成像到工业检测和军事系统的制导等。

1.概念

图像锐化主要用于增强图像的灰度跳变部分,只一点与图像平滑对灰度跳变的抑制正好相反,事实上从平滑与锐化的两种运算算子上也能说明这一点,线性平滑都是基于图像领域的加权求和或积分运算,而锐化则通过逆运算导数(梯度)或有限差分来实现。

2. 基于一阶导数的图像增强 — 梯度算子

对于连续2维函数f(x,y),其在点(x,y)处的梯度是下面的二维列向量:

??f??Gx???x??f?????? ?Gy???f?

???y?? 21

西南科技大学本科生毕业论文

其中:?f?limf(x??,y)?f(x,y),在点(x,y)处f对x的偏导:

?x??0?

?ff(x,y?y)?f(x,y),在点(x,y)处f对y的偏导; ?lim??0?y?梯度的方向就是函数f(x,y)最大变化率的方向。 梯度的幅值作为变化率大小的度量,其值为?f(x,y)?(?f2?f2)?()。 ?x?y对于离散2维离散函数f(i,j),可以用有限差分作为梯度幅值的一个近似: ?f(i,j)?[f(i?1,j)?f(i,j)]2?[f(i,j?1)?f(i,j)]2

尽管梯度幅值和梯度两者之间有着本质的区别,但在数字图像处理中提到梯度时,往往不加区分,即将上市的梯度幅值称为梯度。

上式中包括平方和开方,不方便计算,因此可近似为绝对值的形式: ?f(i,j)?f(i?1,j)?f(i,j)?f(i,j?1)?f(i,j)

(1)Sobel梯度 Sobel算子:

该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:

??10?1???1?2?*AandG??0Gx???20?20y???????10?1????1?2 ?1?0??*A?1??

对数值边缘有较大响应的水平梯度 and 对水平边缘有较大响应的竖直梯度

图像的每一个像素的横向及纵向梯度近似值可用以下的公式结合,来计算梯度的大小。

然后可用以下公式计算梯度方向。

22

西南科技大学本科生毕业论文

右方暗。

在以上例子中,如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较

由于滤波时我们总是喜欢奇数尺寸的模板,因而上述计算Sobel梯度的Sobel模板较为常用。

(2)Robert交叉梯度

Robert交叉梯度对应的模板为:

??1 w1???00??0 w2??1???1?1? 0?? 其中,w1对接近正45度边缘有较强响应;w2对接近负45度边缘有较强响应。 3. 基于二阶微分的图像增强 — 拉普拉斯算子

二维函数f(x,y)的二阶微分(拉普拉斯算子)定义为:

?2f?2f ?f(x,y)?2?2

?x?y2对于离散的二维图像f(i,j),可以用下式作为二阶偏微分的近似:

?2f?(f(i?1,j)?f(i,j))?(f(i,j)?f(i?1,j))?f(i?1,j)?f(i?1,j)?2f(i,j) 2?x?2f?(f(i,j?1)?f(i,j))?(f(i,j)?f(i,j?1))?f(i,j?1)?f(i,j?1)?2f(i,j) 2?y将上面粮食相加就得到用于图像锐化的拉普拉斯算子:

?2f?[f(i?1,j)?f(i?1,j)?f(i,j?1)?f(i,j?1)]?4f(i,j) 对应的滤波模板如下:

?01 w1???1?4??010?1?? 0??因为在锐化增强中,绝对值相同的正值和负值实际上表示相同的响应,故也等同于使用如下模板w2:

23

西南科技大学本科生毕业论文

?0?10?? w2???14?1????0?10??梯度算子一旦算出以后,就可以根据不同的需要生成不同的梯度增强图像。最简单的方法就是用该点的梯度幅度代替该点的灰度。此方法的缺点就是增强的图像仅仅是灰度变换比较陡峭的边缘轮廓,而灰度变化比较平缓或者比较均匀的地方则呈现黑色。

为了突出物体的边缘,常常采用梯度值的改进算法,将图像各个点的梯度值与某一阈值作比较,如果大于阈值,该像素点的灰度值用其梯度值表示,否则用一个固定的灰度值表示。

综上所述,图像锐化算法主要包括三方面内容: (1)算取合适的梯度算子(如拉普拉斯算子);

(2)根据所选用的梯度算子计算图像各点的灰度值,得出各像素点的梯度值; (3)根据个像素点的梯度值选取合适的处理方法。 4. 图像锐化的功能实现

由于设计要求原因,本次设计主要只研究运用梯度算子来实现图像的锐化处理。首先绘制出梯度锐化实现的流程图,流程图如图4-12:

子程序开始复制图像利用sobel算子求出x,y方向上梯度求出图像梯度模值利用梯度模值与原图灰度值按比例相加得到锐化图像返回 图4-12 梯度锐化流程图

24

西南科技大学本科生毕业论文

根据上述流程图,编程实现图像锐化功能。图像锐化前后效果图对比如图4-12:

(a) 3*3平均平滑 (b) 第一次梯度锐化

(c) 第二次梯度锐化 (d) 第三次梯度锐化

图4-13 图像锐化前后对比图

由上图可清晰的看到图像经过锐化处理后的变化。图像锐化使原本经过图像平滑后变得模糊的边界、轮廓得到了改善,是图像的边缘变得清晰了。但是图像如果经过过度锐化(图4-13后两图)以后,反而会使图像变得模糊。因此进行图像锐化时需进行适度锐化图像,从而更好的得到所需图像。

4.5 区域生长

1. 图像分割概述

图像分割的方法和种类非常多,有些分割算法可以直接用于大多数图像,而另一些则只适用于特殊类别的图像。一般采用的方法有边缘检测(edge detection)、边界跟踪(edge tracing)、区域生长(region growing)、区域分离和聚合等。(本次设计则只研究区域生长的图像分割方法)。

图像分割算法一般给予图像灰度只的不连续性或其相似性。不连续性是给予图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法;相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。

25

西南科技大学本科生毕业论文

图像分割在科学研究和工程技术领域有着广泛的应用。在工业上,应用于矿藏分析、无接触式检测、产品的精度和纯度分析等;在生物医学上,应用于计算机断层图像CT、X光透视、核磁共振、病毒细胞的自动检测和识别等;交通上,应用于车辆检测、车种识别、车辆跟踪等;另外,在机器人视觉、神经网络、身份鉴定、图像传输等各个领域都有着广泛的应用。

2. 区域生长

区域生长是根据事先定义的准则将像素或者子区域聚合成更大区域的过程。其基本思想是从一组生长点开始(生长点可以是单个像素,也可以为某个小区域),将与该生长点性质相似的相邻像素或者区域与生长点合并,形成新的生长点,重复此过程直到不能生长为止。生长点和相邻区域的相似性判据可以是灰度值、纹理、颜色等多种图像信息。

区域生长一般有3个步骤。 (1)选择合适的生长点。

(2)确定相似性准则即生长准则。 (3)确定生长停止条件。

一般来说,在无像素或者区域满足加入生长区域条件时,区域生长就会停止。

图4.2给出一个区域生长的实例:图(a)为原图像,数字表示像素的灰度。以灰度为8的像素为初始的生长点,记为f(i,j)。在8领域内,生长准则是待测点灰度值与生长带你灰度值相差为1或者0。那么,图(b)所示,第一次区域生长后,f(i?1,j)、

f(i,j?1)、f(i,j?1)与中心点灰度值相差都为1,因而被合并。第二次生长后,如图(c)

所示,f(i?1,j)被合并。第三次生长后,如图(d)所示,f(i?1,j?1)、f(i?2,j)被合并,至此,已经不存在满足生长准的的像素点,生长停止。

?4

?1??0

?

?2?1???1

37

7(8)56262121

33?75??13?

? 04?31?

?31???4

?1??0??2?1???1

3

(7)5222(7)(8)6611

33?(7)5??13?

? 04?31?

?31??

(a)原图像灰度矩阵生长点 (b)第一次区域生长结果

26

西南科技大学本科生毕业论文

?4?1??0 ??2?1??1?3(7)5222(7)(8)(6)61133?(7)5??13?? 04?31??31???43?1(7)??0(5)??22?12?2?1?(7)(8)(6)(6)1133?(7)5??13?? 04?31??31?? (c)第二次区域生长结果 (d)第三次区域生长结果

3.区域生长的优势和劣势

优势:(1)区域生长通常能将具有相同特征的联通区域分割出来。 (2)区域生长能提供很好的边界信息和分割结果。 (3)区域生长的思想很简单,只需要若干种子点即可完成。 (4)在生长过程中的生长准则可以自由的指定。 (5)可以在同一时刻挑选多个准则。 劣势

(1)计算代价大。

(2)噪声和灰度不均一可能会导致空洞和过分割。 (3)对图像中的阴影效果往往不是很好。 4.区域生长的实现

首先绘制出区域生长实现的流程图,如图4-14所示:

子程序开始图像预处理(锐化)选择种子点迭代判断区域产生二值化图像返回 图4-14 区域生长流程图

27

西南科技大学本科生毕业论文

根据上述流程图,可编程实现区域生长功能。在读入图片点击区域生长功能键以后,系统会自动弹出一个名为”Check a point”的对话框,如图4-15所示:

图4-15 点击区域生长按键后弹出的对话框

此时,操作人员可以方便快捷的在该对话框中的图片上选择一个所需点作为种子点进行区域生长功能的实现。

种子点选择过后,程序会自动关闭该对话框回到主界面显示区域生长后的图片。图像区域生长后效果图如图4-16:

(a) 当阈值为8时的区域生长图 (b) 当阈值为9时的区域生长图

28

西南科技大学本科生毕业论文

(c) 当阈值为10时的区域生长图 (d) 当阈值为11时的区域生长图

(e) 当阈值为12时的区域生长图

图4-16 图像区域生长后效果图

区域生长是经过在图像上选取一个点作为第一个种子点,并设定一个阈值。然后将种子点的像素与周围点的灰度值相比较,他们的差值小于设定的阈值时就将其作为另一个种子点这样循环比较下去,直到种子点周围点灰度差值大于阈值才停止。然后将满足条件(即与种子点差值小于阈值)的点记录并留下来在图像中显示,从而得到如图5-15的区域生长后的图形。由图对比可见,当阈值为10时得到的区域生长后的图形最接近完整的肝脏,所以在后面提取区域时运用阈值为10的区域生长图进行提取,以便得到更好的肝脏提取效果图。

但此区域生长方法有个缺陷,会使得到的图形产生很多小孔,这将由下一个提取区域功能中加入一个图像腐蚀功能来改善这一缺陷。在编写区域生长的程序时需注意阈值的选择,如果阈值太大,容易导致溢出,使程序不能正常运行;如果阈值太小,则无法得到所需的图像。

4.6 提取区域

提取区域的功能是在图像进行过区域生长以后,将区域生长后的二值图作为掩码,

29

西南科技大学本科生毕业论文

在原图中提取并显示出来,从而提取出了原图腹腔中的肝脏部分。提取区域后的图像如图5-17所示:

图4-17 提取区域后的图像

上图是未经过腐蚀直接进行提取区域后得到的图像,由于直接进行提取区域操作后得到的图像中产生了很多小孔,使所得的图像失真,不能达到对于所需图像的效果要求。所以考虑在提取区域之前加入图像腐蚀功能。

腐蚀是指将一些图像(或图像中的一部分区域,称之为A)与核(称之为B)进行卷积。核可以是任何的形状或大小,它拥有一个单独定于出来的参考点(another point)。多数情况下,核实一个小的中间带有参考点的实心正方形或圆盘。核可以视为模板或者掩码,腐蚀是求局部最小值的操作。腐蚀可以通过下面的算法生成一个新的图像:当核B与图像卷积时,计算被B覆盖区域的最小像素值,并把这个值放到参考点上。

经过腐蚀后进行提取区域后得到的图像如图5-18所示:

30

西南科技大学本科生毕业论文

图4-18 加入腐蚀功能后的提取区域图像

对比图4-16与图4-17,显而易见,经过腐蚀操作后提取的区域图像显得更加真实清晰,更加接近所要提取的腹腔内肝脏部分。从而实现了本次设计的要求。腹腔内提取的肝脏部分如图4-17所示。

4.7 本章小结

本章着重介绍了所需实现的各个功能的实现原理和实现方法。并对功能实现后所得的图像进行了效果分析。

在本章中,说明了图像平滑是将清晰的图像清晰的图像进行模糊处理,而图像锐化则是将模糊的图像的边缘变得更加清晰,使得图像轮廓更加明朗,从而实现图像的增强。最终再由区域生长和提取区域的功能实现腹腔中肝脏部分的提取,完成本次设计任务。

31

西南科技大学本科生毕业论文

结论

随着科学技术的发展,数字图像处理技术已经在我们日常生活中体现出了越来越重要的地位。尤其是在医学上,数字图像处理技术无时无刻不在体现这它的优势与不可或缺性。本文则主要讨论了如何构建一个简单的数字图像处理系统,对图像进行增强,并最终实现腹腔内肝脏部分的提取工作。介绍了如何实现图像平滑、图像锐化和区域生长的功能,本文主要做了如下工作:

1.对C++语言、MFC技术和开放源代码的计算机视觉类库OpenCV进行了介绍,讨论了运用VC++平台和MFC技术来实现本次设计的优点。

2.通过简要概述利用平均模板、高斯模板和中值滤波为图像平滑的理论基础,归纳出算法实现。利用不同模板的平滑后效果图进行了比较,总结出了图像平滑的一些规律和各个模板实现平滑后效果的优劣。

3. 通过简要概述利用梯度算子和拉普拉斯算子为图像锐化的理论基础,并归纳出梯度算子进行图像锐化的算法实现。利用效果图总结出了图像梯度锐化的规律,要根据所需图像要求进行适度锐化。

4.通过简要概述梯度锐化的理论基础,并归纳总结出算法实现。经过效果图得到了程序中梯度锐化的一些缺陷,使得不能提取出完整的肝脏。所以在程序中加入了腐蚀功能,使最终提取的图片更加真实完整。

本文虽然基本完成了对于图像平滑、锐化、区域生长最终达到提取腹腔内肝脏的目的,但仍然存在以下不足之处:

1.在读入图像时只能读入比规定尺寸小或者相等的图像,稍微大一点的图像则无法读入,这样在使用时多少会带来不便。

2.在进行平滑操作时,不论是平均平滑、高斯平滑还是中值平滑,都只有3?3、5?5、

7?7这三个模板高度可供选择,使得图像平滑有局限性。可以考虑增加一个自定义模板来改善这一局限性。

3.在进行锐化操作时只编写了运用梯度算子实现的图像锐化功能,没有进行运用拉普拉斯算子实现的图像锐化功能进行编译,使得得到的锐化图像过于单一,不能进行对比。

4.实现区域生长功能是不能由用户自动选择阈值,必须在程序中进行修改。这样使得这个功能有所缺陷,有待改进。

32

西南科技大学本科生毕业论文

致谢

在本次毕业设计中,我首先要特别感谢我的毕业设计导师吴斌老师的悉心指导和热情帮助,在选题及研究过程中也得到了老师的悉心指导。我们学校每一位负责论文指导的导师都在各自的专业领域有着相当深厚的知识,我们在写毕业论文的过程中如果遇到自己困惑的问题时,就可以主动与导师进行联系与沟通,在老师的指导下完成论文的撰写。例如,在我面对论文题目、论文格式时就曾有不明白的地方,一时不知道该如何是好,觉得这个题目很好,也很容易扩展,但是又会认为这个题目如果从另一个方向写。为此我与我的导师及时进行了沟通,谈了一下自己的想法,而且老师也给了我两个比较宝贵的建议:一是所选的方向必须是自己思路比较开阔的方向;二是该方向必须自己得感兴趣,否则到最后会没有信心再继续写下去。我觉得写论文应该先有一个基本的框架,看看这个框架是否能够有足够的理论支持。

然后还要感谢王梁学长,作为研究生的王梁学长能够热心地解答我的疑惑,在编译程序和撰写论文期间无私地为我提供帮助。他给我提出的宝贵意见和给我讲解的知识,让我受益匪浅。

困难虽然很多,但是如果不怕困难不怕吃苦,那么一切的困难都是纸老虎。通过这次写毕业论文的经历,我感觉自己的收获很大,而且对网页知识得到了很大的提高。在撰写论文过程中,我不仅对自己所学领域的知识有了更深入更全面的了解,而且也锻炼了自己在繁忙的时候如何节省时间去做其他重要的事情的能力,而且也锻炼了自己独立思考、独立克服困难的能力。

感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,在大学生活即将结束的最后的日子里,我们再一次演绎了团结合作的篇章,把一个从来没有上手的课题,圆满的完成了。正是因为有了你们的帮助,才让我不仅学到本次课题所涉及的新知识,更让我感觉到了知识以外的东西,那就是团结的力量。

最后,感谢所有在这次毕业设计中给予过我帮助的人。 对上述师友,再一次真诚的表示感谢!

33

西南科技大学本科生毕业论文

参考文献

[1] 高守传 姚领田等.Visual C++实践与提高——数字图像处理与工程应用篇[M],中国铁道出版社, 2000:51-60.

[2] 章毓晋.图像工程上册图像处理和分析[M],清华大学出版社,1999:135-137. [3] [美] Jeff Prosise.MFC Windows程序设计[M],清华大学出版社,2007:35-59. [4] 郑莉 董渊 张瑞丰.C++语言程序设计[M],清华大学出版社,2004:20-78. [5] 辛长安 王颜国.Visual C++权威剖析——MFC的原理、机制和开发实例[M], 清华大学出版社,2008:265-278.

[6] 王铮 王艳平 薛桂香.数字图像处理与机器视觉——Visual C++与Matlab实现[M], 人民邮电出版社,2010.4:148-175.

[7] 三杨科技.Visual C++ 开发入行真功夫[M],电子工业出版社,2009:13-29. [8] 王育坚.Visual C++ 面向对象编程教程[M],清华大学出版社,2007:131-154. [9] Gary Bradski Adrian Kaehler.学习OpenCV[M],清华大学出版社,2009:128-137 [10] 谭林秋.基于VC++的数字图像处理系统的开发及其算法研究[D],西安理工大学,2008 [11] 张华,展晓凯.基于VC++的数字图像处理系统的设计与实现[D],潍坊学院,2011 [12] 张秀荣,孟和达来.数字图像处理系统的开发与研究[D],内蒙古民族大学传媒学院,2011 [13] 付同堂,苏秀琴,刘莹,郝伟,李哲.基于MFC的图像处理程序的设计研究[J], 中国科学院研究生院,2007

[14] M.Sonka,V.Hlavac and R.Boyle.Image Processing[M].Analysis and Machine Vision,London,1993:121-136

[15] Gonzalez R C,Woods R E. Digital image processing,second edition.Pearson Education,Inc[M],2003:67-75

[16] Kruglinski D J.Shepherd G Programming Visual C++[D] ,1999

34

西南科技大学本科生毕业论文

附录1

系统实现主程序

void CImagePDlg::OnBnClickedReadimage()//读入图像 {

CFileDialog dlg(TRUE, _T(\NULL, NULL,_T(\生成对象,即打开选择图片对话框

CString strFileName; CString strFileName; if (dlg.DoModal()!=IDOK) {

return;

}//选择图片后返回程序

strFileName = dlg.GetPathName();//获得图片地址 /*char * pflie = (LPSTR)(LPCTSTR) strFileName;*/ USES_CONVERSION;

pfile = T2A(strFileName); //cstring(MFC自带字符操作类)转化为const char(字符

串) }

void CImagePDlg::OnBnClickedSmooth() {

if (readimage==0)//(判断是否有图片) {

AfxMessageBox(_T(\return ;

pChu=cvLoadImage(pfile,CV_LOAD_IMAGE_GRAYSCALE);//(读入图片) pRu =cvCloneImage(pChu);//(图片备份) readimage=1;//(读入图片标志)

DrawPicToHDC(IDC_ShowImg);//(显示图片)

35

西南科技大学本科生毕业论文

}

}

SmoothType dlgtype; //生成类型对话框对象 Smoothsize dlgsize; //生成尺寸对话框对象 if (dlgtype.DoModal()!= IDOK) { }//

smtype=dlgtype.m_nType;//获取平滑类型 if (dlgsize.DoModal()!= IDOK) {

return; return;

}// 获取尺寸并判断 if (dlgsize.m_nSize==0) { }

if (dlgsize.m_nSize==1) { }

if (dlgsize.m_nSize==2) { }

ImageCla.ImageSmooth(pChu,smtype,smsize);//平滑 DrawPicToHDC(IDC_ShowImg);//显示平滑后图像

smsize=7; smsize=5; smsize=3;

void CImagePDlg::DrawPicToHDC(UINT ID)//图像显示函数 {

36

本文来源:https://www.bwwdw.com/article/ce6g.html

Top