零.MITK从入门到放弃之简介

该专栏主要分享MITK开发过程中遇到的问题与MITK框架的开发方法.

笔者开发环境:

操作系统:Windows 10, x64

MITK版本:2016.11

Visual Studio : 2015

Qt:5.7.1

CMake: 3.8.1

MITK学习方法:

做MITK项目也有半年多时间了,中间走了很多弯路,现在终于算MITK的入门者了。将我的学习方法和体会分享给大家。

1.不要一上来就找main函数,从main函数开始看代码,如果你没有过硬的C++水平,从main开始看代码只会加快放弃的速度。

2.先利用官方文档尝试多写插件,多写module,实现plugin和module的方式最好能遵循MITK准则。比如,mapper只负责渲染,interactor负责交互,从basedata继承下来的数据放在module中,basedata交由datanode管理,module到插件通过观察者通知,插件到module通过直接调用的方式,basedata序列化通过继承 抽象的reader和writer等等,虽然可能一个需求的实现方法有很多,尽量选用最符合框架开发者思想的方法。

3.多看源码,这里说的源码不是从main开始看,而是 看一种数据结构,比如mitksurface,先看该类实现,再看该类对应的2D mapper和3Dmapper,再看mitkImage和mitkPointset。多看几遍就能有个大概的想法。

4.尝试修改segmentation模块中的各种工具的源码。这个模块是mitk里面相当重要的模块,对于理解 mitkimage, mitklabelsetimage,状态机的写法,事件观察者模式,mitkcontourmodel,mitkinteractor等基本的类有大概了解。

5.尝试从basedata继承,写一种数据结构,实现该数据结构的 interactor,mapper,序列化等等,可以参考multilabel和contourmodel模块。

6.尝试写一种filter。

7.结合filter,basedata和itkuserguide文档 理解 itk管道机制(这里没有写错,mitk的管道完全是使用itk的管道实现方法,可以说是一摸一样)

8.结合各种mapper和vtkuerguide手册,理解VTK渲染管道(mitk的渲染管道整合到了vtk中)

9.结合Eclipse插件开发手册,多看看blueberry的源码,理解 perspective view ,workbench workbenchwindow,workbenchwindowadvisor等等类的意义。

10.单独玩玩CTK,mitk的插件就是基于ctk插件实现的。

11.单独玩玩cppmicroservices 库,理解面向服务的真正意义,及模块的自动加载方法(mitk的模块是基于cppmicroserviecs的bundle实现的,bundle和module基本就一个意思。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章