2022年对象的数字图像处理软件设计方案方法

上传人:资**** 文档编号:269655165 上传时间:2022-03-23 格式:DOCX 页数:7 大小:116.32KB
返回 下载 相关 举报
2022年对象的数字图像处理软件设计方案方法_第1页
第1页 / 共7页
2022年对象的数字图像处理软件设计方案方法_第2页
第2页 / 共7页
2022年对象的数字图像处理软件设计方案方法_第3页
第3页 / 共7页
2022年对象的数字图像处理软件设计方案方法_第4页
第4页 / 共7页
2022年对象的数字图像处理软件设计方案方法_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《2022年对象的数字图像处理软件设计方案方法》由会员分享,可在线阅读,更多相关《2022年对象的数字图像处理软件设计方案方法(7页珍藏版)》请在金锄头文库上搜索。

1、精品学习资源基于对象的数字图像处理软件设计方法摘要该文给出了一种用面对对象技术实现数字图像处理算法的软件设计方法;依据面对对象的方法,笔者把各种数字图像处理方法封装在一个特别图像类的层次结构中;这样的软件结构易于爱护,有较强的可扩展性,适合不断进展的数字图像处理技术;关键词 数字图像处理, 面对对象, 类引言从事软件开发的人员经常会有这样的体会:在软件开发过程中,使用者或用户会不断地提 出各种各样的更换要求,使得软件人员不得不对软件进行修改;这样导致软件开发进度一 再拖延,软件开发的成本不断增加;此外,在软件投入使用后,为了排除在开发过程中遗 留下来的错误或缺陷,为了改进软件的性能、增强软件的

2、功能,为了能够适应不断显现的 新机器、新操作系统或新数据环境,都需要修改软件;这些修改或大或小,大者甚至将对 软件做重大的 “外科手术 ”,此时,软件人员一旦方案不周或考虑不细,不但以前的错误没有订正,仍会引入新的错误,导致软件质量下降,软件使用寿命缩短;面对对象 OO )技术能够减轻软件修改的困难;使用面对对象技术开发出来的软件结构是建立在现实世界的实体或对象的基础上的,它把软件的功能分散到各个对象中间;使 用者和用户提出的修改要求大多是功能上的,所面对的对象基本不动;对于使用面对对象 技术开发出来的软件来说,软件的修改主要集中于封装在软件内部的属性和服务上,只要 对象界面不动,整个软件体系

3、结构可以不动;这种修改的局部化保持了软件结构的稳固性,使得在修改过程中引入新错误的可能性达到最小,同时减轻了软件修改的工作量和难度;随着运算机处理速度日新月异飞速进展,数字图像处理技术的应用越来越广泛,图像处理和识别的算法也随着应用的深化而不断进展变化,旧算法需要改进,新算法层出不穷;同时,对新算法的探究,更需要有一个好的数字图像处理软件系统环境支持,这就要求软件系统具有易于修改、爱护和增加新功能的特性;用面对对象的方法实现的数字图像处理软件能够较好地满意这种要求;数字图像处理的算法复杂,而面对对象的设计方法具有解决复杂的处理模块的才能;建立在类层次结构基础上的数字图像处理软件系统,利用类的封

4、装、继承和多态等特性,使修改和增加新算法更简单,软件系统具有良好的扩充性;而且,对于成熟的算法,可以加入到算法类库中,便于在解决实际问题时,能在较短时间内将有关的算法组织成牢靠的实际处理软件系统;将图像处理算法按肯定的类结构层次组织,而把与显示平台有关的用户界面划分到用户模块,进一步降低了算法对实现平台的依靠性,更有利于讨论人员集中精力深化讨论数字图像处理算法;用OO方法实现数字图像处理算法,其难点主要在于如何抽象出具体的类和确定类的成员上;该文在 DanRoman的用 OO方法设计数字图像处理算法的思想方法上,给出了较具体的用OO方法设计图像处理算法的软件结构和具体类的设计;并结合具体类和类

5、的层次结构设计,阐述了类的封装性、继承性和多态性应用在图像处理算法中的庞大优势;实现方法用面对对象的方法设计数字图像处理软件系统,整个系统划分成两大模块:用户模块,实现数字图像处理算法的使用界面,这一部分依靠于具体实现平台;数字图像处理算法欢迎下载精品学习资源模块,包含用类层次结构实现的处理算法,是核心内容;这样的划分,能够延长图像处理算法模块的软件使用寿命;图 1所示为上述软件系统的结构;基本数据的表示 原始图像类的设计用面对对象的设计方法实现数字图像处理软件系统所要考虑的首要问题是如何用类来表示图像数据;由于图像文件的格式很多,为了使所设计的软件系统能处理各种格式的图像文件,可以定义一个抽

6、象的图像类表示一般的图像概念,而使其派生类表示各种不同文件格式的图像数据;在这些派生类中,依据图像文件的格式定义其构造函数,如图2所示,是针对最常用的两种图像格式定义的派生类;对于其它图像文件格式可仿此定义基类IMG 的派生类;如此设计图像类的层次,使该数字图像处理软件系统的可扩展性好:第一,当需要处理一种新 的 图 像 文 件 格 式 时 , 由 基 类IMG 派 生 出 一 个 派生类 IMGxxx ,只需新定义一个对应此文件格式的构造函数即可,这个派生类继承了基类的属性和行为 爱护性的和公有的);其次,在设计处理算法时,用基类IMG 的对象作为形式参数,而实际操作时,依据输入图像文件种类

7、文件格式),动态地生成派生类IMGxxx 的对象,利用 OO的多态性,用 IMGxxx 的对象取代基类 IMG 的对象作为实际参数;第三,任何有前途的学科中都会存在很多需要不断探究的新课题,对于这些有待进一步讨论的新算法,利用抽象类的虚函数特性,在整个系统规划时以虚函数或纯虚函数的形式纳入到系统中,一旦算法成熟,以很小的改动代价加入到系统中,毫无夸张地说,这样的设计甚至可以为如干年后的算法预留下它在系统中的位置,而仅需要花费很小的空间代价,不需要对系统结构做 “大的外科手术 ”;在数字图像处理学科中,一幅图像主要由以下参数表示: ;2)图像点阵的大小;3)图像的彩色表;此外,依据实际应用,仍有

8、一些其它的特性;设计基类IMG 时,笔者只考虑图像的共性;由此,定义基类 IMG 如下:template Class IMGprotect:T *ptrImag ;CSize ImagcSize;CPalette *ptrPalette ;欢迎下载精品学习资源public:IMG ;IMG ;virtual InitImagcT *Data;virtual IMG* operator =IMG* pImgobj;virtual void SetImageGrayT *Data;virtual void SetImageSizeint sx, int sy;virtual void SetIma

9、gePalctte- ;virtual T* GetImageGray;virtual CSize GetImageSizc ;virtual CPalette*GetImagePalettc:/其它操作实际应用中,依据具体问题定义具体的派生类,如template class IMGxxx: public IMG其中,变化之处是要重载IMGxxx 的构造函数;处理软件系统运行时可以动态地生成图像对象,由一个用户模块的指针指向图像对象,建立用户模块和数字图像处理模块的联系;这种的关系储备结构如图3所示;欢迎下载精品学习资源图像处理类设计数字处理软件系统的重要部分是图像处理部分的 OO设计;这里将

10、处理的图像用一个抽象基类PIMG 表示,它与类 IMG 是关联关系:定义 PIMG 两个属性是 IMG 类的句柄;一个代表原始图像,一个代表结果图像,并使 IMG 类的句柄 handle)作 PIMG 的构造函数的形式参数,用以初始化 PIMG 类对象中的 IMG 类句柄数据成员 属性),同时, PIMG 类的最派生类的对象得到了要处理的图像数据及结果数据的存放;在抽象类PIMG 的基础上派生出具体的图像处理类;具体层次结构如图4所示;欢迎下载精品学习资源由于数字图像处理算法既多且复杂,故在设计处理的图像类层次结构时,笔者在抽象类PIMG 的下层派生出中间层抽象类如图4中的 BASIC 类、

11、SPACE类、 TRANSFORMS 类及 SPE CICAL 类,依据学科的进展,仍可以增加其它的抽象类作为中间层类;这些抽象类负责从其基类中获得要处理的图像数据资源,并封装了它们各自再派生出的具体处理类中要用到的公共的方法 成员函数),供最派生类共享,这样可防止在最派生类中重复定义相同的方法,以节约内存空间;由上述中间层派生出的最派生类是如图4所示的最底层的类,它们依据继承关系被分成不同的组 每一组由同一中间基类派生);每一个这样的最派生类完成一个确定的图像处理操作,当需要使用某一处理操作时,实例化一个相应类的对象,通过该对象使用其中的成员函数;也可以通过实例化的对象,使用其父类的成员函数

12、某种处理方法);在整个处理类结构中唯有这一层的类可以制造对象;在这一类层次结构中所包含的具体图像处理算法的内容如下:1) BASIC 类及其派生类主要包含: 像素点的读取和设置;图像沿某始终线方向上的灰度分布;图像的几何变换 放大、缩小、旋转、镜向翻转及用于局部观看的放大镜等); 图像 +、 等运算;动态图像或运动图像的帧间处理;2) SPACE类及其派生类主要包括: 空域平滑;空域滤波;图像梯度运算; 边缘检测和增强; 形状学处理;3) SPECIAL 类及其派生类主要包括: 图像的分割;图像纹理分析; 图像编码与压缩;4) TRANSFORMS 类及其派生类主要包括: 快速 Fourier

13、变换 FFT );欢迎下载精品学习资源离散余弦变换 DCT );KL 变换 KLT ); 小波变换 WT );Gabor变换GT );具体类的定义举例;基类template Class IMGprotect:/属性/IMG 类对象 ;/IMG 类对象 结果图像)句柄HANDLE himgR;public:/成员函数virtual void WriteImageFile;virtual T* GetImageGray;virtual CSize GetImageSize ;virtual CPalette*GetImagePalette ; ;由基类派生的中间层,如SPACE类: templat

14、e class SPACE: public PIMG/属性protect:/成员函数 操作 public:欢迎下载精品学习资源virtual void StrengthImage ; 欢迎下载精品学习资源为实际使用便利,可以建立数字图像处理类库,把上述类层次结构中算法成熟的类加到类库中;用户界面全部可实例化的类的公有成员函数构成整个图像处理类库的外部接口,而将全部的图像处 理算法的细节隐藏在类库中,使之不依靠于外部应用环境;用户界面模块使用Visual C+ 来开发,对于数字图像处理软件系统来说,最合适的工程应是多文档多视图的应用程序,可以同时观看原始图像数据和处理结果图像数据,比较算法的好坏,对图像处理算法欢迎下载精品学习资源的讨论非常有利;用户界面通过图像处理类库的公共外部接口恳求各种图像处理服务,完成必要的处理任务;由于笔者将结果数据和原始数据都用IMG 类的对象来表示,所以用户界面有关显示、储备、打印图像等操作,只需考虑IMG 类对象即可;结论数字图像处理的算法具有相当的复杂性,使用面对对象的软件设计方法实现数字图像处理算法,既能防止相同算法的在不同模块中多次重复定义;又能使算法的实现独立于应用环境而形成算法类库、并为将来算法在类库中预留下位置,延长软件的使用寿命;此外,这样开发研制的软件系统易于爱护,可扩展性强;由此可见,挑选面对对象的程序设计方法实现数字图像

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号