本系统的设计目标是开发一个从医学切片图像到有限元网格平台.当然这是导师的项目,不过系统架构和主要的编码还是由我作的.对这次开发过程中出现的问题以及最终解决问题的途径,我觉得还是比较有代表性的.
先介绍一下用户需求,其实就是导师脑袋里的想法结合我们的能力的东东了,编程技术不会太复杂,毕竟俺还是个学生,太复杂的东西是有风险的.
1)将切片图像读取(以后还要增加读取三维图像),图像预处理(裁减,平滑),图像分割,三维重建,几何模型导出和有限元网格生成等功能模块有机结合在统一的用户界面下,提供简洁初始界面,使用户能轻松识别各个功能区。因为该软件面向对象是科研工作者的,所以都是采用英文界面(这里没有歧视非科技工作者的意识,这是导师的原话.我对该观点抱否定态度,但实话说英文注释和界面开发起来方便,至少不用考虑输入法切换和Unicode转换).
2)对从切片图像读取到有限元网格生成这样一系列功能的实现在具有流线型特征的同时应该是可回溯性。(这里的回溯性,是比较高级的东西.利用了ITK和VTK的管道机制.)
3)为了提高图像处理的效率,对裁减、分割、重建这样的主要功能,应该具有策略存取功能,从而实现自动化或半自动化。
4)实现不同分割或重建方法结果可视化比较。
5)设计应该考虑界面功能模块的扩展和底层算法扩展。
根据这样的目标,我们制定了系统的设计方案:
1)系统基于VC6.0+sp5.0开发,采用MFC + ITK + VTK结构完成程序的用户界面、图像处理和可视化机制。
2)设计简约的系统界面,划分主要功能模块。功能模块主要包括数据处理模块、裁减模块、分割模块、分割过滤器模块、重建模块、表面模型平滑简化模块以及有限元网格划分模块等。
3)设计合理的数据流。实现各功能模块独立化,数据模块、处理模块和界面模块分离,提高系统的移植性。
4)在各功能模块之间可动态生成管道线。
等测试完毕,欢迎大家下载试用!