1.5 面向对象的图像处理算法实现
本书中,各种算法的实现都是以ImgCenterDib类为基类来派生的,而且原则上每类算法封装成一个类,在一个多文档应用程序框架中统一实现,该应用程序的工程名为demo,该应用程序框架如图1-23所示。这种设计风格符合现代面向对象的编程(www.cppentry.com)思想,使得代码便于维护和移植。
为了说明以上应用程序demo的设计过程,我们先以ImgCenterDib类为基类,实现一个具有特效显示功能的特效显示类——SpecialEffectShow,并用工程chap1_6说明如何申请SpecialEffectShow类对象,实现图像的各种显示效果。
图像的特效显示就是利用人眼的视觉特性,通过先对图像分块,然后以不同的次序显示出来。其中的要点是:如何划分图像块;确定图像块的操作次序,以及两个图像块的操作之间的延时。
|
| (点击查看大图)图1-23 应用程序框架 |
(1)我们仍然利用多文档框架生成向导生成一个多文档应用程序chap1_6,并将文件“ImgCenterDib.h”和“ImgCenterDib.cpp”加入工程,像工程chap1_5一样实现图像的打开、存储与显示等操作。
(2)在工程中新建“SpecialEffectShow.h”和“SpecialEffectShow.cpp”两个文件。
(3)在“SpecialEffectShow.h”中以ImgCenterDib为基类派生出SpecialEffectShow类,并在“SpecialEffectShow.cpp”中实现SpecialEffectShow类的源程序(有关SpecialEffectShow类的具体实现我们在后面讲述)。
(4)我们用“#include”命令将“SpecialEffectShow.h”头文件包含进“chap1_6View.cpp“文件中。在菜单条上加入“特效显示”菜单,如图1-24所示,在每个菜单项上映射相应的事件处理函数,并调用SpecialEffectShow类中相应的特效显示函数,完成图像的特效显示。
|
图1-24 “特效显示” 菜单 |
【责任编辑:
夏书 TEL:(010)68476606】