- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于对象的数字图像处理软件设计方法.doc
基于对象的数字图像处理软件设计方法
摘 要 该文给出了一种用面向对象技术实现数字图像处理算法的软件设计方法。按照面向对象的方法,笔者把各种数字图像处理方法封装在一个特殊图像类的层次结构中。这样的软件结构易于维护,有较强的可扩展性,适合不断发展的数字图像处理技术。
关键词 数字图像处理, 面向对象, 类
引言
从事软件开发的人员常常会有这样的体会:在软件开发过程中,使用者或用户会不断地提出各种各样的更改要求,使得软件人员不得不对软件进行修改。这样导致软件开发进度一再拖延,软件开发的成本不断增加。此外,在软件投入使用后,为了排除在开发过程中遗留下来的错误或缺陷,为了改进软件的性能、增强软件的功能,为了能够适应不断出现的新机器、新操作系统或新数据环境,都需要修改软件。这些修改或大或小,大者甚至将对软件做重大的“外科手术”,此时,软件人员一旦计划不周或考虑不细,不但以前的错误没有纠正,还会引入新的错误,导致软件质量下降,软件使用寿命缩短。
面向对象(OO)技术能够减轻软件修改的困难。使用面向对象技术开发出来的软件结构是建立在现实世界的实体或对象的基础上的,它把软件的功能分散到各个对象中间。使用者和用户提出的修改要求大多是功能上的,所面对的对象基本不动。对于使用面向对象技术开发出来的软件来说,软件的修改主要集中于封装在软件内部的属性和服务上,只要对象界面不动,整个软件体系结构可以不动。这种修改的局部化保持了软件结构的稳定性,使得在修改过程中引入新错误的可能性达到最小,同时减轻了软件修改的工作量和难度。
随着计算机处理速度日新月异飞速发展,数字图像处理技术的应用越来越广泛,图像处理和识别的算法也随着应用的深化而不断发展变化,旧算法需要改进,新算法层出不穷。同时,对新算法的探索,更需要有一个好的数字图像处理软件系统环境支持,这就要求软件系统具有易于修改、维护和增加新功能的特性。用面向对象的方法实现的数字图像处理软件能够较好地满足这种要求。
数字图像处理的算法复杂,而面向对象的设计方法具有解决复杂的处理模块的能力。建立在类层次结构基础上的数字图像处理软件系统,利用类的封装、继承和多态等特性,使修改和增加新算法更容易,软件系统具有良好的扩充性。而且,对于成熟的算法,可以加入到算法类库中,便于在解决实际问题时,能在较短时间内将有关的算法组织成可靠的实际处理软件系统。
将图像处理算法按一定的类结构层次组织,而把与显示平台有关的用户界面划分到用户模块,进一步降低了算法对实现平台的依赖性,更有利于研究人员集中精力深入研究数字图像处理算法。
用OO方法实现数字图像处理算法,其难点主要在于如何抽象出具体的类和确定类的成员上。该文在Dan Roman的用OO方法设计数字图像处理算法的思想方法上,给出了较详细的用OO方法设计图像处理算法的软件结构和具体类的设计;并结合具体类和类的层次结构设计,阐述了类的封装性、继承性和多态性应用在图像处理算法中的巨大优势。
实现方法
用面向对象的方法设计数字图像处理软件系统,整个系统划分成两大模块:用户模块,实现数字图像处理算法的使用界面,这一部分依赖于具体实现平台;数字图像处理算法模块,包含用类层次结构实现的处理算法,是核心内容。这样的划分,能够延长图像处理算法模块的软件使用寿命。图1所示为上述软件系统的结构。
基本数据的表示—原始图像类的设计
用面向对象的设计方法实现数字图像处理软件系统所要考虑的首要问题是如何用类来表示图像数据。由于图像文件的格式很多,为了使所设计的软件系统能处理各种格式的图像文件,可以定义一个抽象的图像类表示一般的图像概念,而使其派生类表示各种不同文件格式的图像数据。在这些派生类中,根据图像文件的格式定义其构造函数,如图2所示,是针对最常用的两种图像格式定义的派生类。对于其它图像文件格式可仿此定义基类IMG的派生类。如此设计图像类的层次,使该数字图像处理软件系统的可扩展性好:第一,当需要处理一种新 的 图 像 文 件 格 式 时 , 由 基 类IMG派 生 出 一 个 派 生类IMGxxx,只需新定义一个对应此文件格式的构造函数即可,这个派生类继承了基类的属性和行为(保护性的和公有的);第二,在设计处理算法时,用基类IMG的对象作为形式参数,而实际操作时,根据输入图像文件种类(文件格式),动态地生成派生类IMGxxx的对象,利用OO的多态性,用IMGxxx的对象取代基类IMG的对象作为实际参数;第三,任何有前途的学科中都会存在许多需要不断探索的新课题,对于这些有待进一步研究的新算法,利用抽象类的虚函数特性,在整个系统规划时以虚函数或纯虚函数的形式纳入到系统中,一旦算法成熟,以很小的改动代价加入到系统中,毫无夸张地说,这样的设计甚至可以为若干年后的算法预留下它在系统
文档评论(0)