基于Java的图形图像处理软件的设计与实现.doc
《基于Java的图形图像处理软件的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Java的图形图像处理软件的设计与实现.doc(29页珍藏版)》请在沃文网上搜索。
1、 目录引 言7第一章 绪论81.1.1 计算机图形图像学的发展简史81.1.2现有图形图像处理软件81.2 课题研究的目的及意义9第二章 图形图像处理软件开发技术基础102.1 Java Swing 简介102.1.1 Swing的特性102.1.2 Swing程序包和类112.2 MVC体系结构122.2.1 模型122.2.2 视图122.2.3 控制器13第三章 图形图像软件的设计143.1图形处理模块的设计143.1.1结构设计143.1.2功能描述143.1.3图形处理模块结构图143.1.4主要类设计153.2 图像处理模块的设计163.2.1结构设计163.2.3结构图174.1
2、 绘图功能的详细设计与实现194.1.1 菜单栏194.1.2工具栏204.1.3画图区224.1.4状态栏224.2 图像编辑的详细设计与实现234.3滤镜处理的详细设计与实现254.3.1 图像增强254.3.2图像边缘检测274.3.3 图像平滑处理284.3.4 系统测试29结论32致谢33图形图像处理软件的设计与实现摘要:随着计算机技术的迅速发展,图形图图像技术在各个领域的研究和应用日益深入和广泛。由于图形图像各种算法的实现,使得其处理速度越来越快,能更好的为人们服务。图形图像处理的信息量很大,对处理速度的要求也比较高。Java强大的运算和图像展示功能,使图像处理变得更加的简单和直观
3、。同时系统所有的操作设计得十分简单方便,无需具备有专业的知识,也能实现图像图像处理。Java是一种完全面向对象的语言,Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。本文基于Java的图形图像处理环境,设计并实现了以图形图像处理系统,展示如何通过利用Java实现对图形图像的各种处理。关键词:Java 绘图板 图形图像编辑 滤镜处理 边缘处理Image processing software design and implementationAbstract:With the rapid development of computer technology, gra
4、phic chart of image technology in various fields of research and application deeply and widely increasingly. Due to the image of the realization of the algorithm, so that the processing faster, the better for the people service. Image processing of information is very big, the requirements of proces
5、sing speed is high. Java powerful operation and image display function, make the image processing become more simple and intuitive. And the system all operating very simple design, need not have the professional knowledge, also can realize image and image processing.Java is a fully object-oriented l
6、anguage, the design of the Java language focus on objects and interface, it provides simple class mechanism as well as the dynamic model of the interface. This paper, based on the Java graphics image processing environment, the design and realized by graphical image processing system, and shows how
7、to use Java to achieve through graphic image of processing.Key words:Java; Drawing board; Graphic image editing; Filter processing; Edge processing引 言随着图形图像处理技术的发展,从七十年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,图形图像处理向更高、更深层次发展。图形图像是用各种观测系统以不同形式和手段观测客观世界而获得的,可以直接或间接作用于人眼并进而产生视知觉的实体。其最广义的观点是指视觉信息。例如照片、图画、电视画面以及光
8、学成像等。人类的大部分信息都是从图像中获得的。目前国内外市场依然是以Adobe公司的Photoshop为主流的图形图像处理软件,软件拥有强大的处理能力,丰富的工具库,代表着计算机图形图像处理领域的最高技术标准。进入21世纪,随着计算机技术的迅猛发展和相关理论的不断完善,数字图像处理技术在许多应用领域受到广泛重视并取得了重大的开拓性成就,如航空航天、生物医学工程、工业检测、机器人视觉、公安司法、军事制导、文化艺术等领域。图形图像处理技术已成为一门引人注目、前景远大的新型学科。本文是基于Java图形图像处理软件,Java编程语言是一种跨平台的编程语言,在编写图形用户界面方面,也要支持跨平台功能。为
9、此Java提供了强大而丰富的AWT包和Swing包,使得Java功能越来越强大,界面越来越美观。Java图形图像用户界面的编写普遍采用构件化思想来进行,AWT和Swing本身提供的也是许多标准的构件和容器。本软件将所学的理论知识与实际应用相结合,运用Java编程语言,实现绘图功能、图形图像的常规编辑功能、滤镜处理功能、边缘处理功能,以达到进一步提高程序开发能力的目的。第一章 绪论图形图像信息是人类获得外界信息的主要来源,因为大约有70%的信息是通过人眼获得的,而人眼获得的都是图形图像信息。在近代科学研究、军事技术、工农业生产、医学、气象及天文学领域中,人们越来越多地利用图形图像信息来认识和判断
10、事物,解决实际问题。本设计能实现基本的绘画功能以及图形图像的基本编辑。1.1课题背景1.1.1 计算机图形图像学的发展简史麻省理工学院(MIT) 旋风I号(Whirlwind)计算机的附件诞生了。该显示器用一个类似于示波器的阴极射线管(CRT)来现实一些简单的图形。1958年美国Calcomp公司由联机的数字记录仪发展成滚筒式绘图仪,GerBer公司把数控机床发展成为平板式绘图仪。在整个50年代,只有电子管计算机,用机器语言编程,主要用于科学计算,为这些计算机配置的图形设备仅具有输出功能。计算机图形学处于准备和酝酿时期,并称之为:“被动式”图形学。到50年代末期,MIT的林肯实验室在“旋风”计
11、算机上看法SAGE空中防御体系,第一次使用具有指挥和控制功能的CRT显示器,操作者可以用笔在屏幕上指出被确定的目标。1974年,在Colorado大学召开了第一届SIGGRAPH年会,并取得巨大的成功,当时大约有600位来自世界各地的专家参加会议。到1997年,参加会议的人数已经增加到48,700。因为每年只录取大约50篇论文,在Computer Graphics杂志上发表,因此论文的学术水平较高,基本上代表图形图像学的主流方向。1.1.2现有图形图像处理软件随着对图形图像处理需求的扩大,现有的图形图像处理软件多种多样,数不胜数。本文简单介绍两个比较有代表性的图形图像处理软件:Photosho
12、pPhotoshop是平面图形图像处理业界霸主Adobe公司推出的跨越PC和MAC两界首屈一指的大型图形图像处理软件。它功能强大,操作界面友好,得到广大第三方开发厂家的支持,从而也赢得众多用户的青睐。Photoshop是目前公认的最好的通用平面美术设计软件,它的功能完善,性能稳定,使用方便,所以在几乎所有的广告、出版、软件公司,Photoshop都是首选的平面工具。通过Photoshop可以对图形图像修饰、对图形图像进行编辑,以及对图形图像的色彩处理,另外,还有绘图和输出功能。在实际生活和工作中,可以将数码相机拍摄下来的照片进行编辑和修饰,也可以将现有的图形图像和照片,用扫描仪扫如计算机进行加
13、工处理,还可以把摄像机摄入的内容转移到计算机上,然后用它实现对影像的润色。总之,Photoshop可以使你的图形图像产生特技效果,如果和其它工具软件配合使用,还可以进行高质量的广告设计、美术创意和三维动画制作。由于Photoshop功能强大,目前正在被越来越多的图形图像编排领域、广告和形象设计领域以及婚纱影楼等领域广泛使用,是一个非常受欢迎的应用软件。1.2 课题研究的目的及意义随着科学技术的不断发展,计算机的更新速度不断提高,人们的思想文化素质的提高,对图形图像的要求也越来越高。因此把原始图形图像与计算机结合起来,从而创作出许多更加完美的图像,满足人们的需求,计算机图形图像处理,是指利用计算
14、机对图像图像进行一系列加工,以便获得人们所需要的效果。图形图像是人们获取和交换信息的主要来源,人类感知外界信息,80%以上是通过视觉得到的。因此,图形图像处理的应用领域必然涉及到人类生活和工作的方方面面。图形图像是用各种观测系统以不同形式和手段观测客观世界而产生视知觉的实体。比如人的视觉就是以观测系统,通过它得到的图形图像就是客观景物在人心目中形成的影像。视觉是人类观察世界、认知世界的重要功能手段。图形图像带有大量的信息,百闻不如一见,一图值千金都说明这个事实。为此开发这个图形图像处理软件,能过处理一些图形图像,并对图形图像处理技术此方面进行深入的研究。第二章 图形图像处理软件开发技术基础2.
15、1 Java Swing 简介 浏览Java的主页(http:/java.sun.con/)时,可以找到对Swing的说明,他被描述成一组可定制的图形组件,可以在运行时指定这些组件的外观风格。不过,Swing实际上不只这些,它允许使用Java语言进行企业级开发。程序员可以使用Swing建立包含许多功能强大的组件的大型Java应用程序,并且可以更容易地扩充或者修改这些组件以控制它们的外观和行为。那么,为了能较好地发挥Swing的优势来为自己的Java应用程序增色,首先就要对Swing有一个总体的认识。2.1.1 Swing的特性Swing的特性有以下三个方面:一、可插拔外观风格Swing类最让人
16、激动的一个方面是能够规定每个组件的外观风格,甚至可以在运行时重新设置外观风格。这种特性叫做“可插拔外观风格”(Pluggable Look-and-Feel,或简称PLAF)。Swing能够模拟集中外观风格,并且它目前支持Window、Unix Motif和“本地”Java Metal外观风格。此外,Swing允许用户在运行时转换外观风格,而不必关闭应用程序。这样,用户甚至可以为每一个Swing组件建立自己的外观风格。二、轻型组件绝大多数Swing组件都是轻型的。在最完美的情况下,这意味着这些组件并不依赖本地对等组件来绘制自己。相反,它们使用简化的图形基本元素在屏幕上描绘自己,甚至允许部分图像
17、是透明的。只是少数顶层容器不是轻型的(如Jframe和JWindow)。这个设计允许程序设计人员在运行时绘制(和重新绘制)自己的应用程序的外观风格,而不是对主机操作系统的外观风格进行这样的尝试。此外,Swing组件的设计支持对组件行为随意修改。例如,可以告诉几乎所有的Swing组件用户是希望接受输入焦点还是希望拒绝输入焦点,可以告诉它应该如何处理键盘输入。三、如何使用Swing不是人人都为了同一个原因而使用Swing。实际上,因为有着各种级别的必须预先具备的知识,所以Swing库有许多使用级别。以下是一些可能的用途:1. 在打算建立自己的企业级应用程序时使用Swing组件。第一种方法是大多数S
18、wing组件所使用的方法。在这时,使用Swing组件类似于使用AWT组件。常见的组件、容器和布局管理器都可以从Swing程序包中获得,它们有助于建立并快速运行应用程序。如果擅长使用AWT组件进行编程,只需要浏览对每个组件的粗略介绍,就可以开始使用了。只有在使用一些更大并且更新的组件(如表和文本),或者打算将每个组件用作JavaBean进行可视编程时,才必须考虑更多的问题。2. 建立自定义Swing组件或者扩展已经存在的组件。建立自定义组件或者扩展现有的组件需要更深入的了解Swing。这是一定要了解Swing体系结构、事件和较低级别的类。此外,如果决定细分Swing组件,则必须承担处理这个组件的
19、责任,否则,新组建的执行情况就可能是不定的。3. 为一个或者多个Swing组件覆盖或者建立一个新的外观风格。最后,用户可能希望更改一个或者多个Swing组件的外观风格。这是可以使用的3种方法中最复杂的一种方法,它要求全面了解每个组件的设计,体系结构基本原理和图形基本元素。此外,用户必须了解如何使用Swing的UIManager和UIDefaults类来“设置”每个组件的外观风格。2.1.2 Swing程序包和类 Swing库中的程序包很多,只在此大致介绍在后面的图像浏览器的实现中用到的程序包。其中用得最多的当然是javax.swing,另外有javax.swing.border、javax.s
20、wing.event、javax.swing.tree、javax.swing.filechooser。以下给出了这些程序包的简短描述。Swing包是JFC(Java Foundation Classes)的一部分,由许多包组成,如表2.1。包描述Com.sum.swing.plaf.motif用户界面代表类,它们实现Motif界面样式Com.sum.java.swing.plaf.windows用户界面代表类,它们实现Windows界面样式Javax.swingSwing组件和使用工具Javax.swing.borderSwing轻量组件的边框Javax.swing.colorchooser
21、JcolorChooser的支持类/接口Javax.swing.event事件和侦听器类Javax.swing.filechooserJFileChooser的支持类/接口Javax.swing.pending未完全实现的Swing组件Javax.swing.plaf抽象类,定义UI代表的行为Javax.swing.plaf.basic实现所有标准界面样式公共功能的基类Javax.swing.plaf.metal用户界面代表类,它们实现Metal界面样式Javax.swing.tableJtable组件Javax.swing.text支持文档的显示和编辑Javax.swing.text.htm
22、l支持显示和编辑HTML文档Javax.swing.text.html.parserHtml文档的分析器Javax.swing.text.rtf支持显示和编辑RTF文件Javax.swing.treeJtree组件的支持类Javax.swing.undo支持取消操作表2.1 Swing包 2.2 MVC体系结构 Swing使用模型视图控制器体系结构(MVC)作为它的每个组件的基本设计。实质上,MVC将GUI组件拆分成三个元素,每个元素都对组件的表现起着至关重要的作用。2.2.1 模型 模型包括每个组件的状态数据。不同类型的组件有不同的模型。例如,滚动条组件的模型可能包含有关可调整“滑尺”当前位
23、置、最大值、最小值和滑尺宽度(与值的范围有关)的信息。另一方面,菜单可能只包含一个用户用来从中进行选择的菜单项列表。不论组件在屏幕上是如何被描绘的,这些信息总是相同的,模型数据总是独立于组件的可视表示。2.2.2 视图视图是指组件在屏幕上的表现形式。可以参见两个不同GUI平台上一个应用程序窗口,这是现实视图如何不同的一个好例子。又如,几乎所有窗口框架都有一个位于窗口顶端的标题栏。不过,标题栏的左边可能有一个关闭框(类似于Mac OS平台),或者可能在标题栏的右边有一个关闭框(与Windows平台中的类似)。2.2.3 控制器控制器使用户界面的一部分,它指示组件如何与事件进行交互。事件的形式有很
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Java 图形图像 处理软件 设计 实现
