可扩展遥感图像处理软件框架的搭建,软件工程论文.docx
《可扩展遥感图像处理软件框架的搭建,软件工程论文.docx》由会员分享,可在线阅读,更多相关《可扩展遥感图像处理软件框架的搭建,软件工程论文.docx(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、可扩展遥感图像处理软件框架的搭建,软件工程论文随着科技的发展,遥感技术已经构成了一个从地面到空中乃至空间,从数据获取、处理到解译分析和应用,对全球进行探测和监测的多层次、多视角、多领域的观测体系,成为获取地球资源与环境信息的重要手段。随着对如此庞大数据的处理速度的提升,遥感数字图像处理技术也得以迅速发展。 任何一套遥感图像处理软件都不能完全知足所有用户的需求; 并且随着数字图像处理技术的发展,图像处理软件还需要不断地添加新的功能,假如对软件进行修改,然后重新编译、发布,不仅费时费力,而且还可能出现版本兼容性方面存在的问题。 本文提出一种可扩展遥感图像处理软件框架的设计方式方法,可将执行程序(
2、EXE) 和动态链接库( dy-namic link library,DLL) 程序以扩展模块的形式添加到软件平台中; 并动态添加菜单项,以约定方式对其调用,利用文件映射技术进行数据交换,以便科研人员能够快速地将研究成果编写成新的功能模块,并方便地添加到遥感图像处理软件系统中。 1 系统框架设计 可扩展遥感图像处理系统主要实现框架功能,构成一个遥感图像处理软件平台。该系统中需要规定统一的遥感图像格式及其访问形式; 通过应用程序接口( application programming interface,API) 以平台功能方式提供基础图像处理功能,定义对外开放的内部程序接口和外部程序调用接口;
3、其他功能均可由扩展模块来实现。系统的整体构造如此图1 所示。【图1】 1 1 数据接口 遥感图像的格式多种多样,为了方便图像处理功能的开发,在遥感图像处理软件平台中规定一种统一的图像格式,并且提供格式转换功能,在处理图像之前将图像转换成统一格式。主程序将实现读写遥感图像的功能( 比方获取头文件信息,获取某波段、某区块的图像数据) ,扩展模块时不需要了解遥感图像的详细格式,只要通过接口直接调用主程序中的功能就能获取到图像信息。 1 2 基础平台功能 主程序能够提供图像文件访问、图像显示等基础功能,还能够包括下面功能: 图像信息查看,包括图像直方图查看和图像波谱查看等; 图像加强功能,包括图像拉伸
4、、图像平滑、图像锐化等功能;显示外部图像源与窗口控制,能够让扩展模块新建窗口或指定现有窗口并显示扩展模块组织的图像; 图像裁剪、旋转与缩放功能。 1 3 API 的设计 软件平台应提供给用程序接口( API) ,主要包括遥感图像处理的一些基础功能,如上文提到的数据接口,基本的遥感图像加强、图像显示等。将这些功能封装到一个动态链接库( DLL) 中,并开放 API供扩展模块调用。专业人员能够软件平台为基础,进行二次开发,不必在基础功能上重复开发、浪费精神。平台和扩展模块之间、扩展模块和扩展模块之间都能够相互调用,完全开放、透明,使系统具有良好的可扩展性。 1 4 扩展模块与动态菜单 扩展模块使用
5、 CC + 进行开发,能够以 EXE,DLL( 或其他形式,只要定义相应 API 即可) 的形式实现。在图像界面中通过动态菜单调用扩展模块,EXE 模块能够被直接调用,DLL 模块能够开放程序接口或者定义一个导出变量( 包含接口信息) 。科研人员能够随时将新功能添加到系统平台中( 有新的研究成果时,能够依托平台现有功能,仅针对新的研究成果快速地编写程序,并方便地添加到系统平台中) ,新的功能模块能够实时地反映到系统平台的动态菜单中。整个系统平台的关键是扩展模块的添加与调用方式。 2 菜单的动态添加与响应 在图形界面中使用扩展模块功能,主要是通过动态添加的菜单来调用的。能够把菜单项和扩展模块的对
6、应关系保存到一个配置文件中,每次程序启动时,根据这个配置文件来实现动态菜单初始化,这种方式方法需要开发人员自行开发一个编辑配置文件的工具; 还能够把所有扩展模块存储到同一个文件夹中,每次程序启动时扫描该文件夹,为每一个扩展模块动态添加一个菜单项。第一种方式方法需要额外开发一个工具,但是配置文件中能够保存多种信息( 比方菜单的上下级关系) ,这样在添加菜单时能够更好地进行扩展模块的分类和显示; 而第二种方式方法固然使用起来简单方便,但是在菜单中所有的扩展模块只能罗列在一起,不美观也不方便使用。 2 1 菜单的动态添加 动态添加菜单的操作可在应用程序类 CWinApp的 InitInstance
7、函数中进行。添加菜单项的操作主要使用 AppendMenu 函数,使用该函数时要根据设计的菜单级别获取相应的父级菜单对象,设置该函数的第一个参数为 MF_POPUP 和 MF_STING,能够分别添加下拉菜单和菜单项。在所有的菜单项添加完成之后,进行 DrawMenuBar 操作,这样动态添加的菜单就能够显示出来。添加2 级菜单的动态添加经过能够通过下面代码实现: CMenu * pTopMenu = AfxGetMainWnd( ) GetMenu( ) ; / / 获取系统菜单指针 int nMenu = pTopMenu GetMenuItemCount( ) ; / / 获取现有菜单项
8、个数 while ( i nMenuCount) szTitle Format( _T( % s ) ,menuItemi title) ; if( menuItemi type = = TOP_MENU) CMenu newMenu; newMenu CreatePopupMenu( ) ; pTopMenu AppendMenuW( MF_POPUP,( UINT) newMenu m_hMenu,szTitle) ; newMenu Detach( ) ; / / 菜单项与局部变量分离 + + nMenu; / / 递增菜单数,以便让子菜单获取正确的父级菜单 else if ( menu
9、Itemi type = = SUB_MENU) / / 获取当下子菜单的父级菜单 pParentMenu = pTopMenu GetSubMenu( nMenu 1) ; / / 子菜单需要有相应的命令响应,需要一个全局唯一的 ID pParentMenu AppendMenuW( MF_STING,newMenuID,szTitle) ;+ + newMenuID; + + i; DrawMenuBar( AfxGetMainWnd( ) m_hWnd) 。 假如只进行添加菜单的操作,那么界面中的这些动态菜单项都是 灰色的 ( 不可用状态) ,而不像其他系统自带菜单项那样显示为可用状态;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文化交流
限制150内