零.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基本就一個意思。





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