本科生毕业论文(设计)
题 目:
姓 名: 学 院: 专 业:
班 级: 学 号:
基于VC++的嵌入网页图像处理软件模块设计 工学院 电子信息科学与技术 信息84
指导教师: 职称:
2012 年 5月 1 日
目 录
摘要: ................................................................... 1 关键词: ................................................................. 1 Abstract: ............................................................... 1 Key words: ............................................................... 1 引言 ..................................................................... 1 1论文概述 ................................................................ 1 1.1课题的研究目的和意义 .................................................. 1 1.2国内外发展状况 ........................................................ 2 1.3研究方法与手段 ........................................................ 2 1.3.1 运行环境 ........................................................... 2 1.3.2 开发环境 ........................................................... 3 2图像处理相关技术概述 .................................................... 3 2.1 VC++6.0简介 .......................................................... 3 2.2 VC++各类文件简介 ..................................................... 3 2.3 MFC类库 .............................................................. 4 3.图像处理软件的总体设计 ................................ 错误!未定义书签。 3.1 需求分析 ............................................ 错误!未定义书签。 3.2 图像处理软件的目标设计 .............................. 错误!未定义书签。 3.3图像处理系统功能描述 ................................. 错误!未定义书签。 4.图像设计基础 ........................................................... 4 4.1图像基础 .............................................................. 4 4.1.1数字图像的基本概念 .................................................. 4 4.1.2调色板 .............................................................. 5 4.1.3调色板的概念 ........................................................ 5 4.2 与设备无关位图(DIB) .................................................. 6 4.2.1 DIB位图的结构 ...................................................... 6 4.2.2 定义DIB处理函数集 ................................................. 7 4.2.3 CDib类的设计目标 ................................................... 8 5 数字图像处理 .......................................................... 10 5.1图像处理的基本方法 ................................................... 11 5.2图像处理软件设计 ..................................................... 11 5.2.1设计步骤和要点 ..................................................... 11 5.2.2主界面设计 ......................................................... 12 5.2.3菜单设计 ........................................................... 13 5.2.4工具栏设计 ......................................................... 14 5.3数字图像处理结果 ..................................................... 14 6评估与结论 ............................................................. 17 致谢 .................................................................... 17 参考文献 ................................................................ 18
I
基于VC++的嵌入网页图像处理软件模块设计
电子信息科学与技术专业学生
指导教师
摘要:随着计算机技术和网络技术的快速发展,社会生产力和精确农业技术也得到逐步发展,人们对农田除害智能识别技术的要求也越来越高,因此,需要将机器人技术计算机技术网络技术等应用于农田除害。该课题在windows XP平台上实现,采用Visual C++作为编程工具,采用面向对象的程序设计技术完成一个嵌入网页的图像处理(图像只要指农田害虫)的应用软件。图形方面主要是设计图形基类,以及继承图形基类的具体图形类。此外,通过对独立功能的封装,可以为今后需要的图形图像的应用奠定基础。系统的优点有:充分体现了面向对象的设计思想,充分运用了C++的特性,比如封装、继承、多态。程序结构清晰,可读性好,程序中做了充分的注释。 关键词:Visual C++;图像处理;农田害虫;
Based on VC++ image processing software module design of
embedded webpage
Student majoring in Electronic and Information Science and Technology
Tutor
Abstract:With the rapid development computer technology and network technology, the development of social productive forces and the development of precision agriculture technology people's demand of agricultural pest identification technology more and more high need to robotics technology, computer technology network used in agricultural pesticides. The topic realizes under the windows XP platform, use Visual C++ as a programming tool, use object-oriented programming techniques to achieve a image processing software. The graph aspect is designs the graph base class , as well as inherits the graph base class’s specific graph class. Through independent function's encapsulation, for the future’s needs of the graphic images lays the foundation. The system merit has: the object-oriented design’s thought application of the C++ properties, for example encapsulation, polymorphism, and inheritance. Program’s structure is clear, good readability, codes has the full annotation in the program. The graph plan’s part has avoided complicated structure of the traditional switch case. Easy expansion and transplantation. Key words:Visual C++;image processing;Agricultural pest;
引言 数字图像处理( Digital Image Processing) 是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。图像处理中, 输入的是质量低的图像, 输出的是改善质量后的图像, 图像处理的方法多种多样, 一般可分为图像变换、图像增强和复原、图像分割、图像压缩编码、图像描述和图像识别等几类。目前,图像处理的应用领域已涉及到人们工作生活中的方方面面。
1论文概述
1.1课题的研究目的和意义
本文所介绍的数字图像处理系统是一款简单而又实用的灰度级图像处理软件, 是基于Windows 平台 的应用程序,利用Visual C+ + 6. 0 的编译环境提高了系统的开发速度,实现数字图像的查看与编辑操作[1]。
应该说,目前已有种类繁多的图形图像处理专用软件工具,如AutoCAD、和PhotoShop等,利用这些图形图像处理软件可以实现同样的功能。即便如此,研究这些图形图像处理技术仍具有一定使用价值。首先,利用一个设计良好的简单的小图形处理程序可以用于教学演示的目的,展示基本的图形图像处理技术和面向对象技术在这一领域的应用效果。其次,在很多应用中需要提供自己的图形图像处理功能,例如,在一个正在连接网
1
络的任务中可能就希望显示一幅示意性的动画,此时,不能依赖一个图形软件来实现。因此,通过对独立功能的封装,可以为今后需要的图形图像的应用奠定基础[2]。此外,借助Visual C++语言这种典型的面向对象编程环境,能够充分挖掘硬件的潜能,得到性能优良的程序代码。 1.2国内外发展状况
数字图像处理(DigitalImageProcessing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理的产生和迅速发展主要受三个因素的影响:一是计算机的发展;二是数学的发展(特别是离散数学理论的创立和完善);三是广泛的农牧业、林业、环境、军事、工业和医学等方面的应用需求的增长。
20世纪20年代,图像处理首次应用于改善伦敦和纽约之间海底电缆发送的图片质量。到20世纪50年代,数字计算机发展到一定的水平后,数字图像处理才真正引起人们的兴趣。1964年美国喷气推进实验室用计算机对“徘徊者七号”太空船发回的大批月球照片进行处理,收到明显的效果。20世纪60年代末,数字图像处理具备了比较完整的体系,形成了一门新兴的学科。20世纪70年代,数字图像处理技术得到迅猛的发展,理论和方法进一步完善,应用范围更加广泛。在这一时期,图像处理主要和模式识别及图像理解系统的研究相联系,如文字识别、医学图像处理、遥感图像的处理等。20世纪70年代后期到现在,各个应用领域对数字图像处理提出越来越高的要求,促进了这门学科向更高级的方向发展。特别是在景物理解和计算机视觉(即机器视觉)方面,图像处理已由二维处理发展到三维理解或解释。近年来,随着计算机和其它各有关领域的迅速发展,例如在图像表现、科学计算可视化、多媒体计算技术等方面的发展,数字图像处理已从一个专门的研究领域变成了科学研究和人机界面中的一种普遍应用的工具。
图形与图像处理是计算机最早应用的领域之一,从简单的图形显示到复杂的图像分析、模式识别,使得图形与图像处理技术不断走向成熟,国内外也涌现出了大量的软件。例如,ACDSee、PhotoShop、CorelDraw等,这些软件提供了一般显示、特殊显示、特技处理等大量复杂的功能。图形处理技术得益于图形学的发展,而从目的上可以将图像处理技术分为两类,分别是图像识别技术和图像处理技术。针对图像处理技术,可以是旋转、亮度、对比度、饱和度、RGB调节、调节图像尺寸等属性方面的处理技术和添加文字、图像增强、弱化、水印、特效、镂空等处理方法。甚至为了达到更精微的处理效果,这些软件还使用了图层。
随着网络和多媒体技术的发展和应用,体现在应用软件中的是一些更具有“现代感”的应用,例如,支持各种常用图形、RAW原始图片、Flash动画的快速浏览、编辑、保存、导入、导出,甚至还可以提供一些趣味涂鸦、字符素描之类的应用,以体现人的个性[3]。事实上,应用软件中常常需要采用其中的某些技术来处理相关的问题。例如,一个支持简单形状辅助设计的软件并不需要支持特效方面的方法。
在软件设计的支撑环境和技术上,C++是一个很好的选择,这主要是考虑到如下因素,主要包括代码效率高,处理底层问题能力强,支持面向对象的程序设计方法。利用C++技术可以实现对程序代码和数据的良好封装,使之能够具有良好的重用性。 1.3研究方法与手段 1.3.1 运行环境
运行环境主要介绍了硬件环境和软件环境。 (1) 硬件环境
① 处理器:Inter Pentium 166 MX 或更高 ② 内存:32MB或更高 ③ 硬盘空间:1GB或更高
2
④ 显卡:SVGA显示适配器 (2) 软件环境
操作系统:Window 98/ME/2000/XP 1.3.2 开发环境
开发环境主要介绍了本系统采用的操作系统、开发语言。 (1) 操作系统:Windows XP (2) 开发语言:C++
(3) 开发环境:Visual C++ 6.0
2图像处理相关技术概述
2.1 VC++6.0简介
面向对象程序设计(Object-Oriented Programming,简称OOP)方法已出现近30年,在20世纪90年代己成为程序设计的主流方向。面向对象程序设计语言是现代程序开发的主要工具。
程序包含两类基本的元素,即数据和操作数据的指令集(称为代码)。传统的程序设计语言以设计代码为核心,程序设计实际上就是指定程序指令的先后次序,数据表示必须适应代码的设计。模块化程序设计方法将完成某一功能的指令集组成一个相对独立的程序模块(即函数或过程),使得程序的结构清晰,便于有效的维护,对程序设计技术有很大的促进。但由于结构化程序设计方法并不能保证各程序模块之间真正的相互独立,程序设计者在设计一个模块时很难完全排除其他模块的影响。随着程序规模的增大,各模块之间的相互影响导致一些难于测试,难以定位发现的错误,增加了程序开发和维护的困难。面向对象程序设计方法主要以数据为中心,代码是围绕着需要处理的数据而设计的[4]。
VC++6.0是Microsoft公司推出的一个基于Windows系统平台、可视化的集成开发环境,它的源程序按C++语言的要求编写,并加入了微软提供的功能强大的MFC(Microsoft Foundation Class)类库。MFC中封装了大部分Windows API函数和Windows控件,它包含的功能涉及到整个Windows操作系统。MFC不仅给用户提供了Windows图形环境下应用程序的框架,而且还提供了创建应用程序的组件,这样,开发人员不必从头设计创建和管理一个标准Windows应用程序所需的程序,而是从一个比较高的起点编程,故节省了大量的时间。另外,它提供了大量的代码,指导用户编程时实现某些技术和功能。因此,使用VC++提供的高度可视化的应用程序开发工具和MFC类库,可使应用程序开发变得简单[5]。 2.2 VC++各类文件简介 .dsw文件
这种类型的文件在VC中级别是最高的,成为Workspace文件。在Workspace文件中可以包含多个Project,由Workspace文件对它们进行统一的协调和管理。 .dsp文件
以dsp为扩展名的文件中存放的是一个特定的工程,也就是特定的应用程序的有关信息,每个工程都对应有一个dsp类型的文件。 .clw文件
以clw为扩展名的文件是用来存放应用程序中用到的类和资源的信息的,这些信息是VC中的ClassWizard工具管理和使用类的信息来源。 readme.txt文件
对应每个应用程序有一个readme.txt文件,这个文件中列出了应用程序中用到的所有的文件信息,打开并查看其中的内容就可以对应用程序的文件结构有一个基本的认
3